Move fileview to its own class, remember where it was
This commit is contained in:
parent
5b0496bf8f
commit
930fbaeac1
|
@ -0,0 +1,87 @@
|
||||||
|
#include "fileview.h"
|
||||||
|
|
||||||
|
#include <QFileSystemModel>
|
||||||
|
#include <QUndoStack>
|
||||||
|
|
||||||
|
FileView::FileView(QWidget* parent)
|
||||||
|
: QWidget(parent),
|
||||||
|
model_(new QFileSystemModel(this)),
|
||||||
|
undo_stack_(new QUndoStack(this))
|
||||||
|
{
|
||||||
|
ui_.setupUi(this);
|
||||||
|
|
||||||
|
ui_.list->setModel(model_);
|
||||||
|
ChangeFilePathWithoutUndo(QDir::homePath());
|
||||||
|
|
||||||
|
connect(ui_.back, SIGNAL(clicked()), SLOT(FileBack()));
|
||||||
|
connect(ui_.forward, SIGNAL(clicked()), SLOT(FileForward()));
|
||||||
|
connect(ui_.home, SIGNAL(clicked()), SLOT(FileHome()));
|
||||||
|
connect(ui_.up, SIGNAL(clicked()), SLOT(FileUp()));
|
||||||
|
connect(ui_.path, SIGNAL(textChanged(QString)), SLOT(ChangeFilePath(QString)));
|
||||||
|
|
||||||
|
connect(undo_stack_, SIGNAL(canUndoChanged(bool)), ui_.back, SLOT(setEnabled(bool)));
|
||||||
|
connect(undo_stack_, SIGNAL(canRedoChanged(bool)), ui_.forward, SLOT(setEnabled(bool)));
|
||||||
|
|
||||||
|
connect(ui_.list, SIGNAL(activated(QModelIndex)), SLOT(ItemActivated(QModelIndex)));
|
||||||
|
connect(ui_.list, SIGNAL(doubleClicked(QModelIndex)), SLOT(ItemDoubleClick(QModelIndex)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::SetPath(const QString& path) {
|
||||||
|
ChangeFilePathWithoutUndo(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::FileUp() {
|
||||||
|
QDir dir(model_->rootDirectory());
|
||||||
|
dir.cdUp();
|
||||||
|
|
||||||
|
ChangeFilePath(dir.path());
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::FileBack() {
|
||||||
|
QString new_path(undo_stack_->command(undo_stack_->index()-1)->text());
|
||||||
|
undo_stack_->undo();
|
||||||
|
ChangeFilePathWithoutUndo(new_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::FileForward() {
|
||||||
|
QString new_path(undo_stack_->command(undo_stack_->index()+1)->text());
|
||||||
|
undo_stack_->redo();
|
||||||
|
ChangeFilePathWithoutUndo(new_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::FileHome() {
|
||||||
|
ChangeFilePath(QDir::homePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::ChangeFilePath(const QString& new_path) {
|
||||||
|
QFileInfo info(new_path);
|
||||||
|
if (!info.exists() || !info.isDir())
|
||||||
|
return;
|
||||||
|
|
||||||
|
QString old_path(model_->rootPath());
|
||||||
|
|
||||||
|
ChangeFilePathWithoutUndo(new_path);
|
||||||
|
undo_stack_->push(new QUndoCommand(old_path));
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::ChangeFilePathWithoutUndo(const QString& new_path) {
|
||||||
|
ui_.list->setRootIndex(model_->setRootPath(new_path));
|
||||||
|
ui_.path->setText(new_path);
|
||||||
|
|
||||||
|
QDir dir(new_path);
|
||||||
|
ui_.up->setEnabled(dir.cdUp());
|
||||||
|
|
||||||
|
emit PathChanged(new_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::ItemActivated(const QModelIndex& index) {
|
||||||
|
if (model_->isDir(index))
|
||||||
|
ChangeFilePath(model_->filePath(index));
|
||||||
|
}
|
||||||
|
|
||||||
|
void FileView::ItemDoubleClick(const QModelIndex& index) {
|
||||||
|
if (model_->isDir(index))
|
||||||
|
return;
|
||||||
|
|
||||||
|
emit PlayFile(model_->filePath(index));
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
#ifndef FILEVIEW_H
|
||||||
|
#define FILEVIEW_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
#include "ui_fileview.h"
|
||||||
|
|
||||||
|
class QFileSystemModel;
|
||||||
|
class QUndoStack;
|
||||||
|
|
||||||
|
class FileView : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
FileView(QWidget* parent = 0);
|
||||||
|
|
||||||
|
void SetPath(const QString& path);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void PathChanged(const QString& path);
|
||||||
|
|
||||||
|
void PlayFile(const QString& path);
|
||||||
|
void PlayDirectory(const QString& path);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void FileUp();
|
||||||
|
void FileBack();
|
||||||
|
void FileForward();
|
||||||
|
void FileHome();
|
||||||
|
void ChangeFilePath(const QString& new_path);
|
||||||
|
void ItemActivated(const QModelIndex& index);
|
||||||
|
void ItemDoubleClick(const QModelIndex& index);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void ChangeFilePathWithoutUndo(const QString& new_path);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::FileView ui_;
|
||||||
|
|
||||||
|
QFileSystemModel* model_;
|
||||||
|
QUndoStack* undo_stack_;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FILEVIEW_H
|
|
@ -0,0 +1,99 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>FileView</class>
|
||||||
|
<widget class="QWidget" name="FileView">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>300</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="back">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>:/go-previous.png</normaloff>:/go-previous.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="forward">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>:/go-next.png</normaloff>:/go-next.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="up">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>:/go-up.png</normaloff>:/go-up.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="home">
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset>
|
||||||
|
<normaloff>:/go-home.png</normaloff>:/go-home.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="autoRaise">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="path"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QListView" name="list"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -77,10 +77,6 @@ void Library::Initialise() {
|
||||||
Reset();
|
Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Library::IsEmpty() const {
|
|
||||||
return root_->children.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Library::SongsDiscovered(const SongList& songs) {
|
void Library::SongsDiscovered(const SongList& songs) {
|
||||||
foreach (const Song& song, songs) {
|
foreach (const Song& song, songs) {
|
||||||
LibraryItem* artist = NULL;
|
LibraryItem* artist = NULL;
|
||||||
|
|
|
@ -29,11 +29,10 @@ class Library : public QAbstractItemModel {
|
||||||
|
|
||||||
void StartThreads();
|
void StartThreads();
|
||||||
|
|
||||||
|
// Get information about the library
|
||||||
void GetChildSongs(LibraryItem* item, QList<QUrl>* urls, SongList* songs) const;
|
void GetChildSongs(LibraryItem* item, QList<QUrl>* urls, SongList* songs) const;
|
||||||
SongList GetChildSongs(const QModelIndex& index) const;
|
SongList GetChildSongs(const QModelIndex& index) const;
|
||||||
|
|
||||||
bool IsEmpty() const;
|
|
||||||
|
|
||||||
// QAbstractItemModel
|
// QAbstractItemModel
|
||||||
int columnCount(const QModelIndex & parent = QModelIndex()) const;
|
int columnCount(const QModelIndex & parent = QModelIndex()) const;
|
||||||
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
|
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
|
||||||
|
|
|
@ -26,8 +26,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
player_(new Player(playlist_, this)),
|
player_(new Player(playlist_, this)),
|
||||||
library_(new Library(player_->GetEngine(), this)),
|
library_(new Library(player_->GetEngine(), this)),
|
||||||
library_sort_model_(new QSortFilterProxyModel(this)),
|
library_sort_model_(new QSortFilterProxyModel(this)),
|
||||||
file_model_(new QFileSystemModel(this)),
|
|
||||||
file_undo_stack_(new QUndoStack(this)),
|
|
||||||
tray_icon_(new SystemTrayIcon(this))
|
tray_icon_(new SystemTrayIcon(this))
|
||||||
{
|
{
|
||||||
ui_.setupUi(this);
|
ui_.setupUi(this);
|
||||||
|
@ -49,21 +47,9 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
ui_.library_view->setModel(library_sort_model_);
|
ui_.library_view->setModel(library_sort_model_);
|
||||||
ui_.library_view->SetLibrary(library_);
|
ui_.library_view->SetLibrary(library_);
|
||||||
|
|
||||||
// File browser
|
// File view connections
|
||||||
ui_.file_view->setModel(file_model_);
|
connect(ui_.file_view, SIGNAL(PlayFile(QString)), SLOT(PlayFile(QString)));
|
||||||
ChangeFilePathWithoutUndo(QDir::homePath());
|
connect(ui_.file_view, SIGNAL(PathChanged(QString)), SLOT(FilePathChanged(QString)));
|
||||||
|
|
||||||
connect(ui_.file_back, SIGNAL(clicked()), SLOT(FileBack()));
|
|
||||||
connect(ui_.file_forward, SIGNAL(clicked()), SLOT(FileForward()));
|
|
||||||
connect(ui_.file_home, SIGNAL(clicked()), SLOT(FileHome()));
|
|
||||||
connect(ui_.file_up, SIGNAL(clicked()), SLOT(FileUp()));
|
|
||||||
connect(ui_.file_path, SIGNAL(textChanged(QString)), SLOT(ChangeFilePath(QString)));
|
|
||||||
|
|
||||||
connect(file_undo_stack_, SIGNAL(canUndoChanged(bool)), ui_.file_back, SLOT(setEnabled(bool)));
|
|
||||||
connect(file_undo_stack_, SIGNAL(canRedoChanged(bool)), ui_.file_forward, SLOT(setEnabled(bool)));
|
|
||||||
|
|
||||||
connect(ui_.file_view, SIGNAL(activated(QModelIndex)), SLOT(FileClicked(QModelIndex)));
|
|
||||||
connect(ui_.file_view, SIGNAL(doubleClicked(QModelIndex)), SLOT(FileDoubleClicked(QModelIndex)));
|
|
||||||
|
|
||||||
// Action connections
|
// Action connections
|
||||||
connect(ui_.action_next_track, SIGNAL(triggered()), player_, SLOT(Next()));
|
connect(ui_.action_next_track, SIGNAL(triggered()), player_, SLOT(Next()));
|
||||||
|
@ -168,7 +154,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
setStyleSheet(stylesheet.readAll());
|
setStyleSheet(stylesheet.readAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load geometry
|
// Load settings
|
||||||
QSettings settings;
|
QSettings settings;
|
||||||
settings.beginGroup(kSettingsGroup);
|
settings.beginGroup(kSettingsGroup);
|
||||||
|
|
||||||
|
@ -178,6 +164,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
tabifyDockWidget(ui_.files_dock, ui_.library_dock);
|
tabifyDockWidget(ui_.files_dock, ui_.library_dock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ui_.file_view->SetPath(settings.value("file_path", QDir::homePath()).toString());
|
||||||
|
|
||||||
if (!settings.value("hidden", false).toBool())
|
if (!settings.value("hidden", false).toBool())
|
||||||
show();
|
show();
|
||||||
|
|
||||||
|
@ -188,59 +176,9 @@ MainWindow::~MainWindow() {
|
||||||
SaveGeometry();
|
SaveGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::FileUp() {
|
void MainWindow::PlayFile(const QString& path) {
|
||||||
QDir dir(file_model_->rootDirectory());
|
|
||||||
dir.cdUp();
|
|
||||||
|
|
||||||
ChangeFilePath(dir.path());
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::FileBack() {
|
|
||||||
QString new_path(file_undo_stack_->command(file_undo_stack_->index()-1)->text());
|
|
||||||
file_undo_stack_->undo();
|
|
||||||
ChangeFilePathWithoutUndo(new_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::FileForward() {
|
|
||||||
QString new_path(file_undo_stack_->command(file_undo_stack_->index()+1)->text());
|
|
||||||
file_undo_stack_->redo();
|
|
||||||
ChangeFilePathWithoutUndo(new_path);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::FileHome() {
|
|
||||||
ChangeFilePath(QDir::homePath());
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::ChangeFilePath(const QString& new_path) {
|
|
||||||
QFileInfo info(new_path);
|
|
||||||
if (!info.exists() || !info.isDir())
|
|
||||||
return;
|
|
||||||
|
|
||||||
QString old_path(file_model_->rootPath());
|
|
||||||
|
|
||||||
ChangeFilePathWithoutUndo(new_path);
|
|
||||||
file_undo_stack_->push(new QUndoCommand(old_path));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::ChangeFilePathWithoutUndo(const QString& new_path) {
|
|
||||||
ui_.file_view->setRootIndex(file_model_->setRootPath(new_path));
|
|
||||||
ui_.file_path->setText(new_path);
|
|
||||||
|
|
||||||
QDir dir(new_path);
|
|
||||||
ui_.file_up->setEnabled(dir.cdUp());
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::FileClicked(const QModelIndex& index) {
|
|
||||||
if (file_model_->isDir(index))
|
|
||||||
ChangeFilePath(file_model_->filePath(index));
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::FileDoubleClicked(const QModelIndex& index) {
|
|
||||||
if (file_model_->isDir(index))
|
|
||||||
return;
|
|
||||||
|
|
||||||
Song song;
|
Song song;
|
||||||
song.InitFromFile(file_model_->filePath(index), -1);
|
song.InitFromFile(path, -1);
|
||||||
|
|
||||||
if (!song.is_valid())
|
if (!song.is_valid())
|
||||||
return;
|
return;
|
||||||
|
@ -347,3 +285,9 @@ void MainWindow::ClearLibraryFilter() {
|
||||||
ui_.library_filter->clear();
|
ui_.library_filter->clear();
|
||||||
ui_.library_filter->setFocus();
|
ui_.library_filter->setFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::FilePathChanged(const QString& path) {
|
||||||
|
QSettings settings;
|
||||||
|
settings.beginGroup(kSettingsGroup);
|
||||||
|
settings.setValue("file_path", path);
|
||||||
|
}
|
||||||
|
|
|
@ -11,9 +11,7 @@ class Player;
|
||||||
class Library;
|
class Library;
|
||||||
class LibraryConfig;
|
class LibraryConfig;
|
||||||
|
|
||||||
class QFileSystemModel;
|
|
||||||
class QSortFilterProxyModel;
|
class QSortFilterProxyModel;
|
||||||
class QUndoStack;
|
|
||||||
class SystemTrayIcon;
|
class SystemTrayIcon;
|
||||||
|
|
||||||
class MainWindow : public QMainWindow {
|
class MainWindow : public QMainWindow {
|
||||||
|
@ -30,13 +28,8 @@ class MainWindow : public QMainWindow {
|
||||||
void closeEvent(QCloseEvent* event);
|
void closeEvent(QCloseEvent* event);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void FileUp();
|
void PlayFile(const QString& path);
|
||||||
void FileBack();
|
void FilePathChanged(const QString& path);
|
||||||
void FileForward();
|
|
||||||
void FileHome();
|
|
||||||
void ChangeFilePath(const QString& new_path);
|
|
||||||
void FileClicked(const QModelIndex& index);
|
|
||||||
void FileDoubleClicked(const QModelIndex& index);
|
|
||||||
|
|
||||||
void ReportError(const QString& message);
|
void ReportError(const QString& message);
|
||||||
void MediaStopped();
|
void MediaStopped();
|
||||||
|
@ -53,7 +46,6 @@ class MainWindow : public QMainWindow {
|
||||||
void TrayClicked(QSystemTrayIcon::ActivationReason reason);
|
void TrayClicked(QSystemTrayIcon::ActivationReason reason);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ChangeFilePathWithoutUndo(const QString& new_path);
|
|
||||||
void SaveGeometry();
|
void SaveGeometry();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -68,9 +60,6 @@ class MainWindow : public QMainWindow {
|
||||||
|
|
||||||
QSortFilterProxyModel* library_sort_model_;
|
QSortFilterProxyModel* library_sort_model_;
|
||||||
|
|
||||||
QFileSystemModel* file_model_;
|
|
||||||
QUndoStack* file_undo_stack_;
|
|
||||||
|
|
||||||
SystemTrayIcon* tray_icon_;
|
SystemTrayIcon* tray_icon_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<string>Tangerine</string>
|
<string>Tangerine</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralWidget">
|
<widget class="QWidget" name="centralWidget">
|
||||||
|
@ -229,7 +229,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="library_filter_clear">
|
<widget class="QToolButton" name="library_filter_clear">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/clear.png</normaloff>:/clear.png</iconset>
|
<normaloff>:/clear.png</normaloff>:/clear.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="iconSize">
|
<property name="iconSize">
|
||||||
|
@ -249,7 +249,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="library_options">
|
<widget class="QToolButton" name="library_options">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/configure.png</normaloff>:/configure.png</iconset>
|
<normaloff>:/configure.png</normaloff>:/configure.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="iconSize">
|
<property name="iconSize">
|
||||||
|
@ -324,83 +324,14 @@
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<widget class="FileView" name="file_view" native="true"/>
|
||||||
<property name="spacing">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="file_back">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset>
|
|
||||||
<normaloff>:/go-previous.png</normaloff>:/go-previous.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="file_forward">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset>
|
|
||||||
<normaloff>:/go-next.png</normaloff>:/go-next.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="file_up">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset>
|
|
||||||
<normaloff>:/go-up.png</normaloff>:/go-up.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="file_home">
|
|
||||||
<property name="text">
|
|
||||||
<string>...</string>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset>
|
|
||||||
<normaloff>:/go-home.png</normaloff>:/go-home.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="autoRaise">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="file_path"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QListView" name="file_view"/>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<action name="action_previous_track">
|
<action name="action_previous_track">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/media-skip-backward.png</normaloff>:/media-skip-backward.png</iconset>
|
<normaloff>:/media-skip-backward.png</normaloff>:/media-skip-backward.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -412,7 +343,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="action_play_pause">
|
<action name="action_play_pause">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/media-playback-start.png</normaloff>:/media-playback-start.png</iconset>
|
<normaloff>:/media-playback-start.png</normaloff>:/media-playback-start.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -427,7 +358,7 @@
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/media-playback-stop.png</normaloff>:/media-playback-stop.png</iconset>
|
<normaloff>:/media-playback-stop.png</normaloff>:/media-playback-stop.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -439,7 +370,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="action_next_track">
|
<action name="action_next_track">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/media-skip-forward.png</normaloff>:/media-skip-forward.png</iconset>
|
<normaloff>:/media-skip-forward.png</normaloff>:/media-skip-forward.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -451,7 +382,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="action_quit">
|
<action name="action_quit">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/exit.png</normaloff>:/exit.png</iconset>
|
<normaloff>:/exit.png</normaloff>:/exit.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -463,7 +394,7 @@
|
||||||
</action>
|
</action>
|
||||||
<action name="action_stop_after_this_track">
|
<action name="action_stop_after_this_track">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset>
|
<iconset resource="../data/data.qrc">
|
||||||
<normaloff>:/media-playback-stop.png</normaloff>:/media-playback-stop.png</iconset>
|
<normaloff>:/media-playback-stop.png</normaloff>:/media-playback-stop.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -548,7 +479,15 @@
|
||||||
<extends>QTreeView</extends>
|
<extends>QTreeView</extends>
|
||||||
<header>libraryview.h</header>
|
<header>libraryview.h</header>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>FileView</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>fileview.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources/>
|
<resources>
|
||||||
|
<include location="../data/data.qrc"/>
|
||||||
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -30,7 +30,8 @@ SOURCES += main.cpp \
|
||||||
libraryitem.cpp \
|
libraryitem.cpp \
|
||||||
libraryconfig.cpp \
|
libraryconfig.cpp \
|
||||||
systemtrayicon.cpp \
|
systemtrayicon.cpp \
|
||||||
libraryquery.cpp
|
libraryquery.cpp \
|
||||||
|
fileview.cpp
|
||||||
HEADERS += mainwindow.h \
|
HEADERS += mainwindow.h \
|
||||||
player.h \
|
player.h \
|
||||||
library.h \
|
library.h \
|
||||||
|
@ -57,9 +58,11 @@ HEADERS += mainwindow.h \
|
||||||
libraryitem.h \
|
libraryitem.h \
|
||||||
libraryconfig.h \
|
libraryconfig.h \
|
||||||
systemtrayicon.h \
|
systemtrayicon.h \
|
||||||
libraryquery.h
|
libraryquery.h \
|
||||||
|
fileview.h
|
||||||
FORMS += mainwindow.ui \
|
FORMS += mainwindow.ui \
|
||||||
libraryconfig.ui
|
libraryconfig.ui \
|
||||||
|
fileview.ui
|
||||||
RESOURCES += ../data/data.qrc
|
RESOURCES += ../data/data.qrc
|
||||||
OTHER_FILES += ../data/schema.sql \
|
OTHER_FILES += ../data/schema.sql \
|
||||||
../data/mainwindow.css
|
../data/mainwindow.css
|
||||||
|
|
Loading…
Reference in New Issue