AlbumShaper  1.0a3
Public Slots | Signals | Public Member Functions | Private Slots | Private Attributes | List of all members
LayoutWidget Class Reference

Displays list of subalbums and a particular subalbum layout. More...

#include <layoutWidget.h>

Inheritance diagram for LayoutWidget:
Inheritance graph
[legend]
Collaboration diagram for LayoutWidget:
Collaboration graph
[legend]

Public Slots

void setEditTabEnabled (bool val)
 
void editSelectedPhoto ()
 Edits first select photo. More...
 
void organize ()
 Select organize tab. More...
 
void photoStateChangedEvent ()
 handle the changing state of selected/shown photos More...
 
void refreshSelectedCollectionIconName ()
 updates the selected collection icon name More...
 
void updateSubalbumImage (QPixmap *val)
 Updates the current subalbums image. More...
 

Signals

void collectionSelected (Subalbum *)
 

Public Member Functions

 LayoutWidget (QWidget *parent=0, const char *name=0)
 Creates empty layout. More...
 
SubalbumWidgetgetSubalbum ()
 Returns a pointer to the subalbum. More...
 
SubalbumsWidgetgetSubalbums ()
 Returns a pointer to the subalbums. More...
 
WindowgetWindow ()
 Returns a pointer to the window. More...
 
void refresh ()
 Refreshes layout. More...
 
void revertPhotos ()
 Reverts all selected photos in organize mode, or currently shown photo if in editing mode. More...
 

Private Slots

void tabChanged (QWidget *widget)
 handle tab shown changed signal More...
 
void showCollection (Subalbum *collection)
 

Private Attributes

Windowwindow
 Window pointer. More...
 
Q3GridLayout * grid
 Grid items placed in. More...
 
SubalbumsWidgetsubalbums
 List of subalbums. More...
 
QTabWidget * tabbedArea
 Tab widget containing organize and edit widgets. More...
 
SubalbumWidgetsubalbum
 Collection organize widget. More...
 
EditingInterfaceeditingInterface
 Editing interface. More...
 

Detailed Description

Displays list of subalbums and a particular subalbum layout.

Definition at line 39 of file layoutWidget.h.

Constructor & Destructor Documentation

§ LayoutWidget()

LayoutWidget::LayoutWidget ( QWidget parent = 0,
const char *  name = 0 
)

Creates empty layout.

Definition at line 33 of file layoutWidget.cpp.

References collectionSelected(), editingInterface, grid, photoStateChangedEvent(), showCollection(), subalbum, subalbums, tabbedArea, tabChanged(), and window.

33  : QWidget(parent,name)
34 {
35  window = (Window*)parent;
36  subalbums = new SubalbumsWidget( this, "subalbums" );
37  connect( subalbums, SIGNAL( collectionSelected(Subalbum*)),
38  this, SLOT( showCollection( Subalbum* )) );
39 
40  subalbum = new SubalbumWidget( NULL, this, "subalbum" );
41  editingInterface = new EditingInterface( this, "editingInterface" );
42 
43  tabbedArea = new QTabWidget( this, "tabbedArea" );
44  tabbedArea->addTab(subalbum, tr("Organize") );
45  tabbedArea->addTab(editingInterface, tr("Edit") );
46 
47  //by default no photo has been edited
48  tabbedArea->setTabEnabled(editingInterface, false);
49 
50  //catch changing tab selection in order to
51  //initialize editing interface if it was selected
52  connect( tabbedArea, SIGNAL( currentChanged(QWidget*) ),
53  this, SLOT( tabChanged(QWidget*) ) );
54 
55  //catch selectedPhotoStateChanged signal in order to
56  //enable/disable Photos and Tools menu items
57  connect( subalbum, SIGNAL( selectedPhotoStateChanged() ),
58  this, SLOT( photoStateChangedEvent() ) );
59 
60  //catch photo modified signal in order to
61  //enable/disable Photos and Tools menu items
62  connect( editingInterface, SIGNAL( photoModified() ),
63  this, SLOT( photoStateChangedEvent() ) );
64 
65  //place the subalbums list and tabbed area in grid
66  grid = new Q3GridLayout( this, 1, 2, 0 );
67 
68  grid->addWidget( subalbums, 0, 0 );
69  grid->setColSpacing( 0, subalbums->sizeHint().width() );
70 
71  grid->addWidget( tabbedArea, 0, 1 );
72  grid->setColStretch( 1, 1 );
73 }
Top level widget, encapsulates the title widget, the layout widget, and the toolbar widget...
Definition: window.h:39
Columnview of all subalbums in album.
Window * window
Window pointer.
Definition: layoutWidget.h:65
void collectionSelected(Subalbum *)
A subalbum contains photos.
Definition: subalbum.h:48
void tabChanged(QWidget *widget)
handle tab shown changed signal
SubalbumsWidget * subalbums
List of subalbums.
Definition: layoutWidget.h:71
void showCollection(Subalbum *collection)
QTabWidget * tabbedArea
Tab widget containing organize and edit widgets.
Definition: layoutWidget.h:74
Displays subalbum layout.
EditingInterface * editingInterface
Editing interface.
Definition: layoutWidget.h:80
SubalbumWidget * subalbum
Collection organize widget.
Definition: layoutWidget.h:77
void photoStateChangedEvent()
handle the changing state of selected/shown photos
Q3GridLayout * grid
Grid items placed in.
Definition: layoutWidget.h:68
Interface for editing photo.

