File indexing completed on 2024-04-21 05:26:40
0001 /******************************************************************* 0002 * backtraceratingwidget.cpp 0003 * SPDX-FileCopyrightText: 2009 Dario Andres Rodriguez <andresbajotierra@gmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 * 0007 ******************************************************************/ 0008 0009 #include "backtraceratingwidget.h" 0010 0011 #include <QIcon> 0012 #include <QPainter> 0013 0014 BacktraceRatingWidget::BacktraceRatingWidget(QWidget *parent) 0015 : QWidget(parent) 0016 , m_state(BacktraceGenerator::NotLoaded) 0017 { 0018 setMinimumSize(105, 24); 0019 0020 m_starPixmap = QIcon::fromTheme(QStringLiteral("rating")).pixmap(QSize(22, 22)); 0021 m_disabledStarPixmap = QIcon::fromTheme(QStringLiteral("rating")).pixmap(QSize(22, 22), QIcon::Disabled); 0022 m_errorPixmap = QIcon::fromTheme(QStringLiteral("dialog-error")).pixmap(QSize(22, 22)); 0023 } 0024 0025 void BacktraceRatingWidget::setUsefulness(BacktraceParser::Usefulness usefulness) 0026 { 0027 switch (usefulness) { 0028 case BacktraceParser::ReallyUseful: 0029 m_numStars = 3; 0030 break; 0031 case BacktraceParser::MayBeUseful: 0032 m_numStars = 2; 0033 break; 0034 case BacktraceParser::ProbablyUseless: 0035 m_numStars = 1; 0036 break; 0037 case BacktraceParser::Useless: 0038 case BacktraceParser::InvalidUsefulness: 0039 m_numStars = 0; 0040 break; 0041 } 0042 update(); 0043 } 0044 0045 void BacktraceRatingWidget::paintEvent(QPaintEvent *event) 0046 { 0047 Q_UNUSED(event); 0048 0049 QPainter p(this); 0050 p.drawPixmap(QPoint(30, 1), m_numStars >= 1 ? m_starPixmap : m_disabledStarPixmap); 0051 p.drawPixmap(QPoint(55, 1), m_numStars >= 2 ? m_starPixmap : m_disabledStarPixmap); 0052 p.drawPixmap(QPoint(80, 1), m_numStars >= 3 ? m_starPixmap : m_disabledStarPixmap); 0053 0054 switch (m_state) { 0055 case BacktraceGenerator::Failed: 0056 case BacktraceGenerator::FailedToStart: { 0057 p.drawPixmap(QPoint(0, 1), m_errorPixmap); 0058 break; 0059 } 0060 default: 0061 break; 0062 } 0063 0064 p.end(); 0065 } 0066 0067 #include "moc_backtraceratingwidget.cpp"