1
Index: digikam/digikam/albumpropsedit.cpp
2
===================================================================
3
--- digikam/digikam/albumpropsedit.cpp (revision 508790)
4
+++ digikam/digikam/albumpropsedit.cpp (revision 508791)
10
#include <qpushbutton.h>
14
topLayout->addWidget( datePicker_, 5, 1 );
15
dateLabel->setBuddy( datePicker_ );
17
- QPushButton *avgButton = new QPushButton(
18
- i18n("This is a button which calculates "
20
- "&Average" ), plainPage( ) );
21
- topLayout->addWidget( avgButton, 6, 1);
22
+ QHBox *buttonRow = new QHBox( plainPage( ) );
23
+ QPushButton *dateLowButton = new QPushButton(
24
+ i18n("Button to select the date of the first image",
27
+ QPushButton *dateAvgButton = new QPushButton(
28
+ i18n("This is a button which calculates the average date",
31
+ QPushButton *dateHighButton = new QPushButton(
32
+ i18n("Button to select the date of the last image",
37
+ topLayout->addWidget( buttonRow, 6, 1);
39
setTabOrder(titleEdit_, collectionCombo_);
40
setTabOrder(collectionCombo_, commentsEdit_);
43
connect(titleEdit_, SIGNAL(textChanged(const QString&)),
44
SLOT(slotTitleChanged(const QString&)));
45
- connect(avgButton, SIGNAL( clicked() ),
46
- SLOT( slotAverageButtonClicked()));
47
+ connect(dateLowButton, SIGNAL( clicked() ),
48
+ SLOT( slotDateLowButtonClicked()));
49
+ connect(dateAvgButton, SIGNAL( clicked() ),
50
+ SLOT( slotDateAverageButtonClicked()));
51
+ connect(dateHighButton, SIGNAL( clicked() ),
52
+ SLOT( slotDateHighButtonClicked()));
57
enableButtonOK(!newtitle.isEmpty());
60
-void AlbumPropsEdit::slotAverageButtonClicked()
61
+void AlbumPropsEdit::slotDateLowButtonClicked()
63
setCursor( KCursor::waitCursor() );
65
AlbumDB* db = AlbumManager::instance()->albumDB();
66
+ QDate avDate = db->getAlbumLowestDate( album_->id() );
67
+ setCursor( KCursor::arrowCursor() );
69
+ if ( avDate.isValid() )
70
+ datePicker_->setDate( avDate );
73
+void AlbumPropsEdit::slotDateHighButtonClicked()
75
+ setCursor( KCursor::waitCursor() );
77
+ AlbumDB* db = AlbumManager::instance()->albumDB();
78
+ QDate avDate = db->getAlbumHighestDate( album_->id() );
79
+ setCursor( KCursor::arrowCursor() );
81
+ if ( avDate.isValid() )
82
+ datePicker_->setDate( avDate );
85
+void AlbumPropsEdit::slotDateAverageButtonClicked()
87
+ setCursor( KCursor::waitCursor() );
89
+ AlbumDB* db = AlbumManager::instance()->albumDB();
90
QDate avDate = db->getAlbumAverageDate( album_->id() );
91
setCursor( KCursor::arrowCursor() );
93
Index: digikam/digikam/albumdb.cpp
94
===================================================================
95
--- digikam/digikam/albumdb.cpp (revision 508790)
96
+++ digikam/digikam/albumdb.cpp (revision 508791)
97
@@ -1060,6 +1060,26 @@
101
+QDate AlbumDB::getAlbumLowestDate(int albumID)
103
+ QStringList values;
104
+ execSql( QString("SELECT MIN(datetime) FROM Images "
105
+ "WHERE dirid=%1 GROUP BY dirid")
106
+ .arg( albumID ), &values);
107
+ QDate itemDate = QDate::fromString( values[0], Qt::ISODate );
111
+QDate AlbumDB::getAlbumHighestDate(int albumID)
113
+ QStringList values;
114
+ execSql( QString("SELECT MAX(datetime) FROM Images "
115
+ "WHERE dirid=%1 GROUP BY dirid")
116
+ .arg( albumID ), &values);
117
+ QDate itemDate = QDate::fromString( values[0], Qt::ISODate );
121
QDate AlbumDB::getAlbumAverageDate(int albumID)
124
Index: digikam/digikam/albumpropsedit.h
125
===================================================================
126
--- digikam/digikam/albumpropsedit.h (revision 508790)
127
+++ digikam/digikam/albumpropsedit.h (revision 508791)
131
void slotTitleChanged(const QString& newtitle);
132
- void slotAverageButtonClicked();
133
+ void slotDateLowButtonClicked();
134
+ void slotDateAverageButtonClicked();
135
+ void slotDateHighButtonClicked();
138
#endif /* ALBUMPROPSEDIT_H */
139
Index: digikam/digikam/albumdb.h
140
===================================================================
141
--- digikam/digikam/albumdb.h (revision 508790)
142
+++ digikam/digikam/albumdb.h (revision 508791)
144
QString getAlbumURL(int albumID);
147
+ * Returns the lowest/oldest date of all images for that album.
148
+ * @param albumID the id of the album to calculate
149
+ * @return the date.
151
+ QDate getAlbumLowestDate(int albumID);
154
+ * Returns the highest/newest date of all images for that album.
155
+ * @param albumID the id of the album to calculate
156
+ * @return the date.
158
+ QDate getAlbumHighestDate(int albumID);
161
* Returns the average date of all images for that album.
162
- * @param albumID the id of the album to calculate the average in
163
- * @return the average date.
164
+ * @param albumID the id of the album to calculate
165
+ * @return the date.
167
QDate getAlbumAverageDate(int albumID);