mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
118 lines
4.9 KiB
C++
118 lines
4.9 KiB
C++
#ifndef __CONFIGURATION_H
|
|
#define __CONFIGURATION_H
|
|
#include <QString>
|
|
#include <QSize>
|
|
#include <QObject>
|
|
#include <QPoint>
|
|
#include <QColor>
|
|
#include <QSettings>
|
|
#include <QDate>
|
|
|
|
#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<YACReader::FitMode>(settings->value(FITMODE, YACReader::FitMode::FullPage).toInt()); }
|
|
void setFitMode ( YACReader::FitMode fitMode ){ settings->setValue(FITMODE, static_cast<int>(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<QColor>();}
|
|
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
|