~vbursian/research-assistant/intervers

« back to all changes in this revision

Viewing changes to RADist/CommonDist.h

  • Committer: Viktor Bursian
  • Date: 2013-06-06 15:10:08 UTC
  • Revision ID: vbursian@gmail.com-20130606151008-6641eh62f0lgx8jt
Tags: version_0.3.0
version 0.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
////////////////////////////////////////////////////////////////////////////////
 
2
/*! @file CommonDist.h   Общие классы для создания и инсталяции дистрибутивов.
 
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
#ifndef CommonDist_H
 
9
#define CommonDist_H
 
10
//#include "RANet_global.h"
 
11
#include "Version.h"
 
12
#include <QString>
 
13
#include <QStringList>
 
14
#include <QDir>
 
15
#include <QWizardPage>
 
16
#include <QTextEdit>
 
17
#include <map>
 
18
namespace RA/*RADist*/ {
 
19
//------------------------------------------------------------------------------
 
20
 
 
21
ANNOUNCE_CLASS(sProjectInfo)
 
22
 
 
23
//------------------------------------------------------------- sProjectInfo ---
 
24
 
 
25
class sProjectInfo
 
26
{
 
27
  public://static const
 
28
    static const QStringList  CoreProgFiles4unix;
 
29
    static const QStringList  CoreProgFiles4win32;
 
30
    static const QStringList  CoreProgFiles4all;
 
31
    static const QStringList  PluginFiles4unix;
 
32
    static const QStringList  PluginFiles4win32;
 
33
    static const QStringList  PluginFiles4both;
 
34
    static const QStringList  CopySrcFiles;
 
35
    static const QStringList  CopySrcDirs;
 
36
    static const QStringList  CoreSrcFiles;
 
37
    static const QStringList  PluginSrcFiles;
 
38
    static const QStringList  Files4install;
 
39
 
 
40
  public://types
 
41
    ANNOUNCE_CLASS(sPartInfo)
 
42
    class  sPartInfo
 
43
    {
 
44
      public:
 
45
                                  sPartInfo ();
 
46
                                  sPartInfo (rcsVersion  version
 
47
                                            ,QString     user_friendly_name);
 
48
      public://fields
 
49
        sVersion                  Version;
 
50
        QString                   UserFriendlyName;
 
51
        bool                      Todays;
 
52
        bool                      AltPlatformExists;
 
53
        bool                      AltPlatformTodays;
 
54
        bool                      TranslationExists;
 
55
        bool                      TranslationOK;
 
56
    };
 
57
 
 
58
  public:
 
59
                              sProjectInfo ();
 
60
  public://fields
 
61
    psPartInfo                Core;
 
62
    QStringList               Plugins;
 
63
    std::map<QString
 
64
            ,psPartInfo>      Plugin;
 
65
};
 
66
 
 
67
//--------------------------------------------------------------- sReadyPage ---
 
68
 
 
69
class  sReadyPage : public QWizardPage
 
70
{
 
71
  Q_OBJECT
 
72
  public:
 
73
                              sReadyPage (QString  title
 
74
                                         ,QString  button_text);
 
75
};
 
76
 
 
77
//---------------------------------------------------------------- sDoItPage ---
 
78
 
 
79
class  sDoItPage : public QWizardPage
 
80
{
 
81
  Q_OBJECT
 
82
  public:
 
83
                              sDoItPage (QString  doing_title
 
84
                                        ,QString  button_text_while_doing
 
85
                                        ,QString  success_title
 
86
                                        ,QString  button_text_on_success
 
87
                                        ,QString  error_title);
 
88
  public:
 
89
    virtual void              initializePage ();
 
90
    virtual bool              isComplete () const;
 
91
 
 
92
  protected:
 
93
    virtual bool              Job () =0;
 
94
    virtual void              Out (QString  text);
 
95
    virtual bool              Execute (QString      prog
 
96
                                      ,QStringList  args
 
97
                                      ,QString      working_dir
 
98
                                      ,int          time_out/*s*/ = -1);
 
99
    virtual bool              Zip (QString      zip_name
 
100
                                  ,QStringList  files
 
101
                                  ,QString      working_dir
 
102
                                  ,int          time_out/*s*/ = -1);
 
103
    virtual bool              Unzip (QString      zip_name
 
104
                                    ,QString      destination_dir
 
105
                                    ,int          time_out/*s*/ = -1);
 
106
 
 
107
  protected://fields
 
108
    bool                      Success;
 
109
    QTextEdit *               Report;
 
110
 
 
111
  private slots:
 
112
    void                      DoIt ();
 
113
 
 
114
  private://fields
 
115
    bool                      Done;
 
116
    QString                   SuccessTitle;
 
117
    QString                   ErrorTitle;
 
118
    QString                   ButtonTextOnSuccess;
 
119
};
 
120
 
 
121
//------------------------------------------------------------------------------
 
122
}; //namespace RA/*RADist*/
 
123
#endif