digiKam
Loading...
Searching...
No Matches
squeezedcombobox.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2008-08-21
7 * Description : a combo box with a width not depending of text
8 * content size
9 *
10 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2008 by Andi Clemens <andi dot clemens at googlemail dot com>
12 * SPDX-FileCopyrightText: 2005 by Tom Albers <tomalbers at kde dot nl>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QComboBox>
23
24// Local includes
25
26#include "digikam_export.h"
27
28namespace Digikam
29{
30
40class DIGIKAM_EXPORT SqueezedComboBox : public QComboBox
41{
42 Q_OBJECT
43
44public:
45
51 explicit SqueezedComboBox(QWidget* const parent = nullptr, const char* name = nullptr);
52
56 ~SqueezedComboBox() override;
57
64 bool contains(const QString& text) const;
65
72 int findOriginalText(const QString& text,
73 Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
74
84 void insertSqueezedItem(const QString& newItem, int index,
85 const QVariant& userData = QVariant());
86
95 void insertSqueezedList(const QStringList& newItems, int index);
96
103 void addSqueezedItem(const QString& newItem,
104 const QVariant& userData = QVariant());
105
111 void setCurrent(const QString& itemText);
112
118 QString itemHighlighted() const;
119
125 QString item(int index) const;
126
130 QSize sizeHint() const override;
131
132Q_SIGNALS:
133
134 void signalItemActivated(const QString&);
135
136private Q_SLOTS:
137
138 void slotTimeOut();
139 void slotUpdateToolTip(int index);
140
141private:
142
143 void resizeEvent(QResizeEvent*) override;
144 QString squeezeText(const QString& original) const;
145
147 QString currentText() const;
148 void setCurrentText(const QString& itemText);
149 void insertItem(const QString& text);
150 void insertItem(qint32 index, const QString& text);
151 void insertItem(int index,
152 const QIcon& icon,
153 const QString& text,
154 const QVariant& userData = QVariant());
155 void insertItems(int index, const QStringList& list);
156 void addItem(const QString& text);
157 void addItem(const QIcon& icon,
158 const QString& text,
159 const QVariant& userData = QVariant());
160 void addItems(const QStringList& texts);
161 QString itemText(int index) const;
162 int findText(const QString& text,
163 Qt::MatchFlags flags = Qt::MatchExactly |
164 Qt::MatchCaseSensitive) const;
165
166private:
167
168 class Private;
169 Private* const d = nullptr;
170};
171
172} // namespace Digikam
Definition squeezedcombobox.h:41
void signalItemActivated(const QString &)
Definition datefolderview.cpp:34