/* Marcion
Copyright (C) 2009 - 2011 Milan Konvicka
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program */
#include "settings.h"
//
#define WRITETOCFG(STRING) \
if(writecfgline(f,STRING)==-1) \
{\
messages->MsgErr(QObject::tr("cannnot write into file"));\
f.close();\
return;\
}
CSettings * _m_sett(0);
void set_m_sett(CSettings *s){_m_sett=s;}
CSettings * m_sett(){return _m_sett;}
QString CSettings::marcDir=QString();
QString CSettings::_cfgfile("config.txt");
MBuildConfig * CSettings::wiz(0);
CSettings::CSettings( CMessages * messages,
QMdiArea ** const mdi,
QWidget * parent, Qt::WFlags f)
: QWidget(parent, f),
messages(messages),mdi(mdi),
ifmts(),
iffilters("image ("),ifcmp()
{
setupUi(this);
QList<QByteArray> l=QImageReader::supportedImageFormats();
for(int x=0;x<l.count();x++)
{
QByteArray i=l.at(x).toLower();
if(!ifmts.contains(i))
ifmts.append(i);
}
for(int x=0;x<ifmts.count();x++)
iffilters.append("*."+ifmts.at(x)+" ");
iffilters.chop(1);
iffilters.append(")");
for(int x=0;x<ifmts.count();x++)
ifcmp.append("\\."+ifmts.at(x)+"$|");
ifcmp.chop(1);
on_btRestoreCfg_clicked();
}
//
void CSettings::on_btSaveCfg_clicked()
{
messages->MsgMsg(tr("writing \"")+_cfgfile+"\" ...");
QFile f(_cfgfile);
if(!f.open(QIODevice::WriteOnly))
{
messages->MsgErr(tr("cannot open file '")+_cfgfile+"'");
return;
}
WRITETOCFG(QString::number(cmbGUILang->currentIndex()))
WRITETOCFG(cmbAppFont->currentFont().family())
WRITETOCFG(QString::number(spnAppFontSize->value()))
WRITETOCFG(QString::number((short)cbAppFont->isChecked()))
WRITETOCFG(QString::number(spnIcSize->value()))
WRITETOCFG(QString::number(spnIcSizeT->value()))
WRITETOCFG(QString::number((short)cbAppFonts->isChecked()))
WRITETOCFG(QString::number((short)cbCopticEditable->isChecked()))
WRITETOCFG(txtBkg->text())
WRITETOCFG(txtDefaultBrowser->text())
WRITETOCFG(wgetCmd())
WRITETOCFG(cmbHebrewFont->currentFont().family())
WRITETOCFG(QString::number(spnHebrewFontSize->value()))
WRITETOCFG(cmbLatinFont->currentFont().family())
WRITETOCFG(QString::number(spnLatinFontSize->value()))
WRITETOCFG(cmbCoptFont->currentFont().family())
WRITETOCFG(QString::number(spnCoptFontSize->value()))
WRITETOCFG(cmbGrkFont->currentFont().family())
WRITETOCFG(QString::number(spnGrkFontSize->value()))
WRITETOCFG(QString::number((short)cbTLG->isChecked()))
WRITETOCFG(tlgGreekFont().family())
WRITETOCFG(QString::number(tlgGreekFontSize()))
WRITETOCFG(tlgCopticFont().family())
WRITETOCFG(QString::number(tlgCopticFontSize()))
WRITETOCFG(tlgHebrewFont().family())
WRITETOCFG(QString::number(tlgHebrewFontSize()))
WRITETOCFG(txtDir1->text())
WRITETOCFG(txtDir2->text())
WRITETOCFG(txtDir3->text())
//WRITETOCFG(txtLibPath->text())
WRITETOCFG(txtUser->text())
WRITETOCFG(txtPwd->text())
WRITETOCFG(txtHost->text())
WRITETOCFG(txtPort->text())
WRITETOCFG(txtDb->text())
WRITETOCFG(border())
WRITETOCFG(padding())
WRITETOCFG(spacing())
WRITETOCFG(nick())
WRITETOCFG(HTbgColor())
WRITETOCFG(HTfgColor())
WRITETOCFG(bt.values())
WRITETOCFG(br.values())
WRITETOCFG(lsr.values())
WRITETOCFG(swishCmd())
WRITETOCFG(QString::number((short)cbClipScan->isChecked()))
WRITETOCFG(QString::number((short)cbTray->isChecked()))
WRITETOCFG(ccPen->bgColor())
WRITETOCFG(ccFill->bgColor())
WRITETOCFG(QString::number(spnSelBorder->value()))
WRITETOCFG(QString::number(spnOpacity->value()))
f.close();
messages->MsgOk();
messages->MsgInf(tr("Configuration updated."));
}
void CSettings::on_btRestoreCfg_clicked()
{
if(!QFile::exists(_cfgfile))
{
messages->MsgInf("'"+_cfgfile+tr("' does not exist, creating new one ..."));
QFile nf(_cfgfile);
if(!nf.open(QIODevice::WriteOnly))
{
messages->MsgErr(tr("cannot open file '")+_cfgfile+tr("' for writing"));
return;
}
else
{
if(nf.write(QString((wiz?QString::number(wiz->language()):"0")+"\n"+(wiz?wiz->appFont().family():QApplication::font().family())+"\n"+(wiz?QString::number(wiz->appFont().pointSize()):"15")+"\n"+(wiz?QString::number((short)wiz->useAppFont()):"0")+"\n24\n32\n1\n0\nicons/background/smalllogo.png\n(default)\n(default)\nEzra SIL\n20\nNew Athena Unicode\n15\nNew Athena Unicode\n15\nNew Athena Unicode\n15\n"+(wiz?QString::number(wiz->isTlgEnabled()):"0")+"\nNew Athena Unicode\n16\nNew Athena Unicode\n16\nEzra SIL\n20\n"+(wiz?wiz->dir1():QString())+"\n"+(wiz?wiz->dir2():QString())+"\n"+(wiz?wiz->dir3():QString())+"\nvagrant\nvagrant5vagrant\nSQL09.FREEMYSQL.NET\n3306\nmarcion\n1\n0\n0\nsomeone\nyellow\nblack\nleft;#006600;1;0;0\ncenter;#CCFFFF;top;#FFFFFF;left\ncenter;#993399;1;0;0;top;#99FFFF;top;#99FF99;top;#FFFFCC;3;1;top\n(default)\n"+(wiz?QString::number((short)wiz->scanClipboard()):"0")+"\n"+(wiz?QString::number((short)wiz->trayIcon()):"1")+"\nblack\nblack\n3\n25\n").toUtf8())==-1)
{
messages->MsgErr(tr("cannot write into file '")+_cfgfile+"'");
nf.close();
return;
}
nf.close();
messages->MsgOk();
}
}
messages->MsgMsg(tr("reading '")+_cfgfile+"' ...");
QFile f(_cfgfile);
if(!f.open(QIODevice::ReadOnly))
{
messages->MsgErr(tr("cannot open file '")+_cfgfile+"'");
return;
}
cmbGUILang->setCurrentIndex(readcfgline(f).toInt());
QFont cf;
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
blockSignals(true);
cmbAppFont->setCurrentFont(cf);
spnAppFontSize->setValue(cf.pointSize());
cbAppFont->setChecked((bool)readcfgline(f).toShort());
on_cbAppFont_clicked(cbAppFont->isChecked());
blockSignals(false);
spnIcSize->setValue(readcfgline(f).toShort());
spnIcSizeT->setValue(readcfgline(f).toShort());
cbAppFonts->setChecked((bool)readcfgline(f).toShort());
if(cbAppFonts->isChecked())
loadAppFonts();
cbCopticEditable->setChecked((bool)readcfgline(f).toShort());
txtBkg->setText(readcfgline(f));
txtDefaultBrowser->setText(readcfgline(f));
txtWget->setText(readcfgline(f));
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
cmbHebrewFont->setCurrentFont(cf);
spnHebrewFontSize->setValue(cf.pointSize());
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
cmbLatinFont->setCurrentFont(cf);
spnLatinFontSize->setValue(cf.pointSize());
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
cmbCoptFont->setCurrentFont(cf);
spnCoptFontSize->setValue(cf.pointSize());
QFont gf;
gf.setFamily(readcfgline(f));
gf.setPointSize(readcfgline(f).toInt());
cmbGrkFont->setCurrentFont(gf);
spnGrkFontSize->setValue(gf.pointSize());
cbTLG->setChecked((bool)readcfgline(f).toShort());
on_cbTLG_toggled(cbTLG->isChecked());
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
fntTlgGreek->setCurrentFont(cf);
spnGreekSize->setValue(cf.pointSize());
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
fntTlgCoptic->setCurrentFont(cf);
spnCopticSize->setValue(cf.pointSize());
cf.setFamily(readcfgline(f));
cf.setPointSize(readcfgline(f).toInt());
fntTlgHebrew->setCurrentFont(cf);
spnHebrewSize->setValue(cf.pointSize());
txtDir1->setText(readcfgline(f));
txtDir2->setText(readcfgline(f));
txtDir3->setText(readcfgline(f));
//txtLibPath->setText(readcfgline(f));
txtUser->setText(readcfgline(f));
txtPwd->setText(readcfgline(f));
txtHost->setText(readcfgline(f));
txtPort->setText(readcfgline(f));
txtDb->setText(readcfgline(f));
spnBorder->setValue(readcfgline(f).toInt());
spnPadding->setValue(readcfgline(f).toInt());
spnSpacing->setValue(readcfgline(f).toInt());
txtNick->setText(readcfgline(f));
HLTextChooser->init(readcfgline(f), readcfgline(f), tr("highlighted text"));
if(!bt.init(CTblDesigner::BookT,readcfgline(f).trimmed()))
messages->MsgErr("'"+_cfgfile+tr("' is corrupted"));
else
{
bt.createHtml();
txtLibTbl->setText(bt.html());
}
if(!br.init(CTblDesigner::BookR,readcfgline(f).trimmed()))
messages->MsgErr("'"+_cfgfile+tr("' is corrupted"));
else
{
br.createHtml();
txtLibVrs->setText(br.html());
}
if(!lsr.init(CTblDesigner::LibSearch,readcfgline(f).trimmed()))
messages->MsgErr("'"+_cfgfile+tr("' is corrupted"));
else
{
lsr.createHtml();
txtLibSResTbl->setText(lsr.html());
}
txtSwish->setText(readcfgline(f));
cbClipScan->setChecked((bool)readcfgline(f).toShort());
cbTray->setChecked((bool)readcfgline(f).toShort());
ccPen->init("white",readcfgline(f),tr("border color"),true);
ccFill->init("white",readcfgline(f),tr("fill color"),true);
spnSelBorder->setValue(readcfgline(f).toInt());
spnOpacity->setValue(readcfgline(f).toInt());
f.close();
messages->MsgOk();
}
int CSettings::writecfgline(QFile & f, QString str)
{
return f.write(str.toUtf8()+'\n');
/*char s[255];
int x;
for(x=0;x<=str.length();x++)
s[x]=str[x].toAscii();
s[x]=0;
int r=fputs(s,f);
fputs("\n",f);
if(r==EOF)
return false;
else
return true; */
}
QString CSettings::readcfgline(QFile & f) const
{
char l[2048];
if(f.readLine(l,2048)==0)
{
messages->MsgErr(tr("cannot read from file '")+f.fileName()+"'");
return QString();
}
return QString::fromUtf8(l).remove('\n');
}
QString CSettings::readcfgline_st(QFile & f)
{
char l[2048];
if(f.readLine(l,2048)==0)
{
OSTREAM << tr("cannot read from file '")+f.fileName()+"'\n";
OSTREAM.flush();
QMessageBox(QMessageBox::Critical,tr("load application font"),tr("cannot read from file '")+f.fileName()+"'\n",QMessageBox::Close);
QApplication::processEvents();
return QString();
}
return QString::fromUtf8(l).remove('\n');
}
QString CSettings::wgetCmd() const
{
QString cmd(txtWget->text());
if(cmd=="(default)")
#ifdef Q_WS_WIN
return "\"C:\\Program Files\\GnuWin32\\bin\\wget\"";
#else
return "wget";
#endif
else
return cmd;
}
QString CSettings::swishCmd() const
{
QString cmd(txtSwish->text());
if(cmd=="(default)")
#ifdef Q_WS_WIN
return "\"C:\\SWISH-E\\bin\\swish-e\"";
#else
return "swish-e";
#endif
else
return cmd;
}
QFont CSettings::appFont() const
{
return cmbAppFont->currentFont();
}
int CSettings::appFontSize() const
{
return spnAppFontSize->value();
}
QFont CSettings::copticFont() const
{
return cmbCoptFont->currentFont();
}
int CSettings::copticFontSize() const
{
return spnCoptFontSize->value();
}
QFont CSettings::greekFont() const
{
return cmbGrkFont->currentFont();
}
int CSettings::greekFontSize() const
{
return spnGrkFontSize->value();
}
QFont CSettings::latinFont() const
{
return cmbLatinFont->currentFont();
}
int CSettings::latinFontSize() const
{
return spnLatinFontSize->value();
}
QFont CSettings::hebrewFont() const
{
return cmbHebrewFont->currentFont();
}
int CSettings::hebrewFontSize() const
{
return spnHebrewFontSize->value();
}
void CSettings::chooseTlgDir(QLineEdit * lineedit,QString const & caption)
{
QFileDialog fd(this,caption,lineedit->text());
fd.setFileMode(QFileDialog::Directory);
if(fd.exec()==QDialog::Accepted)
lineedit->setText(fd.selectedFiles().first());
}
void CSettings::on_btDir1_clicked()
{
chooseTlgDir(txtDir1,"TLG-E");
}
void CSettings::on_btDir2_clicked()
{
chooseTlgDir(txtDir2,"PHI-5");
}
void CSettings::on_btDir3_clicked()
{
chooseTlgDir(txtDir3,"PHI-7");
}
QFont CSettings::bFont(CTranslit::Script script) const
{
QFont f;
switch(script)
{
case CTranslit::Copt :
{
f=copticFont();
f.setPointSize(copticFontSize());
break;
}
case CTranslit::Greek :
{
f=greekFont();
f.setPointSize(greekFontSize());
break;
}
case CTranslit::Latin :
{
f=latinFont();
f.setPointSize(latinFontSize());
break;
}
case CTranslit::Hebrew :
{
f=hebrewFont();
f.setPointSize(hebrewFontSize());
break;
}
}
return f;
}
QFont CSettings::font(CTranslit::Script script) const
{
switch(script)
{
case CTranslit::Copt :
{
return copticFont();
break;
}
case CTranslit::Greek :
{
return greekFont();
break;
}
case CTranslit::Latin :
{
return latinFont();
break;
}
case CTranslit::Hebrew :
{
return hebrewFont();
break;
}
}
return greekFont();
}
int CSettings::fontSize(CTranslit::Script script) const
{
switch(script)
{
case CTranslit::Copt :
{
return copticFontSize();
break;
}
case CTranslit::Greek :
{
return greekFontSize();
break;
}
case CTranslit::Latin :
{
return latinFontSize();
break;
}
case CTranslit::Hebrew :
{
return hebrewFontSize();
break;
}
}
return greekFontSize();
}
/*void CSettings::on_btLibPathChoose_clicked()
{
QFileDialog fd(this,"library path",txtLibPath->text());
fd.setAcceptMode(QFileDialog::AcceptOpen);
fd.setFileMode(QFileDialog::DirectoryOnly);
if(fd.exec()==QDialog::Accepted)
txtLibPath->setText(fd.selectedFiles().first()+"/");
}*/
void CSettings::on_btAppFonts_clicked()
{
loadAppFonts();
}
bool CSettings::loadAppFonts()
{
messages->MsgMsg(tr("loading font 'New Athena Unicode' from file 'fonts/newathu.ttf' ..."));
if(QFontDatabase::addApplicationFont(QDir::toNativeSeparators("fonts/newathu.ttf"))==-1)
{
messages->MsgErr(tr("cannot load font"));
return false;
}
messages->MsgMsg(tr("loading font 'EZRA SIL' from file 'fonts/SILEOT.ttf' ..."));
if(QFontDatabase::addApplicationFont(QDir::toNativeSeparators("fonts/SILEOT.ttf"))==-1)
{
messages->MsgErr(tr("cannot load font"));
return false;
}
messages->MsgMsg(tr("loading font 'SP Tiberi' from file 'fonts/SPTiberi.ttf' ..."));
if(QFontDatabase::addApplicationFont(QDir::toNativeSeparators("fonts/SPTiberi.ttf"))==-1)
{
messages->MsgErr(tr("cannot load font"));
return false;
}
messages->MsgMsg(tr("loading font 'SP Achmim' from file 'fonts/SPAchmim.ttf' ..."));
if(QFontDatabase::addApplicationFont(QDir::toNativeSeparators("fonts/SPAchmim.ttf"))==-1)
{
messages->MsgErr(tr("cannot load font"));
return false;
}
messages->MsgOk();
return true;
}
void CSettings::on_btBkg_clicked()
{
QFileDialog fd(this,tr("background image"),QDir::toNativeSeparators("icons/background"),"all (*)");
fd.setAcceptMode(QFileDialog::AcceptOpen);
fd.setFileMode(QFileDialog::ExistingFile);
if(fd.exec()==QDialog::Accepted)
{
if(fd.selectedFiles().count()>0)
{
QString f(fd.selectedFiles().first());
txtBkg->setText(f);
loadBackground();
}
}
}
void CSettings::loadBackground()
{
mdiArea()->setBackground(QBrush(QImage(background())));
}
void CSettings::on_cbCopticEditable_clicked()
{
emit copticEditModeChanged(cbCopticEditable->isChecked());
}
void CSettings::on_cmbCoptFont_currentFontChanged(QFont f)
{
f.setPointSize(spnCoptFontSize->value());
emit fontChanged(CTranslit::Copt,f);
}
void CSettings::on_spnCoptFontSize_valueChanged(int value)
{
QFont f(cmbCoptFont->currentFont());
f.setPointSize(value);
emit fontChanged(CTranslit::Copt,f);
}
void CSettings::on_cmbLatinFont_currentFontChanged(QFont f)
{
f.setPointSize(spnLatinFontSize->value());
emit fontChanged(CTranslit::Latin,f);
}
void CSettings::on_spnLatinFontSize_valueChanged(int value)
{
QFont f(cmbLatinFont->currentFont());
f.setPointSize(value);
emit fontChanged(CTranslit::Latin,f);
}
void CSettings::on_cmbGrkFont_currentFontChanged(QFont f)
{
f.setPointSize(spnGrkFontSize->value());
emit fontChanged(CTranslit::Greek,f);
}
void CSettings::on_spnGrkFontSize_valueChanged(int value)
{
QFont f(cmbGrkFont->currentFont());
f.setPointSize(value);
emit fontChanged(CTranslit::Greek,f);
}
void CSettings::on_cmbHebrewFont_currentFontChanged(QFont f)
{
f.setPointSize(spnHebrewFontSize->value());
emit fontChanged(CTranslit::Hebrew,f);
}
void CSettings::on_spnHebrewFontSize_valueChanged(int value)
{
QFont f(cmbHebrewFont->currentFont());
f.setPointSize(value);
emit fontChanged(CTranslit::Hebrew,f);
}
QColor CSettings::HTfgC() const
{
return HLTextChooser->fgC();
}
QColor CSettings::HTbgC() const
{
return HLTextChooser->bgC();
}
QString CSettings::HTfgColor() const
{
return HLTextChooser->fgColor();
}
QString CSettings::HTbgColor() const
{
return HLTextChooser->bgColor();
}
QString CSettings::bookTblTemplate() const
{
return txtLibTbl->text();
}
QString CSettings::bookRowTemplate() const
{
return txtLibVrs->text();
}
QString CSettings::libsearchresTblTemplate() const
{
return txtLibSResTbl->text();
}
void CSettings::on_cmbAppFont_currentFontChanged(QFont f)
{
f.setPointSize(spnAppFontSize->value());
emit settingsChanged(AppFont);
}
void CSettings::on_spnAppFontSize_valueChanged(int newv)
{
QFont f(cmbAppFont->currentFont());
f.setPointSize(newv);
emit settingsChanged(AppFont);
}
bool CSettings::extraAppFont() const
{
return cbAppFont->isChecked();
}
void CSettings::on_cbAppFont_clicked(bool checked)
{
cmbAppFont->setEnabled(checked);
spnAppFontSize->setEnabled(checked);
emit settingsChanged(AppFont);
}
bool CSettings::readAppFont(QTranslator* qtTr, int & lang,QFont & appf,bool & interrupted)
{
if(!QFile::exists(_cfgfile))
{
OSTREAM << tr("file '")+_cfgfile+tr("' does not exist, invoking wizard ...\n");
OSTREAM.flush();
if(!CSettings::wiz)
CSettings::wiz=new MBuildConfig(qtTr,marcDir);
CSettings::wiz->exec();
interrupted=wiz->isInterrupted();
lang=wiz->language();
appf=wiz->appFont();
/*QMessageBox(QMessageBox::Warning,"load application font","'config.txt' does not exist,\nloading of extra application font skipped",QMessageBox::Close);
QApplication::processEvents();*/
return wiz->useAppFont();
}
OSTREAM << tr("reading '")+_cfgfile+"' ...\n";
QFile f(_cfgfile);
if(!f.open(QIODevice::ReadOnly))
{
OSTREAM << tr("cannot open file '")+_cfgfile+tr("', loading of extra application font skipped\n");
OSTREAM.flush();
QMessageBox(QMessageBox::Critical,tr("load application font"),tr("cannot open file '")+_cfgfile+tr("',\nloading of extra application font skipped"),QMessageBox::Close);
QApplication::processEvents();
return false;
}
lang=readcfgline_st(f).toInt();
QFont cf;
cf.setFamily(readcfgline_st(f));
cf.setPointSize(readcfgline_st(f).toInt());
bool af=(bool)readcfgline_st(f).toShort();
f.close();
appf=cf;
return af;
}
void CSettings::on_btTblD1_clicked()
{
if(bt.exec()==QDialog::Accepted)
txtLibTbl->setText(bt.html());
}
void CSettings::on_btTblD2_clicked()
{
if(br.exec()==QDialog::Accepted)
txtLibVrs->setText(br.html());
}
void CSettings::on_btTblD2_2_clicked()
{
if(lsr.exec()==QDialog::Accepted)
txtLibSResTbl->setText(lsr.html());
}
void CSettings::on_btChooseWget_clicked()
{
QFileDialog d(this,tr("wget executable"));
d.setFileMode(QFileDialog::ExistingFile);
//d.setFilter(QDir::Executable);
if(d.exec()==QDialog::Accepted)
{
if(d.selectedFiles().count()>0)
txtWget->setText(QString("\""+d.selectedFiles().first()+"\""));
}
}
void CSettings::on_btChooseSwish_clicked()
{
QFileDialog d(this,tr("swish-e executable"));
d.setFileMode(QFileDialog::ExistingFile);
//d.setFilter(QDir::Executable);
if(d.exec()==QDialog::Accepted)
{
if(d.selectedFiles().count()>0)
txtSwish->setText(QString("\""+d.selectedFiles().first()+"\""));
}
}
void CSettings::on_btBrowser_clicked()
{
QFileDialog d(this,tr("default web browser"));
d.setFileMode(QFileDialog::ExistingFile);
//d.setFilter(QDir::Executable);
if(d.exec()==QDialog::Accepted)
{
if(d.selectedFiles().count()>0)
{
txtDefaultBrowser->setText(QString("\""+d.selectedFiles().first()+"\""));
}
}
}
QSize CSettings::iconsSize(bool toolbars) const
{
int s=(toolbars?spnIcSizeT->value():spnIcSize->value());
return QSize(s,s);
}
void CSettings::setIcSizes(QWidget const & widget,int size) const
{
QList<QAbstractButton*> wl(widget.findChildren<QAbstractButton*>());
QSize s(size==0?iconsSize(false):QSize(size,size));
QAbstractButton * b;
foreach(b,wl)
b->setIconSize(s);
}
void CSettings::on_btUseIcSize_clicked()
{
emit resizeIcons(false);
}
void CSettings::on_btUseIcSizeT_clicked()
{
emit resizeIcons(true);
}
void CSettings::on_btDefaults_clicked()
{
if(wiz)
{
delete wiz;
wiz=0;
}
_cfgfile=QString("config-defaults.txt");
on_btRestoreCfg_clicked();
_cfgfile=QString("config.txt");
}
void CSettings::on_btDefBr_clicked()
{
txtDefaultBrowser->setText("(default)");
}
void CSettings::execBrowser(QUrl const & url)
{
QString browser(txtDefaultBrowser->text());
if(browser=="(default)")
{
messages->MsgMsg(tr("opening ")+url.toString()+tr(" in default browser ..."));
QDesktopServices::openUrl(url);
}
else
{
QString cmd(browser+" "+url.toString());
QProcess * p=new QProcess();
messages->MsgMsg(tr("executing command '")+url.toString()+"' ...");
p->start(cmd);
}
}
// MClean
bool prevent_close(false);
bool & preventClose()
{
return prevent_close;
}
MClean::MClean()
: _cursor(false)
{
}
/*MClean::MClean(QFile * const file)
: _cursor(false),_file(file)
{
}*/
MClean::~MClean()
{
if(_cursor)
QApplication::restoreOverrideCursor();
/*if(_file)
if(_file->isOpen())
_file->close();*/
}
void MClean::setWaitCursor()
{
if(!_cursor)
{
QApplication::setOverrideCursor(Qt::WaitCursor);
_cursor=true;
}
}
void MClean::setBusyCursor()
{
if(!_cursor)
{
QApplication::setOverrideCursor(Qt::BusyCursor);
_cursor=true;
}
}
void CSettings::on_cbTLG_toggled(bool checked)
{
wdgTLG->setEnabled(checked);
}
int CSettings::imgSelBorderWidth() const
{
return spnSelBorder->value();
}
int CSettings::imgSelFillOpacity() const
{
return spnOpacity->value();
}
QColor CSettings::imgSelBorderColor() const
{
return ccPen->bgC();
}
QColor CSettings::imgSelFillColor() const
{
return ccFill->bgC();
}