#include "configuration.h" #include #include #include #include #include #include #include "yacreader_global.h" Configuration::Configuration() { //read configuration //load("/YACReader.conf"); } /*Configuration::Configuration(const Configuration & conf) { //nothing }*/ void Configuration::load(QSettings * settings) { this->settings = settings; //TODO set defaults if(!settings->contains(PATH)) settings->setValue(PATH,"."); if(!settings->contains(GO_TO_FLOW_SIZE)) settings->setValue(GO_TO_FLOW_SIZE,QSize(126,200)); if(!settings->contains(MAG_GLASS_SIZE)) 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(FLOW_TYPE)) settings->setValue(FLOW_TYPE,0); if(!settings->contains(FULLSCREEN)) settings->setValue(FULLSCREEN,false); if(!settings->contains(FIT_TO_WIDTH_RATIO)) settings->setValue(FIT_TO_WIDTH_RATIO,1); if(!settings->contains(Y_WINDOW_SIZE)) settings->setValue(Y_WINDOW_SIZE,QSize(0,0)); if(!settings->contains(MAXIMIZED)) 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(BACKGROUND_COLOR)) settings->setValue(BACKGROUND_COLOR,QColor(40,40,40)); if(!settings->contains(ALWAYS_ON_TOP)) settings->setValue(ALWAYS_ON_TOP,false); if(!settings->contains(SHOW_TOOLBARS)) settings->setValue(SHOW_TOOLBARS, true); } void Configuration::load(const QString & path) { //load default configuration defaultPath = "."; magnifyingGlassSize = QSize(350,175); gotoSlideSize = QSize(126,200); //normal //gotoSlideSize = QSize(79,125); //small //gotoSlideSize = QSize(173,275); //big //gotoSlideSize = QSize(220,350); //huge zoomLevel = 0.5; adjustToWidth = true; flowType = Strip; fullScreen = false; fitToWidthRatio = 1; windowSize = QSize(0,0); maximized = false; doublePage = false; adjustToFullSize = false; backgroundColor = QColor(40,40,40); alwaysOnTop = false; //load from file QFile f(YACReader::getSettingsPath()+path); f.open(QIODevice::ReadOnly); QTextStream txtS(&f); QString content = txtS.readAll(); QStringList lines = content.split('\n'); QString line,name; int i=0; foreach(line,lines) { if((i%2)==0) { name = line.trimmed(); } else { if(name==PATH) defaultPath = line.trimmed(); else if(name==MAG_GLASS_SIZE) { QStringList values = line.split(','); magnifyingGlassSize = QSize(values[0].toInt(),values[1].toInt()); } else if(name==ZOOM_LEVEL) zoomLevel = line.toFloat(); else if(name==SLIDE_SIZE) { int height = line.toInt(); gotoSlideSize = QSize(static_cast(height/SLIDE_ASPECT_RATIO),height); } else if(name==FIT) adjustToWidth = line.toInt(); else if(name==FLOW_TYPE) flowType = (FlowType)line.toInt(); else if(name==FULLSCREEN) fullScreen = line.toInt(); else if(name==FIT_TO_WIDTH_RATIO) fitToWidthRatio = line.toFloat(); else if(name==Y_WINDOW_POS) { QStringList l = line.split(','); windowPos = QPoint(l[0].toInt(),l[1].toInt()); } else if(name==Y_WINDOW_SIZE) { QStringList l = line.split(','); windowSize = QSize(l[0].toInt(),l[1].toInt()); } else if(name==MAXIMIZED) maximized = line.toInt(); else if(name==DOUBLE_PAGE) doublePage = line.toInt(); else if(name==ADJUST_TO_FULL_SIZE) adjustToFullSize = line.toInt(); else if(name==BACKGROUND_COLOR) { QStringList l = line.split(','); backgroundColor = QColor(l[0].toInt(),l[1].toInt(),l[2].toInt()); } else if(name==ALWAYS_ON_TOP) alwaysOnTop = line.toInt(); } i++; } }