RetroShare/plugins/i2pmessenger_plugin/gui/form_settingsgui.cpp
defnax 87344de7d4 added for plugins own dir
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1850 b45a01b8-16f6-495d-af2f-9b41ad6348cc
2009-11-28 14:21:11 +00:00

313 lines
12 KiB
C++

/***************************************************************************
* Copyright (C) 2008 by normal *
* normal@Desktop2 *
* *
* 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; either version 2 of the License, or *
* (at your option) any later version. *
* *
* 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; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "form_settingsgui.h"
form_settingsgui::form_settingsgui(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
setupUi(this);
this->setAttribute(Qt::WA_DeleteOnClose,true);
settings= new QSettings(QApplication::applicationDirPath()+"/application.ini",QSettings::IniFormat);
loadqss();
styleCombo->addItems(QStyleFactory::keys());
loadSettings();
connect(ok_Button, SIGNAL(clicked(bool) ),this,SLOT(saveSettings() ) );
connect(cancel_Button, SIGNAL(clicked(bool) ),this,SLOT(close() ) );
connect(cmd_openFile, SIGNAL(clicked(bool) ),this,SLOT(on_cmd_openFile()));
connect(cmd_openFile_2,SIGNAL(clicked(bool) ),this,SLOT(on_cmd_openFile2()));
connect(cmd_openFile_3,SIGNAL(clicked(bool) ),this,SLOT(on_cmd_openFile3()));
connect(cmd_openFile_4,SIGNAL(clicked(bool) ),this,SLOT(on_cmd_openFile4()));
connect(cmd_openFile_5,SIGNAL(clicked(bool) ),this,SLOT(on_cmd_openFile5()));
connect(cmd_openFile_6,SIGNAL(clicked(bool) ),this,SLOT(on_cmd_openFile6()));
}
form_settingsgui::~form_settingsgui()
{
delete (settings);
}
void form_settingsgui::loadSettings()
{
settings->beginGroup("General");
spinBox->setValue(settings->value("Debug_Max_Message_count","20").toInt());
spinBox_3->setValue(settings->value("Waittime_between_rechecking_offline_users","30000").toInt()/1000);
if(settings->value("current_Style","").toString().isEmpty()==false)
styleCombo->setCurrentIndex(styleCombo->findText(settings->value("current_Style","").toString()));
else
{
//find default Style for this System
QRegExp regExp("Q(.*)Style");
QString defaultStyle = QApplication::style()->metaObject()->className();
if (defaultStyle == QLatin1String("QMacStyle"))
defaultStyle = QLatin1String("Macintosh (Aqua)");
else if (regExp.exactMatch(defaultStyle))
defaultStyle = regExp.cap(1);
//styleCombo->addItems(QStyleFactory::keys());
styleCombo->setCurrentIndex(styleCombo->findText(defaultStyle));
}
styleSheetCombo->setCurrentIndex(styleSheetCombo->findText(settings->value("current_Style_sheet","Default").toString()));
settings->endGroup();
settings->beginGroup("Network");
lineEdit_3->setText(settings->value("SamHost","127.0.0.1").toString());
lineEdit_2->setText(settings->value("Destination","test").toString());
lineEdit->setText(settings->value("TunnelName","I2PChat").toString());
spinBox_10->setValue(settings->value("SamPort","7656").toInt());
spinBox_4->setMinimum(1);
spinBox_4->setValue(settings->value("inbound.length","1").toInt());
spinBox_4->setMaximum(3);
spinBox_5->setMinimum(0);
spinBox_5->setValue(settings->value("inbound.quantity","1").toInt());
spinBox_5->setMaximum(3);
spinBox_6->setMinimum(0);
spinBox_6->setValue(settings->value("inbound.backupQuantity","1").toInt());
spinBox_6->setMaximum(3);
spinBox_7->setMinimum(0);
spinBox_7->setValue(settings->value("outbound.backupQuantity","1").toInt());
spinBox_7->setMaximum(3);
spinBox_8->setMinimum(1);
spinBox_8->setValue(settings->value("outbound.length","1").toInt());
spinBox_8->setMaximum(3);
spinBox_9->setMinimum(0);
spinBox_9->setValue(settings->value("outbound.quantity","1").toInt());
spinBox_9->setMaximum(3);
settings->endGroup();
settings->beginGroup("Sound");
settings->beginGroup("SoundFilePath");
txt_SoundFile->setText(settings->value("User_go_Online","").toString());
txt_SoundFile2->setText(settings->value("User_go_Offline","").toString());
txt_SoundFile3->setText(settings->value("FileSend_Finished","").toString());
txt_SoundFile4->setText(settings->value("FileRecive_Incoming","").toString());
txt_SoundFile5->setText(settings->value("FileRecive_Finished","").toString());
txt_SoundFile6->setText(settings->value("NewChatMessage","").toString());
if(!txt_SoundFile->text().isEmpty())checkBoxSound->setEnabled(true);
if(!txt_SoundFile2->text().isEmpty())checkBoxSound_2->setEnabled(true);
if(!txt_SoundFile3->text().isEmpty())checkBoxSound_3->setEnabled(true);
if(!txt_SoundFile4->text().isEmpty())checkBoxSound_4->setEnabled(true);
if(!txt_SoundFile5->text().isEmpty())checkBoxSound_5->setEnabled(true);
if(!txt_SoundFile6->text().isEmpty())checkBoxSound_6->setEnabled(true);
settings->endGroup();
settings->beginGroup("Enable");
checkBoxSound->setChecked(settings->value("User_go_Online",false).toBool());
checkBoxSound_2->setChecked(settings->value("User_go_Offline",false).toBool());
checkBoxSound_3->setChecked(settings->value("FileSend_Finished",false).toBool());
checkBoxSound_4->setChecked(settings->value("FileRecive_Incoming",false).toBool());
checkBoxSound_5->setChecked(settings->value("FileRecive_Finished",false).toBool());
checkBoxSound_6->setChecked(settings->value("NewChatMessage",false).toBool());
settings->endGroup();
settings->endGroup();
}
void form_settingsgui::saveSettings()
{
QString SessionOptionString;
QString temp;
SessionOptionString="inbound.nickname="+lineEdit->text();
SessionOptionString+=" inbound.quantity=";
temp.setNum(spinBox_5->value());
SessionOptionString+=temp;
SessionOptionString+=" inbound.backupQuantity=";
temp.setNum(spinBox_6->value());
SessionOptionString+=temp;
SessionOptionString+=" inbound.length=";
temp.setNum(spinBox_4->value());
SessionOptionString+=temp;
SessionOptionString+=" outbound.quantity=";
temp.setNum(spinBox_9->value());
SessionOptionString+=temp;
SessionOptionString+=" outbound.backupQuantity=";
temp.setNum(spinBox_7->value());
SessionOptionString+=temp;
SessionOptionString+=" outbound.length=";
temp.setNum(spinBox_8->value());
SessionOptionString+=temp;
settings->beginGroup("General");
settings->setValue("Debug_Max_Message_count",spinBox->value());
settings->setValue("Waittime_between_rechecking_offline_users",spinBox_3->value()*1000);
settings->setValue("current_Style",styleCombo->currentText());
settings->setValue("current_Style_sheet",styleSheetCombo->currentText());
settings->endGroup();
settings->beginGroup("Network");
settings->setValue("SamHost",lineEdit_3->text());
settings->setValue("Destination",lineEdit_2->text());
settings->setValue("TunnelName",lineEdit->text());
settings->setValue("SamPort",spinBox_10->value());
//Inbound options
settings->setValue("inbound.quantity",spinBox_5->value());
settings->setValue("inbound.backupQuantity",spinBox_6->value());
settings->setValue("inbound.length",spinBox_4->value());
//Outpound options
settings->setValue("outbound.quantity",spinBox_9->value());
settings->setValue("outbound.backupQuantity",spinBox_7->value());
settings->setValue("outbound.length",spinBox_8->value());
settings->setValue("SessionOptionString",SessionOptionString);
settings->endGroup();
settings->beginGroup("Sound");
settings->beginGroup("Enable");
settings->setValue("User_go_Online",checkBoxSound->isChecked());
settings->setValue("User_go_Offline",checkBoxSound_2->isChecked());
settings->setValue("FileSend_Finished",checkBoxSound_3->isChecked());
settings->setValue("FileRecive_Incoming",checkBoxSound_4->isChecked());
settings->setValue("FileRecive_Finished",checkBoxSound_5->isChecked());
settings->setValue("NewChatMessage",checkBoxSound_6->isChecked());
settings->endGroup();
settings->beginGroup("SoundFilePath");
settings->setValue("User_go_Online",txt_SoundFile->text());
settings->setValue("User_go_Offline",txt_SoundFile2->text());
settings->setValue("FileSend_Finished",txt_SoundFile3->text());
settings->setValue("FileRecive_Incoming",txt_SoundFile4->text());
settings->setValue("FileRecive_Finished",txt_SoundFile5->text());
settings->setValue("NewChatMessage",txt_SoundFile6->text());
settings->endGroup();
settings->endGroup();
this->close();
}
void form_settingsgui::on_styleCombo_activated(const QString &styleName)
{
qApp->setStyle(styleName);
}
void form_settingsgui::on_styleSheetCombo_activated(const QString &sheetName)
{
loadStyleSheet(sheetName);
}
void form_settingsgui::loadStyleSheet(const QString &sheetName)
{
// external Stylesheets
QFile file(QApplication::applicationDirPath() + "/qss/" + sheetName.toLower() + ".qss");
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qApp->setStyleSheet(styleSheet);
}
void form_settingsgui::loadqss()
{
QFileInfoList slist = QDir(QApplication::applicationDirPath() + "/qss/").entryInfoList();
foreach(QFileInfo st, slist)
{
if(st.fileName() != "." && st.fileName() != ".." && st.isFile())
styleSheetCombo->addItem(st.fileName().remove(".qss"));
}
}
////FilePath=QFileDialog::getOpenFileName(this,"Open File", ".", "all Files (*.*)");
void form_settingsgui::on_cmd_openFile()
{
txt_SoundFile->setText(QFileDialog::getOpenFileName(this,"Open File", ".", "wav (*.wav)"));
if(txt_SoundFile->text().isEmpty()){
checkBoxSound->setChecked(false);
checkBoxSound->setEnabled(false);
}
else
checkBoxSound->setEnabled(true);
}
void form_settingsgui::on_cmd_openFile2()
{
txt_SoundFile2->setText(QFileDialog::getOpenFileName(this,"Open File", ".", "wav (*.wav)"));
if(txt_SoundFile2->text().isEmpty()){
checkBoxSound_2->setChecked(false);
checkBoxSound_2->setEnabled(false);
}
else
checkBoxSound_2->setEnabled(true);
}
void form_settingsgui::on_cmd_openFile3()
{
txt_SoundFile3->setText(QFileDialog::getOpenFileName(this,"Open File", ".", "wav (*.wav)"));
if(txt_SoundFile3->text().isEmpty()){
checkBoxSound_3->setChecked(false);
checkBoxSound_3->setEnabled(false);
}
else
checkBoxSound_3->setEnabled(true);
}
void form_settingsgui::on_cmd_openFile4()
{
txt_SoundFile4->setText(QFileDialog::getOpenFileName(this,"Open File", ".", "wav (*.wav)"));
if(txt_SoundFile4->text().isEmpty()){
checkBoxSound_4->setChecked(false);
checkBoxSound_4->setEnabled(false);
}
else
checkBoxSound_4->setEnabled(true);
}
void form_settingsgui::on_cmd_openFile5()
{
txt_SoundFile5->setText(QFileDialog::getOpenFileName(this,"Open File", ".", "wav (*.wav)"));
if(txt_SoundFile5->text().isEmpty()){
checkBoxSound_5->setChecked(false);
checkBoxSound_5->setEnabled(false);
}
else
checkBoxSound_5->setEnabled(true);
}
void form_settingsgui::on_cmd_openFile6()
{
txt_SoundFile6->setText(QFileDialog::getOpenFileName(this,"Open File", ".", "wav (*.wav)"));
if(txt_SoundFile6->text().isEmpty()){
checkBoxSound_6->setChecked(false);
checkBoxSound_6->setEnabled(false);
}
else
checkBoxSound_6->setEnabled(true);
}