summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp53
1 files changed, 35 insertions, 18 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){