⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 krcalcspacedialog.h

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 H
字号:
/***************************************************************************                          krcalcspacedialog.h  -  description                             -------------------    begin                : Fri Jan 2 2004    copyright            : (C) 2004 by Shie Erlich & Rafi Yanai    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 KRCALCSPACEDIALOG_H#define KRCALCSPACEDIALOG_H/* --=={ Patch by Heiner <h.eichmann@gmx.de> }==-- */// KDE Includes#include <kdialogbase.h>#include <kio/jobclasses.h>// Qt Includes#include <qthread.h>// Krusader Includes#include "../VFS/vfs.h"#include "krdetailedviewitem.h"class ListPanel;class KrView;/* Dialog calculating showing the number of files and directories and its total size   in a dialog. If wanted, the dialog appears after 3 seconds of calculation, to   avoid a short appearence if the result was found quickly. Computes teh result in   a different thread. */class KrCalcSpaceDialog : public KDialogBase{	Q_OBJECT	/* Thread which does the actual calculation. Deletes itself, if no longer	   needed. Creator must call finished(), if the thread is no longer needed.	*/	class CalcThread : public QThread{		KIO::filesize_t m_totalSize, m_currentSize;		unsigned long m_totalFiles;		unsigned long m_totalDirs;		const QStringList m_items;		vfs * m_files;		KrView *m_view;		KrCalcSpaceDialog * m_parent;		QMutex m_synchronizeUsageAccess;		bool m_threadInUse; // true: caller needs the thread		bool m_stop;		void cleanUp(); // Deletes this, if possible	public:		KIO::filesize_t getTotalSize() const {return m_totalSize + m_currentSize;} // the result		unsigned long getTotalFiles() const {return m_totalFiles;} // the result		unsigned long getTotalDirs() const {return m_totalDirs;} // the result		const QStringList & getItems() const {return m_items;} // list of directories to calculate		CalcThread(KrCalcSpaceDialog * parent, ListPanel * panel, const QStringList & items);		void deleteInstance(); // thread is no longer needed.		void run(); // start calculation		void stop(); // stop it. Thread continues until vfs_calcSpace returns	} * m_thread;	friend class CalcThread;	class QTimer * m_pollTimer;	QLabel * m_label;	bool m_autoClose; // true: wait 3 sec. before showing the dialog. Close it, when done	bool m_canceled; // true: cancel was pressed	int m_timerCounter; // internal counter. The timer runs faster as the rehresh (see comment there)	void calculationFinished(); // called if the calulation is done	void showResult(); // show the current result in teh dialog	static void setDirSize(KrDetailedViewItem * viewItem, KIO::filesize_t size) {viewItem->setSize(size);}protected slots:	void timer(); // poll timer was fired	void slotCancel(); // cancel was pressedpublic:	// autoclose: wait 3 sec. before showing the dialog. Close it, when done	KrCalcSpaceDialog(QWidget *parent, ListPanel * panel, const QStringList & items, bool autoclose);	~KrCalcSpaceDialog();	KIO::filesize_t getTotalSize() const {return m_thread->getTotalSize();} // the result	unsigned long getTotalFiles() const {return m_thread->getTotalFiles();} // the result	unsigned long getTotalDirs() const {return m_thread->getTotalDirs();} // the result	bool wasCanceled() const {return m_canceled;} // cancel was pressed; result is probably wrongpublic slots:	void exec(); // start calculation};/* End of patch by Heiner <h.eichmann@gmx.de> */#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -