ConfigurationWidget Class Reference

#include <configurationWidget.h>

Inheritance diagram for ConfigurationWidget:

[legend]
Collaboration diagram for ConfigurationWidget:
[legend]
List of all members.

Detailed Description

Configuration/Settings Interface.

Definition at line 35 of file configurationWidget.h.

Signals

void closed ()

Public Member Functions

 ConfigurationWidget (Configuration *config, QWidget *parent=0, const char *name=0)

Private Slots

void updateDialogue (QIconViewItem *selection)
 updates shown settings dialogue based on newly selected group
void repaintGroup (QIconViewItem *pseudoSelection)
 repaints a group icon if move is moved over it
void clearPseudoSelection ()
 clears any pseudo selections
void saveSettings ()
void reject ()

Private Member Functions

void closeEvent (QCloseEvent *e)

Private Attributes

Configurationconfig
 Backend config object pointer.
QGridLayout * grid
 Grid widgets place in.
GroupsWidgetgroups
 list of subalbums
LoadingSavingWidgetloadingSavingWidget
 settings widgets
LayoutSettingsWidgetlayoutWidget
AlertsWidgetalertsWidget
QWidgetcurrentSettingsWidget
GroupIconcurrentPseudoSelection
GroupIconalertsIcon
 settings icons
GroupIconlayoutIcon
GroupIconloadingSavingIcon
QFramebuttonsFrame
QPushButton * okButton
QPushButton * cancelButton
QGridLayout * buttonsGrid


Constructor & Destructor Documentation

ConfigurationWidget::ConfigurationWidget ( Configuration config,
QWidget parent = 0,
const char *  name = 0 
)

Definition at line 30 of file configurationWidget.cpp.

References alertsIcon, alertsWidget, buttonsFrame, buttonsGrid, cancelButton, clearPseudoSelection(), config, currentPseudoSelection, currentSettingsWidget, grid, groups, IMAGE_PATH, layoutIcon, layoutWidget, loadingSavingIcon, loadingSavingWidget, AlertsWidget::loadSettings(), LoadingSavingWidget::loadSettings(), LayoutSettingsWidget::loadSettings(), okButton, reject(), repaintGroup(), saveSettings(), GroupsWidget::setTextWidth(), and updateDialogue().

