ProgressbarDelegate.cpp
Go to the documentation of this file.
1/*
2* This file is part of ArmarX.
3*
4* ArmarX is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License version 2 as
6* published by the Free Software Foundation.
7*
8* ArmarX is distributed in the hope that it will be useful, but
9* WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*
16* @package ArmarX::
17* @author Mirko Waechter ( mirko.waechter at kit dot edu)
18* @date 2013
19* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22
23#include "ProgressbarDelegate.h"
24
25#include <QApplication>
26#include <QPainter>
27#include <QProgressBar>
28
29namespace armarx
30{
31 void
32 ProgressbarDelegate::paint(QPainter* painter,
33 const QStyleOptionViewItem& option,
34 const QModelIndex& index) const
35 {
36 // This delegate is installed via setItemDelegateForColumn(), so paint() is only
37 // ever called for the workload column. The old hardcoded "index.column() == 3"
38 // check meant the Running Tasks table (workload in column 2) never drew a
39 // progress bar - it fell into the else branch and rendered as plain text
40 // (issue #64.15).
41 const int progress = index.data().toInt();
42
43 QStyleOptionProgressBar progressBarOption;
44 // Carry over selection/enabled state and palette so the bar highlights correctly.
45 progressBarOption.state = option.state;
46 progressBarOption.palette = option.palette;
47 progressBarOption.rect = option.rect;
48 progressBarOption.minimum = 0;
49 progressBarOption.maximum = 100;
50 progressBarOption.progress = progress;
51 progressBarOption.text = QString::number(progress) + "%";
52 progressBarOption.textVisible = true;
53 QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBarOption, painter);
54 }
55} // namespace armarx
uint8_t index
#define option(type, fn)
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
This file offers overloads of toIce() and fromIce() functions for STL container types.