00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KLISTVIEW_H
00021 #define KLISTVIEW_H
00022
00023 class QColorGroup;
00024
00025 #include <kde3support_export.h>
00026
00027 #include <Qt3Support/Q3ListView>
00028 #include <Qt3Support/Q3PtrList>
00029
00030 class Q3DragObject;
00031 class KConfig;
00032 class KLineEdit;
00033 class KConfigGroup;
00034
00057 class KDE3SUPPORT_EXPORT K3ListView : public Q3ListView
00058 {
00059 friend class K3ListViewItem;
00060
00061 Q_OBJECT
00062 Q_ENUMS( SelectionModeExt )
00063 Q_PROPERTY( bool fullWidth READ fullWidth WRITE setFullWidth )
00064 Q_PROPERTY( bool itemsMovable READ itemsMovable WRITE setItemsMovable )
00065 Q_PROPERTY( bool itemsRenameable READ itemsRenameable WRITE setItemsRenameable )
00066 Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled )
00067 Q_PROPERTY( bool autoOpen READ autoOpen WRITE setAutoOpen )
00068 Q_PROPERTY( bool dropVisualizer READ dropVisualizer WRITE setDropVisualizer )
00069 Q_PROPERTY( int tooltipColumn READ tooltipColumn WRITE setTooltipColumn )
00070 Q_PROPERTY( int dropVisualizerWidth READ dropVisualizerWidth WRITE setDropVisualizerWidth )
00071 Q_PROPERTY( QColor alternateBackground READ alternateBackground WRITE setAlternateBackground )
00072 Q_PROPERTY( bool shadeSortColumn READ shadeSortColumn WRITE setShadeSortColumn )
00073
00074 Q_OVERRIDE( SelectionModeExt selectionMode READ selectionModeExt WRITE setSelectionModeExt )
00075
00076 public:
00108 enum SelectionModeExt {
00109 Single = Q3ListView::Single,
00110 Multi = Q3ListView::Multi,
00111 Extended = Q3ListView::Extended,
00112 NoSelection = Q3ListView::NoSelection,
00113 FileManager
00114 };
00115
00121 explicit K3ListView ( QWidget *parent = 0 );
00122
00126 virtual ~K3ListView();
00127
00135 virtual void setAcceptDrops (bool);
00136
00146 virtual bool isExecuteArea( const QPoint& point );
00147
00153 bool isExecuteArea( int x );
00154
00155
00164 QList<Q3ListViewItem *> selectedItems(bool includeHiddenItems = true ) const;
00165
00172 void moveItem(Q3ListViewItem *item, Q3ListViewItem *parent, Q3ListViewItem *after);
00173
00179 Q3ListViewItem *lastItem() const;
00180
00186 Q3ListViewItem* lastChild () const;
00187
00192 KLineEdit* renameLineEdit() const;
00193
00200 bool itemsMovable() const;
00201
00207 bool itemsRenameable() const;
00208
00214 bool dragEnabled() const;
00215
00221 bool autoOpen() const;
00222
00228 bool isRenameable (int column) const;
00229
00235 bool dropVisualizer() const;
00236
00242 int tooltipColumn() const;
00243
00249 bool dropHighlighter() const;
00250
00257 int dropVisualizerWidth () const;
00258
00265 SelectionModeExt selectionModeExt () const;
00266
00272 int itemIndex( const Q3ListViewItem *item ) const;
00273
00279 Q3ListViewItem* itemAtIndex(int index);
00280
00285 KDE_DEPRECATED void setFullWidth();
00286
00292 void setFullWidth(bool fullWidth);
00293
00299 bool fullWidth() const;
00300
00306 virtual int addColumn(const QString& label, int width = -1);
00310 virtual int addColumn(const QIcon& iconset, const QString& label, int width = -1);
00316 virtual void removeColumn(int index);
00317
00327 void setAlternateBackground(const QColor &c);
00333 const QColor &alternateBackground() const;
00334
00342 void saveLayout(KConfig *config, const QString &group) const;
00343 void saveLayout(KConfigGroup & cg) const;
00351 void restoreLayout(KConfig *config, const QString &group);
00352
00353 void restoreLayout(KConfigGroup & cg);
00354
00361 virtual void setSorting(int column, bool ascending = true);
00362
00366 int columnSorted(void) const;
00367
00371 bool ascendingSort(void) const;
00372
00376 virtual void takeItem(Q3ListViewItem *i);
00377
00382 void setShadeSortColumn(bool shadeSortColumn);
00383
00388 bool shadeSortColumn(void) const;
00389 Q_SIGNALS:
00390
00400 void executed( Q3ListViewItem *item );
00401
00413 void executed( Q3ListViewItem *item, const QPoint &pos, int c );
00414
00425 void dropped (QDropEvent * e, Q3ListViewItem *after);
00426
00439 void dropped (K3ListView* list, QDropEvent* e, Q3ListViewItem* after);
00440
00453 void dropped (K3ListView* list, QDropEvent* e, Q3ListViewItem* parent, Q3ListViewItem* after);
00454
00466 void dropped (QDropEvent* e, Q3ListViewItem* parent, Q3ListViewItem* after);
00467
00474 void moved();
00475
00484 void aboutToMove();
00485
00497 void moved (Q3ListViewItem *item, Q3ListViewItem *afterFirst, Q3ListViewItem *afterNow);
00498
00499
00505 void moved(Q3PtrList<Q3ListViewItem> &items, Q3PtrList<Q3ListViewItem> &afterFirst, Q3PtrList<Q3ListViewItem> &afterNow);
00506
00514 void itemRenamed(Q3ListViewItem* item, const QString &str, int col);
00515
00519 void itemRenamed(Q3ListViewItem* item);
00520
00531 void menuShortCutPressed (K3ListView* list, Q3ListViewItem* item);
00532
00541 void contextMenu (K3ListView* l, Q3ListViewItem* i, const QPoint& p);
00542
00543 void itemAdded(Q3ListViewItem *item);
00544 void itemRemoved(Q3ListViewItem *item);
00545
00546 public Q_SLOTS:
00550 virtual void rename(Q3ListViewItem *item, int c);
00551
00562 void setRenameable (int column, bool yesno=true);
00563
00570 virtual void setItemsMovable(bool b);
00571
00579 virtual void setItemsRenameable(bool b);
00580
00585 virtual void setDragEnabled(bool b);
00586
00590 virtual void setAutoOpen(bool b);
00591
00597 virtual void setDropVisualizer(bool b);
00598
00603 void setDropVisualizerWidth (int w);
00604
00611 virtual void setTooltipColumn(int column);
00612
00618 virtual void setDropHighlighter(bool b);
00619
00625 void setSelectionModeExt (SelectionModeExt mode);
00626
00630 void setTabOrderedRenaming(bool b);
00631
00635 bool tabOrderedRenaming() const;
00636
00637 protected:
00646 bool below (const QRect& rect, const QPoint& p);
00647
00657 bool below (Q3ListViewItem* i, const QPoint& p);
00658
00663 virtual bool event( QEvent * );
00664
00669 void emitExecute( Q3ListViewItem *item, const QPoint &pos, int c );
00670
00678 virtual void focusInEvent(QFocusEvent* fe);
00679
00687 virtual void focusOutEvent( QFocusEvent *fe );
00688
00696 virtual void leaveEvent( QEvent *e );
00697
00701 virtual QString tooltip(Q3ListViewItem* item, int column) const;
00702
00706 virtual bool showTooltip(Q3ListViewItem *item, const QPoint &pos, int column) const;
00707
00715 virtual void contentsDragMoveEvent (QDragMoveEvent *event);
00716
00724 virtual void contentsMousePressEvent( QMouseEvent *e );
00725
00733 virtual void contentsMouseMoveEvent( QMouseEvent *e );
00734
00742 virtual void contentsMouseDoubleClickEvent ( QMouseEvent *e );
00743
00751 virtual void contentsDragLeaveEvent (QDragLeaveEvent *event);
00752
00760 virtual void contentsMouseReleaseEvent (QMouseEvent*);
00761
00769 virtual void contentsDropEvent (QDropEvent*);
00770
00778 virtual void contentsDragEnterEvent (QDragEnterEvent *);
00779
00787 virtual void contentsContextMenuEvent ( QContextMenuEvent * );
00788
00794 virtual Q3DragObject *dragObject();
00795
00801 virtual bool acceptDrag (QDropEvent* event) const;
00802
00810 virtual QRect drawDropVisualizer (QPainter *p, Q3ListViewItem *parent, Q3ListViewItem *after);
00811
00818 virtual QRect drawItemHighlighter(QPainter *painter, Q3ListViewItem *item);
00819
00826 virtual void startDrag();
00827
00835 virtual void keyPressEvent (QKeyEvent*);
00836
00844 virtual void viewportPaintEvent(QPaintEvent*);
00845
00850 void activateAutomaticSelection();
00855 void deactivateAutomaticSelection();
00861 bool automaticSelection() const;
00862
00866 virtual void viewportResizeEvent(QResizeEvent* e);
00867
00874 void disableAutoSelection();
00875
00880 void resetAutoSelection();
00881
00886
00887 void doubleClicked( Q3ListViewItem *item, const QPoint &pos, int c );
00888
00889 protected Q_SLOTS:
00894 void slotSettingsChanged(int);
00895
00896 void slotMouseButtonClicked( int btn, Q3ListViewItem *item, const QPoint &pos, int c );
00897 void doneEditing(Q3ListViewItem *item, int row);
00898
00902 void cleanDropVisualizer();
00903
00907 void cleanItemHighlighter();
00908
00912 void emitContextMenu (Q3ListViewItem*, const QPoint&, int);
00913
00917 void emitContextMenu (K3ListView*, Q3ListViewItem*);
00918
00923 void slotOnItem( Q3ListViewItem *item );
00924
00929 void slotOnViewport();
00930
00935 void slotAutoSelect();
00936
00937 void slotDragExpand();
00938
00943 void slotHeaderChanged();
00944
00945 protected:
00949 virtual void movableDropEvent (Q3ListViewItem* parent, Q3ListViewItem* afterme);
00950
00957 virtual void findDrop(const QPoint &pos, Q3ListViewItem *&parent, Q3ListViewItem *&after);
00958
00962 void fileManagerKeyPressEvent (QKeyEvent*);
00963
00967 int depthToPixels( int depth );
00968
00969 #if 0
00970 private:
00971 class Tooltip;
00972 #endif
00973
00974 private:
00975 class K3ListViewPrivate;
00976 K3ListViewPrivate* const d;
00977 bool isExecuteArea( int x, Q3ListViewItem* item );
00978 };
00979
00986 class KDE3SUPPORT_EXPORT K3ListViewItem : public Q3ListViewItem
00987 {
00988 friend class K3ListView;
00989 public:
00996 K3ListViewItem(Q3ListView *parent);
00997 K3ListViewItem(Q3ListViewItem *parent);
00998 K3ListViewItem(Q3ListView *parent, Q3ListViewItem *after);
00999 K3ListViewItem(Q3ListViewItem *parent, Q3ListViewItem *after);
01000
01001 K3ListViewItem(Q3ListView *parent,
01002 const QString& label1, const QString& label2 = QString(),
01003 const QString& label3 = QString(), const QString& label4 = QString(),
01004 const QString& label5 = QString(), const QString& label6 = QString(),
01005 const QString& labem7 = QString(), const QString& label7 = QString());
01006
01007 K3ListViewItem(Q3ListViewItem *parent,
01008 const QString& label1, const QString& label2 = QString(),
01009 const QString& label3 = QString(), const QString& label4 = QString(),
01010 const QString& label5 = QString(), const QString& label6 = QString(),
01011 const QString& labem7 = QString(), const QString& label7 = QString());
01012
01013 K3ListViewItem(Q3ListView *parent, Q3ListViewItem *after,
01014 const QString& label1, const QString& label2 = QString(),
01015 const QString& label3 = QString(), const QString& label4 = QString(),
01016 const QString& label5 = QString(), const QString& label6 = QString(),
01017 const QString& labem7 = QString(), const QString& label7 = QString());
01018
01019 K3ListViewItem(Q3ListViewItem *parent, Q3ListViewItem *after,
01020 const QString& label1, const QString& label2 = QString(),
01021 const QString& label3 = QString(), const QString& label4 = QString(),
01022 const QString& label5 = QString(), const QString& label6 = QString(),
01023 const QString& labem7 = QString(), const QString& label7 = QString());
01024
01025
01026 virtual ~K3ListViewItem();
01027
01028 virtual void insertItem(Q3ListViewItem *item);
01029 virtual void takeItem(Q3ListViewItem *item);
01033 bool isAlternate();
01037 KDE_DEPRECATED const QColor &backgroundColor();
01038
01046 QColor backgroundColor(int column);
01047
01048 virtual void paintCell(QPainter *p, const QColorGroup &cg,
01049 int column, int width, int alignment);
01050
01051 private:
01052 void init();
01053
01054 private:
01055 uint m_odd : 1;
01056 uint m_known : 1;
01057 uint m_unused : 30;
01058 };
01059
01060 #endif
01061
01062