Refractoring: Use only one fitting mode config option for all fitting modes.

This commit is contained in:
Felix Kauselmann 2015-01-02 13:54:30 +01:00
parent bf98cf3343
commit b199095515
5 changed files with 49 additions and 31 deletions

View File

@ -33,8 +33,8 @@ void Configuration::load(QSettings * settings)
settings->setValue(MAG_GLASS_SIZE,QSize(350,175)); settings->setValue(MAG_GLASS_SIZE,QSize(350,175));
if(!settings->contains(ZOOM_LEVEL)) if(!settings->contains(ZOOM_LEVEL))
settings->setValue(MAG_GLASS_SIZE,QSize(350,175)); settings->setValue(MAG_GLASS_SIZE,QSize(350,175));
if(!settings->contains(FIT)) //if(!settings->contains(FIT))
settings->setValue(FIT,false); // settings->setValue(FIT,false);
if(!settings->contains(FLOW_TYPE)) if(!settings->contains(FLOW_TYPE))
settings->setValue(FLOW_TYPE,0); settings->setValue(FLOW_TYPE,0);
if(!settings->contains(FULLSCREEN)) if(!settings->contains(FULLSCREEN))
@ -47,8 +47,8 @@ void Configuration::load(QSettings * settings)
settings->setValue(MAXIMIZED,false); settings->setValue(MAXIMIZED,false);
if(!settings->contains(DOUBLE_PAGE)) if(!settings->contains(DOUBLE_PAGE))
settings->setValue(DOUBLE_PAGE,false); settings->setValue(DOUBLE_PAGE,false);
if(!settings->contains(ADJUST_TO_FULL_SIZE)) //if(!settings->contains(ADJUST_TO_FULL_SIZE))
settings->setValue(ADJUST_TO_FULL_SIZE,false); // settings->setValue(ADJUST_TO_FULL_SIZE,false);
if(!settings->contains(BACKGROUND_COLOR)) if(!settings->contains(BACKGROUND_COLOR))
settings->setValue(BACKGROUND_COLOR,QColor(40,40,40)); settings->setValue(BACKGROUND_COLOR,QColor(40,40,40));
if(!settings->contains(ALWAYS_ON_TOP)) if(!settings->contains(ALWAYS_ON_TOP))

View File

