summaryrefslogtreecommitdiffstats
path: root/pictureswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureswidget.cpp')
-rw-r--r--pictureswidget.cpp31
1 files changed, 21 insertions, 10 deletions
diff --git a/pictureswidget.cpp b/pictureswidget.cpp
index b420309..95e8a60 100644
--- a/pictureswidget.cpp
+++ b/pictureswidget.cpp
@@ -35,7 +35,6 @@ PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent), mWindowTitleB
connect(mMappingTree, SIGNAL(mappingChanged(int)), mPictureView, SLOT(mappingChanged(int)));
//change window title when mapping selection changes
connect(mMappingTree, SIGNAL(mappingChanged(int)), this, SLOT(constructWindowTitle()));
- connect(mPictureView, SIGNAL(newFileMappigs()), this, SLOT(setMappingColors()));
connect(mPictureView, SIGNAL(editPicsMappings()), this, SLOT(editMappings()));
connect(mPictureView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(showInPicViewer(QModelIndex)));
splitter->addWidget(mMappingTree);
@@ -58,11 +57,6 @@ void PicturesWidget::showPicViewer(bool toggled){
mPicViewer->setVisible(toggled);
}
-void PicturesWidget::setMappingColors(){
- MappingTreeModel *mtm = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree"));
- mtm->setSelectedMappings(mPictureView->fileMappings());
-}
-
void PicturesWidget::editMappings(){
QList<int> currentMappings = mPictureView->fileMappings();
mEditDialog->editWidget()->setMappings(currentMappings);
@@ -106,12 +100,13 @@ void PicturesWidget::showInPicViewer(const QModelIndex &idx){
}
PictureView::PictureView(QWidget *parent) : QTreeView(parent) {
- //setup model
+ //setup models
mModel = new PicFilesModel(QStringList() << tr("Filename") << tr("SizeNum") << tr("Format") << tr("Full Path") << tr("Id") << tr("Added") << tr("Md5Sum") << tr("Size"), this);
mProxy = new QSortFilterProxyModel(this);
mProxy->setSourceModel(mModel);
setModel(mProxy);
- connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(setFileMappings()));
+ connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(selectedFilesChanged()));
+ mMappingTreeModel = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree"));
//read settings
QSettings s;
@@ -237,17 +232,33 @@ void PictureView::contextMenuEvent(QContextMenuEvent *e){
ctxMenu.exec(e->globalPos());
}
-void PictureView::setFileMappings(){
+void PictureView::selectedFilesChanged(){
QModelIndexList sel = selectionModel()->selectedRows();
if(sel.isEmpty()){
return;
}
+ //file mappings
QList<QVariant> fileIds;
+ qint64 selSize = 0;
foreach(QModelIndex i, sel){
fileIds << i.data(PicFilesModel::IdRole);
+ selSize += i.data(PicFilesModel::SizeRole).toInt();
}
mFilesMappings = mModel->mappingIds(fileIds);
- emit newFileMappigs();
+ QStringList mappings;
+ foreach(int m, mFilesMappings){
+ MappingData mapping = mMappingTreeModel->mappingDataFromId(m);
+ if(!mappings.contains(mapping.name)){
+ mappings << mapping.name;
+ }
+ }
+ qSort(mappings);
+ QString mappingMsg = QString(tr("Mappings: %1")).arg(mappings.join(","));
+ emit newMappings(mappingMsg);
+
+ //selected items
+ emit numSelected(sel.size());
+ emit selectedSize(selSize);
}
PicFilesModel::PicFilesModel(const QStringList &headers, QObject *parent) : SmTreeModel(headers, parent) {