KDE3Support
k3listview.h
Go to the documentation of this file.
00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2000 Reginald Stadlbauer <reggie@kde.org> 00003 Copyright (C) 2000 Charles Samuels <charles@kde.org> 00004 Copyright (C) 2000 Peter Putzer <putzer@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License version 2 as published by the Free Software Foundation. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00018 Boston, MA 02110-1301, USA. 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 // KDE 4: remove 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(); // #### should be removed in 4.0; use below instead 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 // vim: ts=2 sw=2 et
KDE 4.6 API Reference