better 'up' button
authortmarki <tmarki@gmail.com>
Wed, 11 Aug 2010 17:36:28 +0000 (19:36 +0200)
committertmarki <tmarki@gmail.com>
Wed, 11 Aug 2010 17:36:28 +0000 (19:36 +0200)
bugs.txt
mainwindow.cpp
playlistmanager.cpp
playlistmanager.h

index b772738..cd91f3f 100644 (file)
--- a/bugs.txt
+++ b/bugs.txt
@@ -1,3 +1,6 @@
+- remember folder position when adding songs (takes time as adding a song and going one folder up for next song jumps to top of folder)
+- when saving a playlist, the default path seems invalid, so playlist doesn's save, and no error given
+- for some reasom, one folder shows 0 files, but filled with mp3 files (?)
 
 Fixed:
 + context menu event outside of musicTable causes crash
index 78d23b0..6024d17 100644 (file)
@@ -786,8 +786,17 @@ void MainWindow::setRowFromItem (int row, const PlaylistItem& item)
 
 void MainWindow::buttonUp()
 {
-    qDebug () << "Presses up on " << sender()->parent()->property("row");
-    plman.moveItemUp(sender()->parent()->property("row").toInt());
+    int i = sender()->parent()->property("row").toInt();
+    qDebug () << "Presses up on " << i;
+    if (i)
+    {
+        plman.moveItemUp(i);
+        setRowFromItem (i, plman.getItem(i));
+        setRowFromItem (i - 1, plman.getItem(i - 1));
+        musicTable->cellWidget(i, 3)->setProperty("row", i);
+        musicTable->cellWidget(i - 1, 3)->setProperty("row", i - 1);
+        musicTable->selectRow(i - 1);
+    }
 }
 
 void MainWindow::itemUpdated(int index)
index 0b43077..c70ae1d 100644 (file)
@@ -321,13 +321,15 @@ bool PlaylistManager::fileSupported (const QString& fname) const
     return false;
 }
 
-void PlaylistManager::moveItemUp (int i)
+bool PlaylistManager::moveItemUp (int i)
 {
     if (i)
     {
         PlaylistItem tmp = items[i - 1];
         items[i - 1] = items[i];
         items[i] = tmp;
-        emit playlistChanged(i - 1);
+        return true;
+//        emit playlistChanged(i - 1);
     }
+    return false;
 }
index 407e38b..df87b4b 100644 (file)
@@ -34,12 +34,12 @@ public:
     int indexOf (const Phonon::MediaSource& s) const;
     const Phonon::MediaSource& at (int i) { return items[i].source; }
     const PlaylistItem& getItem (int i) const { return items[i]; }
+    bool moveItemUp (int i);
 public slots:
     void savePlaylist(const QString& filename);
     void loadPlaylist(const QString& filename);
     void clearPlaylist();
     void addPlaylist (const QString& filename);
-    void moveItemUp (int i);
 signals:
     void playlistChanged (int from);
     void itemUpdated (int index);