00032                                                                                        :
00033                                                                     QDialog(parent,name)
00034 {
00035   //store config pointer
00036   this->config = config;
00037   //--
00038   //set window title
00039   setCaption( tr("Settings"));
00040   //--
00041   //no icon currently hovered over
00042   currentPseudoSelection = NULL;
00043   //----------------------------------------------
00044   //create settings widget
00045   layoutWidget = new LayoutSettingsWidget(config, this);
00046   loadingSavingWidget = new LoadingSavingWidget(config, this);
00047   alertsWidget = new AlertsWidget( config, this );
00048   //----------------------------------------------
00049   //create iconview and icons for groups
00050   groups = new GroupsWidget( this );
00051   groups->setItemTextPos( QIconView::Right );
00052 //  groups->setMaxItemWidth(20);
00053   //----
00054   //construct group labels
00055   QString labels[3];
00056   labels[0] = tr("Appearance");
00057   labels[1] = tr("Load/Save");
00058   labels[2] = tr("Alerts");
00059   //----
00060   //find max text width
00061   int maxLabelWidth = 0;
00062   int i;
00063   QFontMetrics fm( qApp->font() ); 
00064   for(i=0; i<3; i++)
00065   {
00066     if( fm.width( labels[i] ) > maxLabelWidth )
00067       maxLabelWidth = fm.width( labels[i] );
00068   }
00069   groups->setTextWidth( maxLabelWidth );
00070   //----
00071   //construct actual group icons
00072   layoutIcon = new GroupIcon(  groups, QPixmap(QString(IMAGE_PATH)+"settingsIcons/layout.png" ), 
00073                                labels[0], layoutWidget );
00074   layoutIcon->setDragEnabled(false);
00075   //----
00076   loadingSavingIcon = new GroupIcon( groups, QPixmap(QString(IMAGE_PATH)+"settingsIcons/loadsave.png" ),
00077                                      labels[1], loadingSavingWidget );
00078   loadingSavingIcon->setDragEnabled(false);
00079   //----
00080   alertsIcon = new GroupIcon( groups, QPixmap(QString(IMAGE_PATH)+"settingsIcons/alerts.png" ),
00081                               labels[2], alertsWidget );
00082   alertsIcon->setDragEnabled(false);
00083   //-------------------------
00084   //set default selection
00085   currentSettingsWidget = layoutWidget;
00086   layoutIcon->setSelected(true);
00087   loadingSavingWidget->hide();
00088   alertsWidget->hide();
00089   //-------------------------
00090   //connect selectionChanged signal to update which settings dialog is displayed
00091   connect( groups, SIGNAL(selectionChanged(QIconViewItem*)),
00092            SLOT(updateDialogue(QIconViewItem*)) );
00093 
00094   //connect mouse over events to paint pseudo selection in ligher blue
00095   connect( groups, SIGNAL(onItem(QIconViewItem*)),
00096            SLOT(repaintGroup(QIconViewItem*)) );
00097 
00098   //clear any pseudo selection when mouse moves off icons
00099   connect( groups, SIGNAL(onViewport()),
00100            SLOT(clearPseudoSelection()) );
00101 
00102 
00103   //create buttons frame and widgets
00104   buttonsFrame = new QFrame( this );
00105   okButton = new QPushButton( tr("Apply"), buttonsFrame );
00106   okButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
00107   okButton->setDefault(true);
00108   connect( okButton, SIGNAL(clicked()), SLOT(saveSettings()) );
00109   cancelButton = new QPushButton( tr("Cancel"), buttonsFrame );
00110   cancelButton->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
00111   connect( cancelButton, SIGNAL(clicked()), SLOT(reject()) );
00112   buttonsGrid = new QGridLayout( buttonsFrame, 1, 5, 0 );
00113   buttonsGrid->setColStretch( 0, 1 );
00114   buttonsGrid->addWidget( okButton, 0, 1 );
00115   buttonsGrid->addColSpacing( 2, 10 );
00116   buttonsGrid->addWidget( cancelButton, 0, 3 );
00117   buttonsGrid->setColStretch( 4, 1 );
00118   //----------------------------------------------
00119   //place all widgets in a grid
00120   grid = new QGridLayout( this, 5, 5, 0 );
00121 
00122   grid->setRowSpacing(0,8);
00123 
00124   grid->addWidget( groups, 1, 1);
00125   grid->addWidget( alertsWidget, 1, 3);
00126   grid->addWidget( layoutWidget, 1, 3);
00127   grid->addWidget( loadingSavingWidget, 1, 3);
00128   grid->setRowStretch( 1, 1 );
00129   grid->setColStretch( 3, 1 );
00130 
00131   grid->setRowSpacing(2,8);
00132 
00133   grid->addMultiCellWidget( buttonsFrame, 3, 3, 0, 4);
00134 
00135   grid->setRowSpacing(4,8);
00136 
00137   grid->setColSpacing(0,8);
00138   grid->setColSpacing(2,8);
00139   grid->setColSpacing(4,8);
00140 
00141   groups->setGridX(1);
00142   groups->arrangeItemsInGrid();
00143 
00144   int maxWidth = 0;
00145   int maxHeight = 0;
00146 
00147   layoutWidget->constPolish();
00148   loadingSavingWidget->constPolish();
00149   alertsWidget->constPolish();
00150   groups->constPolish();
00151 
00152   QSize s = layoutWidget->minimumSizeHint();
00153   if(maxWidth < s.width()) maxWidth = s.width();
00154   if(maxHeight < s.height()) maxHeight = s.height();
00155 
00156   s = loadingSavingWidget->minimumSizeHint();
00157   if(maxWidth < s.width()) maxWidth = s.width();
00158   if(maxHeight < s.height()) maxHeight = s.height();
00159 
00160   s = alertsWidget->minimumSizeHint();
00161   if(maxWidth < s.width()) maxWidth = s.width();
00162   if(maxHeight < s.height()) maxHeight = s.height();
00163 
00164   s = groups->minimumSizeHint();
00165   if(maxHeight < s.height()) maxHeight = s.height();
00166 
00167   maxWidth = maxWidth + s.width();
00168   maxHeight += okButton->minimumSizeHint().height();
00169   //add padding
00170   maxWidth += 3*8;
00171   maxHeight += 3*8;
00172 
00173   //add a little extra for when text entries need more space
00174   maxWidth += 100;
00175 
00176   resize( maxWidth, maxHeight );
00177 
00178   show();
00179   setFixedSize(size());
00180   //----------------------------------------------
00181   //load setting values
00182   layoutWidget->loadSettings();
00183   loadingSavingWidget->loadSettings();
00184   alertsWidget->loadSettings();
00185   //----------------------------------------------
00186 }
//==============================================


Member Function Documentation

void ConfigurationWidget::clearPseudoSelection (  )  [private, slot]

clears any pseudo selections

Definition at line 209 of file configurationWidget.cpp.

References currentPseudoSelection, groups, and GroupIcon::setMousedOver().

Referenced by ConfigurationWidget(), and repaintGroup().

00210 {
00211   //if old pseudo selection unselect it
00212   if(currentPseudoSelection != NULL)
00213   {
00214     currentPseudoSelection->setMousedOver(false);
00215     groups->repaintItem(currentPseudoSelection);
00216     currentPseudoSelection = NULL;
00217   }
00218 }

void ConfigurationWidget::closed (  )  [signal]

