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
00108
00109 protected slots:
00110
00114 void slotSelected();
00115
00119 void slotActivated();
00120
00121
00122 protected:
00123
00127 QLabel * _qt_label;
00128
00132 QListView * _listView;
00133
00137 int _nextSerialNo;
00138
00147 QPtrDict <YQTreeItem> _yTreeItemToYQTreeItem;
00148 };
00149
00150
00151 class YQTreeItem: public QListViewItem
00152 {
00153 public:
00154
00158 YQTreeItem( YQTree * tree,
00159 QListView * parent,
00160 const YTreeItem * origItem,
00161 int serial );
00162
00163
00167 YQTreeItem( YQTree * tree,
00168 YQTreeItem * parent,
00169 const YTreeItem * origItem,
00170 int serial );
00171
00175 void buildSubTree( YTreeItemList & items, int & nextSerialNo );
00176
00180 const YTreeItem * origItem() { return _origItem; }
00181
00182
00183 private:
00184
00188 void init( YQTree * tree,
00189 const YTreeItem * yTreeItem,
00190 int serial );
00191
00192
00193 protected:
00194
00198 YQTree * _tree;
00199
00203 const YTreeItem * _origItem;
00204
00209 int _serialNo;
00210
00214 QString key( int column, bool ascending ) const;
00215
00216 };
00217
00218
00219 #endif // YQLabel_h