00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef YQTree_h
00023 #define YQTree_h
00024
00025 #include <qvbox.h>
00026 #include <qlistview.h>
00027 #include <qptrdict.h>
00028 #include <ycp/YCPString.h>
00029
00030 #include "YTree.h"
00031
00032
00033 class QLabel;
00034 class YQTreeItem;
00035
00036
00037 class YQTree : public QVBox, public YTree
00038 {
00039 Q_OBJECT
00040
00041 public:
00042
00046 YQTree( QWidget * parent, const YWidgetOpt & opt, const YCPString & label );
00047
00053 void setEnabling( bool enabled );
00054
00060 long nicesize( YUIDimension dim );
00061
00065 void setSize( long newWidth, long newHeight );
00066
00070 void setLabel( const YCPString & label );
00071
00075 void rebuildTree();
00076
00081 virtual const YTreeItem * getCurrentItem() const;
00082
00086 virtual void setCurrentItem( YTreeItem * it );
00087
00091 virtual bool setKeyboardFocus();
00092
00093
00098 void registerItem( const YTreeItem * orig,
00099 const YQTreeItem * clone );
00100
00101
00106 YQTreeItem * findYQTreeItem( const YTreeItem * orig ) const;
00107
00113 virtual void deleteAllItems();
00114
00115
00116 protected slots:
00117
00121 void slotSelected();
00122
00126 void slotActivated();
00127
00128
00129 protected:
00130
00134 QLabel * _qt_label;
00135
00139 QListView * _listView;
00140
00144 int _nextSerialNo;
00145
00154 QPtrDict <YQTreeItem> _yTreeItemToYQTreeItem;
00155 };
00156
00157
00158 class YQTreeItem: public QListViewItem
00159 {
00160 public:
00161
00165 YQTreeItem( YQTree * tree,
00166 QListView * parent,
00167 YTreeItem * origItem,
00168 int serial );
00169
00170
00174 YQTreeItem( YQTree * tree,
00175 YQTreeItem * parent,
00176 YTreeItem * origItem,
00177 int serial );
00178
00182 void buildSubTree( YTreeItemList & items, int & nextSerialNo );
00183
00187 YTreeItem * origItem() { return _origItem; }
00188
00194 virtual void setOpen( bool open );
00195
00196
00197 private:
00198
00202 void init( YQTree * tree,
00203 YTreeItem * yTreeItem,
00204 int serial );
00205
00206
00207 protected:
00208
00212 YQTree * _tree;
00213
00217 YTreeItem * _origItem;
00218
00223 int _serialNo;
00224
00228 QString key( int column, bool ascending ) const;
00229
00230 };
00231
00232
00233 #endif // YQLabel_h