[svn-upgrade] Integrating new upstream version, teleschorsch (0.0.5)
[debian/teleschorsch.git] / main.h
1 #ifndef MAIN_H
2 #define MAIN_H
3 #include "ui_maindialog.h"
4
5 // Types
6 // =====
7
8 struct Channel {
9         QString name;
10         QString fullName;
11         QString staticUrl;
12         QString player;
13 };
14
15
16 typedef QVector<Channel> ChannelVec;
17
18
19 struct ConfigInfo {
20         QString home;               ///< environment variable $HOME (e.g. /home/gregoa) or empty if $HOME does not exist
21         QString systemConfigFile;   ///< system configuration file name (/etc/teleschorschrc)
22         QString userConfigFile;     ///< user configuration file name (e.g. /home/gregoa/.teleschorschrc)
23         QString usedConfigFile;     ///< currently used config file (e.g. /home/gregoa/.teleschorschrc)
24 };
25
26
27
28 // Functions
29 // =========
30
31 /// Determine ConfigInfo file names
32 void initConfigInfo(ConfigInfo& configInfo);
33
34
35 /// Adds the content of the specified config file to the channel vector
36 bool addConfig(const QString& fileName, ChannelVec& cv, QString& error);
37
38
39 /// \brief Read channel vector
40 ///
41 /// In an error case, the error message is returned.
42 QString readChannelVec(const ConfigInfo& configInfo, ChannelVec& channelVec);
43
44
45 // MainDialog
46 // ==========
47
48 class MainDialog: public QDialog, private Ui::MainDialog {
49 Q_OBJECT
50
51 private:
52         ChannelVec channelVec;
53         ConfigInfo configInfo;
54
55 public:
56         MainDialog(QWidget *parent = 0);
57
58 public slots:
59         void editOptions();
60         void updateLwChannels();
61         bool startAction();
62 };
63
64 #endif