File indexing completed on 2025-03-09 03:58:52
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2009-03-03 0007 * Description : queue tool tip 0008 * 0009 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * 0011 * SPDX-License-Identifier: GPL-2.0-or-later 0012 * 0013 * ============================================================ */ 0014 0015 #include "queuetooltip.h" 0016 0017 // Qt includes 0018 0019 #include <QDateTime> 0020 #include <QPainter> 0021 #include <QPixmap> 0022 #include <QTextDocument> 0023 0024 // Local includes 0025 0026 #include "applicationsettings.h" 0027 #include "queuelist.h" 0028 #include "tooltipfiller.h" 0029 0030 namespace Digikam 0031 { 0032 0033 class Q_DECL_HIDDEN QueueToolTip::Private 0034 { 0035 public: 0036 0037 explicit Private() 0038 : view(nullptr), 0039 item(nullptr) 0040 { 0041 } 0042 0043 QueueListView* view; 0044 QueueListViewItem* item; 0045 }; 0046 0047 QueueToolTip::QueueToolTip(QueueListView* const view) 0048 : DItemToolTip(), 0049 d (new Private) 0050 { 0051 d->view = view; 0052 } 0053 0054 QueueToolTip::~QueueToolTip() 0055 { 0056 delete d; 0057 } 0058 0059 void QueueToolTip::setQueueItem(QueueListViewItem* const item) 0060 { 0061 d->item = item; 0062 0063 if (!d->item || !ApplicationSettings::instance()->showToolTipsIsValid()) 0064 { 0065 hide(); 0066 } 0067 else 0068 { 0069 updateToolTip(); 0070 reposition(); 0071 0072 if (isHidden() && !toolTipIsEmpty()) 0073 { 0074 show(); 0075 } 0076 } 0077 } 0078 0079 QRect QueueToolTip::repositionRect() 0080 { 0081 if (!d->item) 0082 { 0083 return QRect(); 0084 } 0085 0086 QRect rect = d->view->visualItemRect(d->item); 0087 rect.moveTopLeft(d->view->viewport()->mapToGlobal(rect.topLeft())); 0088 0089 return rect; 0090 } 0091 0092 QString QueueToolTip::tipContents() 0093 { 0094 if (!d->item) 0095 { 0096 return QString(); 0097 } 0098 0099 ItemInfo info = d->item->info(); 0100 0101 return ToolTipFiller::imageInfoTipContents(info); 0102 } 0103 0104 } // namespace Digikam 0105 0106 #include "moc_queuetooltip.cpp"