From 42890664aef1588a92fe9cf816766aae06e3aedb Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 3 Mar 2012 09:57:26 +0100 Subject: Customize menus and toolbar for PictureView * Added 4 new icons for PictureView-actions. * simplified SheMov::tabChanged(int) * fix long standing bug with QActionGroups in SheMov. Enable and disable all actions according to the active tab --- big_balls.png | Bin 0 -> 983 bytes huge_balls_pierced.png | Bin 0 -> 991 bytes huge_bra.png | Bin 0 -> 793 bytes mappingtreemodel.cpp | 1 + pictureswidget.cpp | 16 +++++++++++++--- pictureswidget.h | 5 +++++ shemov.cpp | 49 ++++++++++++++++++++++++++++++++----------------- shemov.h | 5 +++++ shemov.qrc | 4 ++++ smglobals.cpp | 4 ++++ squirting_nipple.png | Bin 0 -> 717 bytes 11 files changed, 64 insertions(+), 20 deletions(-) create mode 100644 big_balls.png create mode 100644 huge_balls_pierced.png create mode 100644 huge_bra.png create mode 100644 squirting_nipple.png diff --git a/big_balls.png b/big_balls.png new file mode 100644 index 0000000..a79f99d Binary files /dev/null and b/big_balls.png differ diff --git a/huge_balls_pierced.png b/huge_balls_pierced.png new file mode 100644 index 0000000..ad5a6fe Binary files /dev/null and b/huge_balls_pierced.png differ diff --git a/huge_bra.png b/huge_bra.png new file mode 100644 index 0000000..b7f1c5c Binary files /dev/null and b/huge_bra.png differ diff --git a/mappingtreemodel.cpp b/mappingtreemodel.cpp index 4a9e5aa..35b6acd 100644 --- a/mappingtreemodel.cpp +++ b/mappingtreemodel.cpp @@ -284,6 +284,7 @@ MappingData MappingTreeModel::mappingDataFromId(int mappingId) const{ } void MappingTreeModel::setSelectedMappings(const QList &mappingIds){ + //FIXME: Brute forcing looses focus which is needed for windowTitle! mSelectedMappings = mappingIds; /*foreach(int id, mappingIds){ QModelIndex idx = findRecursive(id, Id); diff --git a/pictureswidget.cpp b/pictureswidget.cpp index 22bf840..fdcba30 100644 --- a/pictureswidget.cpp +++ b/pictureswidget.cpp @@ -27,12 +27,14 @@ #include "mappingtreemodel.h" #include "smglobals.h" -PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent) { +PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent), mWindowTitleBase(tr("Picture archive")) { //setup gui QSplitter *splitter = new QSplitter; mMappingTree = new MappingTreeWidget; mPictureView = new PictureView; connect(mMappingTree, SIGNAL(mappingChanged(int)), mPictureView, SLOT(mappingChanged(int))); + //emit needWindowtitleChange(QString) 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())); splitter->addWidget(mMappingTree); @@ -40,9 +42,8 @@ PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent) { splitter->setStretchFactor(0, 1); splitter->setStretchFactor(1, 3); - //mis + //misc mEditDialog = new MappingEditDialog(this); - //connect() //put it all togehter QHBoxLayout *mainLayout = new QHBoxLayout; @@ -74,6 +75,15 @@ void PicturesWidget::editMappings(){ } } +void PicturesWidget::constructWindowTitle(){ + QString windowTitle = mWindowTitleBase; + MappingData selected = mMappingTree->selectedItem(); + if(selected.id != -1){ + windowTitle = QString("%1 - [%2]").arg(mWindowTitleBase).arg(selected.path.join("/")); + } + emit needWindowTitleChange(windowTitle); +} + PictureView::PictureView(QWidget *parent) : QTreeView(parent) { //setup model mModel = new PicFilesModel(QStringList() << tr("Filename") << tr("SizeNum") << tr("Format") << tr("Full Path") << tr("Id") << tr("Added") << tr("Md5Sum") << tr("Size"), this); diff --git a/pictureswidget.h b/pictureswidget.h index 098d419..ece2bfb 100644 --- a/pictureswidget.h +++ b/pictureswidget.h @@ -34,11 +34,16 @@ class PicturesWidget : public QWidget { private slots: void setMappingColors(); void editMappings(); + void constructWindowTitle(); + + signals: + void needWindowTitleChange(QString); private: MappingTreeWidget *mMappingTree; PictureView *mPictureView; MappingEditDialog *mEditDialog; + const QString mWindowTitleBase; }; class PictureView : public QTreeView { diff --git a/shemov.cpp b/shemov.cpp index 21ba39a..63dfd51 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -85,6 +85,7 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla //pictures mPicWidget = new PicturesWidget; mTab->addTab(mPicWidget, tr("Pictures")); + connect(mPicWidget, SIGNAL(needWindowTitleChange(QString)), this, SLOT(setWindowTitle(QString))); //newmoviewizard + dbanalyzer mNewMovieWizard = new NewMovieWizard(this); @@ -182,22 +183,17 @@ void SheMov::configure(){ void SheMov::tabChanged(int newTab){ mEditFSMenuA->setVisible(newTab == 0); mEditAVMenuA->setVisible(newTab == 1); + mEditPicMenuA->setVisible(newTab == 2); mViewFSMenuA->setVisible(newTab == 0); mViewAVMenuA->setVisible(newTab == 1); - if(newTab == 0){ - setWindowTitle(mFSWidget->windowTitle()); - mCdupA->setEnabled(true); - mBackDirA->setEnabled(true); - mFilesTreeHeadersGroup->setEnabled(false); - mFilterGroup->setEnabled(false); - } - if(newTab == 1){ - setWindowTitle(mATree->windowTitle()); - mCdupA->setEnabled(false); - mBackDirA->setEnabled(false); - mFilesTreeHeadersGroup->setEnabled(true); - mFilterGroup->setEnabled(true); - } + mViewPicMenuA->setVisible(newTab == 2); + mCdupA->setEnabled(newTab == 0); + mBackDirA->setEnabled(newTab == 0); + mFilesTreeHeadersGroup->setEnabled(newTab == 1); + mFilterGroup->setEnabled(newTab == 1); + mShowTreeGroup->setEnabled(newTab == 1); + mPicActionGroup->setEnabled(newTab == 2); + mFilterFavoritesA->setEnabled(newTab == 1); updateSelectionCount(QItemSelection(), QItemSelection()); } @@ -481,6 +477,7 @@ void SheMov::createActions(){ mShowNormalA->setChecked(true); mShowAllFilesA = new QAction(QIcon(":/male_chastity_belt.png"), tr("Show All files"), this); mShowAllFilesA->setCheckable(true); + mShowTreeGroup->addAction(mShowAllFilesA); connect(mShowAllFilesA, SIGNAL(toggled(bool)), mATree, SLOT(showAllFiles(bool))); //Tree view headers @@ -603,17 +600,22 @@ void SheMov::createActions(){ connect(copyMapper, SIGNAL(mapped(int)), mATree, SLOT(copyPath(int))); mSuggestFileA = new QAction(QIcon(":/analstretcher.png"), tr("Suggest file for burning"), this); connect(mSuggestFileA, SIGNAL(triggered()), mATree->filesWidget(), SLOT(suggest())); + mShowTreeGroup->addAction(mSuggestFileA); //picture widget actions - mDeletePicFromA = new QAction(tr("Delete..."), this); + mDeletePicFromA = new QAction(QIcon(":/huge_balls_pierced.png"), tr("Delete..."), this); mPicWidget->picView()->addAction(mDeletePicFromA); connect(mDeletePicFromA, SIGNAL(triggered()), mPicWidget->picView(), SLOT(deletePics())); - mEditPicsMappingsA = new QAction(tr("Edit mappings..."), this); + mEditPicsMappingsA = new QAction(QIcon(":/squirting_nipple.png"), tr("Edit mappings..."), this); mPicWidget->picView()->addAction(mEditPicsMappingsA); connect(mEditPicsMappingsA, SIGNAL(triggered()), mPicWidget->picView(), SIGNAL(editPicsMappings())); - mRefreshPicsA = new QAction(tr("Refresh"), this); + mRefreshPicsA = new QAction(QIcon(":/huge_bra.png"), tr("Refresh"), this); mPicWidget->picView()->addAction(mRefreshPicsA); connect(mRefreshPicsA, SIGNAL(triggered()), mPicWidget->picView(), SLOT(refresh())); + mPicActionGroup = new QActionGroup(this); + mPicActionGroup->addAction(mDeletePicFromA); + mPicActionGroup->addAction(mEditPicsMappingsA); + mPicActionGroup->addAction(mRefreshPicsA); // misc mOpenWithMapperFS = new QSignalMapper(this); @@ -685,6 +687,12 @@ void SheMov::createMenus(){ mEditAVMenu->addAction(mEditActorsA); mEditAVMenu->addAction(mEditGenresA); + //Pictures edit menu + mEditPicMenu = new QMenu(tr("&Edit"), this); + mEditPicMenu->addAction(mDeletePicFromA); + mEditPicMenu->addAction(mEditPicsMappingsA); + mEditPicMenuA = menuBar()->addMenu(mEditPicMenu); + //TreeView view menu mTreeViewMenu = new QMenu(tr("&View"), this); mTreeViewMenu->addAction(mShowNormalA); @@ -723,6 +731,11 @@ void SheMov::createMenus(){ mFSViewMenu->addMenu(mFSHoverMenu); mViewFSMenuA = menuBar()->addMenu(mFSViewMenu); + //Pictures view menu + mPicViewMenu = new QMenu(tr("&View"), this); + mPicViewMenu->addAction(mRefreshPicsA); + mViewPicMenuA = menuBar()->addMenu(mPicViewMenu); + QMenu *helpMenu = new QMenu(tr("&Help"), this); helpMenu->addAction(mAboutShemovA); helpMenu->addAction(mAboutQtA); @@ -899,6 +912,8 @@ void SheMov::createToolBar(){ toolBar->addActions(mFilterGroup->actions()); toolBar->addAction(mFilterFavoritesA); toolBar->addSeparator(); + toolBar->addActions(mPicActionGroup->actions()); + toolBar->addSeparator(); toolBar->addAction(mHoverPicsA); toolBar->addAction(mHoverArchiveA); toolBar->addAction(mHoverDirectoriesA); diff --git a/shemov.h b/shemov.h index fab6fbf..d72b346 100644 --- a/shemov.h +++ b/shemov.h @@ -170,6 +170,7 @@ class SheMov : public QMainWindow { QAction *mDeletePicFromA; QAction *mEditPicsMappingsA; QAction *mRefreshPicsA; + QActionGroup *mPicActionGroup; //EndActions QSignalMapper *mRenameMapper; @@ -179,19 +180,23 @@ class SheMov : public QMainWindow { QMenu *mEditFSMenu; QMenu *mEditAVMenu; + QMenu *mEditPicMenu; QMenu *mOpenWithMenuFS; QMenu *mOpenWithMenuAV; QMenu *mRenameMenu; QMenu *mTreeViewMenu; QMenu *mFSViewMenu; + QMenu *mPicViewMenu; QMenu *mTreeHeaderMenu; QMenu *mTreeHoverMenu; QMenu *mTreeFilterMenu; QMenu *mFSHoverMenu; QAction *mEditFSMenuA; QAction *mEditAVMenuA; + QAction *mEditPicMenuA; QAction *mViewFSMenuA; QAction *mViewAVMenuA; + QAction *mViewPicMenuA; //widgets + dialogs QTabWidget *mTab; diff --git a/shemov.qrc b/shemov.qrc index 2c4028e..734ef42 100644 --- a/shemov.qrc +++ b/shemov.qrc @@ -29,5 +29,9 @@ dog_hood.png male_chastity_belt.png analstretcher.png + big_balls.png + huge_balls_pierced.png + huge_bra.png + squirting_nipple.png diff --git a/smglobals.cpp b/smglobals.cpp index 0cd0714..72c1148 100644 --- a/smglobals.cpp +++ b/smglobals.cpp @@ -145,6 +145,10 @@ SmGlobals::SmGlobals() : mPictureViewer(0), mFrameCache(0){ mIcons.insert("Leather dog hood", ":/dog_hood.png"); mIcons.insert("Male chastity belt", ":/male_chastity_belt.png"); mIcons.insert("Anal stretcher", ":/analstretcher.png"); + mIcons.insert("Big balls", ":/big_balls.png"); + mIcons.insert("Big pierced balls", ":/huge_balls_pierced.png"); + mIcons.insert("Huge bra", ":/huge_bra.png"); + mIcons.insert("Squirting nipple", ":/squirting_nipple.png"); mDvdSize = Q_INT64_C(4707319808) - 20 * 1024 *1024; } diff --git a/squirting_nipple.png b/squirting_nipple.png new file mode 100644 index 0000000..cec7ed6 Binary files /dev/null and b/squirting_nipple.png differ -- cgit v1.2.3-70-g09d2