18 #include <QFileDialog> 19 #include <QButtonGroup> 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);
120 fd.setOption(QFileDialog::DontUseNativeDialog);
123 QString dir = LineEditClientDir->text();
124 if (dir.isEmpty() || !QDir(dir).exists())
125 dir = QDir::currentPath();
126 fd.setDirectory(dir);
128 if (fd.exec() != QDialog::Accepted)
return;
130 QStringList flst = fd.selectedFiles();
131 if (flst.isEmpty())
return;
133 LineEditClientDir->setText(flst[0]);
135 QString fileName = LineEditClientExec->text();
136 if (fileName.isEmpty())
return;
138 QString exeDirPath = QFileInfo(fileName).path();
139 if (exeDirPath.isEmpty() || ((exeDirPath == QString(
".")) && (fileName[0]!=
'.'))) {
140 fileName = QFileInfo(QDir(flst[0]), fileName).filePath();
141 LineEditClientExec->setText(fileName);
148 const char *caption =
nullptr;
151 QString exe1_filter(
"User analysis (MainUserAnalysis.exe)");
152 QString exe2_filter(
"Any executable (*.exe)");
153 QString dll1_filter(
"User library (libGo4UserAnalysis.dll)");
154 QString dll2_filter(
"Any shared library (*.dll)");
155 QString any_filter(
"Any files (*.*)");
157 QString exe1_filter(
"User analysis (MainUserAnalysis)");
158 QString exe2_filter(
"Any executable (*)");
159 QString dll1_filter(
"User library (libGo4UserAnalysis.so)");
160 QString dll2_filter(
"Any shared library (*.so)");
161 QString any_filter(
"Any files (*)");
165 filters << exe1_filter << exe2_filter << dll1_filter << dll2_filter << any_filter;
167 QFileDialog fd(
this, caption);
168 fd.setFileMode(QFileDialog::ExistingFile);
169 fd.setOption(QFileDialog::DontUseNativeDialog);
172 fd.setNameFilters(filters);
174 if (select_filer < 0)
175 select_filer = (ExeModeCombo->currentIndex() == 0) ? 0 : 2;
176 switch (select_filer) {
177 case 0: fd.selectNameFilter(exe1_filter);
break;
178 case 1: fd.selectNameFilter(exe2_filter);
break;
179 case 2: fd.selectNameFilter(dll1_filter);
break;
180 case 3: fd.selectNameFilter(dll2_filter);
break;
181 default: fd.selectNameFilter(any_filter);
break;
184 QString filename = LineEditClientExec->text();
185 if (!filename.isEmpty())
186 fd.selectFile(filename);
188 if (fd.exec() != QDialog::Accepted)
return;
190 QStringList flst = fd.selectedFiles();
191 if (flst.isEmpty())
return;
194 if (fd.selectedNameFilter()==exe1_filter) select_filer = 0;
else 195 if (fd.selectedNameFilter()==exe2_filter) select_filer = 1;
else 196 if (fd.selectedNameFilter()==dll1_filter) select_filer = 2;
else 197 if (fd.selectedNameFilter()==dll2_filter) select_filer = 3;
200 if ((select_filer == 0) || (select_filer == 1)) ExeModeCombo->setCurrentIndex(0);
else 201 if ((select_filer == 2) || (select_filer == 3)) ExeModeCombo->setCurrentIndex(1);
203 LineEditClientExec->setText(flst[0]);
211 ServerModeCombo->setCurrentIndex(2);
216 ExeModeCombo->setEnabled(
id < 2);
218 ExeModeCombo->setCurrentIndex(1);
220 qt_selected->setEnabled(
id != 1);
221 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=nullptr)
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()