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