diff options
author | Arno <am@disconnect.de> | 2012-02-25 16:52:48 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-02-25 16:52:48 +0100 |
commit | 67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4 (patch) | |
tree | 50282f53691db30c8fd2999c299d24ef859b11f3 /newpicsdialog.cpp | |
parent | dce686c895fce27cce1d8bf0247c692bd790f93a (diff) | |
download | SheMov-67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4.tar.gz SheMov-67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4.tar.bz2 SheMov-67ddb23a59cb56bd917db2d9c3c7bc62c96e53b4.zip |
Implemented mapping widget for NewPicsDialog
Make it possible to add mappings to new pictures. This actually was a
tough one. Maybe I shouldn't drink and code.
Next: make NewPicsDialog actually do something.
Diffstat (limited to 'newpicsdialog.cpp')
-rw-r--r-- | newpicsdialog.cpp | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp index 673865b..4395399 100644 --- a/newpicsdialog.cpp +++ b/newpicsdialog.cpp @@ -21,6 +21,8 @@ #include "newpicsdialog.h" #include "smtreeitem.h" #include "helper.h" +#include "mappingtreewidget.h" +#include "mappingtreemodel.h" NewPicsDialog::NewPicsDialog(QWidget *parent) : QWidget(parent) { //files widget @@ -46,11 +48,34 @@ NewPicsDialog::NewPicsDialog(QWidget *parent) : QWidget(parent) { filesLayout->addLayout(fileButtonLayout); mFilesWidget->setLayout(filesLayout); + //mapping widget + mMappingWidget = new QWidget; + mMappingTreeWidget = new MappingTreeWidget; + mResultView = new MappingTreeResultView; + mResultModel = new MappingTreeResultModel(QStringList() << tr("Name"), this); + mResultView->setModel(mResultModel); + mResultView->setAlternatingRowColors(true); + mAddMapping = new QPushButton(tr(">>")); + connect(mAddMapping, SIGNAL(clicked()), this, SLOT(addMapping())); + mRemoveMapping = new QPushButton(tr("<<")); + connect(mRemoveMapping, SIGNAL(clicked()), this, SLOT(removeMapping())); + QVBoxLayout *buttonLayout = new QVBoxLayout; + buttonLayout->addStretch(); + buttonLayout->addWidget(mAddMapping); + buttonLayout->addWidget(mRemoveMapping); + buttonLayout->addStretch(); + QHBoxLayout *mappingLayout = new QHBoxLayout; + mappingLayout->addWidget(mMappingTreeWidget); + mappingLayout->addLayout(buttonLayout); + mappingLayout->addWidget(mResultView); + mMappingWidget->setLayout(mappingLayout); + //put it together setMinimumWidth(600); setMinimumHeight(400); mTab = new QTabWidget; mTab->addTab(mFilesWidget, tr("Files")); + mTab->addTab(mMappingWidget, tr("Mappings")); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(mTab); setLayout(mainLayout); @@ -91,8 +116,28 @@ void NewPicsDialog::removeFiles(){ } } +void NewPicsDialog::addMapping(){ + MappingData selected = mMappingTreeWidget->selectedItem(); + if(selected.id == -1){ + return; + } + mResultModel->addItem(selected); + mResultView->expandAll(); +} + +void NewPicsDialog::removeMapping(){ + QModelIndexList sel = mResultView->selectionModel()->selectedRows(); + if(sel.isEmpty()){ + return; + } + QModelIndex firstIdx = sel.first(); + mResultModel->removeRows(firstIdx.row(), 1, firstIdx.parent()); +} + +MappingTreeResultView::MappingTreeResultView(QWidget *parent) : QTreeView(parent) { } + NewPicFilesModel::NewPicFilesModel(const QStringList &header, QObject *parent) : SmTreeModel(header, parent){ - mDb = QSqlDatabase::database("mDb"); + mDb = QSqlDatabase::database("treedb"); mMd5Query = new QSqlQuery(mDb); mMd5Query->prepare("SELECT COUNT(*) FROM pics WHERE cmd5sum = :md5"); } |