CTK  0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
ctkAddRemoveComboBox.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Library: CTK
4 
5  Copyright (c) Kitware Inc.
6 
7  Licensed under the Apache License, Version 2.0 (the "License");
8  you may not use this file except in compliance with the License.
9  You may obtain a copy of the License at
10 
11  http://www.apache.org/licenses/LICENSE-2.0.txt
12 
13  Unless required by applicable law or agreed to in writing, software
14  distributed under the License is distributed on an "AS IS" BASIS,
15  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  See the License for the specific language governing permissions and
17  limitations under the License.
18 
19 =========================================================================*/
20 
21 #ifndef __ctkAddRemoveComboBox_h
22 #define __ctkAddRemoveComboBox_h
23 
24 // Qt includes
25 #include <QWidget>
26 #include <QVariant>
27 #include <QModelIndex>
28 
29 // CTK includes
30 #include <ctkPimpl.h>
31 
32 #include "ctkWidgetsExport.h"
33 
34 class QComboBox;
35 class ctkAddRemoveComboBoxPrivate;
36 
40 class CTK_WIDGETS_EXPORT ctkAddRemoveComboBox : public QWidget
41 {
42  Q_OBJECT
43  Q_PROPERTY(QString emptyText READ emptyText WRITE setEmptyText)
44  Q_PROPERTY(bool addEnabled READ addEnabled WRITE setAddEnabled)
45  Q_PROPERTY(bool removeEnabled READ removeEnabled WRITE setRemoveEnabled)
46  Q_PROPERTY(bool editEnabled READ editEnabled WRITE setEditEnabled)
47 
48 public:
50  typedef QWidget Superclass;
51 
53  explicit ctkAddRemoveComboBox(QWidget* parent = 0);
55  virtual void printAdditionalInfo();
56 
59  void setEmptyText(const QString& text);
60  QString emptyText()const;
61 
64  void setComboBoxEnabled(bool enable);
65  bool comboBoxEnabled()const;
66 
69  void setAddEnabled(bool enable);
70  bool addEnabled()const;
71 
74  void setRemoveEnabled(bool enable);
75  bool removeEnabled()const;
76 
79  void setEditEnabled(bool enable);
80  bool editEnabled()const;
81 
82  inline void addItem(const QString &text, const QVariant &userDataVariable = QVariant() )
83  {this->insertItem(this->count(), text, userDataVariable);}
84  inline void addItem(const QIcon &icon, const QString &text, const QVariant &userDataVariable = QVariant() )
85  {this->insertItem(this->count(), icon, text, userDataVariable);}
86  inline void addItems(const QStringList &texts )
87  {this->insertItems(this->count(), texts);}
88 
89  void insertItem(int index, const QString &text, const QVariant &userDataVariable = QVariant() );
90  void insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userDataVariable = QVariant() );
91  void insertItems(int index, const QStringList &texts);
92 
95  int count()const;
96  bool empty()const;
97 
101  int findText(const QString& text, Qt::MatchFlags flags = Qt::MatchExactly | Qt::MatchCaseSensitive ) const;
102  int findData(const QVariant & data, int role = Qt::UserRole, Qt::MatchFlags flags = Qt::MatchExactly | Qt::MatchCaseSensitive ) const;
103 
105  QString itemText(int index) const;
106  QVariant itemData(int index, int role = Qt::UserRole) const;
107 
108  void setItemText(int index, const QString& text);
109  void setItemData(int index, const QVariant& data, int role = Qt::UserRole);
110 
113  int currentIndex() const;
114  inline QString currentText() const
115  {return this->itemText(this->currentIndex());}
116  inline QVariant currentData(int role = Qt::UserRole) const
117  {return this->itemData(this->currentIndex(), role);}
118 
121  void removeItem(int index);
122  inline void removeCurrentItem()
123  {this->removeItem(this->currentIndex());}
124 
127  void clear();
128 
129 Q_SIGNALS:
130  void currentIndexChanged(int index);
131  void activated(int index);
132 
135  void itemAdded(int index);
136 
138  void itemAboutToBeRemoved(int index);
139  void itemRemoved(int index);
140 
141 public Q_SLOTS:
144  void setCurrentIndex(int index);
145 
146 protected Q_SLOTS:
148  virtual void onAdd();
149  virtual void onRemove();
150  virtual void onEdit();
151 
152 protected:
153  void setComboBox(QComboBox* comboBox);
154  QModelIndex rootModelIndex()const;
155  void setRootModelIndex(const QModelIndex& root);
156  int modelColumn()const;
157  QAbstractItemModel* model()const;
158 
159 private Q_SLOTS:
160  //void onRowsAboutToBeInserted(const QModelIndex & parent, int start, int end );
161  void onRowsAboutToBeRemoved(const QModelIndex & parent, int start, int end);
162  void onRowsInserted(const QModelIndex & parent, int start, int end);
163  void onRowsRemoved(const QModelIndex & parent, int start, int end);
164 
165 protected:
166  QScopedPointer<ctkAddRemoveComboBoxPrivate> d_ptr;
167 
168 private:
169  Q_DECLARE_PRIVATE(ctkAddRemoveComboBox);
170  Q_DISABLE_COPY(ctkAddRemoveComboBox);
171 };
172 
173 #endif
ctkAddRemoveComboBox::editEnabled
bool editEnabled() const
ctkAddRemoveComboBox::d_ptr
QScopedPointer< ctkAddRemoveComboBoxPrivate > d_ptr
Definition: ctkAddRemoveComboBox.h:166
ctkAddRemoveComboBox::empty
bool empty() const
ctkAddRemoveComboBox::count
int count() const
ctkAddRemoveComboBox::removeCurrentItem
void removeCurrentItem()
Definition: ctkAddRemoveComboBox.h:122
ctkAddRemoveComboBox::clear
void clear()
ctkAddRemoveComboBox::currentData
QVariant currentData(int role=Qt::UserRole) const
Definition: ctkAddRemoveComboBox.h:116
ctkAddRemoveComboBox::insertItem
void insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userDataVariable=QVariant())
ctkAddRemoveComboBox::setComboBoxEnabled
void setComboBoxEnabled(bool enable)
ctkAddRemoveComboBox::itemRemoved
void itemRemoved(int index)
ctkAddRemoveComboBox::comboBoxEnabled
bool comboBoxEnabled() const
ctkAddRemoveComboBox::setItemText
void setItemText(int index, const QString &text)
ctkAddRemoveComboBox::currentIndex
int currentIndex() const
ctkAddRemoveComboBox::setCurrentIndex
void setCurrentIndex(int index)
ctkAddRemoveComboBox::rootModelIndex
QModelIndex rootModelIndex() const
ctkAddRemoveComboBox::addItems
void addItems(const QStringList &texts)
Definition: ctkAddRemoveComboBox.h:86
ctkAddRemoveComboBox::addItem
void addItem(const QIcon &icon, const QString &text, const QVariant &userDataVariable=QVariant())
Definition: ctkAddRemoveComboBox.h:84
ctkAddRemoveComboBox::Superclass
QWidget Superclass
Superclass typedef.
Definition: ctkAddRemoveComboBox.h:50
ctkAddRemoveComboBox::setEditEnabled
void setEditEnabled(bool enable)
ctkAddRemoveComboBox::activated
void activated(int index)
ctkAddRemoveComboBox::~ctkAddRemoveComboBox
virtual ~ctkAddRemoveComboBox()
ctkAddRemoveComboBox::findText
int findText(const QString &text, Qt::MatchFlags flags=Qt::MatchExactly|Qt::MatchCaseSensitive) const
ctkAddRemoveComboBox::setComboBox
void setComboBox(QComboBox *comboBox)
ctkAddRemoveComboBox::currentText
QString currentText() const
Definition: ctkAddRemoveComboBox.h:114
ctkAddRemoveComboBox::model
QAbstractItemModel * model() const
ctkAddRemoveComboBox::printAdditionalInfo
virtual void printAdditionalInfo()
ctkAddRemoveComboBox::ctkAddRemoveComboBox
ctkAddRemoveComboBox(QWidget *parent=0)
Constructors.
ctkAddRemoveComboBox::addItem
void addItem(const QString &text, const QVariant &userDataVariable=QVariant())
Definition: ctkAddRemoveComboBox.h:82
ctkAddRemoveComboBox::itemAboutToBeRemoved
void itemAboutToBeRemoved(int index)
ctkAddRemoveComboBox::setRootModelIndex
void setRootModelIndex(const QModelIndex &root)
ctkAddRemoveComboBox::setAddEnabled
void setAddEnabled(bool enable)
ctkAddRemoveComboBox::insertItem
void insertItem(int index, const QString &text, const QVariant &userDataVariable=QVariant())
ctkAddRemoveComboBox::currentIndexChanged
void currentIndexChanged(int index)
ctkAddRemoveComboBox::addEnabled
bool addEnabled() const
ctkAddRemoveComboBox::onAdd
virtual void onAdd()
ctkAddRemoveComboBox::itemAdded
void itemAdded(int index)
ctkAddRemoveComboBox::onRemove
virtual void onRemove()
ctkAddRemoveComboBox::removeEnabled
bool removeEnabled() const
ctkAddRemoveComboBox::setEmptyText
void setEmptyText(const QString &text)
ctkAddRemoveComboBox::findData
int findData(const QVariant &data, int role=Qt::UserRole, Qt::MatchFlags flags=Qt::MatchExactly|Qt::MatchCaseSensitive) const
ctkAddRemoveComboBox
Definition: ctkAddRemoveComboBox.h:41
ctkAddRemoveComboBox::itemText
QString itemText(int index) const
ctkAddRemoveComboBox::modelColumn
int modelColumn() const
ctkPimpl.h
ctkAddRemoveComboBox::setItemData
void setItemData(int index, const QVariant &data, int role=Qt::UserRole)
ctkAddRemoveComboBox::insertItems
void insertItems(int index, const QStringList &texts)
ctkAddRemoveComboBox::removeItem
void removeItem(int index)
ctkAddRemoveComboBox::onEdit
virtual void onEdit()
ctkAddRemoveComboBox::itemData
QVariant itemData(int index, int role=Qt::UserRole) const
ctkAddRemoveComboBox::setRemoveEnabled
void setRemoveEnabled(bool enable)
ctkAddRemoveComboBox::emptyText
QString emptyText() const