fix tool options shortcut
This commit is contained in:
parent
4889cece68
commit
abf861c0c6
13 changed files with 1428 additions and 1269 deletions
|
@ -155,15 +155,15 @@ private:
|
||||||
QHBoxLayout *hLayout() { return m_panel->hLayout(); }
|
QHBoxLayout *hLayout() { return m_panel->hLayout(); }
|
||||||
QLabel *addLabel(TProperty *p);
|
QLabel *addLabel(TProperty *p);
|
||||||
|
|
||||||
void visit(TDoubleProperty *p);
|
void visit(TDoubleProperty *p) override;
|
||||||
void visit(TDoublePairProperty *p);
|
void visit(TDoublePairProperty *p) override;
|
||||||
void visit(TIntPairProperty *p);
|
void visit(TIntPairProperty *p) override;
|
||||||
void visit(TIntProperty *p);
|
void visit(TIntProperty *p) override;
|
||||||
void visit(TBoolProperty *p);
|
void visit(TBoolProperty *p) override;
|
||||||
void visit(TStringProperty *p);
|
void visit(TStringProperty *p) override;
|
||||||
void visit(TEnumProperty *p);
|
void visit(TEnumProperty *p) override;
|
||||||
void visit(TStyleIndexProperty *p);
|
void visit(TStyleIndexProperty *p) override;
|
||||||
void visit(TPointerProperty *p);
|
void visit(TPointerProperty *p) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
//***********************************************************************************************
|
//***********************************************************************************************
|
||||||
|
|
|
@ -324,9 +324,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tools Tab
|
// Tools Tab
|
||||||
bool getDropdownShortcutsCycleOptions() {
|
// bool getDropdownShortcutsCycleOptions() {
|
||||||
return getIntValue(dropdownShortcutsCycleOptions) == 1;
|
// return getIntValue(dropdownShortcutsCycleOptions) == 1;
|
||||||
}
|
//}
|
||||||
bool getFillOnlySavebox() const { return getBoolValue(FillOnlysavebox); }
|
bool getFillOnlySavebox() const { return getBoolValue(FillOnlysavebox); }
|
||||||
bool isMultiLayerStylePickerEnabled() const {
|
bool isMultiLayerStylePickerEnabled() const {
|
||||||
return getBoolValue(multiLayerStylePickerEnabled);
|
return getBoolValue(multiLayerStylePickerEnabled);
|
||||||
|
|
|
@ -101,7 +101,7 @@ enum PreferencesItemId {
|
||||||
|
|
||||||
//----------
|
//----------
|
||||||
// Tools
|
// Tools
|
||||||
dropdownShortcutsCycleOptions,
|
// dropdownShortcutsCycleOptions, // removed
|
||||||
FillOnlysavebox,
|
FillOnlysavebox,
|
||||||
multiLayerStylePickerEnabled,
|
multiLayerStylePickerEnabled,
|
||||||
cursorBrushType,
|
cursorBrushType,
|
||||||
|
|
|
@ -56,7 +56,6 @@
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
#include <QResizeEvent>
|
#include <QResizeEvent>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QSignalMapper>
|
|
||||||
#include <QPropertyAnimation>
|
#include <QPropertyAnimation>
|
||||||
#include <QEasingCurve>
|
#include <QEasingCurve>
|
||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
|
@ -209,36 +208,6 @@ void ToolOptionControlBuilder::visit(TDoubleProperty *p) {
|
||||||
hLayout()->addWidget(control, 100);
|
hLayout()->addWidget(control, 100);
|
||||||
// storing the control in the map for updating values later
|
// storing the control in the map for updating values later
|
||||||
m_panel->addControl(control);
|
m_panel->addControl(control);
|
||||||
CommandManager *cm = CommandManager::instance();
|
|
||||||
if (p->getName() == "Size:") {
|
|
||||||
QAction *a;
|
|
||||||
a = cm->getAction("A_IncreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increase()));
|
|
||||||
a = cm->getAction("A_DecreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decrease()));
|
|
||||||
}
|
|
||||||
if (p->getName() == "ModifierSize") {
|
|
||||||
QAction *a;
|
|
||||||
a = cm->getAction("A_IncreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control,
|
|
||||||
SLOT(increaseFractional()));
|
|
||||||
a = cm->getAction("A_DecreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control,
|
|
||||||
SLOT(decreaseFractional()));
|
|
||||||
}
|
|
||||||
if (p->getName() == "Hardness:") {
|
|
||||||
QAction *a;
|
|
||||||
a = cm->getAction("A_IncreaseBrushHardness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increase()));
|
|
||||||
a = cm->getAction("A_DecreaseBrushHardness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decrease()));
|
|
||||||
}
|
|
||||||
hLayout()->addSpacing(5);
|
hLayout()->addSpacing(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,23 +220,6 @@ void ToolOptionControlBuilder::visit(TDoublePairProperty *p) {
|
||||||
m_tool, p, QObject::tr("Min:"), QObject::tr("Max:"), m_toolHandle);
|
m_tool, p, QObject::tr("Min:"), QObject::tr("Max:"), m_toolHandle);
|
||||||
hLayout()->addWidget(control, 150);
|
hLayout()->addWidget(control, 150);
|
||||||
m_panel->addControl(control);
|
m_panel->addControl(control);
|
||||||
if (p->getName() == "Size:" || p->getName() == "Size") {
|
|
||||||
CommandManager *cm = CommandManager::instance();
|
|
||||||
QAction *a;
|
|
||||||
a = cm->getAction("A_IncreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increaseMaxValue()));
|
|
||||||
a = cm->getAction("A_DecreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decreaseMaxValue()));
|
|
||||||
|
|
||||||
a = cm->getAction("A_IncreaseMinBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increaseMinValue()));
|
|
||||||
a = cm->getAction("A_DecreaseMinBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decreaseMinValue()));
|
|
||||||
}
|
|
||||||
hLayout()->addSpacing(5);
|
hLayout()->addSpacing(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,24 +232,6 @@ void ToolOptionControlBuilder::visit(TIntPairProperty *p) {
|
||||||
m_tool, p, QObject::tr("Min:"), QObject::tr("Max:"), m_toolHandle);
|
m_tool, p, QObject::tr("Min:"), QObject::tr("Max:"), m_toolHandle);
|
||||||
hLayout()->addWidget(control, 100);
|
hLayout()->addWidget(control, 100);
|
||||||
m_panel->addControl(control);
|
m_panel->addControl(control);
|
||||||
if (p->getName() == "Size:" || p->getName() == "Thickness" ||
|
|
||||||
p->getName() == "Size") {
|
|
||||||
CommandManager *cm = CommandManager::instance();
|
|
||||||
QAction *a;
|
|
||||||
a = cm->getAction("A_IncreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increaseMaxValue()));
|
|
||||||
a = cm->getAction("A_DecreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decreaseMaxValue()));
|
|
||||||
|
|
||||||
a = cm->getAction("A_IncreaseMinBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increaseMinValue()));
|
|
||||||
a = cm->getAction("A_DecreaseMinBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decreaseMinValue()));
|
|
||||||
}
|
|
||||||
hLayout()->addSpacing(5);
|
hLayout()->addSpacing(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,16 +250,6 @@ void ToolOptionControlBuilder::visit(TIntProperty *p) {
|
||||||
}
|
}
|
||||||
hLayout()->addWidget(control, 100);
|
hLayout()->addWidget(control, 100);
|
||||||
m_panel->addControl(control);
|
m_panel->addControl(control);
|
||||||
if (p->getName() == "Size:") {
|
|
||||||
CommandManager *cm = CommandManager::instance();
|
|
||||||
QAction *a;
|
|
||||||
a = cm->getAction("A_IncreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(increase()));
|
|
||||||
a = cm->getAction("A_DecreaseMaxBrushThickness");
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), control, SLOT(decrease()));
|
|
||||||
}
|
|
||||||
hLayout()->addSpacing(5);
|
hLayout()->addSpacing(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,17 +260,6 @@ void ToolOptionControlBuilder::visit(TBoolProperty *p) {
|
||||||
hLayout()->addWidget(control, 0);
|
hLayout()->addWidget(control, 0);
|
||||||
|
|
||||||
m_panel->addControl(control);
|
m_panel->addControl(control);
|
||||||
|
|
||||||
if (p->getId() != "") {
|
|
||||||
std::string actionName = "A_ToolOption_" + p->getId();
|
|
||||||
QAction *a = CommandManager::instance()->getAction(actionName.c_str());
|
|
||||||
if (a) {
|
|
||||||
a->setCheckable(true);
|
|
||||||
control->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered(bool)), control,
|
|
||||||
SLOT(doClick(bool)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
hLayout()->addSpacing(5);
|
hLayout()->addSpacing(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,35 +317,6 @@ void ToolOptionControlBuilder::visit(TEnumProperty *p) {
|
||||||
hLayout()->addWidget(widget, 100);
|
hLayout()->addWidget(widget, 100);
|
||||||
m_panel->addControl(control);
|
m_panel->addControl(control);
|
||||||
hLayout()->addSpacing(5);
|
hLayout()->addSpacing(5);
|
||||||
|
|
||||||
if (p->getId() != "") {
|
|
||||||
std::string actionName = "A_ToolOption_" + p->getId();
|
|
||||||
QAction *a = CommandManager::instance()->getAction(actionName.c_str());
|
|
||||||
if (a) {
|
|
||||||
widget->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), widget, SLOT(doShowPopup()));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEnumProperty::Range range = p->getRange();
|
|
||||||
TEnumProperty::Range::iterator it;
|
|
||||||
QSignalMapper *signalMapper = 0;
|
|
||||||
int index = 0;
|
|
||||||
for (it = range.begin(); it != range.end(); ++it, ++index) {
|
|
||||||
std::string item = ::to_string(*it);
|
|
||||||
std::string itemActionName = actionName + ":" + item;
|
|
||||||
a = CommandManager::instance()->getAction(itemActionName.c_str());
|
|
||||||
if (a) {
|
|
||||||
widget->addAction(a);
|
|
||||||
if (signalMapper == 0) {
|
|
||||||
signalMapper = new QSignalMapper(widget);
|
|
||||||
QObject::connect(signalMapper, SIGNAL(mapped(int)), widget,
|
|
||||||
SLOT(doOnActivated(int)));
|
|
||||||
}
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), signalMapper, SLOT(map()));
|
|
||||||
signalMapper->setMapping(a, index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -884,38 +768,6 @@ ArrowToolOptionsBox::ArrowToolOptionsBox(
|
||||||
connect(m_currentStageObjectCombo, SIGNAL(activated(int)), this,
|
connect(m_currentStageObjectCombo, SIGNAL(activated(int)), this,
|
||||||
SLOT(onCurrentStageObjectComboActivated(int)));
|
SLOT(onCurrentStageObjectComboActivated(int)));
|
||||||
|
|
||||||
/* --- Assigning shortcut keys --- */
|
|
||||||
if (activeAxisProp->getId() != "") {
|
|
||||||
std::string actionName = "A_ToolOption_" + activeAxisProp->getId();
|
|
||||||
QAction *a = CommandManager::instance()->getAction(actionName.c_str());
|
|
||||||
|
|
||||||
if (a) {
|
|
||||||
m_chooseActiveAxisCombo->addAction(a);
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), m_chooseActiveAxisCombo,
|
|
||||||
SLOT(doShowPopup()));
|
|
||||||
}
|
|
||||||
|
|
||||||
TEnumProperty::Range range = activeAxisProp->getRange();
|
|
||||||
TEnumProperty::Range::iterator it;
|
|
||||||
QSignalMapper *signalMapper = 0;
|
|
||||||
int index = 0;
|
|
||||||
for (it = range.begin(); it != range.end(); ++it, ++index) {
|
|
||||||
std::string item = ::to_string(*it);
|
|
||||||
std::string itemActionName = actionName + ":" + item;
|
|
||||||
a = CommandManager::instance()->getAction(itemActionName.c_str());
|
|
||||||
if (a) {
|
|
||||||
m_chooseActiveAxisCombo->addAction(a);
|
|
||||||
if (signalMapper == 0) {
|
|
||||||
signalMapper = new QSignalMapper(m_chooseActiveAxisCombo);
|
|
||||||
QObject::connect(signalMapper, SIGNAL(mapped(int)),
|
|
||||||
m_chooseActiveAxisCombo, SLOT(doOnActivated(int)));
|
|
||||||
}
|
|
||||||
QObject::connect(a, SIGNAL(triggered()), signalMapper, SLOT(map()));
|
|
||||||
signalMapper->setMapping(a, index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (scaleConstraintProp) {
|
if (scaleConstraintProp) {
|
||||||
m_scaleHField->onScaleTypeChanged(m_maintainCombo->currentIndex());
|
m_scaleHField->onScaleTypeChanged(m_maintainCombo->currentIndex());
|
||||||
m_scaleVField->onScaleTypeChanged(m_maintainCombo->currentIndex());
|
m_scaleVField->onScaleTypeChanged(m_maintainCombo->currentIndex());
|
||||||
|
@ -940,16 +792,6 @@ ArrowToolOptionsBox::ArrowToolOptionsBox(
|
||||||
connectLabelAndField(m_ewCenterLabel, m_ewCenterField);
|
connectLabelAndField(m_ewCenterLabel, m_ewCenterField);
|
||||||
connectLabelAndField(m_nsCenterLabel, m_nsCenterField);
|
connectLabelAndField(m_nsCenterLabel, m_nsCenterField);
|
||||||
|
|
||||||
if (globalKeyProp) {
|
|
||||||
std::string actionName = "A_ToolOption_" + globalKeyProp->getId();
|
|
||||||
QAction *a = CommandManager::instance()->getAction(actionName.c_str());
|
|
||||||
if (a) {
|
|
||||||
a->setCheckable(true);
|
|
||||||
m_globalKey->addAction(a);
|
|
||||||
connect(a, SIGNAL(triggered(bool)), m_globalKey, SLOT(doClick(bool)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onCurrentAxisChanged(activeAxisProp->getIndex());
|
onCurrentAxisChanged(activeAxisProp->getIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1034,6 +876,8 @@ void ArrowToolOptionsBox::updateStatus() {
|
||||||
m_nsPosField->updateStatus();
|
m_nsPosField->updateStatus();
|
||||||
m_zField->updateStatus();
|
m_zField->updateStatus();
|
||||||
m_noScaleZField->updateStatus();
|
m_noScaleZField->updateStatus();
|
||||||
|
m_lockEWPosCheckbox->updateStatus();
|
||||||
|
m_lockNSPosCheckbox->updateStatus();
|
||||||
m_soField->updateStatus();
|
m_soField->updateStatus();
|
||||||
|
|
||||||
// Rotation
|
// Rotation
|
||||||
|
@ -1043,15 +887,23 @@ void ArrowToolOptionsBox::updateStatus() {
|
||||||
m_globalScaleField->updateStatus();
|
m_globalScaleField->updateStatus();
|
||||||
m_scaleHField->updateStatus();
|
m_scaleHField->updateStatus();
|
||||||
m_scaleVField->updateStatus();
|
m_scaleVField->updateStatus();
|
||||||
|
m_lockScaleHCheckbox->updateStatus();
|
||||||
|
m_lockScaleVCheckbox->updateStatus();
|
||||||
m_maintainCombo->updateStatus();
|
m_maintainCombo->updateStatus();
|
||||||
|
|
||||||
// Shear
|
// Shear
|
||||||
m_shearHField->updateStatus();
|
m_shearHField->updateStatus();
|
||||||
m_shearVField->updateStatus();
|
m_shearVField->updateStatus();
|
||||||
|
m_lockShearHCheckbox->updateStatus();
|
||||||
|
m_lockShearVCheckbox->updateStatus();
|
||||||
|
|
||||||
// Center Position
|
// Center Position
|
||||||
m_ewCenterField->updateStatus();
|
m_ewCenterField->updateStatus();
|
||||||
m_nsCenterField->updateStatus();
|
m_nsCenterField->updateStatus();
|
||||||
|
m_lockEWCenterCheckbox->updateStatus();
|
||||||
|
m_lockNSCenterCheckbox->updateStatus();
|
||||||
|
|
||||||
|
m_globalKey->updateStatus();
|
||||||
|
|
||||||
bool splined = isCurrentObjectSplined();
|
bool splined = isCurrentObjectSplined();
|
||||||
if (splined != m_splined) setSplined(splined);
|
if (splined != m_splined) setSplined(splined);
|
||||||
|
|
|
@ -107,10 +107,6 @@ ToolOptionCheckbox::ToolOptionCheckbox(TTool *tool, TBoolProperty *property,
|
||||||
void ToolOptionCheckbox::updateStatus() {
|
void ToolOptionCheckbox::updateStatus() {
|
||||||
bool check = m_property->getValue();
|
bool check = m_property->getValue();
|
||||||
|
|
||||||
if (!actions().isEmpty() && actions()[0]->isCheckable() &&
|
|
||||||
actions()[0]->isChecked() != check)
|
|
||||||
actions()[0]->setChecked(check);
|
|
||||||
|
|
||||||
if (isChecked() == check) return;
|
if (isChecked() == check) return;
|
||||||
|
|
||||||
setCheckState(check ? Qt::Checked : Qt::Unchecked);
|
setCheckState(check ? Qt::Checked : Qt::Unchecked);
|
||||||
|
@ -124,23 +120,6 @@ void ToolOptionCheckbox::nextCheckState() {
|
||||||
notifyTool();
|
notifyTool();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionCheckbox::doClick(bool checked) {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
if (isChecked() == checked) return;
|
|
||||||
|
|
||||||
setChecked(checked);
|
|
||||||
m_property->setValue(checked);
|
|
||||||
notifyTool();
|
|
||||||
|
|
||||||
// for updating a cursor without any effect to the tool options
|
|
||||||
if (m_toolHandle) m_toolHandle->notifyToolCursorTypeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionSlider::ToolOptionSlider(TTool *tool, TDoubleProperty *property,
|
ToolOptionSlider::ToolOptionSlider(TTool *tool, TDoubleProperty *property,
|
||||||
|
@ -191,56 +170,6 @@ void ToolOptionSlider::onValueChanged(bool isDragging) {
|
||||||
notifyTool(!isDragging);
|
notifyTool(!isDragging);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionSlider::increase(double step) {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
double value = getValue();
|
|
||||||
double minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
|
|
||||||
value += step;
|
|
||||||
if (value > maxValue) value = maxValue;
|
|
||||||
|
|
||||||
setValue(value);
|
|
||||||
m_property->setValue(getValue());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionSlider::increaseFractional() { increase(0.06); }
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionSlider::decrease(double step) {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
double value = getValue();
|
|
||||||
double minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
|
|
||||||
value -= step;
|
|
||||||
if (value < minValue) value = minValue;
|
|
||||||
|
|
||||||
setValue(value);
|
|
||||||
m_property->setValue(getValue());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionSlider::decreaseFractional() { decrease(0.06); }
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionPairSlider::ToolOptionPairSlider(TTool *tool,
|
ToolOptionPairSlider::ToolOptionPairSlider(TTool *tool,
|
||||||
|
@ -297,78 +226,6 @@ void ToolOptionPairSlider::onValuesChanged(bool isDragging) {
|
||||||
if (m_toolHandle) m_toolHandle->notifyToolChanged();
|
if (m_toolHandle) m_toolHandle->notifyToolChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionPairSlider::increaseMaxValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<double, double> values = getValues();
|
|
||||||
double minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
values.second += 1;
|
|
||||||
if (values.second > maxValue) values.second = maxValue;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionPairSlider::decreaseMaxValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<double, double> values = getValues();
|
|
||||||
values.second -= 1;
|
|
||||||
if (values.second < values.first) values.second = values.first;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionPairSlider::increaseMinValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<double, double> values = getValues();
|
|
||||||
values.first += 1;
|
|
||||||
if (values.first > values.second) values.first = values.second;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionPairSlider::decreaseMinValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<double, double> values = getValues();
|
|
||||||
double minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
values.first -= 1;
|
|
||||||
if (values.first < minValue) values.first = minValue;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionIntPairSlider::ToolOptionIntPairSlider(TTool *tool,
|
ToolOptionIntPairSlider::ToolOptionIntPairSlider(TTool *tool,
|
||||||
|
@ -408,86 +265,6 @@ void ToolOptionIntPairSlider::onValuesChanged(bool isDragging) {
|
||||||
if (m_toolHandle) m_toolHandle->notifyToolChanged();
|
if (m_toolHandle) m_toolHandle->notifyToolChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionIntPairSlider::increaseMaxValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<int, int> values = getValues();
|
|
||||||
int minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
values.second += 1;
|
|
||||||
|
|
||||||
// a "cross-like shape" of the brush size = 3 is hard to use. so skip it
|
|
||||||
if (values.second == 3 && m_tool->isPencilModeActive()) values.second += 1;
|
|
||||||
|
|
||||||
if (values.second > maxValue) values.second = maxValue;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionIntPairSlider::decreaseMaxValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<int, int> values = getValues();
|
|
||||||
values.second -= 1;
|
|
||||||
|
|
||||||
// a "cross-like shape" of the brush size = 3 is hard to use. so skip it
|
|
||||||
if (values.second == 3 && m_tool->isPencilModeActive()) values.second -= 1;
|
|
||||||
|
|
||||||
if (values.second < values.first) values.second = values.first;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionIntPairSlider::increaseMinValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<int, int> values = getValues();
|
|
||||||
values.first += 1;
|
|
||||||
if (values.first > values.second) values.first = values.second;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionIntPairSlider::decreaseMinValue() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
std::pair<int, int> values = getValues();
|
|
||||||
int minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
values.first -= 1;
|
|
||||||
if (values.first < minValue) values.first = minValue;
|
|
||||||
setValues(values);
|
|
||||||
m_property->setValue(getValues());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionIntSlider::ToolOptionIntSlider(TTool *tool, TIntProperty *property,
|
ToolOptionIntSlider::ToolOptionIntSlider(TTool *tool, TIntProperty *property,
|
||||||
|
@ -520,53 +297,6 @@ void ToolOptionIntSlider::updateStatus() {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void ToolOptionIntSlider::increase() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
int value = getValue();
|
|
||||||
int minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
value += 1;
|
|
||||||
// a "cross-like shape" of the brush size = 3 is hard to use. so skip it
|
|
||||||
if (value == 3 && m_tool->isPencilModeActive()) value += 1;
|
|
||||||
|
|
||||||
if (value > maxValue) value = maxValue;
|
|
||||||
|
|
||||||
setValue(value);
|
|
||||||
m_property->setValue(getValue());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionIntSlider::decrease() {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
|
|
||||||
int value = getValue();
|
|
||||||
int minValue, maxValue;
|
|
||||||
getRange(minValue, maxValue);
|
|
||||||
value -= 1;
|
|
||||||
|
|
||||||
// a "cross-like shape" of the brush size = 3 is hard to use. so skip it
|
|
||||||
if (value == 3 && m_tool->isPencilModeActive()) value -= 1;
|
|
||||||
|
|
||||||
if (value < minValue) value = minValue;
|
|
||||||
|
|
||||||
setValue(value);
|
|
||||||
m_property->setValue(getValue());
|
|
||||||
notifyTool();
|
|
||||||
// update the interface
|
|
||||||
repaint();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionIntSlider::onValueChanged(bool isDragging) {
|
void ToolOptionIntSlider::onValueChanged(bool isDragging) {
|
||||||
m_property->setValue(getValue());
|
m_property->setValue(getValue());
|
||||||
notifyTool();
|
notifyTool();
|
||||||
|
@ -627,7 +357,7 @@ void ToolOptionCombo::loadEntries() {
|
||||||
}");
|
}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int tmpWidth = fontMetrics().width(items[i].UIName);
|
int tmpWidth = fontMetrics().width(items[i].UIName);
|
||||||
if (tmpWidth > maxWidth) maxWidth = tmpWidth;
|
if (tmpWidth > maxWidth) maxWidth = tmpWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -657,51 +387,6 @@ void ToolOptionCombo::onActivated(int index) {
|
||||||
notifyTool();
|
notifyTool();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionCombo::doShowPopup() {
|
|
||||||
if (Preferences::instance()->getDropdownShortcutsCycleOptions()) {
|
|
||||||
const TEnumProperty::Range &range = m_property->getRange();
|
|
||||||
int theIndex = currentIndex() + 1;
|
|
||||||
if (theIndex >= (int)range.size()) theIndex = 0;
|
|
||||||
doOnActivated(theIndex);
|
|
||||||
} else {
|
|
||||||
if (isVisible()) showPopup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionCombo::doOnActivated(int index) {
|
|
||||||
if (m_toolHandle && m_toolHandle->getTool() != m_tool) return;
|
|
||||||
// active only if the belonging combo-viewer is visible
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
bool cycleOptions =
|
|
||||||
Preferences::instance()->getDropdownShortcutsCycleOptions();
|
|
||||||
// Just move the index if the first item is not "Normal"
|
|
||||||
if (m_property->indexOf(L"Normal") != 0) {
|
|
||||||
onActivated(index);
|
|
||||||
setCurrentIndex(index);
|
|
||||||
// for updating the cursor
|
|
||||||
if (m_toolHandle) m_toolHandle->notifyToolChanged();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the first item of this combo box is "Normal", enable shortcut key toggle
|
|
||||||
// can "back and forth" behavior.
|
|
||||||
if (currentIndex() == index) {
|
|
||||||
// estimating that the "Normal" option is located at the index 0
|
|
||||||
onActivated(0);
|
|
||||||
setCurrentIndex(0);
|
|
||||||
} else {
|
|
||||||
onActivated(index);
|
|
||||||
setCurrentIndex(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
// for updating a cursor without any effect to the tool options
|
|
||||||
if (m_toolHandle) m_toolHandle->notifyToolCursorTypeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionFontCombo::ToolOptionFontCombo(TTool *tool, TEnumProperty *property,
|
ToolOptionFontCombo::ToolOptionFontCombo(TTool *tool, TEnumProperty *property,
|
||||||
|
@ -739,21 +424,6 @@ void ToolOptionFontCombo::onActivated(int index) {
|
||||||
notifyTool();
|
notifyTool();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionFontCombo::doShowPopup() {
|
|
||||||
if (!isInVisibleViewer(this)) return;
|
|
||||||
if (Preferences::instance()->getDropdownShortcutsCycleOptions()) {
|
|
||||||
const TEnumProperty::Range &range = m_property->getRange();
|
|
||||||
int theIndex = currentIndex() + 1;
|
|
||||||
if (theIndex >= (int)range.size()) theIndex = 0;
|
|
||||||
onActivated(theIndex);
|
|
||||||
setCurrentIndex(theIndex);
|
|
||||||
} else {
|
|
||||||
if (isVisible()) showPopup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionPopupButton::ToolOptionPopupButton(TTool *tool,
|
ToolOptionPopupButton::ToolOptionPopupButton(TTool *tool,
|
||||||
|
@ -797,22 +467,10 @@ void ToolOptionPopupButton::onActivated(int index) {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void ToolOptionPopupButton::doShowPopup() {
|
|
||||||
if (isVisible()) showMenu();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionPopupButton::doSetCurrentIndex(int index) {
|
void ToolOptionPopupButton::doSetCurrentIndex(int index) {
|
||||||
if (isVisible()) setCurrentIndex(index);
|
if (isVisible()) setCurrentIndex(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void ToolOptionPopupButton::doOnActivated(int index) {
|
|
||||||
if (isVisible()) onActivated(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
ToolOptionTextField::ToolOptionTextField(TTool *tool, TStringProperty *property)
|
ToolOptionTextField::ToolOptionTextField(TTool *tool, TStringProperty *property)
|
||||||
|
@ -1424,8 +1082,8 @@ void PegbarCenterField::onChange(TMeasuredValue *fld, bool addToUndo) {
|
||||||
|
|
||||||
TStageObject *obj = xsh->getStageObject(objId);
|
TStageObject *obj = xsh->getStageObject(objId);
|
||||||
|
|
||||||
double v = fld->getValue(TMeasuredValue::MainUnit);
|
double v = fld->getValue(TMeasuredValue::MainUnit);
|
||||||
TPointD center = obj->getCenter(frame);
|
TPointD center = obj->getCenter(frame);
|
||||||
if (!m_firstMouseDrag) m_oldCenter = center;
|
if (!m_firstMouseDrag) m_oldCenter = center;
|
||||||
if (m_index == 0)
|
if (m_index == 0)
|
||||||
center.x = v;
|
center.x = v;
|
||||||
|
@ -1516,7 +1174,7 @@ PropertyMenuButton::PropertyMenuButton(QWidget *parent, TTool *tool,
|
||||||
setIcon(icon);
|
setIcon(icon);
|
||||||
setToolTip(tooltip);
|
setToolTip(tooltip);
|
||||||
|
|
||||||
QMenu *menu = new QMenu(tooltip, this);
|
QMenu *menu = new QMenu(tooltip, this);
|
||||||
if (!tooltip.isEmpty()) tooltip = tooltip + " ";
|
if (!tooltip.isEmpty()) tooltip = tooltip + " ";
|
||||||
|
|
||||||
QActionGroup *actiongroup = new QActionGroup(this);
|
QActionGroup *actiongroup = new QActionGroup(this);
|
||||||
|
@ -1603,13 +1261,13 @@ bool SelectionScaleField::applyChange(bool addToUndo) {
|
||||||
using namespace DragSelectionTool;
|
using namespace DragSelectionTool;
|
||||||
DragTool *scaleTool = createNewScaleTool(m_tool, ScaleType::GLOBAL);
|
DragTool *scaleTool = createNewScaleTool(m_tool, ScaleType::GLOBAL);
|
||||||
double p = getValue();
|
double p = getValue();
|
||||||
if (p == 0) p = 0.00001;
|
if (p == 0) p = 0.00001;
|
||||||
FourPoints points = m_tool->getBBox();
|
FourPoints points = m_tool->getBBox();
|
||||||
TPointD center = m_tool->getCenter();
|
TPointD center = m_tool->getCenter();
|
||||||
TPointD p0M = points.getPoint(7);
|
TPointD p0M = points.getPoint(7);
|
||||||
TPointD p1M = points.getPoint(5);
|
TPointD p1M = points.getPoint(5);
|
||||||
TPointD pM1 = points.getPoint(6);
|
TPointD pM1 = points.getPoint(6);
|
||||||
TPointD pM0 = points.getPoint(4);
|
TPointD pM0 = points.getPoint(4);
|
||||||
int pointIndex;
|
int pointIndex;
|
||||||
TPointD sign(1, 1);
|
TPointD sign(1, 1);
|
||||||
TPointD scaleFactor = m_tool->m_deformValues.m_scaleValue;
|
TPointD scaleFactor = m_tool->m_deformValues.m_scaleValue;
|
||||||
|
|
|
@ -95,8 +95,6 @@ public:
|
||||||
ToolOptionCheckbox(TTool *tool, TBoolProperty *property,
|
ToolOptionCheckbox(TTool *tool, TBoolProperty *property,
|
||||||
ToolHandle *toolHandle = 0, QWidget *parent = 0);
|
ToolHandle *toolHandle = 0, QWidget *parent = 0);
|
||||||
void updateStatus() override;
|
void updateStatus() override;
|
||||||
public slots:
|
|
||||||
void doClick(bool);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void nextCheckState() override;
|
void nextCheckState() override;
|
||||||
|
@ -117,12 +115,7 @@ public:
|
||||||
void updateStatus() override;
|
void updateStatus() override;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
|
|
||||||
void onValueChanged(bool isDragging);
|
void onValueChanged(bool isDragging);
|
||||||
void increase(double step = 1.0);
|
|
||||||
void decrease(double step = 1.0);
|
|
||||||
void increaseFractional();
|
|
||||||
void decreaseFractional();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -141,12 +134,7 @@ public:
|
||||||
void updateStatus() override;
|
void updateStatus() override;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
|
|
||||||
void onValuesChanged(bool isDragging);
|
void onValuesChanged(bool isDragging);
|
||||||
void increaseMaxValue();
|
|
||||||
void decreaseMaxValue();
|
|
||||||
void increaseMinValue();
|
|
||||||
void decreaseMinValue();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -165,12 +153,7 @@ public:
|
||||||
void updateStatus() override;
|
void updateStatus() override;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
|
|
||||||
void onValuesChanged(bool isDragging);
|
void onValuesChanged(bool isDragging);
|
||||||
void increaseMaxValue();
|
|
||||||
void decreaseMaxValue();
|
|
||||||
void increaseMinValue();
|
|
||||||
void decreaseMinValue();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -188,10 +171,7 @@ public:
|
||||||
void updateStatus() override;
|
void updateStatus() override;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
|
|
||||||
void onValueChanged(bool isDragging);
|
void onValueChanged(bool isDragging);
|
||||||
void increase();
|
|
||||||
void decrease();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -213,8 +193,6 @@ public slots:
|
||||||
void reloadComboBoxList(std::string);
|
void reloadComboBoxList(std::string);
|
||||||
void loadEntries();
|
void loadEntries();
|
||||||
void onActivated(int);
|
void onActivated(int);
|
||||||
void doShowPopup();
|
|
||||||
void doOnActivated(int);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -234,9 +212,7 @@ public:
|
||||||
TEnumProperty *getProperty() const { return m_property; }
|
TEnumProperty *getProperty() const { return m_property; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void onActivated(int);
|
void onActivated(int);
|
||||||
void doShowPopup();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -254,11 +230,8 @@ public:
|
||||||
TEnumProperty *getProperty() { return m_property; }
|
TEnumProperty *getProperty() { return m_property; }
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void onActivated(int);
|
void onActivated(int);
|
||||||
void doShowPopup();
|
|
||||||
void doSetCurrentIndex(int);
|
void doSetCurrentIndex(int);
|
||||||
void doOnActivated(int);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
@ -121,6 +121,7 @@ set(MOC_HEADERS
|
||||||
quicktoolbar.h
|
quicktoolbar.h
|
||||||
xdtsimportpopup.h
|
xdtsimportpopup.h
|
||||||
expressionreferencemanager.h
|
expressionreferencemanager.h
|
||||||
|
tooloptionsshortcutinvoker.h
|
||||||
motionpathpanel.h
|
motionpathpanel.h
|
||||||
graphwidget.h
|
graphwidget.h
|
||||||
../stopmotion/stopmotion.h
|
../stopmotion/stopmotion.h
|
||||||
|
@ -348,6 +349,7 @@ set(SOURCES
|
||||||
xdtsio.cpp
|
xdtsio.cpp
|
||||||
xdtsimportpopup.cpp
|
xdtsimportpopup.cpp
|
||||||
expressionreferencemanager.cpp
|
expressionreferencemanager.cpp
|
||||||
|
tooloptionsshortcutinvoker.cpp
|
||||||
# Tracker file
|
# Tracker file
|
||||||
dummyprocessor.cpp
|
dummyprocessor.cpp
|
||||||
metnum.cpp
|
metnum.cpp
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "tapp.h"
|
#include "tapp.h"
|
||||||
#include "viewerpane.h"
|
#include "viewerpane.h"
|
||||||
#include "startuppopup.h"
|
#include "startuppopup.h"
|
||||||
|
#include "tooloptionsshortcutinvoker.h"
|
||||||
#include "statusbar.h"
|
#include "statusbar.h"
|
||||||
#include "aboutpopup.h"
|
#include "aboutpopup.h"
|
||||||
|
|
||||||
|
@ -394,6 +395,10 @@ MainWindow::MainWindow(const QString &argumentLayoutFileName, QWidget *parent,
|
||||||
defineActions();
|
defineActions();
|
||||||
// user defined shortcuts will be loaded here
|
// user defined shortcuts will be loaded here
|
||||||
CommandManager::instance()->loadShortcuts();
|
CommandManager::instance()->loadShortcuts();
|
||||||
|
|
||||||
|
// initialize tool options shortcuts
|
||||||
|
ToolOptionsShortcutInvoker::instance()->initialize();
|
||||||
|
|
||||||
TApp::instance()->getCurrentScene()->setDirtyFlag(false);
|
TApp::instance()->getCurrentScene()->setDirtyFlag(false);
|
||||||
|
|
||||||
// La menuBar altro non è che una toolbar
|
// La menuBar altro non è che una toolbar
|
||||||
|
@ -460,132 +465,6 @@ centralWidget->setLayout(centralWidgetLayout);*/
|
||||||
setCommandHandler("MI_ResetRoomLayout", this, &MainWindow::resetRoomsLayout);
|
setCommandHandler("MI_ResetRoomLayout", this, &MainWindow::resetRoomsLayout);
|
||||||
setCommandHandler(MI_AutoFillToggle, this, &MainWindow::autofillToggle);
|
setCommandHandler(MI_AutoFillToggle, this, &MainWindow::autofillToggle);
|
||||||
|
|
||||||
/*-- Animate tool + mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_EditNextMode, this, &MainWindow::toggleEditNextMode);
|
|
||||||
setCommandHandler(MI_EditPosition, this, &MainWindow::toggleEditPosition);
|
|
||||||
setCommandHandler(MI_EditRotation, this, &MainWindow::toggleEditRotation);
|
|
||||||
setCommandHandler(MI_EditScale, this, &MainWindow::toggleEditNextScale);
|
|
||||||
setCommandHandler(MI_EditShear, this, &MainWindow::toggleEditNextShear);
|
|
||||||
setCommandHandler(MI_EditCenter, this, &MainWindow::toggleEditNextCenter);
|
|
||||||
setCommandHandler(MI_EditAll, this, &MainWindow::toggleEditNextAll);
|
|
||||||
|
|
||||||
/*-- Selection tool + type switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_SelectionNextType, this,
|
|
||||||
&MainWindow::toggleSelectionNextType);
|
|
||||||
setCommandHandler(MI_SelectionRectangular, this,
|
|
||||||
&MainWindow::toggleSelectionRectangular);
|
|
||||||
setCommandHandler(MI_SelectionFreehand, this,
|
|
||||||
&MainWindow::toggleSelectionFreehand);
|
|
||||||
setCommandHandler(MI_SelectionPolyline, this,
|
|
||||||
&MainWindow::toggleSelectionPolyline);
|
|
||||||
|
|
||||||
/*-- Geometric tool + shape switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_GeometricNextShape, this,
|
|
||||||
&MainWindow::toggleGeometricNextShape);
|
|
||||||
setCommandHandler(MI_GeometricRectangle, this,
|
|
||||||
&MainWindow::toggleGeometricRectangle);
|
|
||||||
setCommandHandler(MI_GeometricCircle, this,
|
|
||||||
&MainWindow::toggleGeometricCircle);
|
|
||||||
setCommandHandler(MI_GeometricEllipse, this,
|
|
||||||
&MainWindow::toggleGeometricEllipse);
|
|
||||||
setCommandHandler(MI_GeometricLine, this, &MainWindow::toggleGeometricLine);
|
|
||||||
setCommandHandler(MI_GeometricPolyline, this,
|
|
||||||
&MainWindow::toggleGeometricPolyline);
|
|
||||||
setCommandHandler(MI_GeometricArc, this, &MainWindow::toggleGeometricArc);
|
|
||||||
setCommandHandler(MI_GeometricMultiArc, this,
|
|
||||||
&MainWindow::toggleGeometricMultiArc);
|
|
||||||
setCommandHandler(MI_GeometricPolygon, this,
|
|
||||||
&MainWindow::toggleGeometricPolygon);
|
|
||||||
|
|
||||||
/*-- Type tool + style switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_TypeNextStyle, this, &MainWindow::toggleTypeNextStyle);
|
|
||||||
setCommandHandler(MI_TypeOblique, this, &MainWindow::toggleTypeOblique);
|
|
||||||
setCommandHandler(MI_TypeRegular, this, &MainWindow::toggleTypeRegular);
|
|
||||||
setCommandHandler(MI_TypeBoldOblique, this,
|
|
||||||
&MainWindow::toggleTypeBoldOblique);
|
|
||||||
setCommandHandler(MI_TypeBold, this, &MainWindow::toggleTypeBold);
|
|
||||||
|
|
||||||
/*-- Fill tool + type/mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_FillNextType, this, &MainWindow::toggleFillNextType);
|
|
||||||
setCommandHandler(MI_FillNormal, this, &MainWindow::toggleFillNormal);
|
|
||||||
setCommandHandler(MI_FillRectangular, this,
|
|
||||||
&MainWindow::toggleFillRectangular);
|
|
||||||
setCommandHandler(MI_FillFreehand, this, &MainWindow::toggleFillFreehand);
|
|
||||||
setCommandHandler(MI_FillPolyline, this, &MainWindow::toggleFillPolyline);
|
|
||||||
setCommandHandler(MI_FillNextMode, this, &MainWindow::toggleFillNextMode);
|
|
||||||
setCommandHandler(MI_FillAreas, this, &MainWindow::toggleFillAreas);
|
|
||||||
setCommandHandler(MI_FillLines, this, &MainWindow::toggleFillLines);
|
|
||||||
setCommandHandler(MI_FillLinesAndAreas, this,
|
|
||||||
&MainWindow::toggleFillLinesAndAreas);
|
|
||||||
|
|
||||||
/*-- Eraser tool + type switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_EraserNextType, this, &MainWindow::toggleEraserNextType);
|
|
||||||
setCommandHandler(MI_EraserNormal, this, &MainWindow::toggleEraserNormal);
|
|
||||||
setCommandHandler(MI_EraserRectangular, this,
|
|
||||||
&MainWindow::toggleEraserRectangular);
|
|
||||||
setCommandHandler(MI_EraserFreehand, this, &MainWindow::toggleEraserFreehand);
|
|
||||||
setCommandHandler(MI_EraserPolyline, this, &MainWindow::toggleEraserPolyline);
|
|
||||||
setCommandHandler(MI_EraserSegment, this, &MainWindow::toggleEraserSegment);
|
|
||||||
|
|
||||||
/*-- Tape tool + type/mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_TapeNextType, this, &MainWindow::toggleTapeNextType);
|
|
||||||
setCommandHandler(MI_TapeNormal, this, &MainWindow::toggleTapeNormal);
|
|
||||||
setCommandHandler(MI_TapeRectangular, this,
|
|
||||||
&MainWindow::toggleTapeRectangular);
|
|
||||||
setCommandHandler(MI_TapeNextMode, this, &MainWindow::toggleTapeNextMode);
|
|
||||||
setCommandHandler(MI_TapeEndpointToEndpoint, this,
|
|
||||||
&MainWindow::toggleTapeEndpointToEndpoint);
|
|
||||||
setCommandHandler(MI_TapeEndpointToLine, this,
|
|
||||||
&MainWindow::toggleTapeEndpointToLine);
|
|
||||||
setCommandHandler(MI_TapeLineToLine, this, &MainWindow::toggleTapeLineToLine);
|
|
||||||
|
|
||||||
/*-- Style Picker tool + mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_PickStyleNextMode, this,
|
|
||||||
&MainWindow::togglePickStyleNextMode);
|
|
||||||
setCommandHandler(MI_PickStyleAreas, this, &MainWindow::togglePickStyleAreas);
|
|
||||||
setCommandHandler(MI_PickStyleLines, this, &MainWindow::togglePickStyleLines);
|
|
||||||
setCommandHandler(MI_PickStyleLinesAndAreas, this,
|
|
||||||
&MainWindow::togglePickStyleLinesAndAreas);
|
|
||||||
|
|
||||||
/*-- RGB Picker tool + type switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_RGBPickerNextType, this,
|
|
||||||
&MainWindow::toggleRGBPickerNextType);
|
|
||||||
setCommandHandler(MI_RGBPickerNormal, this,
|
|
||||||
&MainWindow::toggleRGBPickerNormal);
|
|
||||||
setCommandHandler(MI_RGBPickerRectangular, this,
|
|
||||||
&MainWindow::toggleRGBPickerRectangular);
|
|
||||||
setCommandHandler(MI_RGBPickerFreehand, this,
|
|
||||||
&MainWindow::toggleRGBPickerFreehand);
|
|
||||||
setCommandHandler(MI_RGBPickerPolyline, this,
|
|
||||||
&MainWindow::toggleRGBPickerPolyline);
|
|
||||||
|
|
||||||
/*-- Skeleton tool + mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_SkeletonNextMode, this,
|
|
||||||
&MainWindow::ToggleSkeletonNextMode);
|
|
||||||
setCommandHandler(MI_SkeletonBuildSkeleton, this,
|
|
||||||
&MainWindow::ToggleSkeletonBuildSkeleton);
|
|
||||||
setCommandHandler(MI_SkeletonAnimate, this,
|
|
||||||
&MainWindow::ToggleSkeletonAnimate);
|
|
||||||
setCommandHandler(MI_SkeletonInverseKinematics, this,
|
|
||||||
&MainWindow::ToggleSkeletonInverseKinematics);
|
|
||||||
|
|
||||||
/*-- Plastic tool + mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_PlasticNextMode, this,
|
|
||||||
&MainWindow::TogglePlasticNextMode);
|
|
||||||
setCommandHandler(MI_PlasticEditMesh, this,
|
|
||||||
&MainWindow::TogglePlasticEditMesh);
|
|
||||||
setCommandHandler(MI_PlasticPaintRigid, this,
|
|
||||||
&MainWindow::TogglePlasticPaintRigid);
|
|
||||||
setCommandHandler(MI_PlasticBuildSkeleton, this,
|
|
||||||
&MainWindow::TogglePlasticBuildSkeleton);
|
|
||||||
setCommandHandler(MI_PlasticAnimate, this, &MainWindow::TogglePlasticAnimate);
|
|
||||||
|
|
||||||
/*-- Brush tool + mode switching shortcuts --*/
|
|
||||||
setCommandHandler(MI_BrushAutoFillOff, this,
|
|
||||||
&MainWindow::ToggleBrushAutoFillOff);
|
|
||||||
setCommandHandler(MI_BrushAutoFillOn, this,
|
|
||||||
&MainWindow::ToggleBrushAutoFillOn);
|
|
||||||
|
|
||||||
setCommandHandler(MI_About, this, &MainWindow::onAbout);
|
setCommandHandler(MI_About, this, &MainWindow::onAbout);
|
||||||
setCommandHandler(MI_OpenOnlineManual, this, &MainWindow::onOpenOnlineManual);
|
setCommandHandler(MI_OpenOnlineManual, this, &MainWindow::onOpenOnlineManual);
|
||||||
// setCommandHandler(MI_SupportTahoma2D, this,
|
// setCommandHandler(MI_SupportTahoma2D, this,
|
||||||
|
@ -3154,498 +3033,6 @@ void MainWindow::onInk1CheckTriggered(bool on) {
|
||||||
if (inkCheckAction) inkCheckAction->setChecked(false);
|
if (inkCheckAction) inkCheckAction->setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
/*-- Animate tool + mode switching shortcuts --*/
|
|
||||||
void MainWindow::toggleEditNextMode() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Edit)
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis")
|
|
||||||
->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEditPosition() {
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis:Position")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEditRotation() {
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis:Rotation")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEditNextScale() {
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis:Scale")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEditNextShear() {
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis:Shear")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEditNextCenter() {
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis:Center")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEditNextAll() {
|
|
||||||
CommandManager::instance()->getAction(T_Edit)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_EditToolActiveAxis:All")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Selection tool + type switching shortcuts --*/
|
|
||||||
void MainWindow::toggleSelectionNextType() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Selection)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Selection)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleSelectionRectangular() {
|
|
||||||
CommandManager::instance()->getAction(T_Selection)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Rectangular")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleSelectionFreehand() {
|
|
||||||
CommandManager::instance()->getAction(T_Selection)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Freehand")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleSelectionPolyline() {
|
|
||||||
CommandManager::instance()->getAction(T_Selection)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Polyline")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Geometric tool + shape switching shortcuts --*/
|
|
||||||
void MainWindow::toggleGeometricNextShape() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Geometric)
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape")
|
|
||||||
->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricRectangle() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Rectangle")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricCircle() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Circle")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricEllipse() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Ellipse")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricLine() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Line")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricPolyline() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Polyline")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricArc() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Arc")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricMultiArc() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:MultiArc")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleGeometricPolygon() {
|
|
||||||
CommandManager::instance()->getAction(T_Geometric)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_GeometricShape:Polygon")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Type tool + mode switching shortcuts --*/
|
|
||||||
void MainWindow::toggleTypeNextStyle() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Type)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_TypeStyle")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Type)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTypeOblique() {
|
|
||||||
CommandManager::instance()->getAction(T_Type)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_TypeStyle:Oblique")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTypeRegular() {
|
|
||||||
CommandManager::instance()->getAction(T_Type)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_TypeStyle:Regular")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTypeBoldOblique() {
|
|
||||||
CommandManager::instance()->getAction(T_Type)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_TypeStyle:Bold Oblique")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTypeBold() {
|
|
||||||
CommandManager::instance()->getAction(T_Type)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_TypeStyle:Bold")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Fill tool + type/mode switching shortcuts --*/
|
|
||||||
void MainWindow::toggleFillNextType() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Fill)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillNormal() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillRectangular() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Rectangular")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillFreehand() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Freehand")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillPolyline() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Polyline")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillNextMode() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Fill)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillAreas() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode:Areas")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillLines() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode:Lines")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleFillLinesAndAreas() {
|
|
||||||
CommandManager::instance()->getAction(T_Fill)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Mode:Lines & Areas")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Eraser tool + type switching shortcuts --*/
|
|
||||||
void MainWindow::toggleEraserNextType() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Eraser)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Eraser)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEraserNormal() {
|
|
||||||
CommandManager::instance()->getAction(T_Eraser)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEraserRectangular() {
|
|
||||||
CommandManager::instance()->getAction(T_Eraser)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Rectangular")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEraserFreehand() {
|
|
||||||
CommandManager::instance()->getAction(T_Eraser)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Freehand")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEraserPolyline() {
|
|
||||||
CommandManager::instance()->getAction(T_Eraser)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Polyline")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleEraserSegment() {
|
|
||||||
CommandManager::instance()->getAction(T_Eraser)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Segment")->trigger();
|
|
||||||
}
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Tape tool + type/mode switching shortcuts --*/
|
|
||||||
void MainWindow::toggleTapeNextType() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Tape)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTapeNormal() {
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTapeRectangular() {
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Rectangular")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTapeNextMode() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Tape)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTapeEndpointToEndpoint() {
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Mode:Endpoint to Endpoint")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTapeEndpointToLine() {
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Mode:Endpoint to Line")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleTapeLineToLine() {
|
|
||||||
CommandManager::instance()->getAction(T_Tape)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Mode:Line to Line")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
/*-- Style Picker tool + mode switching shortcuts --*/
|
|
||||||
void MainWindow::togglePickStyleNextMode() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_StylePicker)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_StylePicker)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::togglePickStyleAreas() {
|
|
||||||
CommandManager::instance()->getAction(T_StylePicker)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode:Areas")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::togglePickStyleLines() {
|
|
||||||
CommandManager::instance()->getAction(T_StylePicker)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Mode:Lines")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::togglePickStyleLinesAndAreas() {
|
|
||||||
CommandManager::instance()->getAction(T_StylePicker)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Mode:Lines & Areas")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
/*-- RGB Picker tool + type switching shortcuts --*/
|
|
||||||
void MainWindow::toggleRGBPickerNextType() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_RGBPicker)
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type")->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_RGBPicker)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleRGBPickerNormal() {
|
|
||||||
CommandManager::instance()->getAction(T_RGBPicker)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleRGBPickerRectangular() {
|
|
||||||
CommandManager::instance()->getAction(T_RGBPicker)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Rectangular")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleRGBPickerFreehand() {
|
|
||||||
CommandManager::instance()->getAction(T_RGBPicker)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Freehand")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::toggleRGBPickerPolyline() {
|
|
||||||
CommandManager::instance()->getAction(T_RGBPicker)->trigger();
|
|
||||||
CommandManager::instance()->getAction("A_ToolOption_Type:Normal")->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_Type:Polyline")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
/*-- Skeleton tool + type switching shortcuts --*/
|
|
||||||
void MainWindow::ToggleSkeletonNextMode() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Skeleton)
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode")
|
|
||||||
->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Skeleton)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::ToggleSkeletonBuildSkeleton() {
|
|
||||||
CommandManager::instance()->getAction(T_Skeleton)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Build Skeleton")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::ToggleSkeletonAnimate() {
|
|
||||||
CommandManager::instance()->getAction(T_Skeleton)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Animate")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::ToggleSkeletonInverseKinematics() {
|
|
||||||
CommandManager::instance()->getAction(T_Skeleton)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Inverse Kinematics")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
/*-- Plastic tool + mode switching shortcuts --*/
|
|
||||||
void MainWindow::TogglePlasticNextMode() {
|
|
||||||
if (TApp::instance()->getCurrentTool()->getTool()->getName() == T_Plastic)
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode")
|
|
||||||
->trigger();
|
|
||||||
else
|
|
||||||
CommandManager::instance()->getAction(T_Plastic)->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::TogglePlasticEditMesh() {
|
|
||||||
CommandManager::instance()->getAction(T_Plastic)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Edit Mesh")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::TogglePlasticPaintRigid() {
|
|
||||||
CommandManager::instance()->getAction(T_Plastic)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Paint Rigid")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::TogglePlasticBuildSkeleton() {
|
|
||||||
CommandManager::instance()->getAction(T_Plastic)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Build Skeleton")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::TogglePlasticAnimate() {
|
|
||||||
CommandManager::instance()->getAction(T_Plastic)->trigger();
|
|
||||||
CommandManager::instance()
|
|
||||||
->getAction("A_ToolOption_SkeletonMode:Animate")
|
|
||||||
->trigger();
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
/*-- Brush tool + mode switching shortcuts --*/
|
|
||||||
void MainWindow::ToggleBrushAutoFillOff() {
|
|
||||||
CommandManager::instance()->getAction(T_Brush)->trigger();
|
|
||||||
QAction *ac = CommandManager::instance()->getAction("A_ToolOption_AutoClose");
|
|
||||||
if (ac->isChecked()) {
|
|
||||||
ac->trigger();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::ToggleBrushAutoFillOn() {
|
|
||||||
CommandManager::instance()->getAction(T_Brush)->trigger();
|
|
||||||
QAction *ac = CommandManager::instance()->getAction("A_ToolOption_Autofill");
|
|
||||||
if (!ac->isChecked()) {
|
|
||||||
ac->trigger();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void MainWindow::onNewVectorLevelButtonPressed() {
|
void MainWindow::onNewVectorLevelButtonPressed() {
|
||||||
|
|
|
@ -116,97 +116,6 @@ public:
|
||||||
Room *getCurrentRoom() const;
|
Room *getCurrentRoom() const;
|
||||||
void refreshWriteSettings();
|
void refreshWriteSettings();
|
||||||
|
|
||||||
/*-- Animate tool + mode switching shortcuts --*/
|
|
||||||
void toggleEditNextMode();
|
|
||||||
void toggleEditPosition();
|
|
||||||
void toggleEditRotation();
|
|
||||||
void toggleEditNextScale();
|
|
||||||
void toggleEditNextShear();
|
|
||||||
void toggleEditNextCenter();
|
|
||||||
void toggleEditNextAll();
|
|
||||||
|
|
||||||
/*-- Selection tool + mode switching shortcuts --*/
|
|
||||||
void toggleSelectionNextType();
|
|
||||||
void toggleSelectionRectangular();
|
|
||||||
void toggleSelectionFreehand();
|
|
||||||
void toggleSelectionPolyline();
|
|
||||||
|
|
||||||
/*-- Geometric tool + shape switching shortcuts --*/
|
|
||||||
void toggleGeometricNextShape();
|
|
||||||
void toggleGeometricRectangle();
|
|
||||||
void toggleGeometricCircle();
|
|
||||||
void toggleGeometricEllipse();
|
|
||||||
void toggleGeometricLine();
|
|
||||||
void toggleGeometricPolyline();
|
|
||||||
void toggleGeometricArc();
|
|
||||||
void toggleGeometricMultiArc();
|
|
||||||
void toggleGeometricPolygon();
|
|
||||||
|
|
||||||
/*-- Type tool + style switching shortcuts --*/
|
|
||||||
void toggleTypeNextStyle();
|
|
||||||
void toggleTypeOblique();
|
|
||||||
void toggleTypeRegular();
|
|
||||||
void toggleTypeBoldOblique();
|
|
||||||
void toggleTypeBold();
|
|
||||||
|
|
||||||
/*-- Fill tool + mode switching shortcuts --*/
|
|
||||||
void toggleFillNextType();
|
|
||||||
void toggleFillNormal();
|
|
||||||
void toggleFillRectangular();
|
|
||||||
void toggleFillFreehand();
|
|
||||||
void toggleFillPolyline();
|
|
||||||
void toggleFillNextMode();
|
|
||||||
void toggleFillAreas();
|
|
||||||
void toggleFillLines();
|
|
||||||
void toggleFillLinesAndAreas();
|
|
||||||
|
|
||||||
/*-- Eraser tool + type switching shortcuts --*/
|
|
||||||
void toggleEraserNextType();
|
|
||||||
void toggleEraserNormal();
|
|
||||||
void toggleEraserRectangular();
|
|
||||||
void toggleEraserFreehand();
|
|
||||||
void toggleEraserPolyline();
|
|
||||||
void toggleEraserSegment();
|
|
||||||
|
|
||||||
/*-- Tape tool + type/mode switching shortcuts --*/
|
|
||||||
void toggleTapeNextType();
|
|
||||||
void toggleTapeNormal();
|
|
||||||
void toggleTapeRectangular();
|
|
||||||
void toggleTapeNextMode();
|
|
||||||
void toggleTapeEndpointToEndpoint();
|
|
||||||
void toggleTapeEndpointToLine();
|
|
||||||
void toggleTapeLineToLine();
|
|
||||||
|
|
||||||
/*-- Style Picker tool + mode switching shortcuts --*/
|
|
||||||
void togglePickStyleNextMode();
|
|
||||||
void togglePickStyleAreas();
|
|
||||||
void togglePickStyleLines();
|
|
||||||
void togglePickStyleLinesAndAreas();
|
|
||||||
|
|
||||||
/*-- RGB Picker tool + type switching shortcuts --*/
|
|
||||||
void toggleRGBPickerNextType();
|
|
||||||
void toggleRGBPickerNormal();
|
|
||||||
void toggleRGBPickerRectangular();
|
|
||||||
void toggleRGBPickerFreehand();
|
|
||||||
void toggleRGBPickerPolyline();
|
|
||||||
|
|
||||||
/*-- Skeleton tool + mode switching shortcuts --*/
|
|
||||||
void ToggleSkeletonNextMode();
|
|
||||||
void ToggleSkeletonBuildSkeleton();
|
|
||||||
void ToggleSkeletonAnimate();
|
|
||||||
void ToggleSkeletonInverseKinematics();
|
|
||||||
|
|
||||||
/*-- Plastic tool + mode switching shortcuts --*/
|
|
||||||
void TogglePlasticNextMode();
|
|
||||||
void TogglePlasticEditMesh();
|
|
||||||
void TogglePlasticPaintRigid();
|
|
||||||
void TogglePlasticBuildSkeleton();
|
|
||||||
void TogglePlasticAnimate();
|
|
||||||
|
|
||||||
/*-- Brush Tool + mode switching shortcuts --*/
|
|
||||||
void ToggleBrushAutoFillOff();
|
|
||||||
void ToggleBrushAutoFillOn();
|
|
||||||
|
|
||||||
void onNewVectorLevelButtonPressed();
|
void onNewVectorLevelButtonPressed();
|
||||||
void onNewToonzRasterLevelButtonPressed();
|
void onNewToonzRasterLevelButtonPressed();
|
||||||
void onNewRasterLevelButtonPressed();
|
void onNewRasterLevelButtonPressed();
|
||||||
|
|
|
@ -1075,7 +1075,7 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) {
|
||||||
tr("Use higher DPI for calculations - Slower but more accurate")},
|
tr("Use higher DPI for calculations - Slower but more accurate")},
|
||||||
|
|
||||||
// Tools
|
// Tools
|
||||||
{dropdownShortcutsCycleOptions, tr("Dropdown Shortcuts:")},
|
// {dropdownShortcutsCycleOptions, tr("Dropdown Shortcuts:")}, // removed
|
||||||
{FillOnlysavebox, tr("Use the TLV Savebox to Limit Filling Operations")},
|
{FillOnlysavebox, tr("Use the TLV Savebox to Limit Filling Operations")},
|
||||||
{multiLayerStylePickerEnabled,
|
{multiLayerStylePickerEnabled,
|
||||||
tr("Multi Layer Style Picker: Switch Levels by Picking")},
|
tr("Multi Layer Style Picker: Switch Levels by Picking")},
|
||||||
|
@ -1214,9 +1214,9 @@ QList<ComboBoxItem> PreferencesPopup::getComboItemList(
|
||||||
{NumberingSystem, {{tr("Incremental"), 0}, {tr("Animation Sheet"), 1}}},
|
{NumberingSystem, {{tr("Incremental"), 0}, {tr("Animation Sheet"), 1}}},
|
||||||
{vectorSnappingTarget,
|
{vectorSnappingTarget,
|
||||||
{{tr("Strokes"), 0}, {tr("Guides"), 1}, {tr("All"), 2}}},
|
{{tr("Strokes"), 0}, {tr("Guides"), 1}, {tr("All"), 2}}},
|
||||||
{dropdownShortcutsCycleOptions,
|
//{dropdownShortcutsCycleOptions,
|
||||||
{{tr("Open the dropdown to display all options"), 0},
|
// {{tr("Open the dropdown to display all options"), 0},
|
||||||
{tr("Cycle through the available options"), 1}}},
|
// {tr("Cycle through the available options"), 1}}},
|
||||||
{cursorBrushType,
|
{cursorBrushType,
|
||||||
{{tr("Small"), "Small"},
|
{{tr("Small"), "Small"},
|
||||||
{tr("Large"), "Large"},
|
{tr("Large"), "Large"},
|
||||||
|
@ -1705,8 +1705,8 @@ QWidget* PreferencesPopup::createToolsPage() {
|
||||||
QGridLayout* lay = new QGridLayout();
|
QGridLayout* lay = new QGridLayout();
|
||||||
setupLayout(lay);
|
setupLayout(lay);
|
||||||
|
|
||||||
insertUI(dropdownShortcutsCycleOptions, lay,
|
// insertUI(dropdownShortcutsCycleOptions, lay,
|
||||||
getComboItemList(dropdownShortcutsCycleOptions));
|
// getComboItemList(dropdownShortcutsCycleOptions));
|
||||||
insertUI(FillOnlysavebox, lay);
|
insertUI(FillOnlysavebox, lay);
|
||||||
insertUI(multiLayerStylePickerEnabled, lay);
|
insertUI(multiLayerStylePickerEnabled, lay);
|
||||||
QGridLayout* cursorOptionsLay = insertGroupBox(tr("Cursor Options"), lay);
|
QGridLayout* cursorOptionsLay = insertGroupBox(tr("Cursor Options"), lay);
|
||||||
|
|
1125
toonz/sources/toonz/tooloptionsshortcutinvoker.cpp
Normal file
1125
toonz/sources/toonz/tooloptionsshortcutinvoker.cpp
Normal file
File diff suppressed because it is too large
Load diff
252
toonz/sources/toonz/tooloptionsshortcutinvoker.h
Normal file
252
toonz/sources/toonz/tooloptionsshortcutinvoker.h
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
#pragma once
|
||||||
|
#ifndef TOOLOPTIONSSHORTCUTINVOKER_H
|
||||||
|
#define TOOLOPTIONSSHORTCUTINVOKER_H
|
||||||
|
|
||||||
|
#include "tproperty.h"
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QMultiMap>
|
||||||
|
#include <QSet>
|
||||||
|
|
||||||
|
class TProperty;
|
||||||
|
class QAction;
|
||||||
|
class TTool;
|
||||||
|
|
||||||
|
namespace ToolOptionsShortcutWorker {
|
||||||
|
class BoolWorker;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ToolOptionShortcutConnector final : public TProperty::Visitor {
|
||||||
|
TTool* m_tool;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ToolOptionShortcutConnector(TTool* tool);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void visit(TDoubleProperty* p) override;
|
||||||
|
void visit(TDoublePairProperty* p) override;
|
||||||
|
void visit(TIntPairProperty* p) override;
|
||||||
|
void visit(TIntProperty* p) override;
|
||||||
|
void visit(TBoolProperty* p) override;
|
||||||
|
void visit(TStringProperty* p) override {}
|
||||||
|
void visit(TEnumProperty* p) override;
|
||||||
|
void visit(TStyleIndexProperty* p) override {}
|
||||||
|
void visit(TPointerProperty* p) override {}
|
||||||
|
};
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
namespace ToolOptionsShortcutWorker {
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
class DoubleWorker : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
TTool* m_tool;
|
||||||
|
TDoubleProperty* m_property;
|
||||||
|
|
||||||
|
public:
|
||||||
|
DoubleWorker(QObject* parent, TTool* tool, TDoubleProperty* property)
|
||||||
|
: QObject(parent), m_tool(tool), m_property(property) {}
|
||||||
|
protected slots:
|
||||||
|
void increase(double step = 1.0);
|
||||||
|
void increaseFractional();
|
||||||
|
void decrease(double step = 1.0);
|
||||||
|
void decreaseFractional();
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
class DoublePairWorker : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
TTool* m_tool;
|
||||||
|
TDoublePairProperty* m_property;
|
||||||
|
|
||||||
|
public:
|
||||||
|
DoublePairWorker(QObject* parent, TTool* tool, TDoublePairProperty* property)
|
||||||
|
: QObject(parent), m_tool(tool), m_property(property) {}
|
||||||
|
protected slots:
|
||||||
|
void increaseMaxValue();
|
||||||
|
void decreaseMaxValue();
|
||||||
|
void increaseMinValue();
|
||||||
|
void decreaseMinValue();
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
class IntPairWorker : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
TTool* m_tool;
|
||||||
|
TIntPairProperty* m_property;
|
||||||
|
|
||||||
|
public:
|
||||||
|
IntPairWorker(QObject* parent, TTool* tool, TIntPairProperty* property)
|
||||||
|
: QObject(parent), m_tool(tool), m_property(property) {}
|
||||||
|
protected slots:
|
||||||
|
void increaseMaxValue();
|
||||||
|
void decreaseMaxValue();
|
||||||
|
void increaseMinValue();
|
||||||
|
void decreaseMinValue();
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
class IntWorker : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
TTool* m_tool;
|
||||||
|
TIntProperty* m_property;
|
||||||
|
|
||||||
|
public:
|
||||||
|
IntWorker(QObject* parent, TTool* tool, TIntProperty* property)
|
||||||
|
: QObject(parent), m_tool(tool), m_property(property) {}
|
||||||
|
protected slots:
|
||||||
|
void increase();
|
||||||
|
void decrease();
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
class BoolWorker : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
TTool* m_tool;
|
||||||
|
TBoolProperty* m_property;
|
||||||
|
QAction* m_action;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BoolWorker(QObject* parent, TTool* tool, TBoolProperty* property,
|
||||||
|
QAction* action)
|
||||||
|
: QObject(parent), m_tool(tool), m_property(property), m_action(action) {}
|
||||||
|
void syncActionState();
|
||||||
|
protected slots:
|
||||||
|
void doCheck(bool);
|
||||||
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
class EnumWorker : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
TTool* m_tool;
|
||||||
|
TEnumProperty* m_property;
|
||||||
|
|
||||||
|
public:
|
||||||
|
EnumWorker(QObject* parent, TTool* tool, TEnumProperty* property)
|
||||||
|
: QObject(parent), m_tool(tool), m_property(property) {}
|
||||||
|
protected slots:
|
||||||
|
void cycleOptions();
|
||||||
|
void doOnActivated(int);
|
||||||
|
};
|
||||||
|
} // namespace ToolOptionsShortcutWorker
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
class ToolOptionsShortcutInvoker : public QObject // singleton
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
QSet<TTool*> m_tools;
|
||||||
|
//ツールが切り替わったら ActionのCheck状態を同期させる
|
||||||
|
QMultiMap<TTool*, ToolOptionsShortcutWorker::BoolWorker*> m_checkProps;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static ToolOptionsShortcutInvoker* instance();
|
||||||
|
void initialize();
|
||||||
|
void notifyTool(TTool*, TProperty*, bool = false);
|
||||||
|
void registerCheckProperty(TTool*, ToolOptionsShortcutWorker::BoolWorker*);
|
||||||
|
|
||||||
|
private:
|
||||||
|
ToolOptionsShortcutInvoker(){};
|
||||||
|
protected slots:
|
||||||
|
void onToolSwitched();
|
||||||
|
|
||||||
|
/*-- Animate tool + mode switching shortcuts --*/
|
||||||
|
void toggleEditNextMode();
|
||||||
|
void toggleEditPosition();
|
||||||
|
void toggleEditRotation();
|
||||||
|
void toggleEditNextScale();
|
||||||
|
void toggleEditNextShear();
|
||||||
|
void toggleEditNextCenter();
|
||||||
|
void toggleEditNextAll();
|
||||||
|
|
||||||
|
/*-- Selection tool + mode switching shortcuts --*/
|
||||||
|
void toggleSelectionNextType();
|
||||||
|
void toggleSelectionRectangular();
|
||||||
|
void toggleSelectionFreehand();
|
||||||
|
void toggleSelectionPolyline();
|
||||||
|
|
||||||
|
/*-- Geometric tool + shape switching shortcuts --*/
|
||||||
|
void toggleGeometricNextShape();
|
||||||
|
void toggleGeometricRectangle();
|
||||||
|
void toggleGeometricCircle();
|
||||||
|
void toggleGeometricEllipse();
|
||||||
|
void toggleGeometricLine();
|
||||||
|
void toggleGeometricPolyline();
|
||||||
|
void toggleGeometricArc();
|
||||||
|
void toggleGeometricMultiArc();
|
||||||
|
void toggleGeometricPolygon();
|
||||||
|
|
||||||
|
/*-- Type tool + style switching shortcuts --*/
|
||||||
|
void toggleTypeNextStyle();
|
||||||
|
void toggleTypeOblique();
|
||||||
|
void toggleTypeRegular();
|
||||||
|
void toggleTypeBoldOblique();
|
||||||
|
void toggleTypeBold();
|
||||||
|
|
||||||
|
/*-- Fill tool + mode switching shortcuts --*/
|
||||||
|
void toggleFillNextType();
|
||||||
|
void toggleFillNormal();
|
||||||
|
void toggleFillRectangular();
|
||||||
|
void toggleFillFreehand();
|
||||||
|
void toggleFillPolyline();
|
||||||
|
void toggleFillNextMode();
|
||||||
|
void toggleFillAreas();
|
||||||
|
void toggleFillLines();
|
||||||
|
void toggleFillLinesAndAreas();
|
||||||
|
|
||||||
|
/*-- Eraser tool + type switching shortcuts --*/
|
||||||
|
void toggleEraserNextType();
|
||||||
|
void toggleEraserNormal();
|
||||||
|
void toggleEraserRectangular();
|
||||||
|
void toggleEraserFreehand();
|
||||||
|
void toggleEraserPolyline();
|
||||||
|
void toggleEraserSegment();
|
||||||
|
|
||||||
|
/*-- Tape tool + type/mode switching shortcuts --*/
|
||||||
|
void toggleTapeNextType();
|
||||||
|
void toggleTapeNormal();
|
||||||
|
void toggleTapeRectangular();
|
||||||
|
void toggleTapeNextMode();
|
||||||
|
void toggleTapeEndpointToEndpoint();
|
||||||
|
void toggleTapeEndpointToLine();
|
||||||
|
void toggleTapeLineToLine();
|
||||||
|
|
||||||
|
/*-- Style Picker tool + mode switching shortcuts --*/
|
||||||
|
void togglePickStyleNextMode();
|
||||||
|
void togglePickStyleAreas();
|
||||||
|
void togglePickStyleLines();
|
||||||
|
void togglePickStyleLinesAndAreas();
|
||||||
|
|
||||||
|
/*-- RGB Picker tool + type switching shortcuts --*/
|
||||||
|
void toggleRGBPickerNextType();
|
||||||
|
void toggleRGBPickerNormal();
|
||||||
|
void toggleRGBPickerRectangular();
|
||||||
|
void toggleRGBPickerFreehand();
|
||||||
|
void toggleRGBPickerPolyline();
|
||||||
|
|
||||||
|
/*-- Skeleton tool + mode switching shortcuts --*/
|
||||||
|
void ToggleSkeletonNextMode();
|
||||||
|
void ToggleSkeletonBuildSkeleton();
|
||||||
|
void ToggleSkeletonAnimate();
|
||||||
|
void ToggleSkeletonInverseKinematics();
|
||||||
|
|
||||||
|
/*-- Plastic tool + mode switching shortcuts --*/
|
||||||
|
void TogglePlasticNextMode();
|
||||||
|
void TogglePlasticEditMesh();
|
||||||
|
void TogglePlasticPaintRigid();
|
||||||
|
void TogglePlasticBuildSkeleton();
|
||||||
|
void TogglePlasticAnimate();
|
||||||
|
|
||||||
|
/*-- Brush Tool + mode switching shortcuts --*/
|
||||||
|
void ToggleBrushAutoFillOff();
|
||||||
|
void ToggleBrushAutoFillOn();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -515,9 +515,10 @@ void Preferences::definePreferenceItems() {
|
||||||
QMetaType::Bool, false);
|
QMetaType::Bool, false);
|
||||||
|
|
||||||
// Tools
|
// Tools
|
||||||
define(dropdownShortcutsCycleOptions, "dropdownShortcutsCycleOptions",
|
// define(dropdownShortcutsCycleOptions, "dropdownShortcutsCycleOptions",
|
||||||
QMetaType::Int,
|
// QMetaType::Int,
|
||||||
1); // Cycle through the available options (changed from bool to int)
|
// 1); // Cycle through the available options (changed from bool to
|
||||||
|
// int)
|
||||||
define(FillOnlysavebox, "FillOnlysavebox", QMetaType::Bool, false);
|
define(FillOnlysavebox, "FillOnlysavebox", QMetaType::Bool, false);
|
||||||
define(multiLayerStylePickerEnabled, "multiLayerStylePickerEnabled",
|
define(multiLayerStylePickerEnabled, "multiLayerStylePickerEnabled",
|
||||||
QMetaType::Bool, false);
|
QMetaType::Bool, false);
|
||||||
|
|
Loading…
Reference in a new issue