aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--AleePlayer.desktop4
-rw-r--r--AleePlayer.pro6
-rw-r--r--AleePlayer_en_CA.ts3
-rw-r--r--about.cpp19
-rw-r--r--about.h17
-rw-r--r--about.ui38
-rw-r--r--library.cpp54
-rw-r--r--library.h39
-rw-r--r--main.cpp24
-rw-r--r--player.cpp51
-rw-r--r--player.h27
-rw-r--r--player.ui4
-rw-r--r--translations/en_CA.ts202
-rw-r--r--translations/fr_CA.ts202
-rw-r--r--translations/vi_VN.ts202
16 files changed, 848 insertions, 46 deletions
diff --git a/.gitignore b/.gitignore
index c74505c..3f0e9d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -52,3 +52,5 @@ compile_commands.json
*creator.user*
build
+
+android
diff --git a/AleePlayer.desktop b/AleePlayer.desktop
index 8c5b8aa..da6d3a5 100644
--- a/AleePlayer.desktop
+++ b/AleePlayer.desktop
@@ -1,7 +1,7 @@
[Desktop Entry]
Type=Application
-Name=AleePlayer
-Comment=Music Player by Alee Productions
+Name=Alee Music Player
+Comment=Music Player
Exec=AleePlayer
Icon=ALP
Categories=Audio;
diff --git a/AleePlayer.pro b/AleePlayer.pro
index c7ffdff..ecb90de 100644
--- a/AleePlayer.pro
+++ b/AleePlayer.pro
@@ -17,11 +17,13 @@ DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
about.cpp \
+ library.cpp \
main.cpp \
player.cpp
HEADERS += \
about.h \
+ library.h \
player.h
FORMS += \
@@ -29,7 +31,9 @@ FORMS += \
player.ui
TRANSLATIONS += \
- AleePlayer_en_CA.ts
+ translations/en_CA.ts \
+ translations/fr_CA.ts \
+ translations/vi_VN.ts
unix:!macx:!android {
diff --git a/AleePlayer_en_CA.ts b/AleePlayer_en_CA.ts
deleted file mode 100644
index 3cee958..0000000
--- a/AleePlayer_en_CA.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="AleePlayer_en_CA"></TS>
diff --git a/about.cpp b/about.cpp
index e3fde67..250945d 100644
--- a/about.cpp
+++ b/about.cpp
@@ -1,5 +1,23 @@
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
#include "about.h"
#include "ui_about.h"
+#include <QDebug>
About::About(QWidget *parent) :
QDialog(parent),
@@ -16,5 +34,6 @@ About::About(QWidget *parent) :
About::~About()
{
+ qDebug() << "Closing about dialog";
delete ui;
}
diff --git a/about.h b/about.h
index a88d2ac..595f3f5 100644
--- a/about.h
+++ b/about.h
@@ -1,3 +1,20 @@
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
#ifndef ABOUT_H
#define ABOUT_H
diff --git a/about.ui b/about.ui
index 6de397b..572e794 100644
--- a/about.ui
+++ b/about.ui
@@ -23,7 +23,7 @@
</size>
</property>
<property name="windowTitle">
- <string>About</string>
+ <string>About - Alee Music Player</string>
</property>
<property name="modal">
<bool>false</bool>
@@ -53,7 +53,7 @@
</font>
</property>
<property name="text">
- <string>AleePlayer 0.2 by Alee Productions</string>
+ <string>Alee Music Player 0.2 by Alee Productions</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
@@ -111,23 +111,23 @@
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans';&quot;&gt;&lt;br /&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; AleePlayer: Music player in Qt &lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; Copyright (C) 2020 Alee Productions&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans';&quot;&gt;&lt;br /&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; This program is free software: you can redistribute it and/or modify&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; it under the terms of the GNU General Public License as published by&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; the Free Software Foundation, either version 3 of the License, or&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; (at your option) any later version.&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans';&quot;&gt;&lt;br /&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; This program is distributed in the hope that it will be useful,&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; GNU General Public License for more details.&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans';&quot;&gt;&lt;br /&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; You should have received a copy of the GNU General Public License&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans';&quot;&gt; along with this program. If not, see &amp;lt;https://www.gnu.org/licenses/&amp;gt;.&lt;/span&gt;&lt;/p&gt;
-&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Noto Sans';&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Alee Music Player: An audio player written in Qt&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Copyright (C) 2020 Alee Productions&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is free software: you can redistribute it and/or modify&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; it under the terms of the GNU General Public License as published by&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; the Free Software Foundation, either version 3 of the License, or&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; (at your option) any later version.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is distributed in the hope that it will be useful,&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GNU General Public License for more details.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; You should have received a copy of the GNU General Public License&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; along with this program. If not, see &amp;lt;https://www.gnu.org/licenses/&amp;gt;.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
diff --git a/library.cpp b/library.cpp
new file mode 100644
index 0000000..aa3e8c1
--- /dev/null
+++ b/library.cpp
@@ -0,0 +1,54 @@
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
+#include "library.h"
+
+Library::Library(QObject *parent)
+ : QAbstractListModel(parent)
+{
+}
+
+int Library::rowCount(const QModelIndex &parent) const
+{
+ // For list models only the root node (an invalid parent) should return the list's size. For all
+ // other (valid) parents, rowCount() should return 0 so that it does not become a tree model.
+ if (parent.isValid())
+ return 0;
+
+ return 3;
+
+}
+
+QVariant Library::data(const QModelIndex &index, int role) const
+{
+
+ if (!index.isValid())
+ return QVariant();
+
+ if (role == Qt::DisplayRole) {
+ switch (index.row()) {
+ case 0:
+ return "Item 1";
+ case 1:
+ return "Item 2";
+ case 2:
+ return "Item 3";
+ }
+ }
+
+ return QVariant();
+}
diff --git a/library.h b/library.h
new file mode 100644
index 0000000..9858d9f
--- /dev/null
+++ b/library.h
@@ -0,0 +1,39 @@
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
+#ifndef LIBRARY_H
+#define LIBRARY_H
+
+#include <QAbstractListModel>
+#include <QAbstractTableModel>
+
+class Library : public QAbstractListModel
+{
+ Q_OBJECT
+
+public:
+ explicit Library(QObject *parent = nullptr);
+
+ // Basic functionality:
+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
+
+private:
+};
+
+#endif // LIBRARY_H
diff --git a/main.cpp b/main.cpp
index 063d45d..e9f00e6 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,6 +1,24 @@
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
#include "player.h"
#include <QMessageBox>
#include <QDebug>
+#include <QTranslator>
#include <QFile>
#include <QDir>
@@ -14,12 +32,16 @@ int main(int argc, char *argv[])
//QDir directory(QDir::homePath() + "/.alee-productions/AleePlayer");
- //File file(directory.absoluteFilePath("test.txt"));
+ //File file(directory.absoluteFilePath("test.txt"));
//file.open(QFile::WriteOnly);
//file.close();
QApplication a(argc, argv);
+ QTranslator translator;
+ translator.load(QLocale(), "/home/andrew/Documents/GitHub/AleePlayer/translations/");
+ a.installTranslator(&translator);
+
Player musicPlayer;
musicPlayer.show();
return a.exec();
diff --git a/player.cpp b/player.cpp
index 632e9e2..fdc41c7 100644
--- a/player.cpp
+++ b/player.cpp
@@ -1,28 +1,41 @@
-#include <QMediaPlayer>
-#include <QDebug>
-#include <QFileDialog>
-#include <QMessageBox>
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
#include "player.h"
#include "ui_player.h"
#include "about.h"
+#include "library.h"
void Player::loadFile()
{
- QString mFile;
QMessageBox msgbox;
- mFile = QFileDialog::getOpenFileName(this, "Open any audio file", QDir::homePath(), tr("Audio Files (*.mp3 *.wav *.ogg *.flac)"));
+ mFile = QFileDialog::getOpenFileName(this, tr("Open any audio file"), QDir::homePath(), tr("Audio Files (*.mp3 *.wav *.ogg *.flac *.mp4)"));
if (mFile == NULL) {
- qDebug() << "File cannot be found";
- msgbox.setWindowTitle("Uh oh! An error has occured!");
- msgbox.setText("File is invalid. Maybe try loading a valid audio file.");
+ qDebug() << tr("File cannot be found");
+ msgbox.setWindowTitle(tr("Uh oh! An error has occured!"));
+ msgbox.setText(tr("File is invalid. Maybe try loading a valid audio file."));
msgbox.setIcon(QMessageBox::Critical);
msgbox.exec();
return;
} else {
mPlayer->setMedia(QUrl::fromLocalFile(mFile));
- qDebug() << "Opening" << mFile;
- msgbox.setWindowTitle("Success!");
- msgbox.setText("This audio file has been loaded.");
+ qDebug() << tr("Opening") << mFile;
+ msgbox.setWindowTitle(tr("Success!"));
+ msgbox.setText(tr("This audio file has been loaded."));
msgbox.setIcon(QMessageBox::Information);
msgbox.exec();
ui->volumeSlider->setValue(100);
@@ -39,6 +52,8 @@ Player::Player(QWidget *parent)
{
ui->setupUi(this);
+ ui->library->setModel(new Library());
+
connect(mPlayer, &QMediaPlayer::positionChanged, this, &Player::on_positionChanged);
connect(mPlayer, &QMediaPlayer::durationChanged, this, &Player::on_durationChanged);
@@ -46,7 +61,7 @@ Player::Player(QWidget *parent)
Player::~Player()
{
- qInfo() << "Closing AleePlayer...";
+ qInfo() << tr("Closing AleePlayer...");
mPlayer->deleteLater();
delete ui;
}
@@ -62,20 +77,22 @@ void Player::on_playButton_pressed()
ui->volumeSlider->setEnabled(true);
if (mPlayer->state() == mPlayer->PlayingState) {
- qDebug() << "Pausing music...";
+ qDebug() << tr("Pausing music...");
mPlayer->pause();
ui->playButton->setText(tr("Play"));
} else {
- qDebug() << "Playing music...";
+ qDebug() << tr("Playing music...");
mPlayer->play();
ui->playButton->setText(tr("Pause"));
+ amount++;
+ //qDebug() << "You have pressed play for" << amount << "time(s).";
}
}
void Player::on_stopButton_pressed()
{
- qInfo() << "Stopping music...";
+ qInfo() << tr("Stopping music...");
mPlayer->stop();
ui->volumeSlider->setEnabled(false);
ui->volumeSlider->setValue(100);
@@ -85,7 +102,7 @@ void Player::on_stopButton_pressed()
void Player::on_actionAbout_triggered()
{
- qDebug() << "Opening dialog";
+ qDebug() << tr("Opening about dialog");
About about;
about.exec();
}
diff --git a/player.h b/player.h
index 69d035e..f0cb0b9 100644
--- a/player.h
+++ b/player.h
@@ -1,8 +1,28 @@
+/*
+ AleePlayer: Music player in Qt
+ Copyright (C) 2020 Alee Productions
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+*/
#ifndef PLAYER_H
#define PLAYER_H
#include <QMediaPlayer>
-
+#include <QStringListModel>
#include <QMainWindow>
+#include <QDebug>
+#include <QFileDialog>
+#include <QMessageBox>
QT_BEGIN_NAMESPACE
namespace Ui { class Player; }
@@ -17,7 +37,10 @@ public:
~Player();
QMediaPlayer* mPlayer = new QMediaPlayer();
+ int amount = 0;
+
private slots:
+
void on_actionQuit_triggered();
void on_playButton_pressed();
@@ -42,5 +65,7 @@ private slots:
private:
Ui::Player *ui;
+ QString mFile;
+ QStringListModel *model;
};
#endif // PLAYER_H
diff --git a/player.ui b/player.ui
index 6127b82..a33d78a 100644
--- a/player.ui
+++ b/player.ui
@@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
- <string>AleePlayer</string>
+ <string>Alee Music Player</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
@@ -51,7 +51,7 @@
</property>
</widget>
</item>
- <item row="2" column="4">
+ <item row="2" column="4" colspan="2">
<widget class="QFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Fixed">
diff --git a/translations/en_CA.ts b/translations/en_CA.ts
new file mode 100644
index 0000000..090d22b
--- /dev/null
+++ b/translations/en_CA.ts
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="en_CA">
+<context>
+ <name>About</name>
+ <message>
+ <location filename="../about.ui" line="26"/>
+ <source>About - Alee Music Player</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="56"/>
+ <source>Alee Music Player 0.2 by Alee Productions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="74"/>
+ <source>Licensed with GPL-3.0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="84"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://alee-productions.xyz&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#007af4;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="110"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Alee Music Player: An audio player written in Qt&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Copyright (C) 2020 Alee Productions&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is free software: you can redistribute it and/or modify&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; it under the terms of the GNU General Public License as published by&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; the Free Software Foundation, either version 3 of the License, or&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; (at your option) any later version.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is distributed in the hope that it will be useful,&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GNU General Public License for more details.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; You should have received a copy of the GNU General Public License&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; along with this program. If not, see &amp;lt;https://www.gnu.org/licenses/&amp;gt;.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Player</name>
+ <message>
+ <location filename="../player.ui" line="14"/>
+ <source>Alee Music Player</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="28"/>
+ <source>Library</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="38"/>
+ <source>Playlist</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="75"/>
+ <source>Stop</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="85"/>
+ <source>Browse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="95"/>
+ <source>Volume</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="107"/>
+ <source>Title</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="114"/>
+ <location filename="../player.cpp" line="42"/>
+ <location filename="../player.cpp" line="82"/>
+ <source>Play</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="178"/>
+ <source>File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="187"/>
+ <source>View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="196"/>
+ <source>Quit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="199"/>
+ <source>Ctrl+Q</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="204"/>
+ <source>About</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="209"/>
+ <source>Open</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="212"/>
+ <source>Ctrl+O</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="26"/>
+ <source>Open any audio file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="26"/>
+ <source>Audio Files (*.mp3 *.wav *.ogg *.flac *.mp4)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="28"/>
+ <source>File cannot be found</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="29"/>
+ <source>Uh oh! An error has occured!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="30"/>
+ <source>File is invalid. Maybe try loading a valid audio file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="36"/>
+ <source>Opening</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="37"/>
+ <source>Success!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="38"/>
+ <source>This audio file has been loaded.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="64"/>
+ <source>Closing AleePlayer...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="80"/>
+ <source>Pausing music...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="84"/>
+ <source>Playing music...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="86"/>
+ <source>Pause</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="95"/>
+ <source>Stopping music...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="105"/>
+ <source>Opening about dialog</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/fr_CA.ts b/translations/fr_CA.ts
new file mode 100644
index 0000000..ce4ff90
--- /dev/null
+++ b/translations/fr_CA.ts
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="fr_CA">
+<context>
+ <name>About</name>
+ <message>
+ <location filename="../about.ui" line="26"/>
+ <source>About - Alee Music Player</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="56"/>
+ <source>Alee Music Player 0.2 by Alee Productions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="74"/>
+ <source>Licensed with GPL-3.0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="84"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://alee-productions.xyz&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#007af4;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="110"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Alee Music Player: An audio player written in Qt&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Copyright (C) 2020 Alee Productions&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is free software: you can redistribute it and/or modify&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; it under the terms of the GNU General Public License as published by&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; the Free Software Foundation, either version 3 of the License, or&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; (at your option) any later version.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is distributed in the hope that it will be useful,&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GNU General Public License for more details.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; You should have received a copy of the GNU General Public License&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; along with this program. If not, see &amp;lt;https://www.gnu.org/licenses/&amp;gt;.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Player</name>
+ <message>
+ <location filename="../player.ui" line="14"/>
+ <source>Alee Music Player</source>
+ <translation>Alee Music Player</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="28"/>
+ <source>Library</source>
+ <translation>Bibliothèque</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="38"/>
+ <source>Playlist</source>
+ <translation>Liste de chansons</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="75"/>
+ <source>Stop</source>
+ <translation>Arrêt</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="85"/>
+ <source>Browse</source>
+ <translation>Feuilleter</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="95"/>
+ <source>Volume</source>
+ <translation>Le volume</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="107"/>
+ <source>Title</source>
+ <translation>Titre</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="114"/>
+ <location filename="../player.cpp" line="42"/>
+ <location filename="../player.cpp" line="82"/>
+ <source>Play</source>
+ <translation>Jouer</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="178"/>
+ <source>File</source>
+ <translation>Fichier</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="187"/>
+ <source>View</source>
+ <translation>Vue</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="196"/>
+ <source>Quit</source>
+ <translation>Quitter</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="199"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl + Q</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="204"/>
+ <source>About</source>
+ <translation>À propos du logiciel</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="209"/>
+ <source>Open</source>
+ <translation>Ouvrir</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="212"/>
+ <source>Ctrl+O</source>
+ <translation>Ctrl+O</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="26"/>
+ <source>Open any audio file</source>
+ <translation>Ouvrir n&apos;importe quel fichier audio</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="26"/>
+ <source>Audio Files (*.mp3 *.wav *.ogg *.flac *.mp4)</source>
+ <translation>Fichiers Audio (*.mp3 *.wav *.ogg *.flac *.mp4)</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="28"/>
+ <source>File cannot be found</source>
+ <translation>Le fichier est introuvable</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="29"/>
+ <source>Uh oh! An error has occured!</source>
+ <translation>Euh oh! Une erreur est survenue!</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="30"/>
+ <source>File is invalid. Maybe try loading a valid audio file.</source>
+ <translation>Le fichier n&apos;est pas valide. Essayez peut-être de charger un fichier audio valide.</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="36"/>
+ <source>Opening</source>
+ <translation>Overture</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="37"/>
+ <source>Success!</source>
+ <translation>Succès!</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="38"/>
+ <source>This audio file has been loaded.</source>
+ <translation>Ce fichier audio a été chargé.</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="64"/>
+ <source>Closing AleePlayer...</source>
+ <translation>Fermeture AleePlayer...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="80"/>
+ <source>Pausing music...</source>
+ <translation>Pause la musique...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="84"/>
+ <source>Playing music...</source>
+ <translation>Jouer la musique...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="86"/>
+ <source>Pause</source>
+ <translation>Pause</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="95"/>
+ <source>Stopping music...</source>
+ <translation>Arrêtez la musique...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="105"/>
+ <source>Opening about dialog</source>
+ <translation>Boîte de dialogue d&apos;ouverture</translation>
+ </message>
+</context>
+</TS>
diff --git a/translations/vi_VN.ts b/translations/vi_VN.ts
new file mode 100644
index 0000000..85ffb90
--- /dev/null
+++ b/translations/vi_VN.ts
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="vi_VN" sourcelanguage="en_US">
+<context>
+ <name>About</name>
+ <message>
+ <location filename="../about.ui" line="26"/>
+ <source>About - Alee Music Player</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="56"/>
+ <source>Alee Music Player 0.2 by Alee Productions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="74"/>
+ <source>Licensed with GPL-3.0</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="84"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://alee-productions.xyz&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#007af4;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://alee-productions.xyz&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#007af4;&quot;&gt;Trang Web&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../about.ui" line="110"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Noto Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Alee Music Player: An audio player written in Qt&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; Copyright (C) 2020 Alee Productions&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is free software: you can redistribute it and/or modify&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; it under the terms of the GNU General Public License as published by&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; the Free Software Foundation, either version 3 of the License, or&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; (at your option) any later version.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; This program is distributed in the hope that it will be useful,&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; GNU General Public License for more details.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; You should have received a copy of the GNU General Public License&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt; along with this program. If not, see &amp;lt;https://www.gnu.org/licenses/&amp;gt;.&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Player</name>
+ <message>
+ <location filename="../player.ui" line="14"/>
+ <source>Alee Music Player</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="28"/>
+ <source>Library</source>
+ <translation>Thư viện</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="38"/>
+ <source>Playlist</source>
+ <translation>Hàng phát</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="75"/>
+ <source>Stop</source>
+ <translation>Dừng lại</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="85"/>
+ <source>Browse</source>
+ <translation>Duyệt</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="95"/>
+ <source>Volume</source>
+ <translation>Âm lượng</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="107"/>
+ <source>Title</source>
+ <translation>Tiêu đề</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="114"/>
+ <location filename="../player.cpp" line="42"/>
+ <location filename="../player.cpp" line="82"/>
+ <source>Play</source>
+ <translation>Phát</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="178"/>
+ <source>File</source>
+ <translation>Tệp</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="187"/>
+ <source>View</source>
+ <translation>Xem</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="196"/>
+ <source>Quit</source>
+ <translation>Thoát</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="199"/>
+ <source>Ctrl+Q</source>
+ <translation>Ctrl+Q</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="204"/>
+ <source>About</source>
+ <translation>Giới Thiệu</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="209"/>
+ <source>Open</source>
+ <translation>Mở</translation>
+ </message>
+ <message>
+ <location filename="../player.ui" line="212"/>
+ <source>Ctrl+O</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="26"/>
+ <source>Open any audio file</source>
+ <translation>Mở bất kỳ tệp nhạc nào</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="26"/>
+ <source>Audio Files (*.mp3 *.wav *.ogg *.flac *.mp4)</source>
+ <translation>Tệp nhạc (*.mp3 *.wav *.ogg *.flac *.mp4)</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="28"/>
+ <source>File cannot be found</source>
+ <translation>Không thể tìm tệp</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="29"/>
+ <source>Uh oh! An error has occured!</source>
+ <translation>Chà, một lỗi đã xảy ra!</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="30"/>
+ <source>File is invalid. Maybe try loading a valid audio file.</source>
+ <translation>Tệp không hợp lệ. Hãy tải một tệp nhạc hợp lệ.</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="36"/>
+ <source>Opening</source>
+ <translation>Đang mở</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="37"/>
+ <source>Success!</source>
+ <translation>Tốt đẹp!</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="38"/>
+ <source>This audio file has been loaded.</source>
+ <translation>Tệp nhạc đã bị tải.</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="64"/>
+ <source>Closing AleePlayer...</source>
+ <translation>Đang thoát AleePlayer...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="80"/>
+ <source>Pausing music...</source>
+ <translation>Đang tạm dừng nhạc...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="84"/>
+ <source>Playing music...</source>
+ <translation>Đang phát nhạc...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="86"/>
+ <source>Pause</source>
+ <translation>Tạm dừng</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="95"/>
+ <source>Stopping music...</source>
+ <translation>Đang dừng lại nhắc...</translation>
+ </message>
+ <message>
+ <location filename="../player.cpp" line="105"/>
+ <source>Opening about dialog</source>
+ <translation>Đang mở cửa sổ giới thiệu</translation>
+ </message>
+</context>
+</TS>