1
/****************************************************************************
3
** Copyright (C) 2005-2005 Trolltech AS. All rights reserved.
5
** This file is part of the example classes of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
31
#include "iconpreviewarea.h"
33
IconPreviewArea::IconPreviewArea(QWidget *parent)
36
QGridLayout *mainLayout = new QGridLayout;
37
setLayout(mainLayout);
39
stateLabels[0] = createHeaderLabel(tr("Off"));
40
stateLabels[1] = createHeaderLabel(tr("On"));
41
Q_ASSERT(NumStates == 2);
43
modeLabels[0] = createHeaderLabel(tr("Normal"));
44
modeLabels[1] = createHeaderLabel(tr("Active"));
45
modeLabels[2] = createHeaderLabel(tr("Disabled"));
46
Q_ASSERT(NumModes == 3);
48
for (int j = 0; j < NumStates; ++j)
49
mainLayout->addWidget(stateLabels[j], j + 1, 0);
51
for (int i = 0; i < NumModes; ++i) {
52
mainLayout->addWidget(modeLabels[i], 0, i + 1);
54
for (int j = 0; j < NumStates; ++j) {
55
pixmapLabels[i][j] = createPixmapLabel();
56
mainLayout->addWidget(pixmapLabels[i][j], j + 1, i + 1);
61
void IconPreviewArea::setIcon(const QIcon &icon)
67
void IconPreviewArea::setSize(const QSize &size)
69
if (size != this->size) {
75
QLabel *IconPreviewArea::createHeaderLabel(const QString &text)
77
QLabel *label = new QLabel(tr("<b>%1</b>").arg(text));
78
label->setAlignment(Qt::AlignCenter);
82
QLabel *IconPreviewArea::createPixmapLabel()
84
QLabel *label = new QLabel;
85
label->setEnabled(false);
86
label->setAlignment(Qt::AlignCenter);
87
label->setFrameShape(QFrame::Box);
88
label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
89
label->setBackgroundRole(QPalette::Base);
90
label->setMinimumSize(132, 132);
94
void IconPreviewArea::updatePixmapLabels()
96
for (int i = 0; i < NumModes; ++i) {
101
mode = QIcon::Active;
103
mode = QIcon::Disabled;
106
for (int j = 0; j < NumStates; ++j) {
107
QIcon::State state = (j == 0) ? QIcon::Off : QIcon::On;
108
QPixmap pixmap = icon.pixmap(size, mode, state);
109
pixmapLabels[i][j]->setPixmap(pixmap);
110
pixmapLabels[i][j]->setEnabled(!pixmap.isNull());