|
Git commit 05b535ee33d61a201dc4dcd0e2b126da8c7cfccd by Marcel Wiesweg.
Committed on 27/02/2011 at 21:58. Pushed by mwiesweg into branch 'development/2.0'. Remaining glue code to make grouping work. Current status: There is basic support for grouping by drag-drop and context menu. TODO: The visual representation is to be improved - we'll probably need some custom drawing, as there are no suitable icons. Some visual indication for items that come from opened groups. The actions are very context-sensitive, so adding to the main menu is not straight-forward. CCMAIL: [hidden email] M +31 -0 digikam/items/digikamimageview.cpp M +4 -0 digikam/items/digikamimageview.h http://commits.kde.org/digikam/05b535ee33d61a201dc4dcd0e2b126da8c7cfccd diff --git a/digikam/items/digikamimageview.cpp b/digikam/items/digikamimageview.cpp index 0e1af91..f1384e2 100644 --- a/digikam/items/digikamimageview.cpp +++ b/digikam/items/digikamimageview.cpp @@ -137,6 +137,9 @@ DigikamImageView::DigikamImageView(QWidget* parent) connect(imageModel()->dragDropHandler(), SIGNAL(assignTags(const QList<ImageInfo>&, const QList<int>&)), MetadataManager::instance(), SLOT(assignTags(const QList<ImageInfo>&, const QList<int>&))); + connect(imageModel()->dragDropHandler(), SIGNAL(addToGroup(const ImageInfo&, const QList<ImageInfo>&)), + MetadataManager::instance(), SLOT(addToGroup(const ImageInfo&, const QList<ImageInfo>&))); + connect(imageModel()->dragDropHandler(), SIGNAL(dioResult(KJob*)), d->utilities, SLOT(slotDIOResult(KJob*))); @@ -257,6 +260,7 @@ void DigikamImageView::showContextMenuOnInfo(QContextMenuEvent* event, const Ima DPopupMenu popmenu(this); ContextMenuHelper cmhelper(&popmenu); + cmhelper.setImageFilterModel(imageFilterModel()); cmhelper.addAction("move_selection_to_album"); cmhelper.addAction(viewAction); @@ -285,6 +289,7 @@ void DigikamImageView::showContextMenuOnInfo(QContextMenuEvent* event, const Ima cmhelper.addSeparator(); // -------------------------------------------------------- cmhelper.addLabelsAction(); + cmhelper.addGroupMenu(selectedImageIDs); // special action handling -------------------------------- @@ -321,6 +326,15 @@ void DigikamImageView::showContextMenuOnInfo(QContextMenuEvent* event, const Ima connect(&cmhelper, SIGNAL(signalAddToExistingQueue(int)), this, SLOT(insertSelectedToExistingQueue(int))); + connect(&cmhelper, SIGNAL(signalCreateGroup()), + this, SLOT(createGroupFromSelection())); + + connect(&cmhelper, SIGNAL(signalUngroup()), + this, SLOT(ungroupSelected())); + + connect(&cmhelper, SIGNAL(signalRemoveFromGroup()), + this, SLOT(removeSelectedFromGroup())); + // -------------------------------------------------------- QAction* choice = cmhelper.exec(event->globalPos()); @@ -554,6 +568,23 @@ void DigikamImageView::createNewAlbumForSelected() d->utilities->createNewAlbumForInfos(selectedImageInfos(), currentAlbum()); } +void DigikamImageView::createGroupFromSelection() +{ + QList<ImageInfo> selectedInfos = selectedImageInfosCurrentFirst(); + ImageInfo groupLeader = selectedInfos.takeFirst(); + MetadataManager::instance()->addToGroup(groupLeader, selectedInfos); +} + +void DigikamImageView::ungroupSelected() +{ + MetadataManager::instance()->ungroup(selectedImageInfos()); +} + +void DigikamImageView::removeSelectedFromGroup() +{ + MetadataManager::instance()->removeFromGroup(selectedImageInfos()); +} + void DigikamImageView::setExifOrientationOfSelected(int orientation) { MetadataManager::instance()->setExifOrientation(selectedImageInfos(), orientation); diff --git a/digikam/items/digikamimageview.h b/digikam/items/digikamimageview.h index 8fab7cd..dd0f60f 100644 --- a/digikam/items/digikamimageview.h +++ b/digikam/items/digikamimageview.h @@ -84,6 +84,10 @@ public Q_SLOTS: void assignRating(const QModelIndex& index, int rating); void assignTag(const QModelIndex& index, const QString& name); + void createGroupFromSelection(); + void ungroupSelected(); + void removeSelectedFromGroup(); + void setFaceMode(bool on); void addRejectionOverlay(ImageDelegate* delegate = 0); void addTagEditOverlay(ImageDelegate* delegate = 0); _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
| Free forum by Nabble | Edit this page |