@ -62,10 +62,19 @@ using namespace YACReader;
void setZoomLevel(float zl) { settings->setValue(ZOOM_LEVEL,zl);} void setZoomLevel(float zl) { settings->setValue(ZOOM_LEVEL,zl);}
float getPageZoomLevel() { return settings->value(PAGE_ZOOM_LEVEL).toFloat();} float getPageZoomLevel() { return settings->value(PAGE_ZOOM_LEVEL).toFloat();}
void setPageZoomLevel(float zl) { settings->setValue(PAGE_ZOOM_LEVEL,zl);} void setPageZoomLevel(float zl) { settings->setValue(PAGE_ZOOM_LEVEL,zl);}
/*
//Old fitting modes
bool getAdjustToWidth() {return settings->value(FIT).toBool();} bool getAdjustToWidth() {return settings->value(FIT).toBool();}
void setAdjustToWidth(bool atw=true) {settings->setValue(FIT,atw);} void setAdjustToWidth(bool atw=true) {settings->setValue(FIT,atw);}
bool getFitToPage() {return settings->value(PAGEFIT).toBool();} bool getFitToPage() {return settings->value(PAGEFIT).toBool();}
void setFitToPage(bool b=true) {settings->setValue(PAGEFIT,b);} 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();} FlowType getFlowType(){return (FlowType)settings->value(FLOW_TYPE_SW).toInt();}
void setFlowType(FlowType type){settings->setValue(FLOW_TYPE_SW,type);} void setFlowType(FlowType type){settings->setValue(FLOW_TYPE_SW,type);}
bool getFullScreen(){return settings->value(FULLSCREEN).toBool();} bool getFullScreen(){return settings->value(FULLSCREEN).toBool();}
@ -82,8 +91,6 @@ using namespace YACReader;
void setDoublePage(bool b){settings->setValue(DOUBLE_PAGE,b);} void setDoublePage(bool b){settings->setValue(DOUBLE_PAGE,b);}
bool getDoubleMangaPage(){return settings->value(DOUBLE_MANGA_PAGE).toBool();} bool getDoubleMangaPage(){return settings->value(DOUBLE_MANGA_PAGE).toBool();}
void setDoubleMangaPage(bool b){settings->setValue(DOUBLE_MANGA_PAGE,b);} 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<QColor>();} QColor getBackgroundColor(){return settings->value(BACKGROUND_COLOR).value<QColor>();}
void setBackgroundColor(const QColor& color){settings->value(BACKGROUND_COLOR,color);} void setBackgroundColor(const QColor& color){settings->value(BACKGROUND_COLOR,color);}
bool getAlwaysOnTop(){return settings->value(ALWAYS_ON_TOP).toBool();} bool getAlwaysOnTop(){return settings->value(ALWAYS_ON_TOP).toBool();}

View File

@ -262,7 +262,7 @@ void MainWindowViewer::createActions()
adjustHeightAction->setIcon(QIcon(":/images/viewer_toolbar/toHeight.png")); adjustHeightAction->setIcon(QIcon(":/images/viewer_toolbar/toHeight.png"));
//adjustWidth->setCheckable(true); //adjustWidth->setCheckable(true);
adjustHeightAction->setDisabled(true); adjustHeightAction->setDisabled(true);
adjustHeightAction->setChecked(Configuration::getConfiguration().getAdjustToWidth()); //adjustHeightAction->setChecked(Configuration::getConfiguration().getAdjustToWidth());
adjustHeightAction->setToolTip(tr("Fit image to height")); adjustHeightAction->setToolTip(tr("Fit image to height"));
//adjustWidth->setIcon(QIcon(":/images/fitWidth.png")); //adjustWidth->setIcon(QIcon(":/images/fitWidth.png"));
adjustHeightAction->setData(ADJUST_HEIGHT_ACTION_Y); adjustHeightAction->setData(ADJUST_HEIGHT_ACTION_Y);
@ -273,7 +273,7 @@ void MainWindowViewer::createActions()
adjustWidthAction->setIcon(QIcon(":/images/viewer_toolbar/toWidth.png")); adjustWidthAction->setIcon(QIcon(":/images/viewer_toolbar/toWidth.png"));
//adjustWidth->setCheckable(true); //adjustWidth->setCheckable(true);
adjustWidthAction->setDisabled(true); adjustWidthAction->setDisabled(true);
adjustWidthAction->setChecked(Configuration::getConfiguration().getAdjustToWidth()); //adjustWidthAction->setChecked(Configuration::getConfiguration().getAdjustToWidth());
adjustWidthAction->setToolTip(tr("Fit image to width")); adjustWidthAction->setToolTip(tr("Fit image to width"));
//adjustWidth->setIcon(QIcon(":/images/fitWidth.png")); //adjustWidth->setIcon(QIcon(":/images/fitWidth.png"));
adjustWidthAction->setData(ADJUST_WIDTH_ACTION_Y); adjustWidthAction->setData(ADJUST_WIDTH_ACTION_Y);
@ -405,9 +405,9 @@ void MainWindowViewer::createActions()
adjustToFullSizeAction = new QAction(tr("Show full size"),this); adjustToFullSizeAction = new QAction(tr("Show full size"),this);
adjustToFullSizeAction->setIcon(QIcon(":/images/viewer_toolbar/full.png")); adjustToFullSizeAction->setIcon(QIcon(":/images/viewer_toolbar/full.png"));
adjustToFullSizeAction->setCheckable(true); //adjustToFullSizeAction->setCheckable(true);
adjustToFullSizeAction->setDisabled(true); adjustToFullSizeAction->setDisabled(true);
adjustToFullSizeAction->setChecked(Configuration::getConfiguration().getAdjustToFullSize()); //adjustToFullSizeAction->setChecked(Configuration::getConfiguration().getAdjustToFullSize());
adjustToFullSizeAction->setData(ADJUST_TO_FULL_SIZE_ACTION_Y); adjustToFullSizeAction->setData(ADJUST_TO_FULL_SIZE_ACTION_Y);
adjustToFullSizeAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADJUST_TO_FULL_SIZE_ACTION_Y)); adjustToFullSizeAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(ADJUST_TO_FULL_SIZE_ACTION_Y));
connect(adjustToFullSizeAction,SIGNAL(triggered()),this,SLOT(adjustToFullSizeSwitch())); connect(adjustToFullSizeAction,SIGNAL(triggered()),this,SLOT(adjustToFullSizeSwitch()));
@ -416,7 +416,7 @@ void MainWindowViewer::createActions()
//fitToPageAction->setIcon(QIcon(":/images/viewer_toolbar/full.png")); //fitToPageAction->setIcon(QIcon(":/images/viewer_toolbar/full.png"));
fitToPageAction->setCheckable(true); fitToPageAction->setCheckable(true);
fitToPageAction->setDisabled(true); fitToPageAction->setDisabled(true);
fitToPageAction->setChecked(Configuration::getConfiguration().getFitToPage()); //fitToPageAction->setChecked(Configuration::getConfiguration().getFitToPage());
fitToPageAction->setData(FIT_TO_PAGE_ACTION_Y); fitToPageAction->setData(FIT_TO_PAGE_ACTION_Y);
fitToPageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FIT_TO_PAGE_ACTION_Y)); fitToPageAction->setShortcut(ShortcutsManager::getShortcutsManager().getShortcut(FIT_TO_PAGE_ACTION_Y));
connect(fitToPageAction,SIGNAL(triggered()),this,SLOT(fitToPageSwitch())); connect(fitToPageAction,SIGNAL(triggered()),this,SLOT(fitToPageSwitch()));
@ -971,21 +971,28 @@ void MainWindowViewer::showToolBars()
} }
void MainWindowViewer::fitToWidth() void MainWindowViewer::fitToWidth()
{ {
Configuration::getConfiguration().setFitMode("to_width");
viewer->updatePage();
/*
Configuration & conf = Configuration::getConfiguration(); Configuration & conf = Configuration::getConfiguration();
if(!conf.getAdjustToWidth()) if(!conf.getAdjustToWidth())
{ {
conf.setAdjustToWidth(true); conf.setAdjustToWidth(true);
viewer->updatePage(); viewer->updatePage();
} }
*/
} }
void MainWindowViewer::fitToHeight() void MainWindowViewer::fitToHeight()
{ {
Configuration::getConfiguration().setFitMode("to_height");
viewer->updatePage();
/*
Configuration & conf = Configuration::getConfiguration(); Configuration & conf = Configuration::getConfiguration();
if(conf.getAdjustToWidth()) if(conf.getAdjustToWidth())
{ {
conf.setAdjustToWidth(false); conf.setAdjustToWidth(false);
viewer->updatePage(); viewer->updatePage();
} }*/
} }
void MainWindowViewer::checkNewVersion() void MainWindowViewer::checkNewVersion()
@ -1189,8 +1196,9 @@ void MainWindowViewer::toggleFitToWidthSlider()
void MainWindowViewer::changeFit() void MainWindowViewer::changeFit()
{ {
//TODO: this is depreceated
Configuration & conf = Configuration::getConfiguration(); Configuration & conf = Configuration::getConfiguration();
conf.setAdjustToWidth(!conf.getAdjustToWidth()); //conf.setAdjustToWidth(!conf.getAdjustToWidth());
viewer->updatePage(); viewer->updatePage();
} }
@ -1403,19 +1411,20 @@ void MainWindowViewer::alwaysOnTopSwitch()
void MainWindowViewer::adjustToFullSizeSwitch() void MainWindowViewer::adjustToFullSizeSwitch()
{ {
Configuration::getConfiguration().setAdjustToFullSize(!Configuration::getConfiguration().getAdjustToFullSize()); //Configuration::getConfiguration().setAdjustToFullSize(!Configuration::getConfiguration().getAdjustToFullSize());
Configuration::getConfiguration().setFitMode("full_size");
viewer->updatePage(); viewer->updatePage();
} }
void MainWindowViewer::fitToPageSwitch() void MainWindowViewer::fitToPageSwitch()
{ {
Configuration::getConfiguration().setFitToPage(!Configuration::getConfiguration().getFitToPage()); //Configuration::getConfiguration().setFitToPage(!Configuration::getConfiguration().getFitToPage());
Configuration::getConfiguration().setFitMode("full_page");
viewer->updatePage(); viewer->updatePage();
} }
void MainWindowViewer::increasePageZoomLevel() void MainWindowViewer::increasePageZoomLevel()
{ {
qDebug() << "Increase page zoom level!";
Configuration::getConfiguration().setPageZoomLevel(Configuration::getConfiguration().getPageZoomLevel() + 0.1); Configuration::getConfiguration().setPageZoomLevel(Configuration::getConfiguration().getPageZoomLevel() + 0.1);
viewer->updatePage(); viewer->updatePage();
} }

