summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filestreemodel.cpp15
-rw-r--r--filestreemodel.h1
-rw-r--r--filestreewidget.cpp8
-rw-r--r--filestreewidget.h1
-rw-r--r--shemov.cpp3
-rw-r--r--shemov.h1
6 files changed, 27 insertions, 2 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index 6d1be0f..d015e47 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -30,6 +30,8 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
mUpdateDvdQuery->prepare("UPDATE files SET idvd = :dvd WHERE ifiles_id = :id");
mUpdateQualityQuery = new QSqlQuery(mDb);
mUpdateQualityQuery->prepare("UPDATE files SET siquality = :quality WHERE ifiles_id = :id");
+ mUpdatePartNoQuery = new QSqlQuery(mDb);
+ mUpdatePartNoQuery->prepare("UPDATE files SET sifileno = :partno WHERE ifiles_id = :id");
mInsertFileQuery = new QSqlQuery(mDb);
mInsertFileQuery->prepare("INSERT INTO files(iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality) VALUES(:seriespartid, :fname, :md5, :size, :dvd, :type, :fileno, :quality)");
mFilesQuery = new QSqlQuery(mDb);
@@ -60,10 +62,11 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
FilesTreeModel::~FilesTreeModel(){
delete mUpdateDvdQuery;
delete mUpdateQualityQuery;
+ delete mUpdatePartNoQuery;
delete mInsertFileQuery;
delete mFilesQuery;
delete mDeleteFileQuery;
- mDb = QSqlDatabase();
+ //mDb = QSqlDatabase();
}
const QString FilesTreeModel::modeName(int mode) const{
@@ -249,6 +252,14 @@ bool FilesTreeModel::setData(const QModelIndex &index, const QVariant &value, in
return true;
}
}
+ if(index.column() == PartNo){
+ mUpdatePartNoQuery->bindValue(":id", index.data(FilesIdRole));
+ mUpdatePartNoQuery->bindValue(":partno", value);
+ if(mUpdatePartNoQuery->exec()){
+ item->setData(PartNo, value);
+ return true;
+ }
+ }
}
return false;
}
@@ -261,7 +272,7 @@ Qt::ItemFlags FilesTreeModel::flags(const QModelIndex &index) const{
return Qt::ItemIsEnabled;
}
Qt::ItemFlags retval = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
- if(index.column() == DvdNo || index.column() == Quality){
+ if(index.column() == DvdNo || index.column() == Quality || index.column() == PartNo){
return retval | Qt::ItemIsEditable;
}
return retval;
diff --git a/filestreemodel.h b/filestreemodel.h
index 3646e43..da50d84 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -62,6 +62,7 @@ class FilesTreeModel : public SmTreeModel {
QSqlDatabase mDb;
QSqlQuery *mUpdateDvdQuery;
QSqlQuery *mUpdateQualityQuery;
+ QSqlQuery *mUpdatePartNoQuery;
QSqlQuery *mInsertFileQuery;
QSqlQuery *mFilesQuery;
QSqlQuery *mDeleteFileQuery;
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index 2b28c93..4542ea8 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -200,6 +200,14 @@ void FilesTreeWidget::editQuality(){
}
}
+void FilesTreeWidget::editPart(){
+ QModelIndex current = mView->selectionModel()->currentIndex();
+ if(current.isValid()){
+ QModelIndex qualityIndex = mView->model()->index(current.row(), FilesTreeModel::PartNo, current.parent());
+ mView->edit(qualityIndex);
+ }
+}
+
void FilesTreeWidget::fileSelectionChanged(const QModelIndex &current, const QModelIndex &previous){
Q_UNUSED(previous);
int seriesPartId = current.data(FilesTreeModel::SeriesPartIdRole).toInt();
diff --git a/filestreewidget.h b/filestreewidget.h
index eddf344..86686ca 100644
--- a/filestreewidget.h
+++ b/filestreewidget.h
@@ -37,6 +37,7 @@ class FilesTreeWidget : public QWidget {
void moveToDirectory();
void fileProperties();
void editQuality();
+ void editPart();
private slots:
void fileSelectionChanged(const QModelIndex &current, const QModelIndex &previous);
diff --git a/shemov.cpp b/shemov.cpp
index 509848e..a37ec83 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -378,6 +378,8 @@ void SheMov::createActions(){
connect(mSetDvdNoA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(setDvdNo()));
mSetQualityA = new QAction(tr("Set quality"), this);
connect(mSetQualityA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(editQuality()));
+ mSetPartNoA = new QAction(tr("Set Part no"), this);
+ connect(mSetPartNoA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(editPart()));
mDeleteFilesFromTreeA = new QAction(tr("Delete file(s)..."), this);
connect(mDeleteFilesFromTreeA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(removeFiles()));
mFilePropertiesA = new QAction(tr("Properties..."), this);
@@ -503,6 +505,7 @@ void SheMov::createMenus(){
mATree->filesWidget()->filesTree()->addAction(sep7);
mATree->filesWidget()->filesTree()->addAction(mSetDvdNoA);
mATree->filesWidget()->filesTree()->addAction(mSetQualityA);
+ mATree->filesWidget()->filesTree()->addAction(mSetPartNoA);
QAction *sep8 = new QAction(this);
sep8->setSeparator(true);
mATree->filesWidget()->filesTree()->addAction(sep8);
diff --git a/shemov.h b/shemov.h
index 5b3d6c7..3d52c7e 100644
--- a/shemov.h
+++ b/shemov.h
@@ -105,6 +105,7 @@ class SheMov : public QMainWindow {
QAction *mMoveFilesA;
QAction *mSetDvdNoA;
QAction *mSetQualityA;
+ QAction *mSetPartNoA;
QAction *mDeleteFilesFromTreeA;
QAction *mFilePropertiesA;