summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp63
1 files changed, 58 insertions, 5 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 2640c2f..2eb4566 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -61,10 +61,12 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0)
//picture show
mSlideTimer = new QTimer(this);
mSlideTimerAll = new QTimer(this);
+ mSlideTimerRecent = new QTimer(this);
mCurTimer = mSlideTimer;
mSlideTimerAllRestart = true;
connect(mSlideTimer, SIGNAL(timeout()), this, SLOT(next()));
connect(mSlideTimerAll, SIGNAL(timeout()), this, SLOT(nextFromAll()));
+ connect(mSlideTimerRecent, SIGNAL(timeout()), this, SLOT(nextFromRecent()));
//models + dialogs
mMappingTreeModel = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree"));
@@ -231,6 +233,7 @@ void PictureViewer2::stopSlide(){
mCurTimer->stop();
mSlideStopC->setDefaultTextColor(Qt::darkGreen);
mSlideAllC->setDefaultTextColor(mDefaultTextColor);
+ mSlideRecentC->setDefaultTextColor(mDefaultTextColor);
mSlideC->setDefaultTextColor(mDefaultTextColor);
mShuffleC->setDefaultTextColor(mDefaultTextColor);
mShuffle = false;
@@ -256,12 +259,26 @@ void PictureViewer2::startSlideAll(){
mSlideStopC->setDefaultTextColor(mDefaultTextColor);
mSlideAllC->setDefaultTextColor(Qt::darkGreen);
mSlideC->setDefaultTextColor(mDefaultTextColor);
+ mSlideRecentC->setDefaultTextColor(mDefaultTextColor);
mShuffleC->setDefaultTextColor(mDefaultTextColor);
mShuffle = false;
mSlideTimerAllRestart = true;
mCurTimer->start(5000);
}
+void PictureViewer2::startSlideRecent(){
+ mCurTimer->stop();
+ mCurTimer = mSlideTimerRecent;
+ mSlideStopC->setDefaultTextColor(mDefaultTextColor);
+ mSlideAllC->setDefaultTextColor(mDefaultTextColor);
+ mSlideC->setDefaultTextColor(mDefaultTextColor);
+ mShuffleC->setDefaultTextColor(mDefaultTextColor);
+ mSlideRecentC->setDefaultTextColor(Qt::darkGreen);
+ mShuffle = false;
+ mSlideTimerRecentRestart = true;
+ mCurTimer->start(5000);
+}
+
void PictureViewer2::toggleSlide(bool slide){
if(slide){
@@ -273,6 +290,7 @@ void PictureViewer2::toggleSlide(bool slide){
void PictureViewer2::slide(bool){
mSlideTimerAll->stop();
+ mSlideTimerRecent->stop();
mCurTimer = mSlideTimer;
if(mSlideTimer->isActive()){
mSlideTimer->stop();
@@ -285,17 +303,30 @@ void PictureViewer2::slide(bool){
void PictureViewer2::slideThrouhghAll(bool){
mSlideTimer->stop();
+ mSlideTimerRecent->stop();
mCurTimer = mSlideTimerAll;
mShowMappingItem = true;
if(mSlideTimerAll->isActive()){
mSlideTimerAll->stop();
}else{
- mSlideTimer->stop();
mSlideTimerAllRestart = true;
mSlideTimerAll->start(5000);
}
}
+void PictureViewer2::slideThrougRecent(bool){
+ mSlideTimer->stop();
+ mSlideTimerAll->stop();
+ mCurTimer = mSlideTimerRecent;
+ mShowMappingItem = true;
+ if(mSlideTimerRecent->isActive()){
+ mSlideTimerRecent->stop();
+ }else{
+ mSlideTimerRecentRestart = true;
+ mSlideTimerRecent->start(5000);
+ }
+}
+
void PictureViewer2::readSettings(){
QSettings s;
mUseGradient = s.value("ui/pvgradient").toBool();
@@ -440,6 +471,8 @@ void PictureViewer2::doControl(QGraphicsItem *item){
startSlide();
}else if(curItem == mSlideAllC){
startSlideAll();
+ }else if(curItem == mSlideRecentC){
+ startSlideRecent();
}
}
}
@@ -666,7 +699,23 @@ void PictureViewer2::nextFromAll(){
mPicFilesModel->allPicIds();
mSlideTimerAllRestart = false;
setNextBatch();
- mSlideTimerAll->start();
+ mSlideTimerAll->start(5000);
+ }
+ if(mCurPos == mFiles.size()){
+ setNextBatch();
+ }
+ mMarkA->setChecked(mMarkedFiles.contains(mFiles.at(mCurPos)));
+ showFile(mFiles.at(mCurPos));
+ ++mCurPos;
+}
+
+void PictureViewer2::nextFromRecent(){
+ if(mSlideTimerRecentRestart){
+ mSlideTimerRecent->stop();
+ mPicFilesModel->recentPicIds();
+ mSlideTimerRecentRestart = false;
+ setNextBatch();
+ mSlideTimerRecent->start(5000);
}
if(mCurPos == mFiles.size()){
setNextBatch();
@@ -677,7 +726,7 @@ void PictureViewer2::nextFromAll(){
}
void PictureViewer2::constructControlItem(){
- QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "Shuffle (C-R)" << "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>" << "Slide recent";
QFont f = QFont();
f.setPointSize(14);
f.setBold(true);
@@ -737,6 +786,10 @@ void PictureViewer2::constructControlItem(){
mSlideAllC->setFont(f);
mSlideAllC->setPlainText(controls.at(7));
mSlideAllC->moveBy(textLeftMargin, 10 * textFactor);
+ mSlideRecentC = new QGraphicsTextItem(mBoundingRectItem);
+ mSlideRecentC->setFont(f);
+ mSlideRecentC->setPlainText(controls.at(8));
+ mSlideRecentC->moveBy(textLeftMargin, 11 * textFactor);
}
void PictureViewer2::setGradient(const QPixmap &pic){
@@ -752,14 +805,14 @@ void PictureViewer2::setGradient(const QPixmap &pic){
}
void PictureViewer2::setNextBatch(){
- mSlideTimerAll->stop();
+ mCurTimer->stop();
mFiles.clear();
QList<QList<QVariant> > data = mPicFilesModel->getNextBatch();
foreach(QList<QVariant> l, data){
addFile(l.value(0).toString(), l.value(1).toInt());
}
mCurPos = 0;
- mSlideTimerAll->start();
+ mCurTimer->start();
}
QTextDocument *PictureViewer2::treeToString(const SmTreeItem *root) const{