From 8d8a1c5be5a633ce491febf48d349228e6ab8c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Fri, 15 Jun 2018 11:24:07 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@406 a8b55f48-bf90-11e4-a774-851b48703e85 --- qad/blockview/blockview.cpp | 18 +++++++++++++++--- qad/blockview/blockview.h | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/qad/blockview/blockview.cpp b/qad/blockview/blockview.cpp index 793305d..8934ab9 100644 --- a/qad/blockview/blockview.cpp +++ b/qad/blockview/blockview.cpp @@ -27,7 +27,7 @@ BlockView::~BlockView() { void BlockView::_init() { - grid_visible = grid_snap = pm_connect = navigation = m_connect = m_trace_with_buses = minimap = true; + grid_visible = grid_snap = pm_connect = navigation = m_connect = m_trace_with_buses = prev_tcb = minimap = true; mm_drag = moved = new_branch = new_bus = mm_cancel = iconnect = mm_copy = m_pin_mc = mm_thumb = move_bus_point = false; match_bus = bus_from = 0; mm_ci = 0; @@ -310,6 +310,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) { addItem(tmp_buses.back()); } //qDebug() << "new" << ; + prev_tcb = m_trace_with_buses; newBusStarted(tmp_bus.busType()); markPins(tmp_bus.busType()); if (qgraphicsitem_cast(mm_ci)->alignment() == Qt::AlignLeft || @@ -670,13 +671,21 @@ void BlockView::keyPressEvent(QKeyEvent * e) { highlightNearPins(pin, e->modifiers()); } } - if (e->key() == Qt::Key_Shift) { - if (tmp_bus.isVisible()) { + if (tmp_bus.isVisible()) { + bool retrace = false; + if (e->key() == Qt::Key_Shift) { + retrace = true; switch (wavetrace.preferredDirection()) { case BlockViewWavetrace::NoTrace: wavetrace.setPreferredDirection(BlockViewWavetrace::Horizontal); break; case BlockViewWavetrace::Horizontal: wavetrace.setPreferredDirection(BlockViewWavetrace::Vertical); break; case BlockViewWavetrace::Vertical: wavetrace.setPreferredDirection(BlockViewWavetrace::NoTrace); break; } + } + if (e->key() == Qt::Key_Alt) { + retrace = true; + m_trace_with_buses = !m_trace_with_buses; + } + if (retrace) { trace(last_trace_from, trace_to, &tmp_bus); for (int i = 0; i < qMin(tmp_buses.size(), last_multiconnect_pl.size()); ++i) { QPointF dp = last_multiconnect_pl[i]->scenePos() - last_trace_from; @@ -1545,6 +1554,7 @@ void BlockView::hideTmpBuses(bool clear) { qDeleteAll(tmp_buses); tmp_buses.clear(); } + m_trace_with_buses = prev_tcb; } @@ -1608,6 +1618,7 @@ void BlockView::adjustThumb() { void BlockView::newBranch(BlockBusItem * item) { bus_from = item; + prev_tcb = m_trace_with_buses; newBusStarted(item->busType()); markPins(item->busType()); new_branch = true; @@ -1622,6 +1633,7 @@ void BlockView::newBranch(BlockBusItem * item) { void BlockView::startBusPointMove(int bus_type) { move_bus_point = true; + prev_tcb = m_trace_with_buses; newBusStarted(bus_type); markPins(bus_type); } diff --git a/qad/blockview/blockview.h b/qad/blockview/blockview.h index b65f99f..e99309c 100644 --- a/qad/blockview/blockview.h +++ b/qad/blockview/blockview.h @@ -182,7 +182,7 @@ protected: QPropertyAnimation thumb_anim, nav_anim; int timer_thumb, thumb_hide_delay, thick; bool mm_drag, new_bus, new_branch, moved, mm_cancel, iconnect, mm_copy, mm_thumb, ae_enabled, is_nav_anim, is_block_anim, move_bus_point; - bool grid_visible, grid_snap, pm_connect, navigation, m_connect, m_trace_with_buses, m_pin_mc, minimap; + bool grid_visible, grid_snap, pm_connect, navigation, m_connect, m_trace_with_buses, m_pin_mc, minimap, prev_tcb; bool nav_prev_aa, nav_prev_imaa, nav_prev_grid; double grid_step, grid_points, cur_scl, _talpha, thumb_scl;