settings_dialog.cpp

Go to the documentation of this file.
00001 
00002 //--------------------------------------------------
00013 //---------------------------------------------------
00014 
00015 #include "settings_dialog.h"
00016 #include "algorithm_settings_widget.h"
00017 #include "window_level_settings_widget.h"
00018 
00019 namespace imedgine {
00020 
00021   //---------------------------------------------------
00022 
00023         SettingsDialog::SettingsDialog(QWidget* parent)
00024     : QDialog(parent),
00025       algorithm_settings_widget_(0),
00026       window_level_settings_widget_(0)
00027   {
00028     setupUi(this);
00029     initializePages();
00030 
00031   }
00032 
00033  //---------------------------------------------------
00034 
00035   SettingsDialog::~SettingsDialog()
00036   {
00037 
00038   }
00039 
00040 
00041   //---------------------------------------------------
00042 
00043   void SettingsDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous)
00044   {
00045     if (!current)
00046     {
00047       current = previous;
00048     }
00049 
00050     pages_stacked_widget_->setCurrentIndex(page_selection_list_widget_->row(current));
00051   }
00052 
00053   //---------------------------------------------------
00054 
00055   void SettingsDialog::checkChanges()
00056   {
00057     for(int count = 0; count < pages_stacked_widget_->count(); count++)
00058     {
00059       (dynamic_cast<SettingsWidgetInterface*>(pages_stacked_widget_->widget(count)))->
00060         checkChanges();
00061     }
00062   }
00063 
00064   //---------------------------------------------------
00065 
00066   void SettingsDialog::setupUi(QDialog* settings_dialog)
00067   {
00068     main_grid_layout_ = new QGridLayout(settings_dialog);
00069     pages_stacked_widget_ = new QStackedWidget(settings_dialog);
00070     pages_stacked_widget_->setMinimumSize(QSize(100, 16));
00071 
00072     main_grid_layout_->addWidget(pages_stacked_widget_, 0, 1, 1, 1);
00073 
00074     page_selection_list_widget_ = new QListWidget(settings_dialog);
00075     page_selection_list_widget_->setMaximumSize(QSize(100, 16777215));
00076 
00077     main_grid_layout_->addWidget(page_selection_list_widget_, 0, 0, 1, 1);
00078 
00079     button_layout_ = new QHBoxLayout();
00080     spacer_item_ = new QSpacerItem(81, 31, QSizePolicy::Expanding, QSizePolicy::Minimum);
00081 
00082     button_layout_->addItem(spacer_item_);
00083 
00084     ok_push_button_ = new QPushButton(settings_dialog);
00085     ok_push_button_->setText(tr("OK"));
00086 
00087     button_layout_->addWidget(ok_push_button_);
00088 
00089     apply_push_button_ = new QPushButton(settings_dialog);
00090     apply_push_button_->setText(tr("Apply"));
00091 
00092     button_layout_->addWidget(apply_push_button_);
00093 
00094     cancel_push_button_ = new QPushButton(settings_dialog);
00095     cancel_push_button_->setText(tr("Cancel"));
00096 
00097     button_layout_->addWidget(cancel_push_button_);
00098 
00099     main_grid_layout_->addLayout(button_layout_, 1, 0, 1, 2);
00100 
00101     connect(ok_push_button_, SIGNAL(clicked()),
00102       settings_dialog, SLOT(accept()));
00103     connect(cancel_push_button_, SIGNAL(clicked()),
00104       settings_dialog, SLOT(reject()));
00105 
00106   }
00107 
00108   //---------------------------------------------------
00109 
00110   void SettingsDialog::initializePages()
00111   {
00112 
00113     window_level_settings_widget_ = new WindowLevelSettingsWidget(pages_stacked_widget_);
00114     pages_stacked_widget_->addWidget(window_level_settings_widget_);
00115     pages_stacked_widget_->setCurrentWidget(window_level_settings_widget_);
00116 
00117     QListWidgetItem* window_level_settings_item =
00118       new QListWidgetItem(page_selection_list_widget_);
00119     window_level_settings_item->setText(tr("Window / Level"));
00120 
00121     algorithm_settings_widget_ = new AlgorithmSettingsWidget(pages_stacked_widget_);
00122     pages_stacked_widget_->addWidget(algorithm_settings_widget_);
00123 
00124     QListWidgetItem* algorithm_settings_item =
00125       new QListWidgetItem(page_selection_list_widget_);
00126     algorithm_settings_item->setText(tr("Algorithms"));
00127 
00128     connect(page_selection_list_widget_,
00129                 SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),
00130             this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*)));
00131 
00132     connect(apply_push_button_, SIGNAL(clicked()),
00133       this, SLOT(checkChanges()));
00134     connect(ok_push_button_, SIGNAL(clicked()),
00135       this, SLOT(checkChanges()));
00136 
00137   }
00138 
00139 }

Generated on Sun Aug 13 18:19:40 2006 for iMEDgine by  doxygen 1.4.6