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

📄 progressdlg.cpp

📁 linux下的sourceinsight
💻 CPP
字号:
/*************************************************************************** * * Copyright (C) 2005 Elad Lahav (elad_lahav@users.sourceforge.net) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. *  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ***************************************************************************/#include "progressdlg.h"/** * Class constructor. * @param	sCaption	The dialogue's title * @param	sText		The text to display * @param	pParent		The parent widget * @param	szName		The widget's name */ProgressDlg::ProgressDlg(const QString& sCaption, const QString& sText,	QWidget* pParent, const char* szName) :	KProgressDialog(pParent, szName, sCaption, sText, true),	m_nIdleValue(-1){	setAutoClose(false);	setAllowCancel(false);		// Create the idle-progress timer	m_pIdleTimer = new QTimer(this);	// Display a busy indicator by increasing the value of the idle counter	connect (m_pIdleTimer, SIGNAL(timeout()), this, SLOT(slotShowBusy()));}/** * Class destructor. */ProgressDlg::~ProgressDlg(){}/** * Sets a new value to the progress bar. * If the new value is non-zero, the progress bar is advanced. Otherwise, the * idle timer is initiated to display a busy indicator. * @param	nValue	The new value to set. */void ProgressDlg::setValue(int nValue){	KProgress* pProgress;	pProgress = progressBar();		if (nValue != 0) {		// Do nothing if the value hasn't changed		if (nValue == pProgress->progress())			return;		// Handle first non-zero value		if (m_nIdleValue >= 0) {			m_pIdleTimer->stop();			m_nIdleValue = -1;			pProgress->setPercentageVisible(true);		}		// Set the new value		pProgress->setValue(nValue);	}	else if (m_nIdleValue == -1) {		// Handle first 0 value		pProgress->setValue(0);		pProgress->setPercentageVisible(false);		m_nIdleValue = 0;		m_pIdleTimer->start(200);	}}void ProgressDlg::setIdle(){	m_nIdleValue = -1;	setValue(0);}/** * Increaes the value of the dummy counter by 1. * This slot is called by the timeout() event of the idle timer. */void ProgressDlg::slotShowBusy(){	// Increase the counter	m_nIdleValue += 5;	if (m_nIdleValue == 100)		m_nIdleValue = 0;			// Set the value of the progress-bar	progressBar()->setValue(m_nIdleValue);}#include "progressdlg.moc"

⌨️ 快捷键说明

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