~blue-shell/blue-shell/folderview-qml

« back to all changes in this revision

Viewing changes to dolphin/src/progressindicator.cpp

  • Committer: Peter Penz
  • Date: 2006-11-21 06:02:05 UTC
  • Revision ID: git-v1:daace0e789c3ea5e8a89e514abb717c9c360fc7f
commited initial version of Dolphin

svn path=/trunk/playground/utils/dolphin/; revision=606622

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
 *   Copyright (C) 2006 by Peter Penz                                      *
 
3
 *   peter.penz@gmx.at                                                     *
 
4
 *                                                                         *
 
5
 *   This program is free software; you can redistribute it and/or modify  *
 
6
 *   it under the terms of the GNU General Public License as published by  *
 
7
 *   the Free Software Foundation; either version 2 of the License, or     *
 
8
 *   (at your option) any later version.                                   *
 
9
 *                                                                         *
 
10
 *   This program is distributed in the hope that it will be useful,       *
 
11
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 
12
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 
13
 *   GNU General Public License for more details.                          *
 
14
 *                                                                         *
 
15
 *   You should have received a copy of the GNU General Public License     *
 
16
 *   along with this program; if not, write to the                         *
 
17
 *   Free Software Foundation, Inc.,                                       *
 
18
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 
19
 ***************************************************************************/
 
20
 
 
21
#include "progressindicator.h"
 
22
#include "dolphin.h"
 
23
#include "dolphinstatusbar.h"
 
24
 
 
25
ProgressIndicator::ProgressIndicator(const QString& progressText,
 
26
                                     const QString& finishedText,
 
27
                                     int operationsCount)
 
28
 :  m_showProgress(false),
 
29
    m_operationsCount(operationsCount),
 
30
    m_operationsIndex(0),
 
31
    m_startTime(QTime::currentTime()),
 
32
    m_finishedText(finishedText)
 
33
{
 
34
    DolphinStatusBar* statusBar = Dolphin::mainWin().activeView()->statusBar();
 
35
    statusBar->clear();
 
36
    statusBar->setProgressText(progressText);
 
37
    statusBar->setProgress(0);
 
38
}
 
39
 
 
40
 
 
41
ProgressIndicator::~ProgressIndicator()
 
42
{
 
43
    DolphinStatusBar* statusBar = Dolphin::mainWin().activeView()->statusBar();
 
44
    statusBar->setProgressText(QString::null);
 
45
    statusBar->setProgress(100);
 
46
    statusBar->setMessage(m_finishedText, DolphinStatusBar::OperationCompleted);
 
47
 
 
48
    if (m_showProgress) {
 
49
        Dolphin::mainWin().setEnabled(true);
 
50
    }
 
51
}
 
52
 
 
53
void ProgressIndicator::execOperation()
 
54
{
 
55
    ++m_operationsIndex;
 
56
 
 
57
    if (!m_showProgress) {
 
58
        const int elapsed = m_startTime.msecsTo(QTime::currentTime());
 
59
        if (elapsed > 500) {
 
60
            // the operations took already more than 500 milliseconds,
 
61
            // therefore show a progress indication
 
62
            Dolphin::mainWin().setEnabled(false);
 
63
            m_showProgress = true;
 
64
        }
 
65
    }
 
66
 
 
67
    if (m_showProgress) {
 
68
        const QTime currentTime = QTime::currentTime();
 
69
        if (m_startTime.msecsTo(currentTime) > 100) {
 
70
            m_startTime = currentTime;
 
71
 
 
72
            DolphinStatusBar* statusBar = Dolphin::mainWin().activeView()->statusBar();
 
73
            statusBar->setProgress((m_operationsIndex * 100) / m_operationsCount);
 
74
            kapp->processEvents();
 
75
            statusBar->repaint();
 
76
        }
 
77
    }
 
78
}
 
79
 
 
80