]> Some of my projects - localmylist.git/commitdiff
Add option to rename files to context menu.
authorAPTX <marek321@gmail.com>
Tue, 3 Jul 2012 00:53:02 +0000 (02:53 +0200)
committerAPTX <marek321@gmail.com>
Tue, 3 Jul 2012 00:53:02 +0000 (02:53 +0200)
management-gui/mainwindow.cpp
management-gui/mainwindow.h
management-gui/mylistview.cpp
management-gui/mylistview.h

index 83ea3f8104f47878de6d41b278a45092fcff2ab6..acb0528f44d026e6e9394f72ee054e72a2c3c436 100644 (file)
@@ -42,9 +42,7 @@ MainWindow::MainWindow(QWidget *parent) :
        MyList::instance()->database()->connect();
 
        myListModel = new MyListModel(this);
-       myListFilterModel = new QSortFilterProxyModel();
-       myListFilterModel->setSourceModel(myListModel);
-       ui->myListView->setModel(myListModel);
+       ui->myListView->setMyListModel(myListModel);
 
        ui->myListView->header()->setResizeMode(0, QHeaderView::Stretch);
        ui->myListView->header()->setStretchLastSection(false);
@@ -211,6 +209,61 @@ void MainWindow::on_myListView_openFileRequested(const QModelIndex &index)
 
 }
 
+void MainWindow::on_myListView_renameFilesRequested(const QModelIndex &index)
+{
+       MyListModel::NodeType type = myListModel->type(index);
+       int id = myListModel->id(index);
+
+       if (!id)
+               return;
+
+       QString path;
+       QSqlQuery q(MyList::instance()->database()->connection());
+
+       QChar typeLetter;
+       if (type == MyListModel::Anime)
+       {
+               q.prepare(
+                       "UPDATE file_location fl SET renamed = NULL, failed_rename = false "
+                       "       FROM file f "
+                       "       WHERE f.fid = fl.fid AND f.aid = :aid");
+               q.bindValue(":aid", id);
+
+               typeLetter = 'a';
+       }
+       else if (type == MyListModel::Episode)
+       {
+               q.prepare(
+                       "UPDATE file_location fl SET renamed = NULL, failed_rename = false "
+                       "       FROM file f "
+                       "       WHERE f.fid = fl.fid AND f.eid = :eid");
+               q.bindValue(":eid", id);
+
+               typeLetter = 'e';
+       }
+       else if (type == MyListModel::File)
+       {
+               q.prepare(
+                       "UPDATE file_location fl SET renamed = NULL, failed_rename = false "
+                       "       WHERE fl.fid = :fid");
+               q.bindValue(":fid", id);
+
+               typeLetter = 'f';
+       }
+       else
+       {
+               return;
+       }
+
+       if (!q.exec())
+       {
+               qDebug() << q.lastError();
+               return;
+       }
+
+       ui->statusBar->showMessage(tr("Files for %1%2 scheduled for rename").arg(typeLetter).arg(id));
+}
+
 void MainWindow::on_actionStartUDPCLient_triggered()
 {
        MyList::instance()->setupUdpClient();
index b83b375c7d8852f11d1fcc7b7a7ce2b07aab070f..65db390a6e923fe3698f820d0082bdeef8c2fc21 100644 (file)
@@ -45,6 +45,7 @@ private slots:
        void on_actionClearMyListData_triggered();
        void on_actionClearAnimeTitleData_triggered();
        void on_myListView_openFileRequested(const QModelIndex &index);
+       void on_myListView_renameFilesRequested(const QModelIndex &index);
        void on_actionStartUDPCLient_triggered();
        void on_actionRenameFiles_triggered();
        void on_actionStartRenameHandler_triggered();
index 5c647b61e4e777fa8600227703610a598653a184..059541d2d7ff87065228cdd0a53746de542a87a7 100644 (file)
@@ -22,6 +22,8 @@ MyListView::MyListView(QWidget *parent) :
        connect(markWatchedAction, SIGNAL(triggered()), this, SLOT(markWatched()));
        aniDBLinkAction = new QAction(tr("Open AniDB Page"), this);
        connect(aniDBLinkAction, SIGNAL(triggered()), this, SLOT(openAnidbPage()));
+       renameFilesAction = new QAction(tr("Rename Files Related to Entry"), this);
+       connect(renameFilesAction, SIGNAL(triggered()), this, SLOT(requestFileRename()));
        renameTestAction = new QAction(tr("Use For Rename Testing"), this);
        connect(renameTestAction, SIGNAL(triggered()), this, SLOT(renameTest()));
 }
@@ -49,19 +51,22 @@ void MyListView::showCustomContextMenu(const QPoint &pos)
                case MyListModel::Anime:
                        aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('a').arg(id));
                        actions << aniDBLinkAction
-                                       << openNextAction;
+                                       << openNextAction
+                                       << renameFilesAction;
                break;
                case MyListModel::Episode:
                        aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('e').arg(id));
                        actions << aniDBLinkAction
-                                       << openAction;
+                                       << openAction
+                                       << renameFilesAction;
                break;
                case MyListModel::File:
                        aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('f').arg(id));
                        actions << aniDBLinkAction
                                        << openAction
                                        << markWatchedAction
-                                       << renameTestAction;
+                                       << renameTestAction
+                                       << renameFilesAction;
                break;
        }
 
@@ -107,6 +112,11 @@ void MyListView::openAnidbPage()
        }
 }
 
+void MyListView::requestFileRename()
+{
+       emit renameFilesRequested(customContextMenuIndex);
+}
+
 void MyListView::renameTest()
 {
        int id = myListModel()->id(customContextMenuIndex);
index dd85f9205b291fff40fe840d4cfece3c2383f07e..37379798153f9802e13539bb3c06932356979f21 100644 (file)
@@ -16,6 +16,7 @@ public:
 
 signals:
        void openFileRequested(const QModelIndex &index);
+       void renameFilesRequested(const QModelIndex &index);
        void renameTest(int fid);
 
 private slots:
@@ -24,6 +25,7 @@ private slots:
        void requestOpenFile();
        void markWatched();
        void openAnidbPage();
+       void requestFileRename();
        void renameTest();
 
 private:
@@ -35,6 +37,7 @@ private:
        QAction *markWatchedAction;
        QAction *aniDBLinkAction;
        QAction *renameTestAction;
+       QAction *renameFilesAction;
 };
 
 #endif // MYLISTVIEW_H