diff --git a/YACReader/YACReader.pro b/YACReader/YACReader.pro index 31277531..6c0b418e 100644 --- a/YACReader/YACReader.pro +++ b/YACReader/YACReader.pro @@ -114,7 +114,7 @@ HEADERS += ../common/comic.h \ page_label_widget.h \ goto_flow_toolbar.h \ goto_flow_decorationbar.h \ - #width_slider.h \ + width_slider.h \ notifications_label_widget.h \ ../common/pictureflow.h \ ../common/custom_widgets.h \ @@ -158,7 +158,7 @@ SOURCES += ../common/comic.cpp \ page_label_widget.cpp \ goto_flow_toolbar.cpp \ goto_flow_decorationbar.cpp \ - #width_slider.cpp \ + width_slider.cpp \ notifications_label_widget.cpp \ ../common/pictureflow.cpp \ ../common/custom_widgets.cpp \ diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index be041959..9b3379c6 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -417,7 +417,11 @@ void MainWindowViewer::createActions() fitToPageAction->setData(FIT_TO_PAGE_ACTION_Y); fitToPageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FIT_TO_PAGE_ACTION_Y)); connect(fitToPageAction,SIGNAL(triggered()),this,SLOT(fitToPageSwitch())); - + + showZoomSliderlAction = new QAction(tr("Show zoom slider"), this); + showZoomSliderlAction->setIcon(QIcon(":/images/viewer_toolbar/zoom.png")); + showZoomSliderlAction->setDisabled(true); + increasePageZoomAction = new QAction(tr("Zoom+"),this); increasePageZoomAction->setDisabled(true); increasePageZoomAction->setData(ZOOM_PLUS_ACTION_Y); @@ -509,43 +513,34 @@ void MainWindowViewer::createToolBars() //comicToolBar->addAction(adjustWidth); - -#ifdef Q_OS_MAC - - //sliderAction = new YACReaderSlider(this); - //sliderAction->hide(); - - comicToolBar->addAction(adjustWidthAction); - - //QAction * action = comicToolBar->addFitToWidthSlider(adjustWidthAction); - - //connect(action,SIGNAL(triggered()),this,SLOT(toggleFitToWidthSlider())); - -#else - //QMenu * menu = new QMenu(); - - //sliderAction = new YACReaderSliderAction(this); - - //menu->setAutoFillBackground(false); - //menu->setStyleSheet(" QMenu {background:transparent; border: 0px;padding: 0px; }" - // ); - //menu->addAction(sliderAction); - //QToolButton * tb2 = new QToolButton(); - //tb2->addAction(adjustWidthAction); - //tb2->setMenu(menu); - - //tb2->addAction(); - //tb2->setPopupMode(QToolButton::MenuButtonPopup); - //tb2->setDefaultAction(adjustWidthAction); - //comicToolBar->addWidget(tb2); -#endif - - //connect(sliderAction,SIGNAL(fitToWidthRatioChanged(float)),viewer,SLOT(updateFitToWidthRatio(float))); - //connect(optionsDialog,SIGNAL(fitToWidthRatioChanged(float)),sliderAction,SLOT(updateFitToWidthRatio(float))); comicToolBar->addAction(adjustWidthAction); comicToolBar->addAction(adjustHeightAction); comicToolBar->addAction(adjustToFullSizeAction); comicToolBar->addAction(fitToPageAction); + +#ifdef Q_OS_MAC + + zoomSliderAction = new YACReaderSlider(this); + zoomSliderAction->hide(); + + comicToolBar->addAction(showZoomSliderlAction); + + QAction * action = comicToolBar->addFitToWidthSlider(showZoomSliderlAction); + + connect(action,SIGNAL(triggered()),this,SLOT(toggleFitToWidthSlider())); + +#else + zoomSliderAction = new YACReaderSlider(this); + zoomSliderAction->hide(); + + comicToolBar->addAction(showZoomSliderlAction); + + //QAction * action = comicToolBar->addFitToWidthSlider(showZoomSliderlAction); + + connect(showZoomSliderlAction,SIGNAL(triggered()),this,SLOT(toggleFitToWidthSlider())); + connect(zoomSliderAction, SIGNAL(zoomRatioChanged(float)),viewer,SLOT(updateZoomRatio(float))); +#endif + comicToolBar->addAction(leftRotationAction); comicToolBar->addAction(rightRotationAction); comicToolBar->addAction(doublePageAction); @@ -555,7 +550,6 @@ void MainWindowViewer::createToolBars() comicToolBar->addAction(showMagnifyingGlassAction); - comicToolBar->addSeparator(); comicToolBar->addAction(setBookmarkAction); @@ -850,6 +844,7 @@ void MainWindowViewer::enableActions() adjustToFullSizeAction->setDisabled(false); adjustToFullSizeAction->setDisabled(false); fitToPageAction->setDisabled(false); + showZoomSliderlAction->setDisabled(false); increasePageZoomAction->setDisabled(false); decreasePageZoomAction->setDisabled(false); //setBookmark->setDisabled(false); @@ -873,6 +868,8 @@ void MainWindowViewer::disableActions() doublePageAction->setDisabled(true); doubleMangaPageAction->setDisabled(true); adjustToFullSizeAction->setDisabled(true); + fitToPageAction->setDisabled(true); + showZoomSliderlAction->setDisabled(true); setBookmarkAction->setDisabled(true); showBookmarksAction->setDisabled(true); showInfoAction->setDisabled(true); //TODO enable goTo and showInfo (or update) when numPages emited @@ -1175,21 +1172,26 @@ void MainWindowViewer::setUpShortcutsManagement() } -#ifdef Q_OS_MAC -/* void MainWindowViewer::toggleFitToWidthSlider() { - if(sliderAction->isVisible()) + int y; + +#ifdef Q_OS_MAC + y = 0; +#else + y = this->comicToolBar->frameSize().height(); +#endif + + if(zoomSliderAction->isVisible()) { - sliderAction->hide(); + zoomSliderAction->hide(); } else { - sliderAction->move(250,0); - sliderAction->show(); + zoomSliderAction->move(250, y); + zoomSliderAction->show(); } -}*/ -#endif +} void MainWindowViewer::newVersion() { diff --git a/YACReader/main_window_viewer.h b/YACReader/main_window_viewer.h index e9277162..4c027abc 100644 --- a/YACReader/main_window_viewer.h +++ b/YACReader/main_window_viewer.h @@ -64,9 +64,8 @@ class EditShortcutsDialog; void processReset(); void setUpShortcutsManagement(); -#ifdef Q_OS_MAC void toggleFitToWidthSlider(); -#endif + /*void viewComic(); void prev(); void next(); @@ -128,16 +127,14 @@ class EditShortcutsDialog; QAction *alwaysOnTopAction; QAction *adjustToFullSizeAction; QAction *fitToPageAction; + QAction *showZoomSliderlAction; QAction *increasePageZoomAction; QAction *decreasePageZoomAction; QAction *showFlowAction; QAction *showEditShortcutsAction; -#ifdef Q_OS_MAC - YACReaderSlider * sliderAction; -#else - YACReaderSliderAction * sliderAction; -#endif + + YACReaderSlider * zoomSliderAction; HttpVersionChecker * versionChecker; QString previousComicPath; diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index eef11f61..e05a82eb 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -386,8 +386,8 @@ void Viewer::increaseZoomFactor() void Viewer::decreaseZoomFactor() { zoom -= 0.1; - if (zoom < 0.1) - zoom = 0.1; + if (zoom < 0.3) + zoom = 0.3; updateContentSize(); notificationsLabel->setText(QString::number(getZoomFactor()*100)+"%"); notificationsLabel->flash(); @@ -930,6 +930,12 @@ void Viewer::mouseReleaseEvent ( QMouseEvent * event ) event->accept(); } +void Viewer::updateZoomRatio(float ratio) +{ + zoom = ratio; + updateContentSize(); +} + void Viewer::updateConfig(QSettings * settings) { goToFlow->updateConfig(settings); diff --git a/YACReader/viewer.h b/YACReader/viewer.h index 856985c7..6d2360d8 100644 --- a/YACReader/viewer.h +++ b/YACReader/viewer.h @@ -96,6 +96,7 @@ virtual void mouseReleaseEvent ( QMouseEvent * event ); void showIsCoverMessage(); void showIsLastMessage(); int getCurrentPageNumber(); + void updateZoomRatio(float ratio); private: bool information; diff --git a/YACReader/width_slider.cpp b/YACReader/width_slider.cpp index 845823c6..87bfb7e6 100644 --- a/YACReader/width_slider.cpp +++ b/YACReader/width_slider.cpp @@ -12,9 +12,7 @@ YACReaderSliderAction::YACReaderSliderAction (QWidget * parent) widget = new YACReaderSlider(); setDefaultWidget(widget); - connect(widget,SIGNAL(fitToWidthRatioChanged(float)),this,SIGNAL(fitToWidthRatioChanged(float))); - - + connect(widget,SIGNAL(zoomRatioChanged(float)),this,SIGNAL(zoomRatioChanged(float))); } void YACReaderSliderAction::updateText(int value) @@ -22,9 +20,9 @@ void YACReaderSliderAction::updateText(int value) widget->updateText(value); } -void YACReaderSliderAction::updateFitToWidthRatio(float v) +void YACReaderSliderAction::updateZoomRatio(float v) { - widget->updateFitToWidthRatio(v); + widget->updateZoomRatio(v); } YACReaderSlider::YACReaderSlider(QWidget *parent) @@ -69,11 +67,11 @@ YACReaderSlider::YACReaderSlider(QWidget *parent) setMinimumSize(276,45); - slider->setMinimum(50); - slider->setMaximum(100); + slider->setMinimum(30); + slider->setMaximum(500); slider->setPageStep(5); - int value = Configuration::getConfiguration().getFitToWidthRatio()*100; + int value = Configuration::getConfiguration().getZoomLevel()*100; slider->setValue(value); percentageLabel->setText(QString("%1 %").arg(value)); connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updateText(int))); @@ -82,11 +80,11 @@ YACReaderSlider::YACReaderSlider(QWidget *parent) void YACReaderSlider::updateText(int value) { percentageLabel->setText(QString("%1 %").arg(value)); - Configuration::getConfiguration().setFitToWidthRatio(value/100.0); - emit(fitToWidthRatioChanged(value / 100.0f)); + Configuration::getConfiguration().setZoomLevel(value/100.0); + emit(zoomRatioChanged(value / 100.0f)); } -void YACReaderSlider::updateFitToWidthRatio(float v) +void YACReaderSlider::updateZoomRatio(float v) { int value = v*100; slider->setValue(value); diff --git a/YACReader/width_slider.h b/YACReader/width_slider.h index aecedb95..983a0b38 100644 --- a/YACReader/width_slider.h +++ b/YACReader/width_slider.h @@ -19,11 +19,11 @@ public: public slots: void updateText(int value); - void updateFitToWidthRatio(float v); + void updateZoomRatio(float v); signals: - void fitToWidthRatioChanged(float value); + void zoomRatioChanged(float value); }; class YACReaderSliderAction : public QWidgetAction @@ -38,11 +38,11 @@ public: public slots: void updateText(int value); - void updateFitToWidthRatio(float v); + void updateZoomRatio(float v); signals: - void fitToWidthRatioChanged(float value); + void zoomRatioChanged(float value); }; #endif