diff --git a/YACReader/configuration.cpp b/YACReader/configuration.cpp index c98e0568..2afc88d9 100644 --- a/YACReader/configuration.cpp +++ b/YACReader/configuration.cpp @@ -51,6 +51,8 @@ void Configuration::load(QSettings * settings) settings->setValue(BACKGROUND_COLOR,QColor(0,0,0)); if(!settings->contains(ALWAYS_ON_TOP)) settings->setValue(ALWAYS_ON_TOP,false); + if(!settings->contains(SHOW_TOOLBARS)) + settings->setValue(SHOW_TOOLBARS, true); } void Configuration::load(const QString & path) diff --git a/YACReader/configuration.h b/YACReader/configuration.h index b90a0f52..9ec88fb5 100644 --- a/YACReader/configuration.h +++ b/YACReader/configuration.h @@ -78,6 +78,8 @@ void setBackgroundColor(const QColor& color){settings->value(BACKGROUND_COLOR,color);}; bool getAlwaysOnTop(){return settings->value(ALWAYS_ON_TOP).toBool();}; void setAlwaysOnTop(bool b){ settings->setValue(ALWAYS_ON_TOP,b);}; + bool getShowToolbars(){return settings->value(SHOW_TOOLBARS).toBool();}; + void setShowToolbars(bool b){return settings->setValue(SHOW_TOOLBARS,b);}; void save(); diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index f0d0fa13..8b834e94 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -107,6 +107,11 @@ void MainWindowViewer::setupUI() showMaximized(); setAcceptDrops(true); + + if(Configuration::getConfiguration().getShowToolbars() && !Configuration::getConfiguration().getFullScreen()) + showToolBars(); + else + hideToolBars(); } void MainWindowViewer::createActions() @@ -535,7 +540,8 @@ void MainWindowViewer::toNormal() viewer->fullscreen = false;//TODO, change by the right use of windowState(); //viewer->hideMagnifyingGlass(); showNormal(); - showToolBars(); + if(Configuration::getConfiguration().getShowToolbars()) + showToolBars(); viewer->show(); if(viewer->magnifyingGlassIsVisible()) viewer->showMagnifyingGlass(); @@ -543,6 +549,8 @@ void MainWindowViewer::toNormal() void MainWindowViewer::toggleToolBars() { toolbars?hideToolBars():showToolBars(); + + Configuration::getConfiguration().setShowToolbars(toolbars); } void MainWindowViewer::hideToolBars() { diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index cd25da00..bec1ce82 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -110,6 +110,7 @@ drag(false) //animations verticalScroller = new QPropertyAnimation(verticalScrollBar(), "sliderPosition"); + connect(verticalScroller,SIGNAL(valueChanged (const QVariant &)),this,SIGNAL(backgroundChanges())); } void Viewer::createConnections() @@ -343,26 +344,14 @@ void Viewer::keyPressEvent(QKeyEvent *event) void Viewer::wheelEvent(QWheelEvent * event) { - if(render->hasLoadedComic()) - { - if((event->delta()<0)&&(verticalScrollBar()->sliderPosition()==verticalScrollBar()->maximum())) + if(render->hasLoadedComic()) { - if(wheelStop) + if((event->delta()<0)&&(verticalScrollBar()->sliderPosition()==verticalScrollBar()->maximum())) { - next(); - event->accept(); - wheelStop = false; - return; - } - else - wheelStop = true; - } - else - if((event->delta()>0)&&(verticalScrollBar()->sliderPosition()==verticalScrollBar()->minimum())) - { - if(wheelStop) + if(wheelStop) { - prev(); + next(); + verticalScroller->stop(); event->accept(); wheelStop = false; return; @@ -370,10 +359,40 @@ void Viewer::wheelEvent(QWheelEvent * event) else wheelStop = true; } + else + { + if((event->delta()>0)&&(verticalScrollBar()->sliderPosition()==verticalScrollBar()->minimum())) + { + if(wheelStop) + { + prev(); + verticalScroller->stop(); + event->accept(); + wheelStop = false; + return; + } + else + wheelStop = true; + } + } - QAbstractScrollArea::wheelEvent(event); - emit backgroundChanges(); - } + int deltaNotFinished = 0; + if(verticalScroller->state() == QAbstractAnimation::Running) + { + deltaNotFinished = verticalScroller->startValue().toInt() - verticalScroller->endValue().toInt(); + verticalScroller->stop(); + } + + + int currentPos = verticalScrollBar()->sliderPosition(); + verticalScroller->setDuration(250); + verticalScroller->setStartValue(currentPos); + verticalScroller->setEndValue(currentPos - event->delta() - deltaNotFinished); + + verticalScroller->start(); + + //QAbstractScrollArea::wheelEvent(event); + } } void Viewer::resizeEvent(QResizeEvent * event) diff --git a/common/yacreader_global.h b/common/yacreader_global.h index 18ee7c44..b10e60af 100644 --- a/common/yacreader_global.h +++ b/common/yacreader_global.h @@ -20,6 +20,7 @@ #define ADJUST_TO_FULL_SIZE "ADJUST_TO_FULL_SIZE" #define BACKGROUND_COLOR "BACKGROUND_COLOR" #define ALWAYS_ON_TOP "ALWAYS_ON_TOP" +#define SHOW_TOOLBARS "SHOW_TOOLBARS" #define FLOW_TYPE_GL "FLOW_TYPE_GL" #define Y_POSITION "Y_POSITION"