diff options
Diffstat (limited to 'pictureswidget.cpp')
-rw-r--r-- | pictureswidget.cpp | 90 |
1 files changed, 58 insertions, 32 deletions
diff --git a/pictureswidget.cpp b/pictureswidget.cpp index 7cbf288..49a86ec 100644 --- a/pictureswidget.cpp +++ b/pictureswidget.cpp @@ -9,54 +9,82 @@ #include <QHBoxLayout> #include <QSqlQuery> #include <QSortFilterProxyModel> -#include <QLocale> -#include <QHideEvent> -#include <QHoverEvent> -#include <QEvent> -#include <QHeaderView> -#include <QSettings> #include <QMessageBox> -#include <QMenu> -#include <QFile> #include <QSettings> -#include <QActionGroup> -#include <QHash> -#include <QApplication> +#include <QAction> +#include <QToolBar> #include "pictureswidget.h" #include "picturelistview.h" -#include "picfilesmodel.h" #include "mappingtreewidget.h" -#include "smtreeitem.h" -#include "helper.h" -#include "hoverwindow.h" -#include "mappingtreemodel.h" #include "delegates.h" #include "smglobals.h" +#include "helper.h" PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent), mWindowTitleBase(tr("Picture archive")), mPicViewerA(0) { - //setup gui - QSplitter *splitter = new QSplitter; mMappingTree = new MappingTreeWidget; mPictureListView = new PictureListView; mPictureListView->setItemDelegateForColumn(PicFilesModel::Size, new SizeDelegate(this)); - connect(mMappingTree, SIGNAL(mappingChanged(int)), mPictureListView, SLOT(mappingChanged(int))); - //change window title when mapping selection changes - connect(mMappingTree, SIGNAL(mappingChanged(int)), this, SLOT(constructWindowTitle())); - connect(mPictureListView, SIGNAL(editPicsMappings()), this, SLOT(editMappings())); - connect(mPictureListView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(showInPicViewer(QModelIndex))); - connect(this, SIGNAL(editMappingsDone()), mPictureListView, SLOT(refresh())); - splitter->addWidget(mMappingTree); - splitter->addWidget(mPictureListView); - splitter->setStretchFactor(0, 1); - splitter->setStretchFactor(1, 3); + connect(mMappingTree, &MappingTreeWidget::mappingChanged, mPictureListView, &PictureListView::mappingChanged); + connect(mMappingTree, &MappingTreeWidget::mappingChanged, this, &PicturesWidget::constructWindowTitle); + connect(mPictureListView, &PictureListView::doubleClicked, this, &PicturesWidget::showInPicViewer); + connect(this, &PicturesWidget::editMappingsDone, mPictureListView, &PictureListView::refresh); //misc mEditDialog = new MappingEditDialog(this); mPicViewer = SmGlobals::instance()->pictureViewer(); mPictureListView->setPV(mPicViewer); - //put it all togehter + setupWidget(); +} + +void PicturesWidget::setupWidget(){ + QToolBar *toolBar = new QToolBar; + QAction *showInPicViewerA = new QAction(QIcon(":/snapshot.png"), tr("Show"), this); + connect(showInPicViewerA, &QAction::triggered, [=] { + QModelIndexList r = mPictureListView->selectionModel()->selectedRows(); + if(!r.isEmpty()){ + showInPicViewer(r.first()); + } + }); + QWidget *spacer1 = new QWidget; + spacer1->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); + toolBar->addWidget(spacer1); + toolBar->addAction(showInPicViewerA); + mPictureListView->addAction(showInPicViewerA); + QAction *deleteA = new QAction(QIcon(":/delete.png"), tr("Delete"), this); + connect(deleteA, &QAction::triggered, mPictureListView, &PictureListView::deletePics); + toolBar->addAction(deleteA); + mPictureListView->addAction(deleteA); + toolBar->addSeparator(); + mPictureListView->addAction(Helper::createSeparator(mPictureListView)); + QAction *editMappingsA = new QAction(QIcon(":/squirting_nipple.png"), tr("Edit mappings..."), this); + connect(editMappingsA, &QAction::triggered, this, &PicturesWidget::editMappings); + toolBar->addAction(editMappingsA); + mPictureListView->addAction(editMappingsA); + QAction *refreshA = new QAction(QIcon(":/refresh.png"), tr("Refresh"), this); + connect(refreshA, &QAction::triggered, mPictureListView, &PictureListView::refresh); + toolBar->addAction(refreshA); + mPictureListView->addAction(refreshA); + toolBar->addSeparator(); + toolBar->addAction(SmGlobals::instance()->globalAction()); + QWidget *spacer2 = new QWidget; + spacer2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); + toolBar->addWidget(spacer2); + + QWidget *leftWidget = new QWidget; + QVBoxLayout *leftWidgetL = new QVBoxLayout; + leftWidgetL->setSpacing(2); + leftWidgetL->addWidget(toolBar); + leftWidgetL->addWidget(mPictureListView); + leftWidget->setLayout(leftWidgetL); + + QSplitter *splitter = new QSplitter; + splitter->addWidget(mMappingTree); + splitter->addWidget(leftWidget); + splitter->setStretchFactor(0, 1); + splitter->setStretchFactor(1, 3); + QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(splitter); setLayout(mainLayout); @@ -136,7 +164,5 @@ void PicturesWidget::showInPicViewer(const QModelIndex &idx){ mPicViewer->setShowMarkItem(false); mPicViewer->setFile(pData); mPictureListView->setPVAll(); - if(mPicViewerA){ - mPicViewerA->setChecked(true); - } + mPicViewer->show(); } |