diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-11-19 14:53:51 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-11-19 14:53:51 +0000 |
| commit | 68affedb5b13184a98d2704c5a43e7c789d41688 (patch) | |
| tree | 28d9157ccc18594e81310b05d826ad2f45bc1b8f | |
| parent | 18fbe1b3f110066f663e1dd10793b94a529b4b2b (diff) | |
| download | qmmp-68affedb5b13184a98d2704c5a43e7c789d41688.tar.gz qmmp-68affedb5b13184a98d2704c5a43e7c789d41688.tar.bz2 qmmp-68affedb5b13184a98d2704c5a43e7c789d41688.zip | |
plalist browser: added sort buttons
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1385 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmpui/playlistmanager.cpp | 11 | ||||
| -rw-r--r-- | src/qmmpui/playlistmanager.h | 2 | ||||
| -rw-r--r-- | src/ui/forms/playlistbrowser.ui | 18 | ||||
| -rw-r--r-- | src/ui/playlistbrowser.cpp | 18 | ||||
| -rw-r--r-- | src/ui/playlistbrowser.h | 2 |
5 files changed, 49 insertions, 2 deletions
diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index 4af84d1b4..a24d82a24 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -146,6 +146,17 @@ void PlayListManager::removePlayList(PlayListModel *model) emit playListsChanged(); } +void PlayListManager::move(int i, int j) +{ + if(i < 0 || j < 0) + return; + if(i < m_models.count() && j < m_models.count()) + { + m_models.move(i,j); + emit playListsChanged(); + } +} + void PlayListManager::setRepeatableList(bool r) { if(m_repeatable == r) diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h index 630ce5fa7..db887acc5 100644 --- a/src/qmmpui/playlistmanager.h +++ b/src/qmmpui/playlistmanager.h @@ -116,6 +116,7 @@ public slots: void activatePlayList(PlayListModel *model); PlayListModel *createPlayList(const QString &name = QString()); void removePlayList(PlayListModel *model); + void move(int i, int j); void setRepeatableList(bool r); void setShuffle(bool s); /*! @@ -191,6 +192,7 @@ public slots: */ void clearInvalidItems(); + private: void readPlayLists(); void writePlayLists(); diff --git a/src/ui/forms/playlistbrowser.ui b/src/ui/forms/playlistbrowser.ui index 65af8c73f..200a6d935 100644 --- a/src/ui/forms/playlistbrowser.ui +++ b/src/ui/forms/playlistbrowser.ui @@ -29,7 +29,7 @@ <property name="spacing"> <number>6</number> </property> - <item row="0" column="0" colspan="3"> + <item row="0" column="0" colspan="5"> <widget class="QListWidget" name="listWidget"> <property name="selectionMode"> <enum>QAbstractItemView::ExtendedSelection</enum> @@ -53,7 +53,7 @@ </property> </widget> </item> - <item row="1" column="2"> + <item row="1" column="4"> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -63,6 +63,20 @@ </property> </widget> </item> + <item row="1" column="2"> + <widget class="QToolButton" name="downButton"> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> + <item row="1" column="3"> + <widget class="QToolButton" name="upButton"> + <property name="text"> + <string>...</string> + </property> + </widget> + </item> </layout> </widget> <resources/> diff --git a/src/ui/playlistbrowser.cpp b/src/ui/playlistbrowser.cpp index f4844dadf..27cebca12 100644 --- a/src/ui/playlistbrowser.cpp +++ b/src/ui/playlistbrowser.cpp @@ -19,6 +19,8 @@ ***************************************************************************/ #include <QAction> +#include <QApplication> +#include <QStyle> #include <qmmpui/playlistmanager.h> #include "playlistbrowser.h" @@ -39,6 +41,8 @@ PlayListBrowser::PlayListBrowser(PlayListManager *manager, QWidget *parent) : QD ui.listWidget->setContextMenuPolicy(Qt::ActionsContextMenu); ui.listWidget->addAction(renameAct); ui.listWidget->addAction(removeAct); + ui.downButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowDown)); + ui.upButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_ArrowUp)); } PlayListBrowser::~PlayListBrowser() @@ -84,3 +88,17 @@ void PlayListBrowser::on_deleteButton_clicked() foreach(PlayListModel *model, models) m_pl_manager->removePlayList(model); } + +void PlayListBrowser::on_downButton_clicked() +{ + int pos = m_pl_manager->indexOf(m_pl_manager->selectedPlayList()); + if(pos < m_pl_manager->count() - 1) + m_pl_manager->move(pos, pos + 1); +} + +void PlayListBrowser::on_upButton_clicked() +{ + int pos = m_pl_manager->indexOf(m_pl_manager->selectedPlayList()); + if(pos > 0) + m_pl_manager->move(pos, pos - 1); +} diff --git a/src/ui/playlistbrowser.h b/src/ui/playlistbrowser.h index c9ac23c77..c3eee00ec 100644 --- a/src/ui/playlistbrowser.h +++ b/src/ui/playlistbrowser.h @@ -42,6 +42,8 @@ private slots: void on_listWidget_itemChanged(QListWidgetItem *item); void rename(); void on_deleteButton_clicked(); + void on_downButton_clicked(); + void on_upButton_clicked(); private: Ui::PlayListBrowser ui; |
