ConfigurationWidget Class Reference

#include <configurationWidget.h>

Inheritance diagram for ConfigurationWidget:

Inheritance graph
[legend]
Collaboration diagram for ConfigurationWidget:

Collaboration graph
[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(), 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::closed (  )  [signal]

Referenced by closeEvent(), and reject().

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 }

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::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::saveSettings (  )  [private, slot]

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::closeEvent ( QCloseEvent *  e  )  [private]

Definition at line 228 of file configurationWidget.cpp.

References closed().

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


Member Data Documentation

Backend config object pointer.

Definition at line 65 of file configurationWidget.h.

QGridLayout* ConfigurationWidget::grid [private]

Grid widgets place in.

Definition at line 68 of file configurationWidget.h.

Referenced by ConfigurationWidget().

list of subalbums

Definition at line 71 of file configurationWidget.h.

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

settings widgets

Definition at line 74 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and saveSettings().

Definition at line 75 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and saveSettings().

Definition at line 76 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and saveSettings().

Definition at line 77 of file configurationWidget.h.

Referenced by ConfigurationWidget(), and updateDialogue().

Definition at line 80 of file configurationWidget.h.

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

settings icons

Definition at line 83 of file configurationWidget.h.

Referenced by ConfigurationWidget().

Definition at line 83 of file configurationWidget.h.

Referenced by ConfigurationWidget().

Definition at line 83 of file configurationWidget.h.

Referenced by ConfigurationWidget().

Definition at line 86 of file configurationWidget.h.

Referenced by ConfigurationWidget().

QPushButton* ConfigurationWidget::okButton [private]

Definition at line 87 of file configurationWidget.h.

Referenced by ConfigurationWidget().

QPushButton * ConfigurationWidget::cancelButton [private]

Definition at line 87 of file configurationWidget.h.

Referenced by ConfigurationWidget().

QGridLayout* ConfigurationWidget::buttonsGrid [private]

Definition at line 88 of file configurationWidget.h.

Referenced by ConfigurationWidget().


The documentation for this class was generated from the following files:

Generated on Thu Jun 19 15:43:36 2008 for AlbumShaper by  doxygen 1.5.6