libyui-qt
YQTree.h
1 /*
2  Copyright (C) 2000-2012 Novell, Inc
3  This library is free software; you can redistribute it and/or modify
4  it under the terms of the GNU Lesser General Public License as
5  published by the Free Software Foundation; either version 2.1 of the
6  License, or (at your option) version 3.0 of the License. This library
7  is distributed in the hope that it will be useful, but WITHOUT ANY
8  WARRANTY; without even the implied warranty of MERCHANTABILITY or
9  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
10  License for more details. You should have received a copy of the GNU
11  Lesser General Public License along with this library; if not, write
12  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
13  Floor, Boston, MA 02110-1301 USA
14 */
15 
16 
17 /*-/
18 
19  File: YQTree.h
20 
21  Author: Stefan Hundhammer <shundhammer@suse.de>
22 
23 /-*/
24 
25 #ifndef YQTree_h
26 #define YQTree_h
27 
28 #include <QFrame>
29 #include <QTreeWidget>
30 
31 #include <yui/YTree.h>
32 
33 
34 class YQWidgetCaption;
35 class YQTreeItem;
36 
37 
38 class YQTree : public QFrame, public YTree
39 {
40  Q_OBJECT
41 
42 public:
43 
47  YQTree( YWidget * parent,
48  const std::string & label,
49  bool multiSelection,
50  bool recursiveSelection );
51 
55  virtual ~YQTree();
56 
62  virtual void setLabel( const std::string & label );
63 
72  virtual void rebuildTree();
73 
79  virtual void selectItem( YItem * item, bool selected = true );
80 
86  virtual void deselectAllItems();
87 
93  virtual void deleteAllItems();
94 
95 
101  virtual void setEnabled( bool enabled );
102 
108  virtual int preferredWidth();
109 
115  virtual int preferredHeight();
116 
122  virtual void setSize( int newWidth, int newHeight );
123 
127  virtual bool setKeyboardFocus();
128 
129 
136  virtual YTreeItem * currentItem();
137 
143  virtual void activate();
144 
145 
146 protected slots:
147 
148 
149 
155  void slotSelectionChanged();
156 
162  void slotItemChanged( QTreeWidgetItem * item);
163  void slotItemClicked( QTreeWidgetItem * item, int column );
164 
170  void slotActivated( QTreeWidgetItem * item);
171 
175  void slotItemExpanded( QTreeWidgetItem * item );
176 
180  void slotItemCollapsed( QTreeWidgetItem * item );
181 
187  void slotContextMenu ( const QPoint & pos );
188 
189 
190 protected:
191 
195  void selectItem( YQTreeItem * item );
196 
200  void selectItem(QTreeWidgetItem * item, bool selected, bool recursive);
201 
205  void openBranch( YQTreeItem * item );
206 
212  void buildDisplayTree( YQTreeItem * parentItem,
213  YItemIterator begin,
214  YItemIterator end );
215 
216  //
217  // Data members
218  //
219 
220  YQWidgetCaption * _caption;
221  QTreeWidget * _qt_treeWidget;
222  int _nextSerialNo;
223 };
224 
225 
226 class YQTreeItem: public QTreeWidgetItem
227 {
228 public:
229 
233  YQTreeItem( YQTree * tree,
234  QTreeWidget * parent,
235  YTreeItem * origItem,
236  int serial );
237 
241  YQTreeItem( YQTree * tree,
242  YQTreeItem * parent,
243  YTreeItem * origItem,
244  int serial );
245 
249  YTreeItem * origItem() { return _origItem; }
250 
256  virtual void setOpen( bool open );
257 
258 
259 private:
260 
264  void init( YQTree * tree,
265  YTreeItem * yTreeItem,
266  int serial );
267 
268 
269 protected:
270 
276  QString key( int column, bool ascending ) const;
277 
278 
279  //
280  // Data members
281  //
282 
283  YQTree * _tree;
284  YTreeItem * _origItem;
285  int _serialNo;
286 
287 };
288 
289 
290 #endif // ifndef YQTree_h
virtual void activate()
Definition: YQTree.cc:438
void slotItemChanged(QTreeWidgetItem *item)
Definition: YQTree.cc:298
virtual int preferredWidth()
Definition: YQTree.cc:369
virtual void setOpen(bool open)
Definition: YQTree.cc:513
virtual void rebuildTree()
Definition: YQTree.cc:125
virtual YTreeItem * currentItem()
Definition: YQTree.cc:421
YQTree(YWidget *parent, const std::string &label, bool multiSelection, bool recursiveSelection)
Definition: YQTree.cc:50
Definition: YQTree.h:38
void openBranch(YQTreeItem *item)
Definition: YQTree.cc:208
void slotItemExpanded(QTreeWidgetItem *item)
Definition: YQTree.cc:218
virtual void setLabel(const std::string &label)
Definition: YQTree.cc:118
void slotItemCollapsed(QTreeWidgetItem *item)
Definition: YQTree.cc:229
virtual void deselectAllItems()
Definition: YQTree.cc:240
virtual ~YQTree()
Definition: YQTree.cc:112
virtual void setSize(int newWidth, int newHeight)
Definition: YQTree.cc:387
Definition: YQTree.h:226
virtual void selectItem(YItem *item, bool selected=true)
Definition: YQTree.cc:162
YQTreeItem(YQTree *tree, QTreeWidget *parent, YTreeItem *origItem, int serial)
Definition: YQTree.cc:449
YTreeItem * origItem()
Definition: YQTree.h:249
QString key(int column, bool ascending) const
Definition: YQTree.cc:521
void slotSelectionChanged()
Definition: YQTree.cc:344
virtual void deleteAllItems()
Definition: YQTree.cc:266
virtual void setEnabled(bool enabled)
Definition: YQTree.cc:393
Definition: YQWidgetCaption.h:38
void slotActivated(QTreeWidgetItem *item)
Definition: YQTree.cc:360
void buildDisplayTree(YQTreeItem *parentItem, YItemIterator begin, YItemIterator end)
Definition: YQTree.cc:135
virtual int preferredHeight()
Definition: YQTree.cc:376
virtual bool setKeyboardFocus()
Definition: YQTree.cc:401
void slotContextMenu(const QPoint &pos)
Definition: YQTree.cc:409