Pencil2D Animation
Download Community News Docs Contribute
  • Overview
  • Articles
  • Code
  •  
  • Class List
  • Class Index
  • Class Hierarchy
  • Class Members
  • File List
Loading...
Searching...
No Matches
  • app
  • src
transformoptionswidget.cpp
1/*
2
3Pencil2D - Traditional Animation Software
4Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
5Copyright (C) 2012-2020 Matthew Chiawen Chang
6
7This program is free software; you can redistribute it and/or
8modify it under the terms of the GNU General Public License
9as published by the Free Software Foundation; version 2 of the License.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16*/
17#include "transformoptionswidget.h"
18#include "ui_transformoptionswidget.h"
19
20#include "editor.h"
21#include "toolmanager.h"
22#include "transformtool.h"
23
24TransformOptionsWidget::TransformOptionsWidget(Editor* editor, QWidget *parent) :
25 BaseWidget(parent),
26 ui(new Ui::TransformOptionsWidget), mEditor(editor)
27{
28 ui->setupUi(this);
29 initUI();
30}
31
32TransformOptionsWidget::~TransformOptionsWidget()
33{
34 delete ui;
35}
36
37void TransformOptionsWidget::initUI()
38{
39 makeConnectionsFromUIToModel();
40}
41
42void TransformOptionsWidget::updateUI()
43{
44 TransformTool* currentTool = mEditor->tools()->currentTransformTool();
45 if (currentTool == nullptr) { return; }
46
47 updatePropertyVisibility();
48 updateToolConnections(currentTool);
49 const TransformToolProperties selectP = currentTool->transformSettings();
50
51 if (currentTool->isPropertyEnabled(TransformToolProperties::SHOWSELECTIONINFO_ENABLED)) {
52 setShowSelectionInfo(selectP.showSelectionInfoEnabled());
53 }
54
55 if (currentTool->isPropertyEnabled(TransformToolProperties::ANTI_ALIASING_ENABLED)) {
56 setAntiAliasingEnabled(selectP.antiAliasingEnabled());
57 }
58}
59
60void TransformOptionsWidget::updatePropertyVisibility()
61{
62 TransformTool* currentTool = mEditor->tools()->currentTransformTool();
63 if (mEditor->tools()->currentTransformTool() == nullptr) { return; }
64
65 ui->antiAliasingCheckBox->setVisible(currentTool->isPropertyEnabled(TransformToolProperties::ANTI_ALIASING_ENABLED));
66}
67
68void TransformOptionsWidget::updateToolConnections(BaseTool* tool)
69{
70 if (mTransformTool) {
71 disconnect(mTransformTool, nullptr, this, nullptr);
72 }
73
74 mTransformTool = static_cast<TransformTool*>(tool);
75
76 makeConnectionFromModelToUI(mTransformTool);
77}
78
79void TransformOptionsWidget::makeConnectionsFromUIToModel()
80{
81 connect(ui->showSelectionInfoCheckBox, &QCheckBox::clicked, this, [=](bool enabled) {
82 mTransformTool->setShowSelectionInfo(enabled);
83 });
84
85 connect(ui->antiAliasingCheckBox, &QCheckBox::clicked, this, [=](bool enabled) {
86 mTransformTool->setAntiAliasingEnabled(enabled);
87 });
88}
89
90void TransformOptionsWidget::makeConnectionFromModelToUI(TransformTool* transformTool)
91{
92 connect(transformTool, &TransformTool::showSelectionInfoChanged, this, &TransformOptionsWidget::setShowSelectionInfo);
93 connect(transformTool, &TransformTool::antiAliasingChanged, this, &TransformOptionsWidget::setAntiAliasingEnabled);
94}
95
96void TransformOptionsWidget::setShowSelectionInfo(bool enabled)
97{
98 QSignalBlocker b(ui->showSelectionInfoCheckBox);
99 ui->showSelectionInfoCheckBox->setChecked(enabled);
100}
101
102void TransformOptionsWidget::setAntiAliasingEnabled(bool enabled)
103{
104 QSignalBlocker b(ui->antiAliasingCheckBox);
105 ui->antiAliasingCheckBox->setChecked(enabled);
106}
BaseTool
Definition: basetool.h:47
BaseWidget
Definition: basewidget.h:24
Editor
Definition: editor.h:71
TransformOptionsWidget
Definition: transformoptionswidget.h:33
TransformTool
Definition: transformtool.h:23
QAbstractButton::clicked
void clicked(bool checked)
QObject::connect
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QObject::disconnect
bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
QSignalBlocker
QWidget
QWidget::enabled
enabled
QWidget::setupUi
void setupUi(QWidget *widget)
TransformToolProperties
Definition: toolproperties.h:573
Generated on Wed Dec 24 2025 23:46:02 for Pencil2D by doxygen 1.9.6 based on revision 1be63043db1f7fc0545528fc3b6d5098a552755b