vertical_horizontal #2

Merged
ParkSuMin merged 2 commits from vertical_horizontal into master 2025-12-10 19:01:16 +01:00
6 changed files with 40 additions and 10 deletions

View File

@@ -81,9 +81,23 @@ void Canvas::mousePressEvent(QMouseEvent* event)
if (p) {
draggedPoint = p;
dragOffset = scene - QPointF(*p->x, *p->y);
return;
}
}
else if (mode == Mode::Horizontal || mode == Mode::Vertical) {
Line* found = findAt(scene);
if (found) {
if (mode == Mode::Horizontal)
sys.addConstraintHorizontal(*found, constraints_count++);
else
sys.addConstraintVertical(*found, constraints_count++);
update();
}
mode = Mode::None;
after_constraint = true;
}
else if (mode == Mode::DrawingLine) {
if (!current_line) {
current_line = new Line();

View File

@@ -19,7 +19,9 @@ enum class Mode : int
None = 0,
DrawingLine = 1,
Parallel = 2,
Coincedent = 3
Coincedent = 3,
Horizontal = 4,
Vertical = 5
};
// Удобный тип для хранения пары параллельных линий (порядок не важен)

View File

@@ -30,8 +30,13 @@ void DRAWer_2_0::on_P2P_Button_clicked()
}
void DRAWer_2_0::on_FIX_Button_clicked()
void DRAWer_2_0::on_Horizontal_Button_clicked()
{
ui.widget->changeMode(Mode::Horizontal);
}
void DRAWer_2_0::on_Vertical_Button_clicked()
{
ui.widget->changeMode(Mode::Vertical);
}

View File

@@ -18,7 +18,9 @@ private slots:
void on_P2P_Button_clicked();
void on_FIX_Button_clicked();
void on_Horizontal_Button_clicked();
void on_Vertical_Button_clicked();
private:
Ui::DRAWer_2_0Class ui;

View File

@@ -66,9 +66,16 @@
</widget>
</item>
<item>
<widget class="QPushButton" name="FIX_Button">
<widget class="QPushButton" name="Vertical_Button">
<property name="text">
<string>Fix Point</string>
<string>Vertical</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="Horizontal_Button">
<property name="text">
<string>Horizontal</string>
</property>
</widget>
</item>
@@ -117,7 +124,7 @@
<x>0</x>
<y>0</y>
<width>700</width>
<height>22</height>
<height>21</height>
</rect>
</property>
</widget>

View File

@@ -238,7 +238,7 @@ public:
void set_tag(int);
int get_tag();
bool contains(QPointF, qreal tol = 10.0) const;
bool contains(QPointF, qreal tol = 5.0) const;
};