diff --git a/sources/configdialog.cpp b/sources/configdialog.cpp index e8eebd0de..0ecbcff6a 100644 --- a/sources/configdialog.cpp +++ b/sources/configdialog.cpp @@ -16,6 +16,7 @@ along with QElectroTech. If not, see . */ #include "configdialog.h" +#include "configpages.h" #include "qetapp.h" /** @@ -23,9 +24,6 @@ @param parent QWidget parent */ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { - - setWindowTitle(tr("Configurer QElectroTech", "window title")); - // liste des pages pages_list = new QListWidget(); pages_list -> setViewMode(QListView::IconMode); @@ -37,11 +35,6 @@ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { // pages pages_widget = new QStackedWidget(); - addPage(new GeneralConfigurationPage()); - addPage(new NewDiagramPage()); - addPage(new ExportConfigPage()); - addPage(new PrintConfigPage()); - buildPagesList(); // boutons buttons = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); @@ -80,14 +73,21 @@ void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previou void ConfigDialog::buildPagesList() { pages_list -> clear(); foreach(ConfigPage *page, pages) { - QListWidgetItem *new_button = new QListWidgetItem(pages_list); - new_button -> setIcon(page -> icon()); - new_button -> setText(page -> title()); - new_button -> setTextAlignment(Qt::AlignHCenter); - new_button -> setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + addPageToList(page); } } +/** + Add the \a page ConfigPage to this configuration dialog. +*/ +void ConfigDialog::addPageToList(ConfigPage *page) { + QListWidgetItem *new_button = new QListWidgetItem(pages_list); + new_button -> setIcon(page -> icon()); + new_button -> setText(page -> title()); + new_button -> setTextAlignment(Qt::AlignHCenter); + new_button -> setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); +} + /** Applique la configuration de toutes les pages */ @@ -105,4 +105,5 @@ void ConfigDialog::addPage(ConfigPage *page) { if (!page || pages.contains(page)) return; pages << page; pages_widget -> addWidget(page); + addPageToList(page); } diff --git a/sources/configdialog.h b/sources/configdialog.h index 5e2b4fec7..20107aba9 100644 --- a/sources/configdialog.h +++ b/sources/configdialog.h @@ -18,7 +18,7 @@ #ifndef CONFIG_DIALOG_H #define CONFIG_DIALOG_H #include -#include "configpages.h" +class ConfigPage; class QListWidget; class QListWidgetItem; class QStackedWidget; @@ -45,6 +45,7 @@ class ConfigDialog : public QDialog { private: void buildPagesList(); + void addPageToList(ConfigPage *); // attributs private: diff --git a/sources/qetapp.cpp b/sources/qetapp.cpp index 161ab7ef8..bc5ee67c4 100644 --- a/sources/qetapp.cpp +++ b/sources/qetapp.cpp @@ -18,6 +18,7 @@ #include "qetapp.h" #include "aboutqet.h" #include "configdialog.h" +#include "configpages.h" #include "qetdiagrameditor.h" #include "qetelementeditor.h" #include "elementscollectionitem.h" @@ -1144,6 +1145,12 @@ void QETApp::configureQET() { // cree le dialogue ConfigDialog cd; + cd.setWindowTitle(tr("Configurer QElectroTech", "window title")); + cd.addPage(new GeneralConfigurationPage()); + cd.addPage(new NewDiagramPage()); + cd.addPage(new ExportConfigPage()); + cd.addPage(new PrintConfigPage()); + // associe le dialogue a un eventuel widget parent if (parent_widget) {