summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2015-08-27 09:51:11 +0200
committerArno <arno@disconnect.de>2015-08-27 09:51:11 +0200
commit6bd88cc6ef5e4b7e5769d8ff9fbe41c0382f9ef4 (patch)
tree13ba3a92ee517b2dfcfd690de9dfd97e31635f60
parent270fc73100c509b7d2cea3c5330d7ed7000f5dec (diff)
downloadSheMov-6bd88cc6ef5e4b7e5769d8ff9fbe41c0382f9ef4.tar.gz
SheMov-6bd88cc6ef5e4b7e5769d8ff9fbe41c0382f9ef4.tar.bz2
SheMov-6bd88cc6ef5e4b7e5769d8ff9fbe41c0382f9ef4.zip
Implement shuffle in PictureViewer2 controls
Remove action from context menu.
-rw-r--r--pictureviewer2.cpp53
-rw-r--r--pictureviewer2.h6
-rw-r--r--shemov.cpp7
-rw-r--r--shemov.h1
4 files changed, 38 insertions, 29 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 4575c95..ce02fc7 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -45,7 +45,7 @@
const QString PictureViewer2::mDefaultFile = ":/picgone.png";
-PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mFnItem(0), mMappingItem(0), mShowInfoItem(true), mShowMappingItem(true), mShowMarkItem(false) {
+PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mFnItem(0), mMappingItem(0), mShowInfoItem(true), mShowMappingItem(true), mShowMarkItem(false), mShuffle(false) {
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setWindowState(Qt::WindowMaximized);
@@ -232,6 +232,8 @@ void PictureViewer2::stopSlide(){
mSlideStopC->setDefaultTextColor(Qt::darkGreen);
mSlideAllC->setDefaultTextColor(mDefaultTextColor);
mSlideC->setDefaultTextColor(mDefaultTextColor);
+ mShuffleC->setDefaultTextColor(mDefaultTextColor);
+ mShuffle = false;
}
void PictureViewer2::startSlide(){
@@ -241,6 +243,9 @@ void PictureViewer2::startSlide(){
mSlideAllC->setDefaultTextColor(mDefaultTextColor);
mSlideC->setDefaultTextColor(Qt::darkGreen);
PicDataList data = mPicFilesModel->allFiles();
+ if(mShuffle){
+ std::random_shuffle(data.begin(), data.end());
+ }
addFiles(data, true);
mCurTimer->start(5000);
}
@@ -251,6 +256,8 @@ void PictureViewer2::startSlideAll(){
mSlideStopC->setDefaultTextColor(mDefaultTextColor);
mSlideAllC->setDefaultTextColor(Qt::darkGreen);
mSlideC->setDefaultTextColor(mDefaultTextColor);
+ mShuffleC->setDefaultTextColor(mDefaultTextColor);
+ mShuffle = false;
mSlideTimerAllRestart = true;
mCurTimer->start(5000);
}
@@ -312,7 +319,12 @@ void PictureViewer2::writeSettings(){
}
void PictureViewer2::shuffle(){
- std::random_shuffle(mFiles.begin(), mFiles.end());
+ mShuffle = !mShuffle;
+ if(mShuffle){
+ mShuffleC->setDefaultTextColor(Qt::darkGreen);
+ }else{
+ mShuffleC->setDefaultTextColor(mDefaultTextColor);
+ }
}
void PictureViewer2::initActions(){
@@ -331,12 +343,6 @@ void PictureViewer2::initActions(){
if(a->data().toInt() == DeleteAction){
mDeleteA = a;
}
- if(a->data().toInt() == SkipForwardAction){
- mSkipForwardA = a;
- }
- if(a->data().toInt() == SkipBackwardAction){
- mSkipBackwardA = a;
- }
}
}
@@ -426,6 +432,8 @@ void PictureViewer2::doControl(QGraphicsItem *item){
skip(25);
}else if(curItem == mSkipBackwardC){
skip(-25);
+ }else if(curItem == mShuffleC){
+ shuffle();
}else if(curItem == mSlideStopC){
stopSlide();
}else if(curItem == mSlideC){
@@ -469,6 +477,9 @@ void PictureViewer2::keyPressEvent(QKeyEvent *e){
startSlideAll();
}
}
+ if(e->key() == Qt::Key_R){
+ shuffle();
+ }
return;
}
@@ -498,10 +509,10 @@ void PictureViewer2::keyPressEvent(QKeyEvent *e){
next();
}
if(e->key() == Qt::Key_PageDown){
- mSkipForwardA->trigger();
+ skip(25);
}
if(e->key() == Qt::Key_PageUp){
- mSkipBackwardA->trigger();
+ skip(-25);
}
e->accept();
}
@@ -666,7 +677,7 @@ void PictureViewer2::nextFromAll(){
}
void PictureViewer2::constructControlItem(){
- QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "Stop Slide <SP>" << "Slide <SP>" << "Slide all <C-SP>";
+ QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "Shuffle (C->R)" << "Stop Slide <SP>" << "Slide <SP>" << "Slide all <C-SP>";
QFont f = QFont();
f.setPointSize(14);
f.setBold(true);
@@ -679,7 +690,7 @@ void PictureViewer2::constructControlItem(){
}
}
f.setBold(true);
- mBoundingRectItem = new BoundingRectItem(QSize(width + 10, 16 * (controls.count() + 3)));
+ mBoundingRectItem = new BoundingRectItem(QSize(width + 10, 16 * (controls.count() + 4)));
mBoundingRectItem->setZValue(5);
mScene->addItem(mBoundingRectItem);
mNextC = new QGraphicsTextItem(mBoundingRectItem);
@@ -702,19 +713,25 @@ void PictureViewer2::constructControlItem(){
mSkipBackwardC->moveBy(0, 64);
QGraphicsLineItem *l2 = new QGraphicsLineItem(mBoundingRectItem);
l2->setLine(QLine(QPoint(5, 96), QPoint(width, 96)));
+ mShuffleC = new QGraphicsTextItem(mBoundingRectItem);
+ mShuffleC->setFont(f);
+ mShuffleC->setPlainText(controls.at(4));
+ mShuffleC->moveBy(0, 96);
+ QGraphicsLineItem *l3 = new QGraphicsLineItem(mBoundingRectItem);
+ l3->setLine(QLine(QPoint(5, 128), QPoint(width, 128)));
mSlideStopC = new QGraphicsTextItem(mBoundingRectItem);
mSlideStopC->setFont(f);
- mSlideStopC->setPlainText(controls.at(4));
+ mSlideStopC->setPlainText(controls.at(5));
mSlideStopC->setDefaultTextColor(Qt::darkGreen);
- mSlideStopC->moveBy(0, 96);
+ mSlideStopC->moveBy(0, 128);
mSlideC = new QGraphicsTextItem(mBoundingRectItem);
mSlideC->setFont(f);
- mSlideC->setPlainText(controls.at(5));
- mSlideC->moveBy(0, 112);
+ mSlideC->setPlainText(controls.at(6));
+ mSlideC->moveBy(0, 144);
mSlideAllC = new QGraphicsTextItem(mBoundingRectItem);
mSlideAllC->setFont(f);
- mSlideAllC->setPlainText(controls.at(6));
- mSlideAllC->moveBy(0, 128);
+ mSlideAllC->setPlainText(controls.at(7));
+ mSlideAllC->moveBy(0, 160);
}
void PictureViewer2::setGradient(const QPixmap &pic){
diff --git a/pictureviewer2.h b/pictureviewer2.h
index 89d0320..31c5bb3 100644
--- a/pictureviewer2.h
+++ b/pictureviewer2.h
@@ -36,7 +36,7 @@ typedef QList<QList<QVariant> > PicDataList;
class PictureViewer2 : public QGraphicsView {
Q_OBJECT
public:
- enum AssocActions { ToggleSlideAction, SlideSelectedAction, SlideAllAction, HideAction, MarkAction, DeleteAction, SkipForwardAction, SkipBackwardAction };
+ enum AssocActions { HideAction, MarkAction, DeleteAction };
explicit PictureViewer2(QWidget *parent = 0);
void addFiles(const PicDataList &files, bool clear = true);
void addFiles(const QString &dir, bool clear = true);
@@ -118,6 +118,7 @@ class PictureViewer2 : public QGraphicsView {
QGraphicsTextItem *mPreviousC;
QGraphicsTextItem *mSkipForwardC;
QGraphicsTextItem *mSkipBackwardC;
+ QGraphicsTextItem *mShuffleC;
QGraphicsTextItem *mSlideStopC;
QGraphicsTextItem *mSlideC;
QGraphicsTextItem *mSlideAllC;
@@ -130,8 +131,6 @@ class PictureViewer2 : public QGraphicsView {
QAction *mHideA;
QAction *mMarkA;
QAction *mDeleteA;
- QAction *mSkipForwardA;
- QAction *mSkipBackwardA;
MappingTreeModel *mMappingTreeModel;
PicFilesModel *mPicFilesModel;
PicData mCurPicData;
@@ -139,6 +138,7 @@ class PictureViewer2 : public QGraphicsView {
bool mShowInfoItem;
bool mShowMappingItem;
bool mShowMarkItem;
+ bool mShuffle;
QString mCurrentDir;
};
diff --git a/shemov.cpp b/shemov.cpp
index a0873d3..32998c5 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -585,12 +585,6 @@ void SheMov::createActions(){
picViewer->addAction(mPVDeleteA);
picViewer->addAction(createSeparator());
- // Shuffle
- mPVShuffleA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Shuffle"), this);
- connect(mPVShuffleA, SIGNAL(triggered()), picViewer, SLOT(shuffle()));
- picViewer->addAction(mPVShuffleA);
- picViewer->addAction(createSeparator());
-
// Copy to...
mPVCopyToA = new QAction(tr("Copy to..."), this);
connect(mPVCopyToA, SIGNAL(triggered()), picViewer, SLOT(copyCurrent()));
@@ -807,7 +801,6 @@ void SheMov::createMenus(){
headerMenu->addActions(mPicsTreeHeaderGroup->actions());
mPicViewMenu->addMenu(headerMenu);
mPicViewMenu->addSeparator();
- mPicViewMenu->addAction(mPVShuffleA);
mPicViewMenu->addAction(mPWRefreshA);
mViewPicMenuA = menuBar()->addMenu(mPicViewMenu);
diff --git a/shemov.h b/shemov.h
index f427f46..8247e20 100644
--- a/shemov.h
+++ b/shemov.h
@@ -137,7 +137,6 @@ class SheMov : public QMainWindow {
QAction *mPVClearMarksA;
QAction *mPVReplaceA;
QAction *mPVSelectAllA;
- QAction *mPVShuffleA;
QAction *mPVCopyToA;
QAction *mPVShowNPDialogA;
QAction *mPVAddToNPA;