yacreader/YACReader/configuration.cpp
Felix Kauselmann 599f7ffcf3 Add a manga reading mode which displays image in reverse order in double page mode.
The mode is triggered by selecting the "21" double page icon next to the double page icon.
2014-06-29 21:38:00 +02:00

173 lines
4.1 KiB
C++

#include "configuration.h"
#include <QFile>
#include <QFile>
#include <QTextStream>
#include <QCoreApplication>
#include <QStringList>
#include <QMessageBox>
#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;
doubleMangaPage = 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();
}
if(name==MAG_GLASS_SIZE)
{
QStringList values = line.split(',');
magnifyingGlassSize = QSize(values[0].toInt(),values[1].toInt());
}
if(name==ZOOM_LEVEL)
{
zoomLevel = line.toFloat();
}
if(name==SLIDE_SIZE)
{
int height = line.toInt();
gotoSlideSize = QSize(static_cast<int>(height/SLIDE_ASPECT_RATIO),height);
}
if(name==FIT)
{
adjustToWidth = line.toInt();
}
if(name==FLOW_TYPE)
{
flowType = (FlowType)line.toInt();
}
if(name==FULLSCREEN)
{
fullScreen = line.toInt();
}
if(name==FIT_TO_WIDTH_RATIO)
{
fitToWidthRatio = line.toFloat();
}
if(name==Y_WINDOW_POS)
{
QStringList l = line.split(',');
windowPos = QPoint(l[0].toInt(),l[1].toInt());
}
if(name==Y_WINDOW_SIZE)
{
QStringList l = line.split(',');
windowSize = QSize(l[0].toInt(),l[1].toInt());
}
if(name==MAXIMIZED)
{
maximized = line.toInt();
}
if(name==DOUBLE_PAGE)
{
doublePage = line.toInt();
}
if(name==DOUBLE_MANGA_PAGE)
{
doubleMangaPage = line.toInt();
}
if(name==ADJUST_TO_FULL_SIZE)
{
adjustToFullSize = line.toInt();
}
if(name==BACKGROUND_COLOR)
{
QStringList l = line.split(',');
backgroundColor = QColor(l[0].toInt(),l[1].toInt(),l[2].toInt());
}
if(name==ALWAYS_ON_TOP)
{
alwaysOnTop = line.toInt();
}
}
i++;
}
}