File indexing completed on 2022-09-27 13:43:07

0001 /* ============================================================
0002  *
0003  * This file is a part of KDE project
0004  *
0005  *
0006  * Date        : 2009-07-05
0007  * Description : A combobox which also has an intermediate state.
0008  *               This is akin to the intermediate state in a checkbox and
0009  *               needed when a single combobox controls more than one item,
0010  *               which are manually set to different states.
0011  *               The intermediate state is indicated by appending an extra item
0012  *               with a user specified text (default is "Various"). Whenever an
0013  *               other item is set, this special state is removed from the list
0014  *               so it can never be selected explicitly.
0015  *
0016  * Copyright (C) 2009 by Pieter Edelman <pieter dot edelman at gmx dot net>
0017  *
0018  * This program is free software; you can redistribute it
0019  * and/or modify it under the terms of the GNU General
0020  * Public License as published by the Free Software Foundation;
0021  * either version 2, or (at your option) any later version.
0022  *
0023  * This program is distributed in the hope that it will be useful,
0024  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0025  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0026  * GNU General Public License for more details.
0027  *
0028  * ============================================================ */
0029 
0030 #ifndef COMBOBOXINTERMEDIATE_H
0031 #define COMBOBOXINTERMEDIATE_H
0032 
0033 // Qt includes
0034 
0035 #include <QComboBox>
0036 #include <QString>
0037 
0038 // KDE includes
0039 
0040 #include <klocalizedstring.h>
0041 
0042 namespace KIPIFlickrPlugin
0043 {
0044 
0045 class ComboBoxIntermediate : public QComboBox
0046 {
0047     Q_OBJECT
0048 
0049 public:
0050 
0051     /* Initialize the combobox with a parent and a string to indicate the
0052      * intermediate state.
0053      */
0054     explicit ComboBoxIntermediate(QWidget* const = nullptr, const QString& = i18n("Various"));
0055     ~ComboBoxIntermediate();
0056 
0057     /* Set the state of the combobox to intermediate. The intermediate state is
0058      * 'unset' when another index is selected.
0059      */
0060     void setIntermediate(bool);
0061 
0062 private Q_SLOTS:
0063 
0064     void slotIndexChanged(int);
0065 
0066 private:
0067 
0068     bool    m_isIntermediate;
0069     QString m_intermediateText;
0070 };
0071 
0072 } // namespace KIPIFlickrPlugin
0073 
0074 #endif /* COMBOBOXINTERMEDIATE_H */