Member Function Documentation

§ collectionSelected

void LayoutWidget::collectionSelected ( Subalbum )
signal

Referenced by LayoutWidget(), and showCollection().

§ editSelectedPhoto

void LayoutWidget::editSelectedPhoto ( )
slot

Edits first select photo.

Definition at line 154 of file layoutWidget.cpp.

References editingInterface, and tabbedArea.

155 {
156  tabbedArea->showPage( editingInterface );
157 }
QTabWidget * tabbedArea
Tab widget containing organize and edit widgets.
Definition: layoutWidget.h:74
EditingInterface * editingInterface
Editing interface.
Definition: layoutWidget.h:80

§ getSubalbum()

SubalbumWidget * LayoutWidget::getSubalbum ( )

§ getSubalbums()

SubalbumsWidget * LayoutWidget::getSubalbums ( )

§ getWindow()

Window * LayoutWidget::getWindow ( )

§ organize

void LayoutWidget::organize ( )
slot

Select organize tab.

Definition at line 159 of file layoutWidget.cpp.

References tabbedArea.

Referenced by EditingInterface::returnAction(), and showCollection().

160 {
161  tabbedArea->setCurrentPage( 0 );
162 }
QTabWidget * tabbedArea
Tab widget containing organize and edit widgets.
Definition: layoutWidget.h:74

§ photoStateChangedEvent

void LayoutWidget::photoStateChangedEvent ( )
slot

handle the changing state of selected/shown photos

Definition at line 177 of file layoutWidget.cpp.

References SubalbumWidget::anyPhotosSelected(), SubalbumWidget::anySelectedPhotosRevertable(), EditingInterface::currentPhotoRevertable(), editingInterface, Window::getTitle(), subalbum, tabbedArea, TitleWidget::updateMenus(), and window.

Referenced by LayoutWidget(), and tabChanged().

178 {
179  //determine if:
180  //1.) any photos are selected - false if in editing mode
181  //2.) if any revertable photos are selected/shown
182  bool anySelected = false;
183  bool anyRevertable = false;
184 
185  if( tabbedArea->currentPage() == subalbum )
186  {
187  anySelected = subalbum->anyPhotosSelected();
188  anyRevertable = anySelected && subalbum->anySelectedPhotosRevertable();
189  }
190  else
191  {
192  //none selected in editing mode
193  anySelected = false;
194  anyRevertable = editingInterface->currentPhotoRevertable();
195  }
196 
197  //update menus
198  window->getTitle()->updateMenus(anySelected, anyRevertable);
199 }
bool anySelectedPhotosRevertable()
Returns true if any selected photos are revertable.
void updateMenus(bool anySelected=false, bool anyRevertable=false)
update begin presentation menu entry - disabled when no photos in album
Window * window
Window pointer.
Definition: layoutWidget.h:65
QTabWidget * tabbedArea
Tab widget containing organize and edit widgets.
Definition: layoutWidget.h:74
EditingInterface * editingInterface
Editing interface.
Definition: layoutWidget.h:80
bool anyPhotosSelected()
Returns true if any phtos are selected.
SubalbumWidget * subalbum
Collection organize widget.
Definition: layoutWidget.h:77
TitleWidget * getTitle()
returns a pointer to the title widget
Definition: window.cpp:188

