mirror of
https://github.com/YACReader/yacreader
synced 2025-06-03 09:08:20 -04:00
149 lines
3.9 KiB
C++
149 lines
3.9 KiB
C++
#include "options_dialog.h"
|
|
#include <QVBoxLayout>
|
|
#include <QHBoxLayout>
|
|
#include <QFileDialog>
|
|
#include <QGroupBox>
|
|
#include <QRadioButton>
|
|
#include <QTextStream>
|
|
#include <QCoreApplication>
|
|
#include <QFile>
|
|
#include <QMessageBox>
|
|
|
|
PictureFlow::FlowType flowType = PictureFlow::Strip;
|
|
|
|
OptionsDialog::OptionsDialog(QWidget * parent)
|
|
:QDialog()
|
|
{
|
|
QVBoxLayout * layout = new QVBoxLayout(this);
|
|
|
|
accept = new QPushButton(tr("Save"));
|
|
cancel = new QPushButton(tr("Cancel"));
|
|
connect(accept,SIGNAL(clicked()),this,SLOT(saveOptions()));
|
|
connect(cancel,SIGNAL(clicked()),this,SLOT(restoreOptions()));
|
|
connect(cancel,SIGNAL(clicked()),this,SLOT(close()));
|
|
|
|
QGroupBox *groupBox = new QGroupBox(tr("How to show covers:"));
|
|
|
|
radio1 = new QRadioButton(tr("CoverFlow look"));
|
|
radio2 = new QRadioButton(tr("Stripe look"));
|
|
radio3 = new QRadioButton(tr("Overlapped Stripe look"));
|
|
|
|
|
|
QVBoxLayout *vbox = new QVBoxLayout;
|
|
QHBoxLayout * opt1 = new QHBoxLayout;
|
|
opt1->addWidget(radio1);
|
|
QLabel * lOpt1 = new QLabel();
|
|
lOpt1->setPixmap(QPixmap(":/images/flow1.png"));
|
|
opt1->addStretch();
|
|
opt1->addWidget(lOpt1);
|
|
vbox->addLayout(opt1);
|
|
|
|
QHBoxLayout * opt2 = new QHBoxLayout;
|
|
opt2->addWidget(radio2);
|
|
QLabel * lOpt2 = new QLabel();
|
|
lOpt2->setPixmap(QPixmap(":/images/flow2.png"));
|
|
opt2->addStretch();
|
|
opt2->addWidget(lOpt2);
|
|
vbox->addLayout(opt2);
|
|
|
|
QHBoxLayout * opt3 = new QHBoxLayout;
|
|
opt3->addWidget(radio3);
|
|
QLabel * lOpt3 = new QLabel();
|
|
lOpt3->setPixmap(QPixmap(":/images/flow3.png"));
|
|
opt3->addStretch();
|
|
opt3->addWidget(lOpt3);
|
|
vbox->addLayout(opt3);
|
|
|
|
|
|
//vbox->addStretch(1);
|
|
groupBox->setLayout(vbox);
|
|
|
|
QHBoxLayout * buttons = new QHBoxLayout();
|
|
buttons->addStretch();
|
|
buttons->addWidget(accept);
|
|
buttons->addWidget(cancel);
|
|
|
|
layout->addWidget(groupBox);
|
|
layout->addLayout(buttons);
|
|
|
|
setLayout(layout);
|
|
|
|
restoreOptions(); //load options
|
|
resize(200,0);
|
|
setModal (true);
|
|
setWindowTitle("Options");
|
|
}
|
|
|
|
void OptionsDialog::findFolder()
|
|
{
|
|
QString s = QFileDialog::getExistingDirectory(0,tr("Comics directory"),".");
|
|
if(!s.isEmpty())
|
|
{
|
|
pathEdit->setText(s);
|
|
}
|
|
}
|
|
|
|
void OptionsDialog::saveOptions()
|
|
{
|
|
QFile f(QCoreApplication::applicationDirPath()+"/YACReaderLibrary.conf");
|
|
if(!f.open(QIODevice::WriteOnly))
|
|
{
|
|
QMessageBox::critical(NULL,tr("Saving config file...."),tr("There was a problem saving YACReaderLibrary configuration. Please, check if you have enough permissions in the YACReader root folder."));
|
|
}
|
|
else
|
|
{
|
|
QTextStream txtS(&f);
|
|
if(radio1->isChecked())
|
|
{
|
|
txtS << "FLOW_TYPE" << "\n" << (int)PictureFlow::CoverFlowLike << "\n";
|
|
flowType = PictureFlow::CoverFlowLike;
|
|
}
|
|
if(radio2->isChecked())
|
|
{
|
|
txtS << "FLOW_TYPE" << "\n" << (int)PictureFlow::Strip << "\n";
|
|
flowType = PictureFlow::Strip;
|
|
}
|
|
if(radio3->isChecked())
|
|
{
|
|
txtS << "FLOW_TYPE" << "\n" << (int)PictureFlow::StripOverlapped << "\n";
|
|
flowType = PictureFlow::StripOverlapped;
|
|
}
|
|
f.close();
|
|
close();
|
|
emit(optionsChanged());
|
|
}
|
|
}
|
|
|
|
void OptionsDialog::restoreOptions()
|
|
{
|
|
QFile f(QCoreApplication::applicationDirPath()+"/YACReaderLibrary.conf");
|
|
if(f.exists())
|
|
{
|
|
f.open(QIODevice::ReadOnly);
|
|
QTextStream txtS(&f);
|
|
QString content = txtS.readAll();
|
|
|
|
QStringList lines = content.split('\n');
|
|
if(lines.count()>0){
|
|
QString name = lines.at(1);
|
|
|
|
switch(flowType=(PictureFlow::FlowType)name.toInt()){
|
|
case PictureFlow::CoverFlowLike:
|
|
radio1->setChecked(true);
|
|
break;
|
|
case PictureFlow::Strip:
|
|
radio2->setChecked(true);
|
|
break;
|
|
case PictureFlow::StripOverlapped:
|
|
radio3->setChecked(true);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
flowType=PictureFlow::Strip;
|
|
}
|
|
else
|
|
flowType=PictureFlow::Strip;
|
|
|
|
}
|