18 #include <QFileDialog>
26 setObjectName(
"Go4StartClient");
31 rsh_selected->setEnabled(
false);
32 ssh_selected->setEnabled(
false);
35 xterm_selected->setEnabled(
false);
36 konsole_selected->setEnabled(
false);
38 LineEditClientNode->setEnabled(
false);
62 if (LineEditClientDir->text().isEmpty())
63 LineEditClientDir->setText(QDir::currentPath());
68 if (mode == 1) mode = 2;
70 QModelIndex index = ServerModeCombo->model()->index(1, 0);
74 ServerModeCombo->model()->setData(index, v, Qt::UserRole - 1);
76 qt_selected->setEnabled(mode!=1);
82 ServerModeCombo->setCurrentIndex(mode);
83 PortNumber->setEnabled(mode == 2);
112 QFileDialog fd(
this,
"Select your working directory");
113 fd.setFileMode(QFileDialog::DirectoryOnly);
114 #if QT_VERSION >= QT_VERSION_CHECK(4,6,0)
115 fd.setOption(QFileDialog::DontUseNativeDialog);
118 QString dir = LineEditClientDir->text();
119 if (dir.isEmpty() || !QDir(dir).exists())
120 dir = QDir::currentPath();
121 fd.setDirectory(dir);
123 if (fd.exec() != QDialog::Accepted )
return;
125 QStringList flst = fd.selectedFiles();
126 if (flst.isEmpty())
return;
128 LineEditClientDir->setText(flst[0]);
130 QString fileName = LineEditClientExec->text();
131 if (fileName.length()==0)
return;
133 QString exeDirPath = QFileInfo(fileName).path();
134 if (exeDirPath.isEmpty() || ((exeDirPath == QString(
".")) && (fileName[0]!=
'.'))) {
135 fileName = QFileInfo(QDir(flst[0]), fileName).filePath();
136 LineEditClientExec->setText(fileName);
143 const char* caption = 0;
146 QString exe1_filter(
"User analysis (MainUserAnalysis.exe)");
147 QString exe2_filter(
"Any executable (*.exe)");
148 QString dll1_filter(
"User library (libGo4UserAnalysis.dll)");
149 QString dll2_filter(
"Any shared library (*.dll)");
150 QString any_filter(
"Any files (*.*)");
152 QString exe1_filter(
"User analysis (MainUserAnalysis)");
153 QString exe2_filter(
"Any executable (*)");
154 QString dll1_filter(
"User library (libGo4UserAnalysis.so)");
155 QString dll2_filter(
"Any shared library (*.so)");
156 QString any_filter(
"Any files (*)");
160 filters << exe1_filter << exe2_filter << dll1_filter << dll2_filter << any_filter;
162 QFileDialog fd(
this, caption);
163 fd.setFileMode(QFileDialog::ExistingFile);
164 #if QT_VERSION >= QT_VERSION_CHECK(4,6,0)
165 fd.setOption(QFileDialog::DontUseNativeDialog);
168 fd.setNameFilters(filters);
171 select_filer= (ExeModeCombo->currentIndex()==0) ? 0 : 2;
172 switch (select_filer) {
173 case 0: fd.selectNameFilter(exe1_filter);
break;
174 case 1: fd.selectNameFilter(exe2_filter);
break;
175 case 2: fd.selectNameFilter(dll1_filter);
break;
176 case 3: fd.selectNameFilter(dll2_filter);
break;
177 default: fd.selectNameFilter(any_filter);
break;
180 QString filename = LineEditClientExec->text();
181 if (filename.length() > 0)
182 fd.selectFile(filename);
184 if (fd.exec() != QDialog::Accepted)
return;
186 QStringList flst = fd.selectedFiles();
187 if (flst.isEmpty())
return;
190 if (fd.selectedNameFilter()==exe1_filter) select_filer = 0;
else
191 if (fd.selectedNameFilter()==exe2_filter) select_filer = 1;
else
192 if (fd.selectedNameFilter()==dll1_filter) select_filer = 2;
else
193 if (fd.selectedNameFilter()==dll2_filter) select_filer = 3;
196 if ((select_filer==0) || (select_filer==1)) ExeModeCombo->setCurrentIndex(0);
else
197 if ((select_filer==2) || (select_filer==3)) ExeModeCombo->setCurrentIndex(1);
199 LineEditClientExec->setText(flst[0]);
205 bool windows =
false;
209 ServerModeCombo->setCurrentIndex(2);
215 ExeModeCombo->setEnabled(
id<2);
216 if (
id==2) ExeModeCombo->setCurrentIndex(1);
217 bool isserver = (
id>0);
218 qt_selected->setEnabled(
id!=1);
219 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()