#ifndef __CONFIGURATION_H #define __CONFIGURATION_H #include #include #include #include #include #include #include #include "yacreader_global_gui.h" #define CONF_FILE_PATH "." #define SLIDE_ASPECT_RATIO 1.585 using namespace YACReader; class Configuration : public QObject { Q_OBJECT private: QSettings * settings; QString defaultPath; //configuration properties QSize magnifyingGlassSize; QSize gotoSlideSize; float zoomLevel; bool adjustToWidth; bool fullScreen; FlowType flowType; float fitToWidthRatio; QPoint windowPos; QSize windowSize; bool maximized; bool doublePage; bool doubleMangaPage; bool alwaysOnTop; bool adjustToFullSize; QColor backgroundColor; Configuration(); //Configuration(const Configuration & conf); void load(const QString & path = CONF_FILE_PATH); public: static Configuration & getConfiguration() { static Configuration configuration; return configuration; }; QSettings *getSettings(); void load(QSettings * settings); QString getDefaultPath() { return settings->value(PATH).toString(); } void setDefaultPath(QString defaultPath){settings->setValue(PATH,defaultPath);} QSize getMagnifyingGlassSize() { return settings->value(MAG_GLASS_SIZE).toSize();} void setMagnifyingGlassSize(const QSize & mgs) { settings->setValue(MAG_GLASS_SIZE,mgs);} QSize getGotoSlideSize() { return settings->value(GO_TO_FLOW_SIZE).toSize();} void setGotoSlideSize(const QSize & gss) { settings->setValue(GO_TO_FLOW_SIZE,gss);} float getZoomLevel() { return settings->value(ZOOM_LEVEL).toFloat();} void setZoomLevel(float zl) { settings->setValue(ZOOM_LEVEL,zl);} //Unified enum based fitmode YACReader::FitMode getFitMode() { return static_cast(settings->value(FITMODE, YACReader::FitMode::FullPage).toInt()); } void setFitMode ( YACReader::FitMode fitMode ){ settings->setValue(FITMODE, static_cast(fitMode)); } //openRecent int getOpenRecentSize() { return settings->value("recentSize", 25).toInt();} QStringList openRecentList() { return settings->value("recentFiles").toStringList(); } void updateOpenRecentList (QString path); void clearOpenRecentList() { settings->remove("recentFiles"); } //Old fitmodes /* bool getAdjustToWidth() {return settings->value(FIT).toBool();} void setAdjustToWidth(bool atw=true) {settings->setValue(FIT,atw);} float getFitToWidthRatio(){return settings->value(FIT_TO_WIDTH_RATIO).toFloat();} void setFitToWidthRatio(float r){settings->setValue(FIT_TO_WIDTH_RATIO,r);} bool getAdjustToFullSize(){return settings->value(ADJUST_TO_FULL_SIZE).toBool();} void setAdjustToFullSize(bool b){settings->setValue(ADJUST_TO_FULL_SIZE,b);} */ 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();} void setFullScreen(bool f){settings->setValue(FULLSCREEN,f);} QPoint getPos(){return settings->value(Y_WINDOW_POS).toPoint();} void setPos(QPoint p){settings->setValue(Y_WINDOW_POS,p);} QSize getSize(){return settings->value(Y_WINDOW_SIZE).toSize();} void setSize(QSize s){settings->setValue(Y_WINDOW_SIZE,s);} bool getMaximized(){return settings->value(MAXIMIZED).toBool();} void setMaximized(bool b){settings->setValue(MAXIMIZED,b);} bool getDoublePage(){return settings->value(DOUBLE_PAGE).toBool();} 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);} 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();} void setAlwaysOnTop(bool b){ settings->setValue(ALWAYS_ON_TOP,b);} bool getShowToolbars(){return settings->value(SHOW_TOOLBARS).toBool();} void setShowToolbars(bool b){settings->setValue(SHOW_TOOLBARS,b);} bool getShowInformation(){return settings->value(SHOW_INFO,false).toBool();} void setShowInformation(bool b){settings->setValue(SHOW_INFO,b);} QDate getLastVersionCheck(){return settings->value(LAST_VERSION_CHECK).toDate();} 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();} bool getDisableShowOnMouseOver(){return settings->value(DISABLE_MOUSE_OVER_GOTO_FLOW).toBool();} }; #endif