diff options
Diffstat (limited to 'digikam/digikam/ratingfilter.cpp')
-rw-r--r-- | digikam/digikam/ratingfilter.cpp | 205 |
1 files changed, 0 insertions, 205 deletions
diff --git a/digikam/digikam/ratingfilter.cpp b/digikam/digikam/ratingfilter.cpp deleted file mode 100644 index 99006358..00000000 --- a/digikam/digikam/ratingfilter.cpp +++ /dev/null @@ -1,205 +0,0 @@ -/* ============================================================ - * - * This file is a part of digiKam project - * http://www.digikam.org - * - * Date : 2007-10-09 - * Description : a widget to filter album contents by rating - * - * Copyright (C) 2007 by Gilles Caulier <caulier dot gilles at gmail dot com> - * Copyright (C) 2007 by Arnd Baecker <arnd dot baecker at web dot de> - * - * 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. - * - * ============================================================ */ - -// TQt includes. - -#include <tqpainter.h> -#include <tqpalette.h> -#include <tqpixmap.h> -#include <tqcursor.h> -#include <tqwhatsthis.h> - -// KDE includes. - -#include <kiconloader.h> -#include <tdelocale.h> -#include <tdeglobal.h> -#include <kstandarddirs.h> -#include <tdepopupmenu.h> - -// Local includes. - -#include "constants.h" -#include "ddebug.h" -#include "dcursortracker.h" -#include "themeengine.h" -#include "ratingfilter.h" -#include "ratingfilter.moc" - -namespace Digikam -{ - -class RatingFilterPriv -{ -public: - - RatingFilterPriv() - { - dirty = false; - ratingTracker = 0; - filterCond = AlbumLister::GreaterEqualCondition; - } - - bool dirty; - - DTipTracker *ratingTracker; - - AlbumLister::RatingCondition filterCond; -}; - -RatingFilter::RatingFilter(TQWidget* parent) - : RatingWidget(parent) -{ - d = new RatingFilterPriv; - - d->ratingTracker = new DTipTracker("", this); - updateRatingTooltip(); - setMouseTracking(true); - - TQWhatsThis::add(this, i18n("Select the rating value used to filter " - "albums contents. Use contextual pop-up menu to " - "set rating filter condition.")); - - // To dispatch signal from parent widget with filter condition. - connect(this, TQT_SIGNAL(signalRatingChanged(int)), - this, TQT_SLOT(slotRatingChanged())); -} - -RatingFilter::~RatingFilter() -{ - delete d->ratingTracker; - delete d; -} - -void RatingFilter::slotRatingChanged() -{ - emit signalRatingFilterChanged(rating(), d->filterCond); -} - -void RatingFilter::setRatingFilterCondition(AlbumLister::RatingCondition cond) -{ - d->filterCond = cond; - updateRatingTooltip(); - slotRatingChanged(); -} - -AlbumLister::RatingCondition RatingFilter::ratingFilterCondition() -{ - return d->filterCond; -} - -void RatingFilter::mouseMoveEvent(TQMouseEvent* e) -{ - // This method have been re-implemented to display and update the famous TipTracker contents. - - if ( d->dirty ) - { - int pos = e->x() / regPixmapWidth() +1; - - if (rating() != pos) - setRating(pos); - - updateRatingTooltip(); - } -} - -void RatingFilter::mousePressEvent(TQMouseEvent* e) -{ - // This method must be re-implemented to handle witch mousse button is pressed - // and show the rating filter settings pop-up menu with right mouse button. - // NOTE: Left and Middle Mouse buttons continue to change rating filter value. - - d->dirty = false; - - if ( e->button() == Qt::LeftButton || e->button() == Qt::MidButton ) - { - d->dirty = true; - int pos = e->x() / regPixmapWidth() +1; - - if (rating() == pos) - setRating(rating()-1); - else - setRating(pos); - updateRatingTooltip(); - } - else if (e->button() == Qt::RightButton) - { - // Show pop-up menu about Rating Filter condition settings - - TDEPopupMenu popmenu(this); - popmenu.insertTitle(SmallIcon("digikam"), i18n("Rating Filter")); - popmenu.setCheckable(true); - popmenu.insertItem(i18n("Greater Equal Condition"), AlbumLister::GreaterEqualCondition); - popmenu.insertItem(i18n("Equal Condition"), AlbumLister::EqualCondition); - popmenu.insertItem(i18n("Less Equal Condition"), AlbumLister::LessEqualCondition); - popmenu.setItemChecked(d->filterCond, true); - - int choice = popmenu.exec((TQCursor::pos())); - switch(choice) - { - case AlbumLister::GreaterEqualCondition: - case AlbumLister::EqualCondition: - case AlbumLister::LessEqualCondition: - { - setRatingFilterCondition((AlbumLister::RatingCondition)choice); - break; - } - default: - break; - } - } -} - -void RatingFilter::mouseReleaseEvent(TQMouseEvent*) -{ - d->dirty = false; -} - -void RatingFilter::updateRatingTooltip() -{ - // Adapt tip message with rating filter condition settings. - - switch(d->filterCond) - { - case AlbumLister::GreaterEqualCondition: - { - d->ratingTracker->setText(i18n("Rating >= %1").arg(rating())); - break; - } - case AlbumLister::EqualCondition: - { - d->ratingTracker->setText(i18n("Rating = %1").arg(rating())); - break; - } - case AlbumLister::LessEqualCondition: - { - d->ratingTracker->setText(i18n("Rating <= %1").arg(rating())); - break; - } - default: - break; - } -} - -} // namespace Digikam |