diff --git a/YACReader/configuration.cpp b/YACReader/configuration.cpp index 13e7a9b2..909a76c8 100644 --- a/YACReader/configuration.cpp +++ b/YACReader/configuration.cpp @@ -33,8 +33,8 @@ void Configuration::load(QSettings * settings) settings->setValue(MAG_GLASS_SIZE,QSize(350,175)); if(!settings->contains(ZOOM_LEVEL)) settings->setValue(MAG_GLASS_SIZE,QSize(350,175)); - if(!settings->contains(FIT)) - settings->setValue(FIT,false); + //if(!settings->contains(FIT)) + // settings->setValue(FIT,false); if(!settings->contains(FLOW_TYPE)) settings->setValue(FLOW_TYPE,0); if(!settings->contains(FULLSCREEN)) @@ -47,8 +47,8 @@ void Configuration::load(QSettings * settings) settings->setValue(MAXIMIZED,false); if(!settings->contains(DOUBLE_PAGE)) settings->setValue(DOUBLE_PAGE,false); - if(!settings->contains(ADJUST_TO_FULL_SIZE)) - settings->setValue(ADJUST_TO_FULL_SIZE,false); + //if(!settings->contains(ADJUST_TO_FULL_SIZE)) + // settings->setValue(ADJUST_TO_FULL_SIZE,false); if(!settings->contains(BACKGROUND_COLOR)) settings->setValue(BACKGROUND_COLOR,QColor(40,40,40)); if(!settings->contains(ALWAYS_ON_TOP)) diff --git a/YACReader/configuration.h b/YACReader/configuration.h index edd42b29..213e58ce 100644 --- a/YACReader/configuration.h +++ b/YACReader/configuration.h @@ -62,10 +62,19 @@ using namespace YACReader; void setZoomLevel(float zl) { settings->setValue(ZOOM_LEVEL,zl);} float getPageZoomLevel() { return settings->value(PAGE_ZOOM_LEVEL).toFloat();} void setPageZoomLevel(float zl) { settings->setValue(PAGE_ZOOM_LEVEL,zl);} + /* + //Old fitting modes bool getAdjustToWidth() {return settings->value(FIT).toBool();} void setAdjustToWidth(bool atw=true) {settings->setValue(FIT,atw);} bool getFitToPage() {return settings->value(PAGEFIT).toBool();} void setFitToPage(bool b=true) {settings->setValue(PAGEFIT,b);} + bool getAdjustToFullSize(){return settings->value(ADJUST_TO_FULL_SIZE).toBool();} + void setAdjustToFullSize(bool b){settings->setValue(ADJUST_TO_FULL_SIZE,b);} + */ + + QString getFitMode() { return settings->value(FITMODE).toString(); } + void setFitMode ( QString fitMode ){settings->setValue(FITMODE, fitMode);} + FlowType getFlowType(){return (FlowType)settings->value(FLOW_TYPE_SW).toInt();} void setFlowType(FlowType type){settings->setValue(FLOW_TYPE_SW,type);} bool getFullScreen(){return settings->value(FULLSCREEN).toBool();} @@ -82,8 +91,6 @@ using namespace YACReader; void setDoublePage(bool b){settings->setValue(DOUBLE_PAGE,b);} bool getDoubleMangaPage(){return settings->value(DOUBLE_MANGA_PAGE).toBool();} void setDoubleMangaPage(bool b){settings->setValue(DOUBLE_MANGA_PAGE,b);} - bool getAdjustToFullSize(){return settings->value(ADJUST_TO_FULL_SIZE).toBool();} - void setAdjustToFullSize(bool b){settings->setValue(ADJUST_TO_FULL_SIZE,b);} QColor getBackgroundColor(){return settings->value(BACKGROUND_COLOR).value();} void setBackgroundColor(const QColor& color){settings->value(BACKGROUND_COLOR,color);} bool getAlwaysOnTop(){return settings->value(ALWAYS_ON_TOP).toBool();} diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index c5959923..1198ecb5 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -262,7 +262,7 @@ void MainWindowViewer::createActions() adjustHeightAction->setIcon(QIcon(":/images/viewer_toolbar/toHeight.png")); //adjustWidth->setCheckable(true); adjustHeightAction->setDisabled(true); - adjustHeightAction->setChecked(Configuration::getConfiguration().getAdjustToWidth()); + //adjustHeightAction->setChecked(Configuration::getConfiguration().getAdjustToWidth()); adjustHeightAction->setToolTip(tr("Fit image to height")); //adjustWidth->setIcon(QIcon(":/images/fitWidth.png")); adjustHeightAction->setData(ADJUST_HEIGHT_ACTION_Y); @@ -273,7 +273,7 @@ void MainWindowViewer::createActions() adjustWidthAction->setIcon(QIcon(":/images/viewer_toolbar/toWidth.png")); //adjustWidth->setCheckable(true); adjustWidthAction->setDisabled(true); - adjustWidthAction->setChecked(Configuration::getConfiguration().getAdjustToWidth()); + //adjustWidthAction->setChecked(Configuration::getConfiguration().getAdjustToWidth()); adjustWidthAction->setToolTip(tr("Fit image to width")); //adjustWidth->setIcon(QIcon(":/images/fitWidth.png")); adjustWidthAction->setData(ADJUST_WIDTH_ACTION_Y); @@ -405,9 +405,9 @@ void MainWindowViewer::createActions() adjustToFullSizeAction = new QAction(tr("Show full size"),this); adjustToFullSizeAction->setIcon(QIcon(":/images/viewer_toolbar/full.png")); - adjustToFullSizeAction->setCheckable(true); + //adjustToFullSizeAction->setCheckable(true); adjustToFullSizeAction->setDisabled(true); - adjustToFullSizeAction->setChecked(Configuration::getConfiguration().getAdjustToFullSize()); + //adjustToFullSizeAction->setChecked(Configuration::getConfiguration().getAdjustToFullSize()); adjustToFullSizeAction->setData(ADJUST_TO_FULL_SIZE_ACTION_Y); adjustToFullSizeAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADJUST_TO_FULL_SIZE_ACTION_Y)); connect(adjustToFullSizeAction,SIGNAL(triggered()),this,SLOT(adjustToFullSizeSwitch())); @@ -416,7 +416,7 @@ void MainWindowViewer::createActions() //fitToPageAction->setIcon(QIcon(":/images/viewer_toolbar/full.png")); fitToPageAction->setCheckable(true); fitToPageAction->setDisabled(true); - fitToPageAction->setChecked(Configuration::getConfiguration().getFitToPage()); + //fitToPageAction->setChecked(Configuration::getConfiguration().getFitToPage()); fitToPageAction->setData(FIT_TO_PAGE_ACTION_Y); fitToPageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FIT_TO_PAGE_ACTION_Y)); connect(fitToPageAction,SIGNAL(triggered()),this,SLOT(fitToPageSwitch())); @@ -971,21 +971,28 @@ void MainWindowViewer::showToolBars() } void MainWindowViewer::fitToWidth() { + Configuration::getConfiguration().setFitMode("to_width"); + viewer->updatePage(); +/* Configuration & conf = Configuration::getConfiguration(); if(!conf.getAdjustToWidth()) { conf.setAdjustToWidth(true); viewer->updatePage(); } +*/ } void MainWindowViewer::fitToHeight() { + Configuration::getConfiguration().setFitMode("to_height"); + viewer->updatePage(); + /* Configuration & conf = Configuration::getConfiguration(); if(conf.getAdjustToWidth()) { conf.setAdjustToWidth(false); viewer->updatePage(); - } + }*/ } void MainWindowViewer::checkNewVersion() @@ -1189,8 +1196,9 @@ void MainWindowViewer::toggleFitToWidthSlider() void MainWindowViewer::changeFit() { + //TODO: this is depreceated Configuration & conf = Configuration::getConfiguration(); - conf.setAdjustToWidth(!conf.getAdjustToWidth()); + //conf.setAdjustToWidth(!conf.getAdjustToWidth()); viewer->updatePage(); } @@ -1403,19 +1411,20 @@ void MainWindowViewer::alwaysOnTopSwitch() void MainWindowViewer::adjustToFullSizeSwitch() { - Configuration::getConfiguration().setAdjustToFullSize(!Configuration::getConfiguration().getAdjustToFullSize()); + //Configuration::getConfiguration().setAdjustToFullSize(!Configuration::getConfiguration().getAdjustToFullSize()); + Configuration::getConfiguration().setFitMode("full_size"); viewer->updatePage(); } void MainWindowViewer::fitToPageSwitch() { - Configuration::getConfiguration().setFitToPage(!Configuration::getConfiguration().getFitToPage()); + //Configuration::getConfiguration().setFitToPage(!Configuration::getConfiguration().getFitToPage()); + Configuration::getConfiguration().setFitMode("full_page"); viewer->updatePage(); } void MainWindowViewer::increasePageZoomLevel() { - qDebug() << "Increase page zoom level!"; Configuration::getConfiguration().setPageZoomLevel(Configuration::getConfiguration().getPageZoomLevel() + 0.1); viewer->updatePage(); } diff --git a/YACReader/viewer.cpp b/YACReader/viewer.cpp index 1594b9ea..b9717a46 100644 --- a/YACReader/viewer.cpp +++ b/YACReader/viewer.cpp @@ -314,21 +314,22 @@ void Viewer::updateContentSize() //there is an image to resize if(currentPage !=0 && !currentPage->isNull()) { - if(Configuration::getConfiguration().getAdjustToFullSize()) - { - content->resize(currentPage->size()); - } - else if(Configuration::getConfiguration().getFitToPage()) - { - QSize pagefit=currentPage->size(); - pagefit.scale(size(), Qt::KeepAspectRatio); - content->resize(pagefit); - } - else + if(!Configuration::getConfiguration().getFitMode().isNull()) { + if(Configuration::getConfiguration().getFitMode()=="full_size") + { + content->resize(currentPage->size()); + } + if(Configuration::getConfiguration().getFitMode()=="full_page") + { + QSize pagefit=currentPage->size(); + pagefit.scale(size(), Qt::KeepAspectRatio); + content->resize(pagefit); + } + //float aspectRatio = (float)currentPage->width()/currentPage->height(); //Fit to width - if(Configuration::getConfiguration().getAdjustToWidth()) + if(Configuration::getConfiguration().getFitMode()=="to_width") { QSize pagefit=currentPage->size(); pagefit.scale(width(), 0, Qt::KeepAspectRatioByExpanding); @@ -355,7 +356,7 @@ void Viewer::updateContentSize() else content->resize(static_cast(height()*aspectRatio),height()); }*/ - else + if(Configuration::getConfiguration().getFitMode()=="to_height") { QSize pagefit=currentPage->size(); pagefit.scale(0, height(), Qt::KeepAspectRatioByExpanding); @@ -373,7 +374,6 @@ void Viewer::updateContentSize() if(devicePixelRatio()>1)//only in retina display { - qDebug() << "Retina Display detected" << "devicePixelRatio:" << devicePixelRatio(); QPixmap page = currentPage->scaled(content->width()*devicePixelRatio(), content->height()*devicePixelRatio(), Qt::KeepAspectRatio, Qt::SmoothTransformation); page.setDevicePixelRatio(devicePixelRatio()); content->setPixmap(page); @@ -899,7 +899,8 @@ void Viewer::mouseReleaseEvent ( QMouseEvent * event ) void Viewer::updateFitToWidthRatio(float ratio) { - Configuration::getConfiguration().setAdjustToWidth(true); + //Configuration::getConfiguration().setAdjustToWidth(true); + Configuration::getConfiguration().setFitMode("to_width"); adjustToWidthRatio = ratio; updateContentSize(); } diff --git a/common/yacreader_global.h b/common/yacreader_global.h index faa516f3..e57f4105 100644 --- a/common/yacreader_global.h +++ b/common/yacreader_global.h @@ -20,6 +20,7 @@ #define FLOW_TYPE_SW "FLOW_TYPE_SW" #define FIT "FIT" #define PAGEFIT "PAGEFIT" +#define FITMODE "FITMODE" #define FLOW_TYPE "FLOW_TYPE" #define FULLSCREEN "FULLSCREEN" #define FIT_TO_WIDTH_RATIO "FIT_TO_WIDTH_RATIO"