diff --git a/YACReader/configuration.cpp b/YACReader/configuration.cpp index d3b954a7..841ce1e6 100644 --- a/YACReader/configuration.cpp +++ b/YACReader/configuration.cpp @@ -49,6 +49,8 @@ void Configuration::load(QSettings * settings) settings->setValue(ALWAYS_ON_TOP,false); if(!settings->contains(SHOW_TOOLBARS)) settings->setValue(SHOW_TOOLBARS, true); + if(!settings->contains(QUICK_NAVI_MODE)) + settings->setValue(QUICK_NAVI_MODE, true); //old fit stuff /*if(!settings->contains(FIT)) settings->setValue(FIT,false); diff --git a/YACReader/configuration.h b/YACReader/configuration.h index cb170786..ec5932c9 100644 --- a/YACReader/configuration.h +++ b/YACReader/configuration.h @@ -108,6 +108,7 @@ using namespace YACReader; void setLastVersionCheck(const QDate & date){ settings->setValue(LAST_VERSION_CHECK,date);} int getNumDaysBetweenVersionChecks() {return settings->value(NUM_DAYS_BETWEEN_VERSION_CHECKS,1).toInt();} void setNumDaysBetweenVersionChecks(int days) {return settings->setValue(NUM_DAYS_BETWEEN_VERSION_CHECKS,days);} + bool getQuickNaviMode(){return settings->value(QUICK_NAVI_MODE).toBool();} }; #endif diff --git a/YACReader/goto_flow.cpp b/YACReader/goto_flow.cpp index a4b8118b..b77ede97 100644 --- a/YACReader/goto_flow.cpp +++ b/YACReader/goto_flow.cpp @@ -214,16 +214,13 @@ void GoToFlow::setFlowType(FlowType flowType) flow->setFlowType(flowType); } -void GoToFlow::updateSize() //TODO : fix. it doesn't work. -{ - imageSize = Configuration::getConfiguration().getGotoSlideSize(); - flow->setSlideSize(imageSize); - resize(static_cast(5*imageSize.width()),static_cast(imageSize.height()*1.7)); -} - void GoToFlow::updateConfig(QSettings * settings) { Q_UNUSED(settings) + imageSize = Configuration::getConfiguration().getGotoSlideSize(); + flow->setFlowType(Configuration::getConfiguration().getFlowType()); + resize(5*imageSize.width(), toolBar->height() + imageSize.height()*1.7); + updateSize(); } //----------------------------------------------------------------------------- //SlideInitializer diff --git a/YACReader/goto_flow.h b/YACReader/goto_flow.h index 53176d1c..041fe273 100644 --- a/YACReader/goto_flow.h +++ b/YACReader/goto_flow.h @@ -61,7 +61,6 @@ private slots: void setNumSlides(unsigned int slides); void setImageReady(int index,const QByteArray & image); void setFlowType(FlowType flowType); - void updateSize(); void updateConfig(QSettings * settings); signals: void goToPage(unsigned int page); diff --git a/YACReader/goto_flow_gl.cpp b/YACReader/goto_flow_gl.cpp index 7ea941d8..0dc9f41b 100644 --- a/YACReader/goto_flow_gl.cpp +++ b/YACReader/goto_flow_gl.cpp @@ -77,11 +77,6 @@ void GoToFlowGL::setImageReady(int index,const QByteArray & imageData) flow->imagesReady[index] = true; } -void GoToFlowGL::updateSize() -{ - -} - void GoToFlowGL::updateConfig(QSettings * settings) { Performance performance = medium; @@ -102,45 +97,45 @@ void GoToFlowGL::updateConfig(QSettings * settings) break; } + imageSize = Configuration::getConfiguration().getGotoSlideSize(); + resize(5*imageSize.width(), toolBar->height() + imageSize.height()*1.7); + updateSize(); + flow->setPerformance(performance); switch (settings->value(FLOW_TYPE_GL).toInt()) { - case 0: + case FlowType::CoverFlowLike: flow->setPreset(presetYACReaderFlowClassicConfig); - return; - case 1: + break; + case FlowType::Strip: flow->setPreset(presetYACReaderFlowStripeConfig); - return; - case 2: + break; + case FlowType::StripOverlapped: flow->setPreset(presetYACReaderFlowOverlappedStripeConfig); - return; - case 3: + break; + case FlowType::Modern: flow->setPreset(defaultYACReaderFlowConfig); - return; - case 4: + break; + case FlowType::Roulette: flow->setPreset(pressetYACReaderFlowDownConfig); - return; + break; + case FlowType::Custom: + flow->setCF_RX(settings->value(X_ROTATION).toInt()); + flow->setCF_Y(settings->value(Y_POSITION).toInt()); + flow->setX_Distance(settings->value(COVER_DISTANCE).toInt()); + flow->setCenter_Distance(settings->value(CENTRAL_DISTANCE).toInt()); + flow->setCF_Z(settings->value(ZOOM_LEVEL).toInt()); + flow->setY_Distance(settings->value(Y_COVER_OFFSET).toInt()); + flow->setZ_Distance(settings->value(Z_COVER_OFFSET).toInt()); + flow->setRotation(settings->value(COVER_ROTATION).toInt()); + flow->setFadeOutDist(settings->value(FADE_OUT_DIST).toInt()); + flow->setLightStrenght(settings->value(LIGHT_STRENGTH).toInt()); + flow->setMaxAngle(settings->value(MAX_ANGLE).toInt()); + break; } - - - //custom config - - flow->setCF_RX(settings->value(X_ROTATION).toInt()); - flow->setCF_Y(settings->value(Y_POSITION).toInt()); - flow->setX_Distance(settings->value(COVER_DISTANCE).toInt()); - flow->setCenter_Distance(settings->value(CENTRAL_DISTANCE).toInt()); - flow->setCF_Z(settings->value(ZOOM_LEVEL).toInt()); - flow->setY_Distance(settings->value(Y_COVER_OFFSET).toInt()); - flow->setZ_Distance(settings->value(Z_COVER_OFFSET).toInt()); - flow->setRotation(settings->value(COVER_ROTATION).toInt()); - flow->setFadeOutDist(settings->value(FADE_OUT_DIST).toInt()); - flow->setLightStrenght(settings->value(LIGHT_STRENGTH).toInt()); - flow->setMaxAngle(settings->value(MAX_ANGLE).toInt()); - - /* flow->setVisibility(settings->value("visibilityDistance").toInt()); - flow->setLightStrenght(settings->value("lightStrength").toInt())*/; - + if (Configuration::getConfiguration().getQuickNaviMode()) + flow->setFadeOutDist(20); } void GoToFlowGL::keyPressEvent(QKeyEvent* event) diff --git a/YACReader/goto_flow_gl.h b/YACReader/goto_flow_gl.h index 31bd65e0..e6d76dc1 100644 --- a/YACReader/goto_flow_gl.h +++ b/YACReader/goto_flow_gl.h @@ -23,7 +23,6 @@ public: void setFlowType(FlowType flowType); void setNumSlides(unsigned int slides); void setImageReady(int index,const QByteArray & image); - void updateSize(); void updateConfig(QSettings * settings); diff --git a/YACReader/goto_flow_widget.cpp b/YACReader/goto_flow_widget.cpp index 83487b62..04fe0ada 100644 --- a/YACReader/goto_flow_widget.cpp +++ b/YACReader/goto_flow_widget.cpp @@ -6,20 +6,17 @@ #include #include "goto_flow_toolbar.h" +#include "configuration.h" GoToFlowWidget::GoToFlowWidget(QWidget * parent) :QWidget(parent) { mainLayout = new QVBoxLayout; - mainLayout->setMargin(0); mainLayout->setSpacing(0); toolBar = new GoToFlowToolBar(this); - mainLayout->setMargin(0); - mainLayout->setSpacing(0); - setLayout(mainLayout); //toolBar->installEventFilter(this); @@ -54,6 +51,15 @@ void GoToFlowWidget::keyPressEvent(QKeyEvent* event) event->accept(); } +void GoToFlowWidget::updateSize() +{ + // called by parent in resizeEvent + // no need to update width when QuickNaviMode disabled + // height is set in updateConfig + if (Configuration::getConfiguration().getQuickNaviMode() && parentWidget() != nullptr) + resize(parentWidget()->width(),height()); +} + /*bool GoToFlowWidget::eventFilter(QObject * target, QEvent * event) { if(event->type() == QEvent::KeyPress) diff --git a/YACReader/goto_flow_widget.h b/YACReader/goto_flow_widget.h index fbb05028..d876e003 100644 --- a/YACReader/goto_flow_widget.h +++ b/YACReader/goto_flow_widget.h @@ -27,7 +27,7 @@ public slots: virtual void setFlowType(FlowType flowType) = 0; virtual void setNumSlides(unsigned int slides) = 0; virtual void setImageReady(int index,const QByteArray & image) = 0; - virtual void updateSize() = 0; + virtual void updateSize(); virtual void updateConfig(QSettings * settings) = 0; protected: diff --git a/YACReader/options_dialog.cpp b/YACReader/options_dialog.cpp index c70f2ee8..b542d2c3 100644 --- a/YACReader/options_dialog.cpp +++ b/YACReader/options_dialog.cpp @@ -104,6 +104,8 @@ OptionsDialog::OptionsDialog(QWidget * parent) gammaS->setTracking(false); connect(gammaS,SIGNAL(valueChanged(int)),this,SLOT(gammaChanged(int))); //connect(brightnessS,SIGNAL(valueChanged(int)),this,SIGNAL(changedOptions())); + + quickNavi = new QCheckBox(tr("Quick Navigation Mode")); QHBoxLayout * buttons = new QHBoxLayout(); buttons->addStretch(); @@ -122,6 +124,7 @@ OptionsDialog::OptionsDialog(QWidget * parent) layoutFlow->addWidget(gl); layoutFlow->addWidget(useGL); #endif + layoutFlow->addWidget(quickNavi); layoutFlow->addStretch(); layoutImage->addWidget(new QLabel(tr("Brightness")),0,0); layoutImage->addWidget(new QLabel(tr("Contrast")),1,0); @@ -191,6 +194,7 @@ void OptionsDialog::saveOptions() settings->setValue(BACKGROUND_COLOR,colorDialog->currentColor()); //settings->setValue(FIT_TO_WIDTH_RATIO,fitToWidthRatioS->sliderPosition()/100.0); + settings->setValue(QUICK_NAVI_MODE,quickNavi->isChecked()); YACReaderOptionsDialog::saveOptions(); } @@ -221,6 +225,8 @@ void OptionsDialog::restoreOptions(QSettings * settings) updateColor(settings->value(BACKGROUND_COLOR).value()); //fitToWidthRatioS->setSliderPosition(settings->value(FIT_TO_WIDTH_RATIO).toFloat()*100); + quickNavi->setChecked(settings->value(QUICK_NAVI_MODE).toBool()); + brightnessS->setValue(settings->value(BRIGHTNESS,0).toInt()); contrastS->setValue(settings->value(CONTRAST,100).toInt()); gammaS->setValue(settings->value(GAMMA,100).toInt()); diff --git a/YACReader/options_dialog.h b/YACReader/options_dialog.h index 767b28fd..df0a723b 100644 --- a/YACReader/options_dialog.h +++ b/YACReader/options_dialog.h @@ -23,6 +23,7 @@ Q_OBJECT //QLabel * pathLabel; QLineEdit * pathEdit; QPushButton * pathFindButton; + QCheckBox * quickNavi; QLabel * magGlassSizeLabel; diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index 492fa373..e5091243 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -587,7 +587,8 @@ void Viewer::wheelEvent(QWheelEvent * event) void Viewer::resizeEvent(QResizeEvent * event) { updateContentSize(); - goToFlow->move(QPoint((width()-goToFlow->width())/2,height()-goToFlow->height())); + goToFlow->updateSize(); + goToFlow->move((width()-goToFlow->width())/2,height()-goToFlow->height()); informationLabel->updatePosition(); QScrollArea::resizeEvent(event); } @@ -865,7 +866,6 @@ void Viewer::updateOptions() goToFlow->setFlowType(Configuration::getConfiguration().getFlowType()); updateBackgroundColor(Configuration::getConfiguration().getBackgroundColor()); updateContentSize(); - //goToFlow->updateSize(); } void Viewer::updateBackgroundColor(const QColor & color) diff --git a/common/yacreader_global_gui.h b/common/yacreader_global_gui.h index f3858958..9c36bd56 100644 --- a/common/yacreader_global_gui.h +++ b/common/yacreader_global_gui.h @@ -27,6 +27,7 @@ #define CONTRAST "CONTRAST" #define GAMMA "GAMMA" #define SHOW_INFO "SHOW_INFO" +#define QUICK_NAVI_MODE "QUICK_NAVI_MODE" #define FLOW_TYPE_GL "FLOW_TYPE_GL" #define Y_POSITION "Y_POSITION"