diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-08-28 22:44:34 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-08-31 23:30:34 +0900 |
commit | f9abd9d505434c9244c03eac708e29a0ca042f6b (patch) | |
tree | 30a197ab4c413849188bc131ff859212e636c821 /src/app/Panel/krbriefview.h | |
parent | 14d42d284de233f9937becf3fc9ee0dabede3b21 (diff) | |
download | krusader-r14.1.x.tar.gz krusader-r14.1.x.zip |
Restructure source foldersr14.1.x
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 086012dcad8a976a0dabbb7cbc20c9cb612cdfa9)
Diffstat (limited to 'src/app/Panel/krbriefview.h')
-rw-r--r-- | src/app/Panel/krbriefview.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/src/app/Panel/krbriefview.h b/src/app/Panel/krbriefview.h new file mode 100644 index 0000000..e567ab9 --- /dev/null +++ b/src/app/Panel/krbriefview.h @@ -0,0 +1,173 @@ +/*************************************************************************** + krbriefview.h + ------------------- + copyright : (C) 2000-2007 by Shie Erlich & Rafi Yanai & Csaba Karai + e-mail : krusader@users.sourceforge.net + web site : http://krusader.sourceforge.net +--------------------------------------------------------------------------- +Description +*************************************************************************** + +A + + db dD d8888b. db db .d8888. .d8b. d8888b. d88888b d8888b. + 88 ,8P' 88 `8D 88 88 88' YP d8' `8b 88 `8D 88' 88 `8D + 88,8P 88oobY' 88 88 `8bo. 88ooo88 88 88 88ooooo 88oobY' + 88`8b 88`8b 88 88 `Y8b. 88~~~88 88 88 88~~~~~ 88`8b + 88 `88. 88 `88. 88b d88 db 8D 88 88 88 .8D 88. 88 `88. + YP YD 88 YD ~Y8888P' `8888Y' YP YP Y8888D' Y88888P 88 YD + + H e a d e r F i l e + +*************************************************************************** +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +***************************************************************************/ +#ifndef KRBRIEFVIEW_H +#define KRBRIEFVIEW_H + +#include "krview.h" +#include "krviewitem.h" +#include <kiconview.h> +#include <tqtimer.h> + +// extends KrViewProperties to add detailedview-only properties +class KrBriefViewProperties: public KrViewProperties { +public: + int numberOfColumns; // the number of columns in the view +}; + +class KrBriefViewItem; +class TQDragMoveEvent; +class TQToolTip; +class TQHeader; + +/** + * KrBriefView implements everthing and anything regarding a brief view in a filemananger. + * IT MUST USE KrViewItem as the children to it's *TDEIconView. KrBriefView and KrViewItem are + * tightly coupled and the view will not work with other kinds of items. + * Apart from this, the view is self-reliant and you can use the vast interface to get whatever + * information is necessery from it. + */ +class KrBriefView: public TDEIconView, public KrView { + friend class KrBriefViewItem; + TQ_OBJECT + +public: + KrBriefView( TQHeader *header, TQWidget *parent, bool &left, TDEConfig *cfg = krConfig, const char *name = 0 ); + virtual ~KrBriefView(); + virtual inline KrViewItem *getFirst() { return dynamic_cast<KrViewItem*>( firstItem() ); } + virtual inline KrViewItem *getLast() { return dynamic_cast<KrViewItem*>( lastItem() ); } + virtual inline KrViewItem *getNext( KrViewItem *current ) { return dynamic_cast<KrViewItem*>( dynamic_cast<TQIconViewItem*>( current ) ->nextItem() ); } + virtual inline KrViewItem *getPrev( KrViewItem *current ) { return dynamic_cast<KrViewItem*>( dynamic_cast<TQIconViewItem*>( current ) ->prevItem() ); } + virtual inline KrViewItem *getCurrentKrViewItem() { return dynamic_cast<KrViewItem*>( currentItem() ); } + virtual KrViewItem *getKrViewItemAt(const TQPoint &vp); + virtual inline KrViewItem *findItemByName(const TQString &name) { return dynamic_cast<KrViewItem*>( findItem( name, TQt::ExactMatch ) ); } + virtual void addItems(vfs* v, bool addUpDir = true); + virtual void delItem(const TQString &); + virtual TQString getCurrentItem() const; + virtual void makeItemVisible(const KrViewItem * item ); + virtual void setCurrentItem(const TQString& name ); + virtual void updateView(); + virtual void updateItem(KrViewItem* item ); + virtual void clear(); + virtual void sort() { if( sortDirection() ) sortOrderChanged();TDEIconView::sort( true ); } + virtual void sort( bool ascending ) { if( sortDirection() != ascending ) sortOrderChanged();TDEIconView::sort( ascending ); } + virtual void prepareForActive(); + virtual void prepareForPassive(); + virtual void saveSettings() {} + virtual void restoreSettings() {} + virtual TQString nameInTDEConfig() {return _nameInTDEConfig;} + virtual void resizeEvent ( TQResizeEvent * ); + +signals: + void middleButtonClicked( KrViewItem *item ); + void currentChanged( KrViewItem *item ); + +protected: + virtual void setup(); + virtual void initProperties(); + virtual void initOperator(); + virtual KrViewItem *preAddItem(vfile * vf); + virtual bool preDelItem(KrViewItem * item ); + + void setColumnNr(); + void redrawColumns(); + + virtual void keyPressEvent( TQKeyEvent *e ); + virtual void imStartEvent( TQIMEvent* e ); + virtual void imEndEvent( TQIMEvent *e ); + virtual void imComposeEvent( TQIMEvent *e ); + virtual void contentsMousePressEvent( TQMouseEvent *e ); + virtual void contentsMouseReleaseEvent (TQMouseEvent *e); + virtual void contentsMouseMoveEvent ( TQMouseEvent * e ); + virtual void contentsMouseDoubleClickEvent ( TQMouseEvent * e ); + virtual bool acceptDrag( TQDropEvent* e ) const; + virtual void contentsDropEvent( TQDropEvent *e ); + virtual void contentsDragMoveEvent( TQDragMoveEvent *e ); + virtual void contentsDragLeaveEvent ( TQDragLeaveEvent * ); + virtual void startDrag() { op()->startDrag(); } + virtual bool event( TQEvent *e ); + virtual bool eventFilter( TQObject * watched, TQEvent * e ); + TQMouseEvent * transformMouseEvent( TQMouseEvent * ); + +protected slots: + void rename( TQIconViewItem *item ); + void slotClicked( TQIconViewItem *item ); + void slotDoubleClicked( TQIconViewItem *item ); + void slotItemDescription( TQIconViewItem * ); + void slotCurrentChanged( TQIconViewItem *item ); + void handleContextMenu( TQIconViewItem*, const TQPoint& ); + virtual void renameCurrentItem(); + virtual void showContextMenu( ); + void inplaceRenameFinished( TQIconViewItem *it ); + void setNameToMakeCurrent( TQIconViewItem *it ); + void sortOrderChanged(); + void slotRightButtonPressed(TQIconViewItem*, const TQPoint& point); + void transformCurrentChanged( TQIconViewItem * item ) { emit currentChanged( dynamic_cast<KrViewItem *>(item ) ); } + + /** + * used internally to produce the signal middleButtonClicked() + */ + void slotMouseClicked( int button, TQIconViewItem * item, const TQPoint & pos ); + inline void slotExecuted( TQIconViewItem* i ) { + TQString tmp = dynamic_cast<KrViewItem*>( i ) ->name(); + op()->emitExecuted( tmp ); + } + +public slots: + void refreshColors(); + void quickSearch( const TQString &, int = 0 ); + void stopQuickSearch( TQKeyEvent* ); + void handleQuickSearchEvent( TQKeyEvent* ); + void changeSortOrder(); + + +signals: + void letsDrag(TQStringList items, TQPixmap icon); + void gotDrop(TQDropEvent *); + +private: + TQHeader * header; + bool swushSelects; + TQPoint dragStartPos; + TQIconViewItem *lastSwushPosition; + KrViewItem *_currDragItem; + bool singleClicked; + bool modifierPressed; + TQTime clickTime; + TQIconViewItem *clickedItem; + TQTimer renameTimer; + TQTimer contextMenuTimer; + TQPoint contextMenuPoint; + KrBriefViewItem *currentlyRenamedItem; + TQIconViewItem *pressedItem; + TQMouseEvent *mouseEvent; + TQToolTip *toolTip; +}; + +#endif |