§ refresh()

void LayoutWidget::refresh ( )

Refreshes layout.

Definition at line 112 of file layoutWidget.cpp.

References SubalbumsWidget::refreshCollectionsList(), and subalbums.

Referenced by Window::refresh(), and Window::Window().

113 {
115 }
void refreshCollectionsList()
Refreshes list of collections, selecting first by default.
SubalbumsWidget * subalbums
List of subalbums.
Definition: layoutWidget.h:71

§ refreshSelectedCollectionIconName

void LayoutWidget::refreshSelectedCollectionIconName ( )
slot

updates the selected collection icon name

Definition at line 87 of file layoutWidget.cpp.

References SubalbumsWidget::refreshSelectedCollectionName(), and subalbums.

88 {
90 }
SubalbumsWidget * subalbums
List of subalbums.
Definition: layoutWidget.h:71
void refreshSelectedCollectionName()

§ revertPhotos()

void LayoutWidget::revertPhotos ( )

Reverts all selected photos in organize mode, or currently shown photo if in editing mode.

Definition at line 169 of file layoutWidget.cpp.

References editingInterface, EditingInterface::revertCurrentPhoto(), SubalbumWidget::revertSelectedPhotos(), subalbum, and tabbedArea.

Referenced by TitleWidget::revertPhotos().

170 {
171  if( tabbedArea->currentPage() == subalbum )
173  else if( tabbedArea->currentPage() == editingInterface )
175 }
void revertSelectedPhotos()
Revert selected photos to their original form.
void revertCurrentPhoto()
reverts current photo and updates display
QTabWidget * tabbedArea
Tab widget containing organize and edit widgets.
Definition: layoutWidget.h:74
EditingInterface * editingInterface
Editing interface.
Definition: layoutWidget.h:80
SubalbumWidget * subalbum
Collection organize widget.
Definition: layoutWidget.h:77

§ setEditTabEnabled

void LayoutWidget::setEditTabEnabled ( bool  val)
slot

Definition at line 164 of file layoutWidget.cpp.

References editingInterface, and tabbedArea.

Referenced by SubalbumWidget::updateButtons().

165 {
166  tabbedArea->setTabEnabled(editingInterface, val);
167 }
QTabWidget * tabbedArea
Tab widget containing organize and edit widgets.
Definition: layoutWidget.h:74
EditingInterface * editingInterface
Editing interface.
Definition: layoutWidget.h:80

§ showCollection

void LayoutWidget::showCollection ( Subalbum collection)
privateslot

Definition at line 75 of file layoutWidget.cpp.

References collectionSelected(), organize(), SubalbumWidget::setSubalbum(), and subalbum.

Referenced by LayoutWidget().

76 {
77  //ensure currently in organize mode
78  organize();
79 
80  //load collection
81  subalbum->setSubalbum(collection);
82 
83  //pass signal on so title area can update as well
84  emit collectionSelected( collection );
85 }
void setSubalbum(Subalbum *salbum)
Resets the subalbum this subalbum widget is displaying.
void collectionSelected(Subalbum *)
SubalbumWidget * subalbum
Collection organize widget.
Definition: layoutWidget.h:77
void organize()
Select organize tab.

§ tabChanged

void LayoutWidget::tabChanged ( QWidget widget)
privateslot

handle tab shown changed signal

get current collection and photo pointers

Definition at line 117 of file layoutWidget.cpp.

