AlbumShaper
1.0a3
|
00001 //============================================== 00002 // copyright : (C) 2003-2005 by Will Stokes 00003 //============================================== 00004 // This program is free software; you can redistribute it 00005 // and/or modify it under the terms of the GNU General 00006 // Public License as published by the Free Software 00007 // Foundation; either version 2 of the License, or 00008 // (at your option) any later version. 00009 //============================================== 00010 00011 #ifndef GUI_DIALOGS_SAVEDIALOG_H 00012 #define GUI_DIALOGS_SAVEDIALOG_H 00013 00014 #include <qdialog.h> 00015 00016 //forward declarations 00017 class QGridLayout; 00018 class QLabel; 00019 class QFrame; 00020 class QListBox; 00021 class QLineEdit; 00022 class QTextBrowser; 00023 class QPushButton; 00024 class ClickableLabel; 00025 00026 //===================================== 00029 //===================================== 00030 00031 //====================== 00032 class SaveDialog : public QDialog 00033 { 00034 Q_OBJECT 00035 //---------------------- 00036 public: 00037 SaveDialog( QString actionMessage, 00038 QString defaultPath, 00039 QString defaultTheme, 00040 QWidget *parent=0, 00041 const char* name=0); 00042 QString getTheme(); 00043 QString getPath(); 00044 static bool selectThemeAndPath(QString titleMessage, 00045 QString defaultPath, 00046 QString &theme, 00047 QString &path); 00048 static bool themeAvailable(QString theme); 00049 //---------------------- 00050 signals: 00051 void dialogClosed(); 00052 private slots: 00053 void updatePreview(); 00054 void save(); 00055 void cancel(); 00056 void prevScreenShot(); 00057 void nextScreenShot(); 00058 void browse(); 00059 //---------------------- 00060 private: 00061 QFrame *locationFrame, *themeSelectionFrame, *themePreviewFrame, *buttonsFrame; 00062 QGridLayout *locationGrid, *themeSelectionGrid, *themePreviewGrid, *mainGrid, *buttonsGrid; 00063 QLabel *locationLabel, *themeScreenShot, *themePreviewLabel, *themesLabel, *screenShotLabel; 00064 QLineEdit *locationVal; 00065 QListBox* themesList; 00066 QTextBrowser *themeFeatures; 00067 QPushButton *saveButton, *cancelButton; 00068 00069 ClickableLabel *browseButton, *themeScreenPrev, *themeScreenNext; 00070 00071 int previewNum; 00072 int numPreviews; 00073 //---------------------- 00074 }; 00075 //====================== 00076 00077 #endif //GUI_DIALOGS_SAVEDIALOG_H