View File

@ -314,21 +314,22 @@ void Viewer::updateContentSize()
//there is an image to resize //there is an image to resize
if(currentPage !=0 && !currentPage->isNull()) if(currentPage !=0 && !currentPage->isNull())
{ {
if(Configuration::getConfiguration().getAdjustToFullSize()) if(!Configuration::getConfiguration().getFitMode().isNull())
{
if(Configuration::getConfiguration().getFitMode()=="full_size")
{ {
content->resize(currentPage->size()); content->resize(currentPage->size());
} }
else if(Configuration::getConfiguration().getFitToPage()) if(Configuration::getConfiguration().getFitMode()=="full_page")
{ {
QSize pagefit=currentPage->size(); QSize pagefit=currentPage->size();
pagefit.scale(size(), Qt::KeepAspectRatio); pagefit.scale(size(), Qt::KeepAspectRatio);
content->resize(pagefit); content->resize(pagefit);
} }
else
{
//float aspectRatio = (float)currentPage->width()/currentPage->height(); //float aspectRatio = (float)currentPage->width()/currentPage->height();
//Fit to width //Fit to width
if(Configuration::getConfiguration().getAdjustToWidth()) if(Configuration::getConfiguration().getFitMode()=="to_width")
{ {
QSize pagefit=currentPage->size(); QSize pagefit=currentPage->size();
pagefit.scale(width(), 0, Qt::KeepAspectRatioByExpanding); pagefit.scale(width(), 0, Qt::KeepAspectRatioByExpanding);
@ -355,7 +356,7 @@ void Viewer::updateContentSize()
else else
content->resize(static_cast<int>(height()*aspectRatio),height()); content->resize(static_cast<int>(height()*aspectRatio),height());
}*/ }*/
else if(Configuration::getConfiguration().getFitMode()=="to_height")
{ {
QSize pagefit=currentPage->size(); QSize pagefit=currentPage->size();
pagefit.scale(0, height(), Qt::KeepAspectRatioByExpanding); pagefit.scale(0, height(), Qt::KeepAspectRatioByExpanding);
@ -373,7 +374,6 @@ void Viewer::updateContentSize()
if(devicePixelRatio()>1)//only in retina display 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); QPixmap page = currentPage->scaled(content->width()*devicePixelRatio(), content->height()*devicePixelRatio(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
page.setDevicePixelRatio(devicePixelRatio()); page.setDevicePixelRatio(devicePixelRatio());
content->setPixmap(page); content->setPixmap(page);
@ -899,7 +899,8 @@ void Viewer::mouseReleaseEvent ( QMouseEvent * event )
void Viewer::updateFitToWidthRatio(float ratio) void Viewer::updateFitToWidthRatio(float ratio)
{ {
Configuration::getConfiguration().setAdjustToWidth(true); //Configuration::getConfiguration().setAdjustToWidth(true);
Configuration::getConfiguration().setFitMode("to_width");
adjustToWidthRatio = ratio; adjustToWidthRatio = ratio;
updateContentSize(); updateContentSize();
} }

View File

@ -20,6 +20,7 @@
#define FLOW_TYPE_SW "FLOW_TYPE_SW" #define FLOW_TYPE_SW "FLOW_TYPE_SW"
#define FIT "FIT" #define FIT "FIT"
#define PAGEFIT "PAGEFIT" #define PAGEFIT "PAGEFIT"
#define FITMODE "FITMODE"
#define FLOW_TYPE "FLOW_TYPE" #define FLOW_TYPE "FLOW_TYPE"
#define FULLSCREEN "FULLSCREEN" #define FULLSCREEN "FULLSCREEN"
#define FIT_TO_WIDTH_RATIO "FIT_TO_WIDTH_RATIO" #define FIT_TO_WIDTH_RATIO "FIT_TO_WIDTH_RATIO"