summaryrefslogtreecommitdiffstats
path: root/src/app/Search/krsearchdialog.h
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2025-08-28 22:44:34 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2025-08-31 23:30:34 +0900
commitf9abd9d505434c9244c03eac708e29a0ca042f6b (patch)
tree30a197ab4c413849188bc131ff859212e636c821 /src/app/Search/krsearchdialog.h
parent14d42d284de233f9937becf3fc9ee0dabede3b21 (diff)
downloadkrusader-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/Search/krsearchdialog.h')
-rw-r--r--src/app/Search/krsearchdialog.h184
1 files changed, 184 insertions, 0 deletions
diff --git a/src/app/Search/krsearchdialog.h b/src/app/Search/krsearchdialog.h
new file mode 100644
index 0000000..273c95a
--- /dev/null
+++ b/src/app/Search/krsearchdialog.h
@@ -0,0 +1,184 @@
+/***************************************************************************
+ krsearchdialog.h
+ -------------------
+ copyright : (C) 2001 by Shie Erlich & Rafi Yanai
+ email : 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 KRSEARCHDIALOG_H
+#define KRSEARCHDIALOG_H
+
+#include "../Filter/filtertabs.h"
+#include "../Filter/generalfilter.h"
+#include "../VFS/krquery.h"
+#include "../VFS/krpermhandler.h"
+#include "krsearchmod.h"
+#include "../GUI/profilemanager.h"
+
+#include <tqwidget.h>
+#include <ksqueezedtextlabel.h>
+#include <tqstringlist.h>
+#include <sys/types.h>
+#include <time.h>
+#include <tqstring.h>
+#include <tqtabwidget.h>
+#include <tqlistview.h>
+#include <tqstringlist.h>
+#include <tdeglobal.h>
+#include <tdelocale.h>
+
+class KrSearchDialog : public TQDialog {
+ TQ_OBJECT
+
+public:
+ KrSearchDialog(TQString profile = 0, TQWidget* parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0 );
+
+ void prepareGUI();
+
+ static KrSearchDialog *SearchDialog;
+
+public slots:
+ void startSearch();
+ void stopSearch();
+ void feedToListBox();
+ void copyToClipBoard();
+ void found(TQString what, TQString where, TDEIO::filesize_t size, time_t mtime, TQString perm, TQString foundText);
+ void closeDialog( bool isAccept = true );
+ void resultDoubleClicked(TQListViewItem*);
+ void resultClicked(TQListViewItem*);
+
+ virtual void keyPressEvent(TQKeyEvent *e);
+ virtual void closeEvent(TQCloseEvent *e);
+ virtual void rightClickMenu(TQListViewItem*, const TQPoint&, int);
+ virtual void resizeEvent( TQResizeEvent *e );
+
+protected slots:
+ void reject();
+
+private:
+ bool gui2query();
+ void editCurrent();
+ void viewCurrent();
+
+private:
+ ProfileManager *profileManager;
+
+ FilterTabs * filterTabs;
+ GeneralFilter * generalFilter;
+
+ TQPushButton* mainHelpBtn;
+ TQPushButton* mainSearchBtn;
+ TQPushButton* mainStopBtn;
+ TQPushButton* mainCloseBtn;
+ TQPushButton* mainFeedToListBoxBtn;
+
+ TQTabWidget* searcherTabs;
+ TQWidget* resultTab;
+ TQGridLayout* resultLayout;
+ TQLabel* foundLabel;
+ KrSqueezedTextLabel *foundTextLabel;
+ KSqueezedTextLabel *searchingLabel;
+
+ TQListView* resultsList;
+
+ KRQuery *query;
+ KRSearchMod *searcher;
+ TQStringList savedSearches;
+ bool isSearching;
+ bool closed;
+
+ static TQString lastSearchText;
+ static int lastSearchType;
+ static bool lastSearchForCase;
+ static bool lastRemoteContentSearch;
+ static bool lastContainsWholeWord;
+ static bool lastContainsWithCase;
+ static bool lastSearchInSubDirs;
+ static bool lastSearchInArchives;
+ static bool lastFollowSymLinks;
+
+ int sizeX;
+ int sizeY;
+};
+
+class ResultListViewItem : public TQListViewItem
+{
+public:
+ ResultListViewItem( TQListView *resultsList, TQString name, TQString where, TDEIO::filesize_t size,
+ TQDateTime date, TQString perm ) : TQListViewItem( resultsList, name, where,
+ KRpermHandler::parseSize(size),
+ TDEGlobal::locale()->formatDateTime( date ), perm )
+ {
+ fileSize = size;
+ fileDate = date;
+ setDragEnabled( true );
+ }
+
+ void setFoundText(TQString text) { _foundText=text; }
+ const TQString& foundText() const { return _foundText; }
+
+ virtual int compare(TQListViewItem *i,int col,bool ascending ) const
+ {
+ if( col == 2 ) {
+ ResultListViewItem *other = (ResultListViewItem *)i;
+ TDEIO::filesize_t otherSize = other->getSize();
+
+ if( fileSize == otherSize )
+ return 0;
+ if( fileSize > otherSize )
+ return 1;
+ return -1;
+ }
+ if( col == 3 ) {
+ ResultListViewItem *other = (ResultListViewItem *)i;
+ TQDateTime otherDate = other->getDate();
+
+ if( fileDate == otherDate )
+ return 0;
+ if( fileDate > otherDate )
+ return 1;
+ return -1;
+ }
+ return TQListViewItem::compare( i, col, ascending );
+ }
+
+ TDEIO::filesize_t getSize() {
+ return fileSize;
+ }
+
+ TQDateTime getDate() {
+ return fileDate;
+ }
+
+private:
+ TDEIO::filesize_t fileSize;
+ TQDateTime fileDate;
+ TQString _foundText;
+};
+
+#endif