~ubuntu-branches/ubuntu/precise/fritzing/precise

« back to all changes in this revision

Viewing changes to src/partseditor/zoomcontrols.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Georges Khaznadar
  • Date: 2011-08-26 10:11:05 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110826101105-w5hmn7zcf93ig5v6
Tags: 0.6.3b-1
* upgrapded to the newer upstream version
* parameters of the function GraphicsUtils::distanceFromLine in 
  src/svg/groundplanegenerator.cpp:767 are now declared as doubles,
  which Closes: #636441
* the new version fixes src/utils/folderutils.cpp, which
  Closes: #636061

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*******************************************************************
2
 
 
3
 
Part of the Fritzing project - http://fritzing.org
4
 
Copyright (c) 2007-2010 Fachhochschule Potsdam - http://fh-potsdam.de
5
 
 
6
 
Fritzing is free software: you can redistribute it and/or modify
7
 
it under the terms of the GNU General Public License as published by
8
 
the Free Software Foundation, either version 3 of the License, or
9
 
(at your option) any later version.
10
 
 
11
 
Fritzing is distributed in the hope that it will be useful,
12
 
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
GNU General Public License for more details.
15
 
 
16
 
You should have received a copy of the GNU General Public License
17
 
along with Fritzing.  If not, see <http://www.gnu.org/licenses/>.
18
 
 
19
 
********************************************************************
20
 
 
21
 
$Revision: 4183 $:
22
 
$Author: cohen@irascible.com $:
23
 
$Date: 2010-05-06 22:30:19 +0200 (Thu, 06 May 2010) $
24
 
 
25
 
********************************************************************/
26
 
 
27
 
#include "zoomcontrols.h"
28
 
#include "../debugdialog.h"
29
 
#include "../utils/zoomslider.h"
30
 
 
31
 
ZoomButton::ZoomButton(QBoxLayout::Direction dir, ZoomButton::ZoomType type, ZoomableGraphicsView* view, QWidget *parent) : QLabel(parent)
32
 
{
33
 
        QString imgPath = ":/resources/images/icons/partsEditorZoom%1%2Button.png";
34
 
        QString typeStr = type==ZoomButton::ZoomIn? "In": "Out";
35
 
        QString dirStr;
36
 
        if(dir == QBoxLayout::LeftToRight || dir == QBoxLayout::RightToLeft) {
37
 
                dirStr = "Hor";
38
 
        } else if(dir == QBoxLayout::TopToBottom || dir == QBoxLayout::BottomToTop) {
39
 
                dirStr = "Ver";
40
 
        }
41
 
        imgPath = imgPath.arg(typeStr).arg(dirStr);
42
 
        m_step = 5*ZoomSlider::ZoomStep;
43
 
        m_type = type;
44
 
 
45
 
        m_owner = view;
46
 
        connect(this, SIGNAL(clicked()), this, SLOT(zoom()) );
47
 
        setPixmap(QPixmap(imgPath));
48
 
}
49
 
 
50
 
void ZoomButton::zoom() {
51
 
        int inOrOut = m_type == ZoomButton::ZoomIn? 1: -1;
52
 
        m_owner->relativeZoom(inOrOut*m_step, false);
53
 
        m_owner->ensureFixedToBottomRightItems();
54
 
}
55
 
 
56
 
void ZoomButton::mousePressEvent(QMouseEvent *event) {
57
 
        //QLabel::mousePressEvent(event);
58
 
        Q_UNUSED(event);
59
 
        emit clicked();
60
 
}
61
 
 
62
 
void ZoomButton::enterEvent(QEvent *event) {
63
 
        QLabel::enterEvent(event);
64
 
}
65
 
 
66
 
void ZoomButton::leaveEvent(QEvent *event) {
67
 
        QLabel::leaveEvent(event);
68
 
}
69
 
 
70
 
 
71
 
///////////////////////////////////////////////////////////
72
 
 
73
 
ZoomControlsPrivate::ZoomControlsPrivate(ZoomableGraphicsView* view, QBoxLayout::Direction dir, QWidget *parent) : QFrame(parent)
74
 
{
75
 
        //setObjectName("zoomControls");
76
 
 
77
 
        m_zoomInButton = new ZoomButton(dir, ZoomButton::ZoomIn, view, this);
78
 
        m_zoomOutButton = new ZoomButton(dir, ZoomButton::ZoomOut, view, this);
79
 
 
80
 
        m_boxLayout = new QBoxLayout(dir,this);
81
 
        m_boxLayout->addWidget(m_zoomInButton);
82
 
        m_boxLayout->addWidget(m_zoomOutButton);
83
 
        m_boxLayout->setMargin(2);
84
 
        m_boxLayout->setSpacing(2);
85
 
 
86
 
        setStyleSheet("background-color: transparent;");
87
 
}
88
 
 
89
 
///////////////////////////////////////////////////////////
90
 
 
91
 
ZoomControls::ZoomControls(ZoomableGraphicsView *view, QWidget *parent)
92
 
        : ZoomControlsPrivate(view, QBoxLayout::RightToLeft, parent)
93
 
{
94
 
        m_zoomLabel = new QLabel(this);
95
 
        m_zoomLabel->setFixedWidth(35);
96
 
        connect(view, SIGNAL(zoomChanged(qreal)),this,SLOT(updateLabel(qreal)));
97
 
        m_boxLayout->insertWidget(1,m_zoomLabel); // in the middle
98
 
        m_boxLayout->addSpacerItem(new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Minimum)); // at the beginning