Referenced by closeEvent(), and reject().

void ConfigurationWidget::closeEvent ( QCloseEvent *  e  )  [private]

Definition at line 228 of file configurationWidget.cpp.

References closed().

00229 {
00230   QWidget::closeEvent( e );
00231   emit closed();
00232 }

void ConfigurationWidget::reject (  )  [private, slot]

Definition at line 234 of file configurationWidget.cpp.

References closed().

Referenced by ConfigurationWidget().

00235 {
00236   QDialog::reject();
00237   emit closed();
00238 }

void ConfigurationWidget::repaintGroup ( QIconViewItem pseudoSelection  )  [private, slot]

repaints a group icon if move is moved over it

Definition at line 198 of file configurationWidget.cpp.

References clearPseudoSelection(), currentPseudoSelection, groups, and GroupIcon::setMousedOver().

Referenced by ConfigurationWidget().

00199 {
00200   //if old pseudo selection unselect it
00201   clearPseudoSelection();
00202 
00203   //paint new selection
00204   currentPseudoSelection = (GroupIcon*)pseudoSelection;
00205   currentPseudoSelection->setMousedOver(true);
00206   groups->repaintItem(currentPseudoSelection);
00207 }

void ConfigurationWidget::saveSettings (  )  [private, slot]

Definition at line 220 of file configurationWidget.cpp.

References alertsWidget, layoutWidget, loadingSavingWidget, AlertsWidget::saveSettings(), LoadingSavingWidget::saveSettings(), and LayoutSettingsWidget::saveSettings().

Referenced by ConfigurationWidget().

00221 {
00222   layoutWidget->saveSettings();
00223   loadingSavingWidget->saveSettings();
00224   alertsWidget->saveSettings();
00225   close();
00226 }

void ConfigurationWidget::updateDialogue ( QIconViewItem selection  )  [private, slot]

updates shown settings dialogue based on newly selected group

Definition at line 188 of file configurationWidget.cpp.

References currentSettingsWidget.

Referenced by ConfigurationWidget().

00189 {
00190   //hide current selection
00191   currentSettingsWidget->hide();
00192 
00193   //set current and show
00194   currentSettingsWidget = ((GroupIcon*)selection)->getSettingsWidget();
00195   currentSettingsWidget->show();
00196 }


Member Data Documentation

GroupIcon* ConfigurationWidget::alertsIcon [private]

settings icons

Definition at line 83 of file configurationWidget.h.

Referenced by ConfigurationWidget().

AlertsWidget* ConfigurationWidget::alertsWidget [private]

Definition at line 76 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and saveSettings().

QFrame* ConfigurationWidget::buttonsFrame [private]

Definition at line 86 of file configurationWidget.h.

Referenced by ConfigurationWidget().

QGridLayout* ConfigurationWidget::buttonsGrid [private]

Definition at line 88 of file configurationWidget.h.

Referenced by ConfigurationWidget().

QPushButton * ConfigurationWidget::cancelButton [private]

Definition at line 87 of file configurationWidget.h.

Referenced by ConfigurationWidget().

Configuration* ConfigurationWidget::config [private]

Backend config object pointer.

Definition at line 65 of file configurationWidget.h.

Referenced by ConfigurationWidget().

GroupIcon* ConfigurationWidget::currentPseudoSelection [private]

Definition at line 80 of file configurationWidget.h.

Referenced by clearPseudoSelection(), ConfigurationWidget(), and repaintGroup().

QWidget* ConfigurationWidget::currentSettingsWidget [private]

Definition at line 77 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and updateDialogue().

QGridLayout* ConfigurationWidget::grid [private]

Grid widgets place in.

Definition at line 68 of file configurationWidget.h.

Referenced by ConfigurationWidget().

GroupsWidget* ConfigurationWidget::groups [private]

list of subalbums

Definition at line 71 of file configurationWidget.h.

Referenced by clearPseudoSelection(), ConfigurationWidget(), and repaintGroup().

GroupIcon * ConfigurationWidget::layoutIcon [private]

Definition at line 83 of file configurationWidget.h.

Referenced by ConfigurationWidget().

LayoutSettingsWidget* ConfigurationWidget::layoutWidget [private]

Definition at line 75 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and saveSettings().

GroupIcon * ConfigurationWidget::loadingSavingIcon [private]

Definition at line 83 of file configurationWidget.h.

Referenced by ConfigurationWidget().

LoadingSavingWidget* ConfigurationWidget::loadingSavingWidget [private]

settings widgets

Definition at line 74 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and saveSettings().

QPushButton* ConfigurationWidget::okButton [private]

Definition at line 87 of file configurationWidget.h.

Referenced by ConfigurationWidget().


The documentation for this class was generated from the following files:
Generated on Wed Nov 8 16:37:17 2006 for AlbumShaper by  doxygen 1.4.7