[Part] FaceColors cleanup

- indicate if one is in the Box Selection mode
- get rid on dialog if one really wants to cancel (no other Task dialog does this and it is annoying)
- fix clumsy dialog layout
This commit is contained in:
donovaly
2020-08-02 20:32:18 +02:00
committed by wmayer
parent b97587cab3
commit 0bda7f449f
2 changed files with 165 additions and 106 deletions

View File

@@ -257,6 +257,7 @@ public:
self->d->boxSelection = true;
self->d->addFacesToSelection(view, proj, polygon, shape);
self->d->boxSelection = false;
self->d->ui->boxSelection->setChecked(false);
self->updatePanel();
view->redraw();
}
@@ -323,7 +324,16 @@ void FaceColors::slotDeleteObject(const Gui::ViewProvider& obj)
void FaceColors::on_boxSelection_clicked()
{
Gui::View3DInventor* view = qobject_cast<Gui::View3DInventor*>(Gui::getMainWindow()->activeWindow());
if (view) {
// toggle the button state and feature
if (d->boxSelection) {
d->boxSelection = false;
d->ui->boxSelection->setChecked(false);
}
else {
d->boxSelection = true;
d->ui->boxSelection->setChecked(true);
}
if (view && d->boxSelection) {
Gui::View3DInventorViewer* viewer = view->getViewer();
if (!viewer->isSelecting()) {
viewer->startSelection(Gui::View3DInventorViewer::Rubberband);
@@ -434,17 +444,10 @@ bool FaceColors::accept()
bool FaceColors::reject()
{
int ret = QMessageBox::question(this, tr("Face colors"), tr("Do you really want to cancel?"),
QMessageBox::Yes, QMessageBox::No|QMessageBox::Default|QMessageBox::Escape);
if (ret == QMessageBox::Yes) {
Gui::Document* doc = Gui::Application::Instance->getDocument(d->vp->getObject()->getDocument());
doc->abortCommand();
doc->resetEdit();
return true;
}
else {
return false;
}
Gui::Document* doc = Gui::Application::Instance->getDocument(d->vp->getObject()->getDocument());
doc->abortCommand();
doc->resetEdit();
return true;
}
void FaceColors::changeEvent(QEvent *e)

View File

@@ -1,94 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PartGui::TaskFaceColors</class>
<widget class="QWidget" name="PartGui::TaskFaceColors">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>247</width>
<height>219</height>
</rect>
</property>
<property name="windowTitle">
<string>Set color per face</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="label">
<property name="text">
<string>Click on the faces in the 3d view to select them.</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">Group box</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="faceLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Faces:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="labelElement">
<property name="text">
<string notr="true">[]</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="Gui::ColorButton" name="colorButton"/>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="defaultButton">
<property name="text">
<string>Set to default</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="boxSelection">
<property name="text">
<string>Box selection</string>
</property>
</widget>
</item>
<item row="2" column="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>135</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Gui::ColorButton</class>
<extends>QPushButton</extends>
<header>Gui/Widgets.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PartGui::TaskFaceColors</class>
<widget class="QWidget" name="PartGui::TaskFaceColors">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>247</width>
<height>157</height>
</rect>
</property>
<property name="windowTitle">
<string>Set color per face</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Click on the faces in the 3D view to select them</string>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string notr="true">Group box</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="faceLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Faces:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="labelElement">
<property name="text">
<string notr="true">[]</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="Gui::ColorButton" name="colorButton">
<property name="minimumSize">
<size>
<width>146</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>160</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QPushButton" name="defaultButton">
<property name="toolTip">
<string>Resets color for all faces of the part</string>
</property>
<property name="text">
<string>Set to default</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="boxSelection">
<property name="toolTip">
<string>When checked, the you can select multiple faces
by dragging a selection rectangle in the 3D view</string>
</property>
<property name="text">
<string>Box selection</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
<property name="default">
<bool>false</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Gui::ColorButton</class>
<extends>QPushButton</extends>
<header>Gui/Widgets.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>