99
 
        updateLabel(view->currentZoom());
100
 
}
101
 
 
102
 
void ZoomControls::updateLabel(qreal zoom) {
103
 
        m_zoomLabel->setText(QString("%1%").arg((int)zoom));
104
 
}
 
1
/*******************************************************************
 
2
 
 
3
Part of the Fritzing project - http://fritzing.org
 
4
Copyright (c) 2007-2011 Fachhochschule Potsdam - http://fh-potsdam.de
 
5
 
 
6
Fritzing is free software: you can redistribute it and/or modify
 
7
it under the terms of the GNU General Public License as published by
 
8
the Free Software Foundation, either version 3 of the License, or
 
9
(at your option) any later version.
 
10
 
 
11
Fritzing is distributed in the hope that it will be useful,
 
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
GNU General Public License for more details.
 
15
 
 
16
You should have received a copy of the GNU General Public License
 
17
along with Fritzing.  If not, see <http://www.gnu.org/licenses/>.
 
18
 
 
19
********************************************************************
 
20
 
 
21
$Revision: 5309 $:
 
22
$Author: cohen@irascible.com $:
 
23
$Date: 2011-07-30 21:17:22 +0200 (Sat, 30 Jul 2011) $
 
24
 
 
25
********************************************************************/
 
26
 
 
27
#include "zoomcontrols.h"
 
28
#include "../debugdialog.h"
 
29
#include "../utils/zoomslider.h"
 
30
 
 
31
ZoomButton::ZoomButton(QBoxLayout::Direction dir, ZoomButton::ZoomType type, ZoomableGraphicsView* view, QWidget *parent) : QLabel(parent)
 
32
{
 
33
        QString imgPath = ":/resources/images/icons/partsEditorZoom%1%2Button.png";
 
34
        QString typeStr = type==ZoomButton::ZoomIn? "In": "Out";
 
35
        QString dirStr;
 
36
        if(dir == QBoxLayout::LeftToRight || dir == QBoxLayout::RightToLeft) {
 
37
                dirStr = "Hor";
 
38
        } else if(dir == QBoxLayout::TopToBottom || dir == QBoxLayout::BottomToTop) {
 
39
                dirStr = "Ver";
 
40
        }
 
41
        imgPath = imgPath.arg(typeStr).arg(dirStr);
 
42
        m_step = 5*ZoomSlider::ZoomStep;
 
43
        m_type = type;
 
44
 
 
45
        m_owner = view;
 
46
        connect(this, SIGNAL(clicked()), this, SLOT(zoom()) );
 
47
        setPixmap(QPixmap(imgPath));
 
48
}
 
49
 
 
50
void ZoomButton::zoom() {
 
51
        int inOrOut = m_type == ZoomButton::ZoomIn? 1: -1;
 
52
        m_owner->relativeZoom(inOrOut*m_step, false);
 
53
        m_owner->ensureFixedToBottomRightItems();
 
54
}
 
55
 
 
56
void ZoomButton::mousePressEvent(QMouseEvent *event) {
 
57
        //QLabel::mousePressEvent(event);
 
58
        Q_UNUSED(event);
 
59
        emit clicked();
 
60
}
 
61
 
 
62
void ZoomButton::enterEvent(QEvent *event) {
 
63
        QLabel::enterEvent(event);
 
64
}
 
65
 
 
66
void ZoomButton::leaveEvent(QEvent *event) {
 
67
        QLabel::leaveEvent(event);
 
68
}
 
69
 
 
70
 
 
71
///////////////////////////////////////////////////////////
 
72
 
 
73
ZoomControlsPrivate::ZoomControlsPrivate(ZoomableGraphicsView* view, QBoxLayout::Direction dir, QWidget *parent) : QFrame(parent)
 
74
{
 
75
        //setObjectName("zoomControls");
 
76
 
 
77
        m_zoomInButton = new ZoomButton(dir, ZoomButton::ZoomIn, view, this);
 
78
        m_zoomOutButton = new ZoomButton(dir, ZoomButton::ZoomOut, view, this);
 
79
 
 
80
        m_boxLayout = new QBoxLayout(dir,this);
 
81
        m_boxLayout->addWidget(m_zoomInButton);
 
82
        m_boxLayout->addWidget(m_zoomOutButton);
 
83
        m_boxLayout->setMargin(2);
 
84
        m_boxLayout->setSpacing(2);
 
85
 
 
86
        setStyleSheet("background-color: transparent;");
 
87
}
 
88
 
 
89
///////////////////////////////////////////////////////////
 
90
 
 
91
ZoomControls::ZoomControls(ZoomableGraphicsView *view, QWidget *parent)
 
92
        : ZoomControlsPrivate(view, QBoxLayout::RightToLeft, parent)
 
93
{
 
94
        m_zoomLabel = new QLabel(this);
 
95
        m_zoomLabel->setFixedWidth(35);
 
96
        connect(view, SIGNAL(zoomChanged(double)),this,SLOT(updateLabel(double)));
 
97
        m_boxLayout->insertWidget(1,m_zoomLabel); // in the middle
 
98
        m_boxLayout->addSpacerItem(new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Minimum)); // at the beginning
 
99
        updateLabel(view->currentZoom());
 
100
}
 
101
 
 
102
void ZoomControls::updateLabel(double zoom) {
 
103
        m_zoomLabel->setText(QString("%1%").arg((int)zoom));
 
104
}