//**************************************************************************** //Copyright (C) 2005-2006 Beijing BlueDJ Technology Co.,Ltd. All rights reserved. //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. //This program is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //GNU General Public License for more details. //You should have received a copy of the GNU General Public License //along with this program (in the file LICENSE.GPL); if not, write to the Free Software //Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. //Please visit http://www.bluedj.com for more infomation about us. //Contact us at ggwizard@gmail.com or darkdong@gmail.com. //****************************************************************************/ #include "DJProgressDialog.h" #include "DJSocket.h" #include "DJGlobal.h" DJProgressDialog::DJProgressDialog( DJSocket *socket, QWidget *parent, Qt::WFlags f ) :QDialog( parent, f ),m_socket(socket) { djDebug() << "DJProgressDialog constructor" << isModal(); setMinimumSize( 160, 80 ); setWindowTitle( tr("please wait") ); QVBoxLayout *layout = new QVBoxLayout( this ); m_text = new QLabel; layout->addWidget( m_text ); QPushButton *button = new QPushButton( tr("Cancel") ); layout->addWidget( button ); connect( button, SIGNAL(clicked()), socket, SLOT(cancel())); m_timer = new QTimer( this ); m_timer->setSingleShot( true ); connect(m_timer, SIGNAL(timeout()), socket, SLOT(timeout())); adjustSize(); } DJProgressDialog::~DJProgressDialog() { djDebug() << "DJProgressDialog destructor"; } void DJProgressDialog::moveToCenter() { QDesktopWidget desktop; QPoint center = desktop.availableGeometry().center(); int dx = size().width() >> 1; int dy = size().height() >> 1; move( center - QPoint(dx,dy) ); } void DJProgressDialog::startProgress( int seconds, const QString& text ) { if ( -1 != seconds ) m_timer->start( seconds * 1000 ); else m_timer->stop(); m_text->setText( text ); //moveToCenter(); show(); } void DJProgressDialog::stopProgress() { m_timer->stop(); hide(); }