1
////////////////////////////////////////////////////////////////////////////////
2
/*! @file CommonDist.cpp ŠŠ±ŃŠøŠµ ŠŗŠ»Š°ŃŃŃ Š“Š»Ń ŃŠ¾Š·Š“Š°Š½ŠøŃ Šø ŠøŠ½ŃŃŠ°Š»ŃŃŠøŠø Š“ŠøŃŃŃŠøŠ±ŃŃŠøŠ²Š¾Š².
3
- Uses QtGui v.4.6 - http://qt.nokia.com/
4
- Uses RANet - Research Assistant Net Library (based on ANSI C++).
5
- Copyright(C) 2011, Viktor E. Bursian, St.Petersburg, Russia.
6
Viktor.Bursian@mail.ioffe.ru
7
*///////////////////////////////////////////////////////////////////////////////
8
#include "CommonDist.h"
9
#include <QApplication>
10
#include <QMessageBox>
12
#include <QVBoxLayout>
17
namespace RA/*RADist*/ {
18
//------------------------------------------------------------------------------
20
const QStringList sProjectInfo::CoreProgFiles4unix
23
<< QString("bin")+QDir::separator()+"RA"
24
<< QString("bin")+QDir::separator()+"libRA*.so*"
27
const QStringList sProjectInfo::CoreProgFiles4win32
30
<< QString("bin")+QDir::separator()+"RA.exe"
31
<< QString("bin")+QDir::separator()+"RA*.dll"
34
const QStringList sProjectInfo::CoreProgFiles4all
36
<< QString("locales")+QDir::separator()+"RA_*.qm"
37
<< QString("help")+QDir::separator()+"RA.qch"
38
<< QString("help")+QDir::separator()+"RA.qhc"
39
<< QString("help")+QDir::separator()+"images"
40
<< QString("help")+QDir::separator()+"*.html"
46
const QStringList sProjectInfo::PluginFiles4unix
48
<< QString("bin")+QDir::separator()+"librap%1.so"
51
const QStringList sProjectInfo::PluginFiles4win32
53
<< QString("bin")+QDir::separator()+"rap%1%2.dll"
56
const QStringList sProjectInfo::PluginFiles4both
58
<< QString("locales")+QDir::separator()+"%1_*.qm"
59
<< QString("extrafiles")+QDir::separator()+"%1"
62
const QStringList sProjectInfo::CopySrcFiles
72
const QStringList sProjectInfo::CopySrcDirs
87
const QStringList sProjectInfo::CoreSrcFiles
97
<< QString("locales")+QDir::separator()+"RA_*"
98
// << QString("extrafiles")+QDir::separator()+"core"
107
const QStringList sProjectInfo::PluginSrcFiles
109
<< QString("locales")+QDir::separator()+"%1_ru.ts"
110
<< QString("locales")+QDir::separator()+"%1_ru.qm"
111
<< QString("extrafiles")+QDir::separator()+"%1"
112
<< QString("RAPlugins")+QDir::separator()+"%1"
115
const QStringList sProjectInfo::Files4install
117
<< QString("..")+QDir::separator()
118
+"Qt.release"+QDir::separator()
119
+"win32"+QDir::separator()
120
+"bin"+QDir::separator()+"QtCore4.dll"
121
<< QString("..")+QDir::separator()
122
+"Qt.release"+QDir::separator()
123
+"win32"+QDir::separator()
124
+"bin"+QDir::separator()+"QtGui4.dll"
125
<< QString("..")+QDir::separator()
126
+"Qt.release"+QDir::separator()
127
+"win32"+QDir::separator()
128
+"bin"+QDir::separator()+"libgcc_s_dw2-1.dll"
129
<< QString("..")+QDir::separator()
130
+"Qt.release"+QDir::separator()
131
+"win32"+QDir::separator()
132
+"bin"+QDir::separator()+"mingwm10.dll"
133
<< QString("..")+QDir::separator()
134
+"7z"+QDir::separator()+"7za"
135
<< QString("..")+QDir::separator()
136
+"7z"+QDir::separator()+"7za.exe"
137
<< QString("RADist")+QDir::separator()
138
+"Licenses(briefly).html"
139
<< QString("help")+QDir::separator()
141
<< QString("help")+QDir::separator()
145
//-------------------------------------------------- sProjectInfo::sPartInfo ---
147
sProjectInfo::sPartInfo::sPartInfo ()
150
,AltPlatformExists(false)
151
,AltPlatformTodays(false)
152
,TranslationExists(false)
153
,TranslationOK(false)
157
sProjectInfo::sPartInfo::sPartInfo (rcsVersion version
158
,QString user_friendly_name)
160
,UserFriendlyName(user_friendly_name)
162
,AltPlatformExists(false)
163
,AltPlatformTodays(false)
164
,TranslationExists(false)
165
,TranslationOK(false)
169
//------------------------------------------------------------- sProjectInfo ---
171
sProjectInfo::sProjectInfo ()
176
//--------------------------------------------------------------- sReadyPage ---
178
sReadyPage::sReadyPage (QString title
179
,QString button_text)
183
setButtonText(QWizard::CommitButton,button_text);
184
setButtonText(QWizard::FinishButton,button_text);
186
QVBoxLayout * Layout = new QVBoxLayout;
189
Layout->addWidget(new QLabel(""));
192
//---------------------------------------------------------------- sDoItPage ---
194
sDoItPage::sDoItPage (QString doing_title
195
,QString button_text_while_doing
196
,QString success_title
197
,QString button_text_on_success
198
,QString error_title)
201
,SuccessTitle(success_title)
202
,ErrorTitle(error_title)
203
,ButtonTextOnSuccess(button_text_on_success)
205
setTitle(doing_title);
207
QVBoxLayout * Layout = new QVBoxLayout;
210
Report = new QTextEdit;
211
Layout->addWidget(Report);
213
setButtonText(QWizard::NextButton,button_text_while_doing);
214
setButtonText(QWizard::CommitButton,button_text_while_doing);
215
setButtonText(QWizard::FinishButton,button_text_while_doing);
219
void sDoItPage::initializePage ()
221
QList<QWizard::WizardButton> Buttons;
222
Buttons << QWizard::NextButton << QWizard::CommitButton
223
<< QWizard::FinishButton;
224
wizard()->setButtonLayout(Buttons);
225
QTimer::singleShot(10,this,SLOT(DoIt()));
229
bool sDoItPage::isComplete () const
235
void sDoItPage::Out (QString text)
237
Report->insertPlainText(text);
238
Report->moveCursor(QTextCursor::End);
243
void sDoItPage::DoIt ()
247
setTitle(SuccessTitle);
248
setButtonText(QWizard::NextButton,ButtonTextOnSuccess);
249
setButtonText(QWizard::CommitButton,ButtonTextOnSuccess);
250
setButtonText(QWizard::FinishButton,ButtonTextOnSuccess);
252
setTitle(ErrorTitle);
253
setButtonText(QWizard::NextButton,"OK");
254
setButtonText(QWizard::CommitButton,"OK");
255
setButtonText(QWizard::FinishButton,"OK");
258
emit completeChanged();
262
bool sDoItPage::Execute (QString prog
267
QProcess * Process = new QProcess;
270
Out("\n____________________________________________________________\n");
271
Out(prog+" "+args.join(" ")+" (in "+working_dir+")\n\n");
272
Process->setWorkingDirectory(working_dir);
273
Process->start( prog , args );
274
if( ! Process->waitForStarted() ){
275
Out("*** ERROR *** cannot start");
278
while( ! Process->waitForFinished(100) ){
280
Out(QString::fromLocal8Bit(Process->read(100)));
281
if( (time_out > 0) && (t > 10*time_out) ){
282
Out("*** ERROR *** timeout");
286
Out(QString::fromLocal8Bit(Process->readAll()));
287
ExitCode = Process->exitCode();
288
Out( QString("\n_______________________________________exit_code_")
289
+QString().setNum(ExitCode)
291
return (ExitCode == 0);
295
bool sDoItPage::Zip (QString zip_name
300
return Execute(QString("..")+QDir::separator()+"7z"+QDir::separator()+"7za"
301
,QStringList() << "a" << "-r" << zip_name << files
302
// ,QStringList() << "a" << zip_name << files
308
bool sDoItPage::Unzip (QString zip_name
309
,QString destination_dir
312
return Execute(QString(".")+QDir::separator()+"7za"
313
,QStringList() << "x" << "-y"
314
<< QString("-o")+destination_dir
316
,qApp->applicationDirPath()
320
//------------------------------------------------------------------------------
321
}; //namespace RA/*RADist*/