Files
qt-creator/src/tools/qml/qmlviewer/editor/qmltoolbar.cpp

211 lines
5.5 KiB
C++
Raw Normal View History

#include <QLabel>
#include <QIcon>
#include <QAction>
#include "qmltoolbar.h"
#include "toolbarcolorbox.h"
#include <QDebug>
namespace QmlViewer {
QmlToolbar::QmlToolbar(QWidget *parent) :
QToolBar(parent),
m_emitSignals(true),
ui(new Ui)
{
ui->play = new QAction(QIcon(":/qml/images/play.png"), tr("Play"), this);
ui->pause = new QAction(QIcon(":/qml/images/pause.png"), tr("Pause"), this);
ui->select = new QAction(QIcon(":/qml/images/select.png"), tr("Select"), this);
ui->selectMarquee = new QAction(QIcon(":/qml/images/select-marquee.png"), tr("Select (Marquee)"), this);
ui->zoom = new QAction(QIcon(":/qml/images/zoom.png"), tr("Zoom"), this);
ui->colorPicker = new QAction(QIcon(":/qml/images/color-picker.png"), tr("Color Picker"), this);
ui->toQml = new QAction(QIcon(":/qml/images/to-qml.png"), tr("Apply Changes to QML Viewer"), this);
ui->fromQml = new QAction(QIcon(":/qml/images/from-qml.png"), tr("Apply Changes to Document"), this);
ui->play->setCheckable(true);
ui->play->setChecked(true);
ui->pause->setCheckable(true);
ui->select->setCheckable(true);
ui->selectMarquee->setCheckable(true);
ui->zoom->setCheckable(true);
ui->colorPicker->setCheckable(true);
setWindowTitle(tr("Tools"));
addAction(ui->play);
addAction(ui->pause);
addSeparator();
addAction(ui->select);
addAction(ui->selectMarquee);
addSeparator();
addAction(ui->zoom);
addAction(ui->colorPicker);
addAction(ui->fromQml);
ui->colorBox = new ToolBarColorBox(this);
ui->colorBox->setMinimumSize(24, 24);
ui->colorBox->setMaximumSize(28, 28);
ui->colorBox->setColor(Qt::black);
addWidget(ui->colorBox);
setWindowFlags(Qt::Tool);
connect(ui->colorPicker, SIGNAL(triggered()), SLOT(activateColorPickerOnClick()));
connect(ui->play, SIGNAL(triggered()), SLOT(activatePlayOnClick()));
connect(ui->pause, SIGNAL(triggered()), SLOT(activatePauseOnClick()));
connect(ui->zoom, SIGNAL(triggered()), SLOT(activateZoomOnClick()));
connect(ui->colorPicker, SIGNAL(triggered()), SLOT(activateColorPickerOnClick()));
connect(ui->select, SIGNAL(triggered()), SLOT(activateSelectToolOnClick()));
connect(ui->selectMarquee, SIGNAL(triggered()), SLOT(activateMarqueeSelectToolOnClick()));
connect(ui->toQml, SIGNAL(triggered()), SLOT(activateToQml()));
connect(ui->fromQml, SIGNAL(triggered()), SLOT(activateFromQml()));
}
QmlToolbar::~QmlToolbar()
{
delete ui;
}
void QmlToolbar::startExecution()
{
m_emitSignals = false;
activatePlayOnClick();
m_emitSignals = true;
}
void QmlToolbar::pauseExecution()
{
m_emitSignals = false;
activatePauseOnClick();
m_emitSignals = true;
}
void QmlToolbar::activateColorPicker()
{
m_emitSignals = false;
activateColorPickerOnClick();
m_emitSignals = true;
}
void QmlToolbar::activateSelectTool()
{
m_emitSignals = false;
activateSelectToolOnClick();
m_emitSignals = true;
}
void QmlToolbar::activateMarqueeSelectTool()
{
m_emitSignals = false;
activateMarqueeSelectToolOnClick();
m_emitSignals = true;
}
void QmlToolbar::activateZoom()
{
m_emitSignals = false;
activateZoomOnClick();
m_emitSignals = true;
}
void QmlToolbar::setColorBoxColor(const QColor &color)
{
ui->colorBox->setColor(color);
}
void QmlToolbar::activatePlayOnClick()
{
ui->pause->setChecked(false);
if (!m_isRunning) {
ui->play->setChecked(true);
m_isRunning = true;
if (m_emitSignals)
emit executionStarted();
}
}
void QmlToolbar::activatePauseOnClick()
{
ui->play->setChecked(false);
if (m_isRunning) {
m_isRunning = false;
ui->pause->setChecked(true);
if (m_emitSignals)
emit executionPaused();
}
}
void QmlToolbar::activateColorPickerOnClick()
{
ui->zoom->setChecked(false);
ui->select->setChecked(false);
ui->selectMarquee->setChecked(false);
ui->colorPicker->setChecked(true);
if (m_activeTool != Constants::ColorPickerMode) {
m_activeTool = Constants::ColorPickerMode;
if (m_emitSignals)
emit colorPickerSelected();
}
}
void QmlToolbar::activateSelectToolOnClick()
{
ui->zoom->setChecked(false);
ui->selectMarquee->setChecked(false);
ui->colorPicker->setChecked(false);
ui->select->setChecked(true);
if (m_activeTool != Constants::SelectionToolMode) {
m_activeTool = Constants::SelectionToolMode;
if (m_emitSignals)
emit selectToolSelected();
}
}
void QmlToolbar::activateMarqueeSelectToolOnClick()
{
ui->zoom->setChecked(false);
ui->select->setChecked(false);
ui->colorPicker->setChecked(false);
ui->selectMarquee->setChecked(true);
if (m_activeTool != Constants::MarqueeSelectionToolMode) {
m_activeTool = Constants::MarqueeSelectionToolMode;
if (m_emitSignals)
emit marqueeSelectToolSelected();
}
}
void QmlToolbar::activateZoomOnClick()
{
ui->select->setChecked(false);
ui->selectMarquee->setChecked(false);
ui->colorPicker->setChecked(false);
ui->zoom->setChecked(true);
if (m_activeTool != Constants::ZoomMode) {
m_activeTool = Constants::ZoomMode;
if (m_emitSignals)
emit zoomToolSelected();
}
}
void QmlToolbar::activateFromQml()
{
if (m_emitSignals)
emit applyChangesFromQmlFileSelected();
}
void QmlToolbar::activateToQml()
{
if (m_emitSignals)
emit applyChangesToQmlFileSelected();
}
}