/* ============================================================ * * This file is a part of digiKam project * http://www.digikam.org * * Date : 2005-05-05 * Description : tags filter view * * Copyright (C) 2005 by Renchi Raju * Copyright (C) 2006-2009 by Gilles Caulier * Copyright (C) 2009 by Andi Clemens * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; * either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * ============================================================ */ #ifndef TAGFILTERVIEW_H #define TAGFILTERVIEW_H // Local includes. #include "folderview.h" namespace Digikam { class Album; class TagFilterViewItem; class TagFilterViewPrivate; class TagFilterView : public FolderView { TQ_OBJECT public: enum ToggleAutoTags { NoToggleAuto = 0, Children, Parents, ChildrenAndParents }; public: TagFilterView(TQWidget* parent); ~TagFilterView(); void stateChanged(TagFilterViewItem*); void refresh(); signals: void signalProgressBarMode(int, const TQString&); void signalProgressValue(int); void signalTextTagFilterMatch(bool); public slots: void slotTextTagFilterChanged(const TQString&); /** Reset all active tag filters */ void slotResetTagFilters(); protected: bool acceptDrop(const TQDropEvent *e) const; void contentsDropEvent(TQDropEvent *e); TQDragObject* dragObject(); private slots: void slotTagAdded(Album* album); void slotTagMoved(TAlbum* tag, TAlbum* newParent); void slotTagRenamed(Album* album); void slotTagDeleted(Album* album); void slotClear(); void slotAlbumIconChanged(Album* album); void slotTimeOut(); void slotContextMenu(TQListViewItem*, const TQPoint&, int); void slotABCContextMenu(); void slotGotThumbnailFromIcon(Album *album, const TQPixmap& thumbnail); void slotThumbnailLost(Album *album); void slotReloadThumbnails(); void slotRefresh(const TQMap&); private: void triggerChange(); void tagNew(TagFilterViewItem* item, const TQString& _title=TQString(), const TQString& _icon=TQString()); void tagEdit(TagFilterViewItem* item); void tagDelete(TagFilterViewItem* item); void setTagThumbnail(TAlbum *album); void toggleChildTags(TagFilterViewItem* tItem, bool b); void toggleParentTags(TagFilterViewItem* tItem, bool b); void loadViewState(); void saveViewState(); private: TagFilterViewPrivate *d; }; } // namespace Digikam #endif /* TAGFILTERVIEW_H */