18 #include <QFileDialog>
19 #include <QButtonGroup>
28 QObject::connect(ChooseDir, SIGNAL(clicked()),
this, SLOT(
SelectDir()));
29 QObject::connect(ChooseExc, SIGNAL(clicked()),
this, SLOT(
SelectProg()));
31 QObject::connect(ExeModeCombo, SIGNAL(currentIndexChanged(
int)),
this, SLOT(
ExeMode_changed(
int)));
33 setObjectName(
"Go4StartClient");
38 rsh_selected->setEnabled(
false);
39 ssh_selected->setEnabled(
false);
42 xterm_selected->setEnabled(
false);
43 konsole_selected->setEnabled(
false);
45 LineEditClientNode->setEnabled(
false);
69 if (LineEditClientDir->text().isEmpty())
70 LineEditClientDir->setText(QDir::currentPath());
75 if (mode == 1) mode = 2;
77 QModelIndex index = ServerModeCombo->model()->index(1, 0);
81 ServerModeCombo->model()->setData(index, v, Qt::UserRole - 1);
83 qt_selected->setEnabled(mode!=1);
89 ServerModeCombo->setCurrentIndex(mode);
90 PortNumber->setEnabled(mode == 2);
117 QFileDialog fd(
this,
"Select your working directory");
118 fd.setOption(QFileDialog::ShowDirsOnly,
true);
119 fd.setFileMode(QFileDialog::Directory);
121 #if QT_VERSION >= QT_VERSION_CHECK(4,6,0)
122 fd.setOption(QFileDialog::DontUseNativeDialog);
125 QString dir = LineEditClientDir->text();
126 if (dir.isEmpty() || !QDir(dir).exists())
127 dir = QDir::currentPath();
128 fd.setDirectory(dir);
130 if (fd.exec() != QDialog::Accepted )
return;
132 QStringList flst = fd.selectedFiles();
133 if (flst.isEmpty())
return;
135 LineEditClientDir->setText(flst[0]);
137 QString fileName = LineEditClientExec->text();
138 if (fileName.length()==0)
return;
140 QString exeDirPath = QFileInfo(fileName).path();
141 if (exeDirPath.isEmpty() || ((exeDirPath == QString(
".")) && (fileName[0]!=
'.'))) {
142 fileName = QFileInfo(QDir(flst[0]), fileName).filePath();
143 LineEditClientExec->setText(fileName);
150 const char* caption = 0;
153 QString exe1_filter(
"User analysis (MainUserAnalysis.exe)");
154 QString exe2_filter(
"Any executable (*.exe)");
155 QString dll1_filter(
"User library (libGo4UserAnalysis.dll)");
156 QString dll2_filter(
"Any shared library (*.dll)");
157 QString any_filter(
"Any files (*.*)");
159 QString exe1_filter(
"User analysis (MainUserAnalysis)");
160 QString exe2_filter(
"Any executable (*)");
161 QString dll1_filter(
"User library (libGo4UserAnalysis.so)");
162 QString dll2_filter(
"Any shared library (*.so)");
163 QString any_filter(
"Any files (*)");
167 filters << exe1_filter << exe2_filter << dll1_filter << dll2_filter << any_filter;
169 QFileDialog fd(
this, caption);
170 fd.setFileMode(QFileDialog::ExistingFile);
171 #if QT_VERSION >= QT_VERSION_CHECK(4,6,0)
172 fd.setOption(QFileDialog::DontUseNativeDialog);
175 fd.setNameFilters(filters);
178 select_filer= (ExeModeCombo->currentIndex()==0) ? 0 : 2;
179 switch (select_filer) {
180 case 0: fd.selectNameFilter(exe1_filter);
break;
181 case 1: fd.selectNameFilter(exe2_filter);
break;
182 case 2: fd.selectNameFilter(dll1_filter);
break;
183 case 3: fd.selectNameFilter(dll2_filter);
break;
184 default: fd.selectNameFilter(any_filter);
break;
187 QString filename = LineEditClientExec->text();
188 if (filename.length() > 0)
189 fd.selectFile(filename);
191 if (fd.exec() != QDialog::Accepted)
return;
193 QStringList flst = fd.selectedFiles();
194 if (flst.isEmpty())
return;
197 if (fd.selectedNameFilter()==exe1_filter) select_filer = 0;
else
198 if (fd.selectedNameFilter()==exe2_filter) select_filer = 1;
else
199 if (fd.selectedNameFilter()==dll1_filter) select_filer = 2;
else
200 if (fd.selectedNameFilter()==dll2_filter) select_filer = 3;
203 if ((select_filer==0) || (select_filer==1)) ExeModeCombo->setCurrentIndex(0);
else
204 if ((select_filer==2) || (select_filer==3)) ExeModeCombo->setCurrentIndex(1);
206 LineEditClientExec->setText(flst[0]);
212 bool windows =
false;
216 ServerModeCombo->setCurrentIndex(2);
222 ExeModeCombo->setEnabled(
id<2);
223 if (
id==2) ExeModeCombo->setCurrentIndex(1);
224 bool isserver = (
id>0);
225 qt_selected->setEnabled(
id!=1);
226 PortNumber->setEnabled(
id==2);
void setClientExeMode(int mode)
void setClientArgs(const QString &)
void setClientDir(const QString &)
virtual void ServerModeCombo_activated(int)
QString getClientExec(int mode=-1)
void setClientName(const QString &)
void setClientTermMode(int)
void setClientShellMode(int)
TGo4StartClient(QWidget *parent=0)
void setClientIsServer(int kind)
QButtonGroup * ClientTermGroup
virtual void ExeMode_changed(int)
void setClientExec(const QString &)
void setClientNode(const QString &)
QButtonGroup * ClientShellGroup
void setClientConnectMode(int)
virtual void SelectProg()