33 setObjectName(
"Go4StartClient");
38 rsh_selected->setEnabled(
false);
39 ssh_selected->setEnabled(
false);
42 xterm_selected->setEnabled(
false);
43 konsole_selected->setEnabled(
false);
44 go4sett->setClientNode(
"localhost");
45 LineEditClientNode->setEnabled(
false);
62 LineEditClientName->setText(
go4sett->getClientName());
63 LineEditClientNode->setText(
go4sett->getClientNode());
64 PortNumber->setValue(
go4sett->getClientPort());
65 LineEditClientDir->setText(
go4sett->getClientDir());
66 LineEditClientExec->setText(
go4sett->getClientExec());
67 LineEditArgs->setText(
go4sett->getClientArgs());
69 if (LineEditClientDir->text().isEmpty())
70 LineEditClientDir->setText(QDir::currentPath());
72 int mode =
go4sett->getClientIsServer();
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);
92 ExeModeCombo->setCurrentIndex(mode==2 ? 1 :
go4sett->getClientExeMode());
102 go4sett->setClientName(LineEditClientName->text());
103 go4sett->setClientNode(LineEditClientNode->text());
104 go4sett->setClientDir(LineEditClientDir->text());
105 go4sett->setClientExeMode(ExeModeCombo->currentIndex());
106 go4sett->setClientExec(LineEditClientExec->text());
107 go4sett->setClientArgs(LineEditArgs->text());
110 go4sett->setClientIsServer(ServerModeCombo->currentIndex());
111 go4sett->setClientConnectMode(ServerModeCombo->currentIndex()>0 ? ServerModeCombo->currentIndex() - 1 : 0);
112 go4sett->setClientPort(PortNumber->value());
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]);