References editingInterface, SubalbumWidget::getFirstSelectedPhoto(), EditingInterface::getPhoto(), SubalbumWidget::getSubalbum(), photoStateChangedEvent(), SubalbumWidget::refreshAllPhotos(), EditingInterface::setFocus(), EditingInterface::setPhoto(), SubalbumWidget::setSelectedPhoto(), and subalbum.

Referenced by LayoutWidget().

118 {
119  //orignize tab seleced
120  if(widget != editingInterface)
121  {
122  //refresh all thumbnails since any could have changed
124 
125  //handle the selected/shown photo state having been changed
127 
128  //find and select the last shown photo in the
129  //editing interface, unselect all other items
131 
132  return;
133  }
134  //edit tab selected - init editor
135  else
136  {
138  Subalbum* collection = subalbum->getSubalbum();
139  Photo* photo = subalbum->getFirstSelectedPhoto();
140 
141  //bail if either pointer is null (sanity check)
142  if(collection == NULL || photo == NULL)
143  return;
144 
145  //init editing interface for current collection:photo
146  editingInterface->setPhoto( collection, photo);
148 
149  //handle the selected/shown photo state having been changed
151  }
152 }
A photo consists of a full size image, a smaller slide show image, a very small thumbnail image...
Definition: photo.h:44
void refreshAllPhotos()
refreshes all photos, selections are preserved
void setSelectedPhoto(Photo *selection)
Sets the selected photo to selection and ensures it is visible.
Photo * getFirstSelectedPhoto()
Returns first selected photo.
A subalbum contains photos.
Definition: subalbum.h:48
void setPhoto(Subalbum *collection, Photo *photo)
Sets the photo pointer and constructs scaled qimage&#39;s for painting.
Subalbum * getSubalbum()
returns a pointer to the backend subalbum
EditingInterface * editingInterface
Editing interface.
Definition: layoutWidget.h:80
SubalbumWidget * subalbum
Collection organize widget.
Definition: layoutWidget.h:77
void photoStateChangedEvent()
handle the changing state of selected/shown photos
Photo * getPhoto()
Returns a pointer to the currently selected photo.

§ updateSubalbumImage

void LayoutWidget::updateSubalbumImage ( QPixmap *  val)
slot

Updates the current subalbums image.

Definition at line 92 of file layoutWidget.cpp.

References subalbums, and SubalbumsWidget::updatedSelectedCollectionImage().

93 {
95 }
SubalbumsWidget * subalbums
List of subalbums.
Definition: layoutWidget.h:71
void updatedSelectedCollectionImage(QPixmap *val)

Member Data Documentation

§ editingInterface

EditingInterface* LayoutWidget::editingInterface
private

Editing interface.

Definition at line 80 of file layoutWidget.h.

Referenced by editSelectedPhoto(), LayoutWidget(), photoStateChangedEvent(), revertPhotos(), setEditTabEnabled(), and tabChanged().

§ grid

Q3GridLayout* LayoutWidget::grid
private

Grid items placed in.

Definition at line 68 of file layoutWidget.h.

Referenced by LayoutWidget().

§ subalbum

SubalbumWidget* LayoutWidget::subalbum
private

Collection organize widget.

Definition at line 77 of file layoutWidget.h.

Referenced by getSubalbum(), LayoutWidget(), photoStateChangedEvent(), revertPhotos(), showCollection(), and tabChanged().

§ subalbums

SubalbumsWidget* LayoutWidget::subalbums
private

List of subalbums.

Definition at line 71 of file layoutWidget.h.

Referenced by getSubalbums(), LayoutWidget(), refresh(), refreshSelectedCollectionIconName(), and updateSubalbumImage().

§ tabbedArea

QTabWidget* LayoutWidget::tabbedArea
private

Tab widget containing organize and edit widgets.

Definition at line 74 of file layoutWidget.h.

Referenced by editSelectedPhoto(), LayoutWidget(), organize(), photoStateChangedEvent(), revertPhotos(), and setEditTabEnabled().

§ window

Window* LayoutWidget::window
private

Window pointer.

Definition at line 65 of file layoutWidget.h.

Referenced by getWindow(), LayoutWidget(), and photoStateChangedEvent().


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