|
Canorus
0.7
|
00001 00008 #ifndef PROPERTIESDIALOG_H_ 00009 #define PROPERTIESDIALOG_H_ 00010 00011 #include "ui_propertiesdialog.h" 00012 #include "ui_documentproperties.h" 00013 #include "ui_sheetproperties.h" 00014 #include "ui_staffproperties.h" 00015 #include "ui_voiceproperties.h" 00016 #include "ui_lyricscontextproperties.h" 00017 #include "ui_functionmarkcontextproperties.h" 00018 00019 class QTreeWidgetItem; 00020 00021 class CADocument; 00022 class CASheet; 00023 class CAStaff; 00024 class CAContext; 00025 class CAVoice; 00026 class CALyricsContext; 00027 class CAFunctionMarkContext; 00028 00029 class CADocumentProperties : public QWidget, public Ui::uiDocumentProperties { 00030 Q_OBJECT 00031 public: 00032 CADocumentProperties( CADocument *doc, QWidget *parent=0 ) : QWidget( parent ) { _document = doc; setupUi(this); } 00033 public slots: 00034 void on_uiComposer_editingFinished(); 00035 private: 00036 CADocument *_document; 00037 }; 00038 00039 class CASheetProperties : public QWidget, public Ui::uiSheetProperties { 00040 public: 00041 CASheetProperties( QWidget *parent=0 ) : QWidget( parent ) { setupUi(this); } 00042 }; 00043 00044 class CAStaffProperties : public QWidget, public Ui::uiStaffProperties { 00045 public: 00046 CAStaffProperties( QWidget *parent=0 ) : QWidget( parent ) { setupUi(this); } 00047 }; 00048 00049 class CAVoiceProperties : public QWidget, public Ui::uiVoiceProperties { 00050 public: 00051 CAVoiceProperties( QWidget *parent=0 ) : QWidget( parent ) { setupUi(this); } 00052 }; 00053 00054 class CALyricsContextProperties : public QWidget, public Ui::uiLyricsContextProperties { 00055 public: 00056 CALyricsContextProperties( QWidget *parent=0 ) : QWidget( parent ) { setupUi(this); } 00057 }; 00058 00059 class CAFunctionMarkContextProperties : public QWidget, public Ui::uiFunctionMarkContextProperties { 00060 public: 00061 CAFunctionMarkContextProperties( QWidget *parent=0 ) : QWidget( parent ) { setupUi(this); } 00062 }; 00063 00064 class CAPropertiesDialog : public QDialog, private Ui::uiPropertiesDialog 00065 { 00066 Q_OBJECT 00067 public: 00068 CAPropertiesDialog( CADocument *doc, QWidget *parent=0 ); 00069 virtual ~CAPropertiesDialog(); 00070 static void documentProperties( CADocument *doc, QWidget *parent ); 00071 static void sheetProperties( CASheet *sheet, QWidget *parent ); 00072 static void contextProperties( CAContext *context, QWidget *parent ); 00073 static void voiceProperties( CAVoice *voice, QWidget *parent ); 00074 00075 inline CADocument *document() { return _document; } 00076 inline QTreeWidgetItem *documentItem() { return _documentItem; } 00077 inline QHash< QTreeWidgetItem*, CASheet* >& sheetItem() { return _sheetItem; } 00078 inline QHash< QTreeWidgetItem*, CAContext* >& contextItem() { return _contextItem; } 00079 inline QHash< QTreeWidgetItem*, CAVoice* >& voiceItem() { return _voiceItem; } 00080 00081 public slots: 00082 void on_uiDocumentTree_currentItemChanged( QTreeWidgetItem *cur, QTreeWidgetItem *prev ); 00083 void on_uiButtonBox_clicked( QAbstractButton* ); 00084 void on_uiUp_clicked( bool ); 00085 void on_uiDown_clicked( bool ); 00086 00087 private: 00088 void buildTree(); 00089 00090 void applyProperties(); 00091 void createDocumentFromTree(); 00092 void updateDocumentProperties( CADocument* ); 00093 void updateSheetProperties( CASheet* ); 00094 void updateStaffProperties( CAStaff* ); 00095 void updateVoiceProperties( CAVoice* ); 00096 void updateLyricsContextProperties( CALyricsContext* ); 00097 void updateFunctionMarkContextProperties( CAFunctionMarkContext* ); 00098 00099 CADocument *_document; 00100 QTreeWidgetItem *_documentItem; // Document => Document properties widget 00101 QWidget *_documentPropertiesWidget; // Document item in tree widget => Document 00102 QHash< CASheet*, QWidget* > _sheetPropertiesWidget; // Sheet => Sheet properties widget 00103 QHash< QTreeWidgetItem*, CASheet* > _sheetItem; // Sheet item in tree widget => Sheet 00104 QHash< CAContext*, QWidget* > _contextPropertiesWidget; // Context => Context properties widget 00105 QHash< QTreeWidgetItem*, CAContext* > _contextItem; // Context item in tree widget => Context 00106 QHash< CAVoice*, QWidget* > _voicePropertiesWidget; // Voice => Voice properties widget 00107 QHash< QTreeWidgetItem*, CAVoice* > _voiceItem; // Voice item in tree widget => Voice 00108 }; 00109 00110 #endif /* PROPERTIESDIALOG_H_ */
1.8.0