10 #include "RunGingaConfig.h"
11 #include "ui_RunGingaConfig.h"
14 #include <QFileDialog>
15 #include <QMessageBox>
17 #include <core/util/ComposerSettings.h>
18 using namespace composer::core::util;
23 RunGingaConfig::RunGingaConfig(QWidget *parent):
24 IPreferencesPage(parent), ui(new Ui::RunGingaConfig)
29 setTabOrder(ui->lineEdit_RemoteIP, ui->lineEdit_RemoteUser);
30 setTabOrder(ui->lineEdit_RemoteUser, ui->lineEdit_RemotePassword);
31 setTabOrder(ui->lineEdit_RemotePassword, ui->lineEdit_RemoteCmd);
32 setTabOrder(ui->lineEdit_RemoteCmd, ui->lineEdit_RemoteStopCmd);
34 initializeDefaultValues();
35 loadValuesFromSettings();
37 connect(ui->localginga_Group, SIGNAL(toggled(
bool)),
38 this, SLOT(changeToLocal(
bool)));
40 connect(ui->remotevm_Group, SIGNAL(toggled(
bool)),
41 this, SLOT(changeToRemote(
bool)));
43 connect(ui->pushButton_Browse, SIGNAL(pressed()),
44 this, SLOT(browseButtonPressed()));
46 ui->pushButton_Browse->setEnabled(
true);
49 RunGingaConfig::~RunGingaConfig()
54 void RunGingaConfig::initializeDefaultValues()
57 settings.beginGroup(
"runginga");
59 if(!settings.contains(
"remote_ip"))
60 settings.setValue(
"remote_ip",
"192.168.1.101");
62 if(!settings.contains(
"remote_user"))
63 settings.setValue(
"remote_user",
"root");
65 if(!settings.contains(
"remote_password"))
66 settings.setValue(
"remote_password",
"telemidia");
68 if(!settings.contains(
"remote_start_cmd"))
69 settings.setValue(
"remote_start_cmd",
"/misc/launcher.sh");
71 if(!settings.contains(
"remote_stop_cmd"))
72 settings.setValue(
"remote_stop_cmd",
"killall -9 ginga");
74 if(!settings.contains(
"remote_path"))
75 settings.setValue(
"remote_path",
"/misc/ncl30");
77 if(!settings.contains(
"run_remote"))
78 settings.setValue(
"run_remote",
false);
80 if(!settings.contains(
"local_ginga_cmd"))
81 settings.setValue(
"local_ginga_cmd",
"ginga");
83 if(!settings.contains(
"local_ginga_args"))
84 settings.setValue(
"local_ginga_args",
"--ncl\n${nclpath}");
89 void RunGingaConfig::setDefaultValues()
92 settings.remove(
"runginga/*");
95 void RunGingaConfig::loadValuesFromSettings()
98 settings.beginGroup(
"runginga");
100 ui->remotevm_Group->setChecked(settings.value(
"run_remote").toBool());
101 ui->localginga_Group->setChecked(!settings.value(
"run_remote").toBool());
104 ui->lineEdit_RemoteIP->setText(settings.value(
"remote_ip").toString());
105 ui->lineEdit_RemoteUser->setText(settings.value(
"remote_user").toString());
106 ui->lineEdit_RemotePassword->setText(settings.value(
"remote_password").toString());
107 ui->lineEdit_RemoteCmd->setText(settings.value(
"remote_start_cmd").toString());
108 ui->lineEdit_RemoteStopCmd->setText(settings.value(
"remote_stop_cmd").toString());
109 ui->lineEdit_RemotePath->setText(settings.value(
"remote_path").toString());
112 ui->lineEdit_local_Command->setText(settings.value(
"local_ginga_cmd").toString());
113 ui->plainTextEdit_local_Args->setPlainText(settings.value(
"local_ginga_args").toString());
117 void RunGingaConfig::applyValues()
121 settings.beginGroup(
"runginga");
122 settings.setValue(
"remote_ip", ui->lineEdit_RemoteIP->text());
123 settings.setValue(
"remote_user", ui->lineEdit_RemoteUser->text());
124 settings.setValue(
"remote_password", ui->lineEdit_RemotePassword->text());
125 settings.setValue(
"remote_start_cmd", ui->lineEdit_RemoteCmd->text());
126 settings.setValue(
"remote_stop_cmd", ui->lineEdit_RemoteStopCmd->text());
127 settings.setValue(
"remote_path", ui->lineEdit_RemotePath->text());
129 settings.setValue(
"run_remote", ui->remotevm_Group->isChecked());
131 settings.setValue(
"local_ginga_cmd", ui->lineEdit_local_Command->text());
132 settings.setValue(
"local_ginga_args",
133 ui->plainTextEdit_local_Args->toPlainText());
137 void RunGingaConfig::changeToLocal(
bool toLocal)
139 if(ui->remotevm_Group->isChecked() == toLocal)
140 ui->remotevm_Group->setChecked(!toLocal);
143 void RunGingaConfig::changeToRemote(
bool toRemote)
148 QMessageBox::warning(
this, tr(
"Error"),
149 tr(
"You can not enable remote because your system was not compiled with support for it!"));
155 if(ui->localginga_Group->isChecked() == toRemote)
156 ui->localginga_Group->setChecked(!toRemote);
159 void RunGingaConfig::browseButtonPressed()
161 QString gingaPath = QFileDialog::getOpenFileName(
this,
162 tr(
"Ginga executable location"),
163 ui->lineEdit_local_Command->text());
167 gingaPath = gingaPath.replace(
"\\",
"/");
169 ui->lineEdit_local_Command->setText(gingaPath);