1
/****************************************************************************
3
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
6
** This file is part of Qt Creator.
8
** Commercial License Usage
9
** Licensees holding valid commercial Qt licenses may use this file in
10
** accordance with the commercial license agreement provided with the
11
** Software or, alternatively, in accordance with the terms contained in
12
** a written agreement between you and Digia. For licensing terms and
13
** conditions see http://qt.digia.com/licensing. For further information
14
** use the contact form at http://qt.digia.com/contact-us.
16
** GNU Lesser General Public License Usage
17
** Alternatively, this file may be used under the terms of the GNU Lesser
18
** General Public License version 2.1 as published by the Free Software
19
** Foundation and appearing in the file LICENSE.LGPL included in the
20
** packaging of this file. Please review the following information to
21
** ensure the GNU Lesser General Public License version 2.1 requirements
22
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
** In addition, as a special exception, Digia gives you certain additional
25
** rights. These rights are described in the Digia Qt LGPL Exception
26
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
****************************************************************************/
30
#include "layoutwidget.h"
31
#include <QGridLayout>
38
LayoutWidget::LayoutWidget(QWidget *parent) : QFrame(parent)
40
QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding);
42
QGridLayout *grid = new QGridLayout(this);
44
grid->setContentsMargins(0,0,0,0);
47
m_topButton = new QPushButton(this);
48
m_topButton->setCheckable(true);
49
m_topButton->setSizePolicy(policy);
51
grid->addWidget(m_topButton, 0, 2, 2, 1, Qt::AlignHCenter);
53
m_bottomButton = new QPushButton(this);
54
m_bottomButton->setCheckable(true);
56
m_bottomButton->setSizePolicy(policy);
58
grid->addWidget(m_bottomButton, 3, 2, 2, 1, Qt::AlignHCenter);
60
m_leftButton = new QPushButton(this);
61
m_leftButton->setCheckable(true);
62
m_leftButton->setSizePolicy(policy);
65
grid->addWidget(m_leftButton, 2, 0, 1, 2, Qt::AlignVCenter);
67
m_rightButton = new QPushButton(this);
68
m_rightButton->setCheckable(true);
69
m_rightButton->setSizePolicy(policy);
71
grid->addWidget(m_rightButton, 2, 3, 1, 2, Qt::AlignVCenter);
74
m_middleButton = new QPushButton(this);
76
grid->addWidget(m_middleButton, 2, 2, 1, 1, Qt::AlignCenter);
78
connect(m_topButton, SIGNAL(toggled(bool)), this, SLOT(setTopAnchor(bool)));
79
connect(m_bottomButton, SIGNAL(toggled(bool)), this, SLOT(setBottomAnchor(bool)));
80
connect(m_leftButton, SIGNAL(toggled(bool)), this, SLOT(setLeftAnchor(bool)));
81
connect(m_rightButton, SIGNAL(toggled(bool)), this, SLOT(setRightAnchor(bool)));
83
connect(m_middleButton, SIGNAL(pressed()), this, SIGNAL(fill()));
86
LayoutWidget::~LayoutWidget()
90
void LayoutWidget::setIcon(QPushButton *button, QUrl url)
92
if (url.scheme() == QLatin1String("file")) {
93
QFile file(url.toLocalFile());
94
if (file.open(QIODevice::ReadOnly)) {
95
QPixmap pixmap(url.toLocalFile());
96
button->setIcon(pixmap);
98
qWarning() << QString::fromUtf8("setIconFromFile: %1: %2").arg(
99
file.fileName(), file.errorString());