149
152
AlbumManager *albumManager;
150
153
AlbumHistory *albumHistory;
151
154
AlbumWidgetStack *albumWidgetStack;
153
156
Sidebar *leftSideBar;
154
157
ImagePropertiesSideBarDB *rightSideBar;
156
159
DateFolderView *dateFolderView;
160
TimeLineView *timeLineView;
157
161
TagFolderView *tagFolderView;
158
162
SearchFolderView *searchFolderView;
159
163
TagFilterView *tagFilterView;
187
191
// Folders sidebar tab contents.
188
192
d->folderBox = new QVBox(this);
189
193
d->folderView = new AlbumFolderView(d->folderBox);
190
d->folderSearchBar = new SearchTextBar(d->folderBox);
194
d->folderSearchBar = new SearchTextBar(d->folderBox, "DigikamViewFolderSearchBar");
191
195
d->folderBox->setSpacing(KDialog::spacingHint());
192
196
d->folderBox->setMargin(0);
194
198
// Tags sidebar tab contents.
195
d->tagBox = new QVBox(this);
196
d->tagFolderView = new TagFolderView(d->tagBox);
197
d->tagSearchBar = new SearchTextBar(d->tagBox);
199
d->tagBox = new QVBox(this);
200
d->tagFolderView = new TagFolderView(d->tagBox);
201
d->tagSearchBar = new SearchTextBar(d->tagBox, "DigikamViewTagSearchBar");
198
202
d->tagBox->setSpacing(KDialog::spacingHint());
199
203
d->tagBox->setMargin(0);
201
205
// Search sidebar tab contents.
202
206
d->searchBox = new QVBox(this);
203
207
d->searchFolderView = new SearchFolderView(d->searchBox);
204
d->searchSearchBar = new SearchTextBar(d->searchBox);
208
d->searchSearchBar = new SearchTextBar(d->searchBox, "DigikamViewSearchSearchBar");
205
209
d->searchBox->setSpacing(KDialog::spacingHint());
206
210
d->searchBox->setMargin(0);
208
212
d->dateFolderView = new DateFolderView(this);
213
d->timeLineView = new TimeLineView(this);
210
215
d->leftSideBar->appendTab(d->folderBox, SmallIcon("folder_image"), i18n("Albums"));
211
d->leftSideBar->appendTab(d->dateFolderView, SmallIcon("date"), i18n("Dates"));
216
d->leftSideBar->appendTab(d->dateFolderView, SmallIcon("date"), i18n("Calendar"));
212
217
d->leftSideBar->appendTab(d->tagBox, SmallIcon("tag"), i18n("Tags"));
218
d->leftSideBar->appendTab(d->timeLineView, SmallIcon("clock"), i18n("Timeline"));
213
219
d->leftSideBar->appendTab(d->searchBox, SmallIcon("find"), i18n("Searches"));
217
223
// Tags Filter sidebar tab contents.
218
224
d->tagFilterBox = new QVBox(this);
219
225
d->tagFilterView = new TagFilterView(d->tagFilterBox);
220
d->tagFilterSearchBar = new SearchTextBar(d->tagFilterBox);
226
d->tagFilterSearchBar = new SearchTextBar(d->tagFilterBox, "DigikamViewTagFilterSearchBar");
221
227
d->tagFilterBox->setSpacing(KDialog::spacingHint());
222
228
d->tagFilterBox->setMargin(0);
248
254
AlbumSettings *settings = AlbumSettings::instance();
249
255
d->iconView->applySettings(settings);
250
256
d->albumWidgetStack->imagePreviewView()->setLoadFullImageSize(settings->getPreviewLoadFullImageSize());
260
void DigikamView::refreshView()
262
d->folderView->refresh();
263
d->dateFolderView->refresh();
264
d->tagFolderView->refresh();
265
d->tagFilterView->refresh();
266
d->rightSideBar->refreshTagsView();
253
269
void DigikamView::setupConnections()
292
308
connect(d->albumManager, SIGNAL(signalAlbumCurrentChanged(Album*)),
293
309
this, SLOT(slotAlbumSelected(Album*)));
295
connect(d->albumManager, SIGNAL(signalAlbumsCleared()),
296
this, SLOT(slotAlbumsCleared()));
298
connect(d->albumManager, SIGNAL(signalAlbumDeleted(Album*)),
299
this, SLOT(slotAlbumDeleted(Album*)));
301
311
connect(d->albumManager, SIGNAL(signalAllAlbumsLoaded()),
302
312
this, SLOT(slotAllAlbumsLoaded()));
304
314
connect(d->albumManager, SIGNAL(signalAlbumItemsSelected(bool) ),
305
315
this, SLOT(slotImageSelected()));
317
connect(d->albumManager, SIGNAL(signalAlbumAdded(Album*)),
318
this, SLOT(slotAlbumAdded(Album*)));
320
connect(d->albumManager, SIGNAL(signalAlbumDeleted(Album*)),
321
this, SLOT(slotAlbumDeleted(Album*)));
307
323
connect(d->albumManager, SIGNAL(signalAlbumRenamed(Album*)),
308
324
this, SLOT(slotAlbumRenamed(Album*)));
326
connect(d->albumManager, SIGNAL(signalAlbumsCleared()),
327
this, SLOT(slotAlbumsCleared()));
310
329
// -- IconView Connections -------------------------------------
312
331
connect(d->iconView, SIGNAL(signalItemsUpdated(const KURL::List&)),
380
399
connect(d->tagFolderView, SIGNAL(signalProgressValue(int)),
381
400
d->parent, SLOT(slotProgressValue(int)));
402
connect(d->parent, SIGNAL(signalResetTagFilters()),
403
d->tagFilterView, SLOT(slotResetTagFilters()));
383
405
// -- Filter Bars Connections ---------------------------------
385
407
connect(d->folderSearchBar, SIGNAL(signalTextChanged(const QString&)),
386
d->folderView, SLOT(slotFolderFilterChanged(const QString&)));
408
d->folderView, SLOT(slotTextFolderFilterChanged(const QString&)));
388
410
connect(d->tagSearchBar, SIGNAL(signalTextChanged(const QString&)),
389
d->tagFolderView, SLOT(slotTagFilterChanged(const QString&)));
411
d->tagFolderView, SLOT(slotTextTagFilterChanged(const QString&)));
391
413
connect(d->searchSearchBar, SIGNAL(signalTextChanged(const QString&)),
392
d->searchFolderView, SLOT(slotSearchFilterChanged(const QString&)));
414
d->searchFolderView, SLOT(slotTextSearchFilterChanged(const QString&)));
394
416
connect(d->tagFilterSearchBar, SIGNAL(signalTextChanged(const QString&)),
395
d->tagFilterView, SLOT(slotTagFilterChanged(const QString&)));
417
d->tagFilterView, SLOT(slotTextTagFilterChanged(const QString&)));
397
connect(d->folderView, SIGNAL(signalFolderFilterMatch(bool)),
419
connect(d->folderView, SIGNAL(signalTextFolderFilterMatch(bool)),
398
420
d->folderSearchBar, SLOT(slotSearchResult(bool)));
400
connect(d->tagFolderView, SIGNAL(signalTagFilterMatch(bool)),
422
connect(d->tagFolderView, SIGNAL(signalTextTagFilterMatch(bool)),
401
423
d->tagSearchBar, SLOT(slotSearchResult(bool)));
403
connect(d->searchFolderView, SIGNAL(signalSearchFilterMatch(bool)),
425
connect(d->searchFolderView, SIGNAL(signalTextSearchFilterMatch(bool)),
404
426
d->searchSearchBar, SLOT(slotSearchResult(bool)));
406
connect(d->tagFilterView, SIGNAL(signalTagFilterMatch(bool)),
428
connect(d->tagFilterView, SIGNAL(signalTextTagFilterMatch(bool)),
407
429
d->tagFilterSearchBar, SLOT(slotSearchResult(bool)));
409
431
// -- Preview image widget Connections ------------------------
590
612
d->searchFolderView->extendedSearchNew();
593
void DigikamView::slotAlbumDeleted(Album *delalbum)
595
d->albumHistory->deleteAlbum(delalbum);
615
void DigikamView::slotAlbumAdded(Album *album)
617
if (!album->isRoot())
619
switch (album->type())
621
case Album::PHYSICAL:
623
d->folderSearchBar->lineEdit()->completionObject()->addItem(album->title());
628
d->tagSearchBar->lineEdit()->completionObject()->addItem(album->title());
629
d->tagFilterSearchBar->lineEdit()->completionObject()->addItem(album->title());
634
d->searchSearchBar->lineEdit()->completionObject()->addItem(album->title());
635
d->timeLineView->searchBar()->lineEdit()->completionObject()->addItem(album->title());
640
// Nothing to do with Album::DATE
647
void DigikamView::slotAlbumDeleted(Album *album)
649
d->albumHistory->deleteAlbum(album);
597
651
// display changed tags
598
if (delalbum->type() == Album::TAG)
652
if (album->type() == Album::TAG)
599
653
d->iconView->updateContents();
602
656
// For what is this needed?
605
d->albumHistory->getCurrentAlbum(&album, &widget);
659
d->albumHistory->getCurrentAlbum(&a, &widget);
607
changeAlbumFromHistory(album, widget);
661
changeAlbumFromHistory(a, widget);
664
if (!album->isRoot())
666
switch (album->type())
668
case Album::PHYSICAL:
670
d->folderSearchBar->lineEdit()->completionObject()->removeItem(album->title());
675
d->tagSearchBar->lineEdit()->completionObject()->removeItem(album->title());
676
d->tagFilterSearchBar->lineEdit()->completionObject()->removeItem(album->title());
681
d->searchSearchBar->lineEdit()->completionObject()->removeItem(album->title());
682
d->timeLineView->searchBar()->lineEdit()->completionObject()->removeItem(album->title());
687
// Nothing to do with Album::DATE
611
694
void DigikamView::slotAlbumRenamed(Album *album)
615
698
if (album == d->albumManager->currentAlbum())
616
699
d->iconView->updateContents();
701
if (!album->isRoot())
703
switch (album->type())
705
case Album::PHYSICAL:
707
d->folderSearchBar->lineEdit()->completionObject()->addItem(album->title());
708
d->folderView->slotTextFolderFilterChanged(d->folderSearchBar->lineEdit()->text());
713
d->tagSearchBar->lineEdit()->completionObject()->addItem(album->title());
714
d->tagFolderView->slotTextTagFilterChanged(d->tagSearchBar->lineEdit()->text());
716
d->tagFilterSearchBar->lineEdit()->completionObject()->addItem(album->title());
717
d->tagFilterView->slotTextTagFilterChanged(d->tagFilterSearchBar->lineEdit()->text());
722
d->searchSearchBar->lineEdit()->completionObject()->addItem(album->title());
723
d->searchFolderView->slotTextSearchFilterChanged(d->searchSearchBar->lineEdit()->text());
725
d->timeLineView->searchBar()->lineEdit()->completionObject()->addItem(album->title());
726
d->timeLineView->folderView()->slotTextSearchFilterChanged(d->timeLineView->searchBar()->lineEdit()->text());
731
// Nothing to do with Album::DATE
738
void DigikamView::slotAlbumsCleared()
740
d->iconView->clear();
741
emit signalAlbumSelected(false);
743
d->folderSearchBar->lineEdit()->completionObject()->clear();
745
d->tagSearchBar->lineEdit()->completionObject()->clear();
746
d->tagFilterSearchBar->lineEdit()->completionObject()->clear();
748
d->searchSearchBar->lineEdit()->completionObject()->clear();
749
d->timeLineView->searchBar()->lineEdit()->completionObject()->clear();
619
752
void DigikamView::slotAlbumHistoryBack(int steps)