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);
}
+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();
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();
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()));
}
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;
}
}
}
+void MyListView::requestFileRename()
+{
+ emit renameFilesRequested(customContextMenuIndex);
+}
+
void MyListView::renameTest()
{
int id = myListModel()->id(customContextMenuIndex);
signals:
void openFileRequested(const QModelIndex &index);
+ void renameFilesRequested(const QModelIndex &index);
void renameTest(int fid);
private slots:
void requestOpenFile();
void markWatched();
void openAnidbPage();
+ void requestFileRename();
void renameTest();
private:
QAction *markWatchedAction;
QAction *aniDBLinkAction;
QAction *renameTestAction;
+ QAction *renameFilesAction;
};
#endif // MYLISTVIEW_H