Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
canorus.h
Go to the documentation of this file.
1 
8 #ifndef CANORUS_H_
9 #define CANORUS_H_
10 
11 // Python.h needs to be loaded first!
12 #include "ui/settingsdialog.h"
13 #include "ui/mainwin.h"
14 #include "core/autorecovery.h"
15 
16 #include <QString>
17 #include <QList>
18 #include <QUndoStack>
19 #include <QHash>
20 
21 class CASettings;
22 class CAMidiDevice;
23 class CADocument;
24 class CAUndo;
25 class CAHelpCtl;
26 
27 class CACanorus {
28 public:
29  static void initMain( int argc=0, char *argv[]=0 );
31  static void initTranslations();
32  static void initCommonGUI();
33  static void initPlayback();
34  static bool parseSettingsArguments(int argc, char *argv[]);
35  static void initScripting();
36  static void initAutoRecovery();
37  static void initUndo();
38  static void initSearchPaths();
39  static void initFonts();
40  static void initHelp();
41  static void parseOpenFileArguments(int argc, char *argv[]);
42  static void cleanUp();
43 
44  static int fetaCodepoint(const QString& name);
45 
46  inline static int mainWinCount() { return _mainWinList.size(); }
47  static int mainWinCount(CADocument *);
48  static QList<CAMainWin*> findMainWin(CADocument* document);
49  inline static CAMainWin* mainWinAt(int idx) { return _mainWinList[idx]; }
50  inline static void removeMainWin(CAMainWin *w) { _mainWinList.removeAll(w); }
51  inline static void removeViewPort(CAViewPort *v) { for (int i=0; i<mainWinCount(); i++) _mainWinList[i]->removeViewPort(v); }
52  inline static void addMainWin( CAMainWin *w ) { _mainWinList << w; }
53  inline static void restartTimeEditedTimes(CADocument *doc) { for (int i=0; i<mainWinCount(); i++) if (mainWinAt(i)->document()==doc) mainWinAt(i)->restartTimeEditedTime(); }
54 
55  inline static CAUndo *undo() { return _undo; }
56 
57  static void addRecentDocument( QString );
58  static void insertRecentDocument( QString );
59  static void removeRecentDocument( QString );
60  inline static QList<QString>& recentDocumentList() { return _recentDocumentList; }
61 
62  inline static CASettings *settings() { return _settings; }
63  inline static CAAutoRecovery *autoRecovery() { return _autoRecovery; }
64  inline static CAMidiDevice *midiDevice() { return _midiDevice; }
65  inline static void setMidiDevice(CAMidiDevice *d) { _midiDevice = d; }
66 
67  inline static CAHelpCtl *help() { return _help; }
68 
69  static void rebuildUI( CADocument *document, CASheet *sheet );
70  static void rebuildUI( CADocument *document=0 );
71  static void repaintUI();
72 
73  // Our own slot connection method
74  static void connectSlotsByName(QObject *pOS, const QObject *pOR);
75 
76 private:
77  static QList<CAMainWin*> _mainWinList;
79  static CAUndo *_undo;
80  static QList<QString> _recentDocumentList;
81  static QHash<QString, int> _fetaMap;
82 
83  // Playback output
85 
86  // Auto recovery
88 
89  // Help
90  static CAHelpCtl *_help;
91 };
92 #endif /* CANORUS_H_ */