Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

RecentAlbums Class Reference

#include <recentAlbums.h>

Collaboration diagram for RecentAlbums:

[legend]
List of all members.

Detailed Description

This class maintains and handles saving and loading a list of recently viewed albums.

Definition at line 26 of file recentAlbums.h.

Public Member Functions

 RecentAlbums ()
void clearList ()
int numEntries ()
int getMaxItems ()
void getEntry (int index, QString &name, QString &location, QString &photoCount)
void insertEntry (QString name, QString location, QString photos="-1", bool insertAtBack=true)

Private Attributes

QStringList albumNames
 lists of album names and locations

QStringList albumLocations
QStringList albumPhotoCounts
uint maxItems
 max allowable items in list


Constructor & Destructor Documentation

RecentAlbums::RecentAlbums  ) 
 

Definition at line 20 of file recentAlbums.cpp.

References MAX_RECENT_ALBUMS, and maxItems.

00021 { 00022 maxItems = MAX_RECENT_ALBUMS; 00023 }


Member Function Documentation

void RecentAlbums::clearList  ) 
 

Definition at line 25 of file recentAlbums.cpp.

References albumLocations, albumNames, and albumPhotoCounts.

Referenced by TitleWidget::clearOpenRecentMenu().

00026 { 00027 albumNames.clear(); 00028 albumLocations.clear(); 00029 albumPhotoCounts.clear(); 00030 }

void RecentAlbums::getEntry int  index,
QString &  name,
QString &  location,
QString &  photoCount
 

Definition at line 42 of file recentAlbums.cpp.

References albumLocations, albumNames, albumPhotoCounts, and getEntry().

Referenced by getEntry(), TitleWidget::loadRecentAlbum(), TitleWidget::refreshOpenRecentMenu(), and Window::~Window().

00043 { 00044 name = *( albumNames.at (index) ); 00045 location = *( albumLocations.at (index) ); 00046 photoCount = *( albumPhotoCounts.at (index) ); 00047 }

int RecentAlbums::getMaxItems  ) 
 

Definition at line 37 of file recentAlbums.cpp.

References maxItems.

Referenced by TitleWidget::populateOpenRecentMenu(), and TitleWidget::TitleWidget().

00038 { 00039 return maxItems; 00040 }

void RecentAlbums::insertEntry QString  name,
QString  location,
QString  photos = "-1",
bool  insertAtBack = true
 

Definition at line 49 of file recentAlbums.cpp.

References albumLocations, albumNames, albumPhotoCounts, insertEntry(), and maxItems.

Referenced by insertEntry(), TitleWidget::loadAlbum(), TitleWidget::saveAlbum(), TitleWidget::saveAsAlbum(), and TitleWidget::TitleWidget().

00053 { 00054 //items are inserted at back during intialization of list when 00055 //starting up the program. no duplicates should exist so no checking is performed 00056 if(insertAtBack || albumNames.count() == 0) 00057 { 00058 albumNames.append ( name ); 00059 albumLocations.append ( location ); 00060 albumPhotoCounts.append( photos ); 00061 } 00062 //items are inserted at the front of the list when either: 00063 //1.) a new album is saved or 00064 //2.) an album is opened. 00065 //the list must then be checked for duplicates and any such duplicates should be removed 00066 else 00067 { 00068 //prepend item 00069 QStringList::Iterator namesIterator = ++albumNames.prepend ( name ); 00070 QStringList::Iterator locationsIterator = ++albumLocations.prepend ( location ); 00071 QStringList::Iterator photoCountsIterator = ++albumPhotoCounts.prepend ( photos ); 00072 00073 //search list for dupes 00074 while( true ) 00075 { 00076 //if location matches remove item 00077 if( location.compare(*locationsIterator) == 0 ) 00078 { 00079 albumNames.remove ( namesIterator ); 00080 albumLocations.remove ( locationsIterator ); 00081 albumPhotoCounts.remove( photoCountsIterator ); 00082 break; 00083 } 00084 00085 //end of list? stop 00086 if( namesIterator == albumNames.end() ) break; 00087 00088 //move to next item. 00089 namesIterator++; 00090 locationsIterator++; 00091 photoCountsIterator++; 00092 } 00093 00094 }//end else 00095 00096 //truncate list as necessary 00097 while(albumNames.count() > maxItems ) 00098 { 00099 albumNames.remove( albumNames.last() ); 00100 albumLocations.remove( albumLocations.last() ); 00101 albumPhotoCounts.remove( albumPhotoCounts.last() ); 00102 } 00103 }

int RecentAlbums::numEntries  ) 
 

Definition at line 32 of file recentAlbums.cpp.

References albumNames.

Referenced by TitleWidget::refreshOpenRecentMenu(), and Window::~Window().

00033 { 00034 return albumNames.count(); 00035 }


Member Data Documentation

QStringList RecentAlbums::albumLocations [private]
 

Definition at line 56 of file recentAlbums.h.

Referenced by clearList(), getEntry(), and insertEntry().

QStringList RecentAlbums::albumNames [private]
 

lists of album names and locations

Definition at line 55 of file recentAlbums.h.

Referenced by clearList(), getEntry(), insertEntry(), and numEntries().

QStringList RecentAlbums::albumPhotoCounts [private]
 

Definition at line 57 of file recentAlbums.h.

Referenced by clearList(), getEntry(), and insertEntry().

uint RecentAlbums::maxItems [private]
 

max allowable items in list

Definition at line 60 of file recentAlbums.h.

Referenced by getMaxItems(), insertEntry(), and RecentAlbums().


The documentation for this class was generated from the following files:
Generated on Sun Mar 4 19:43:08 2007 for AlbumShaper by doxygen 1.3.7