diff --git a/sources/configpages.cpp b/sources/configpages.cpp index 33033b7b8..1180f9eee 100644 --- a/sources/configpages.cpp +++ b/sources/configpages.cpp @@ -186,7 +186,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage bool use_system_colors = settings.value("usesystemcolors", "true").toBool(); bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed"; bool integrate_elements = settings.value("diagrameditor/integrate-elements", true).toBool(); - bool grid_outside = settings.value("diagrameditor/draw-grid-outside-of-border", false).toBool(); + bool zoom_out_folio = settings.value("diagrameditor/zoom-out-beyond-of-folio", false).toBool(); bool use_trackpad = settings.value("diagramview/gestures", false).toBool(); bool highlight_integrated_elements = settings.value("diagrameditor/highlight-integrated-elements", true).toBool(); QString default_element_informations = settings.value("elementeditor/default-informations", "").toString(); @@ -197,7 +197,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage windowed_mode_ = new QRadioButton(tr("Utiliser des fenêtres (appliqué au prochain lancement de QElectroTech)"), projects_view_mode_); tabbed_mode_ = new QRadioButton(tr("Utiliser des onglets (appliqué au prochain lancement de QElectroTech)"), projects_view_mode_); use_trackpad_ = new QCheckBox(tr("Utiliser les gestes du pavé tactile"), projects_view_mode_); - m_grid_outside_border = new QCheckBox(tr("Dessiner la grille au-delà du cadre du folio"), this); + m_zoom_out_beyond_folio = new QCheckBox(tr("Autoriser le dézoom au delà du folio"), this); elements_management_ = new QGroupBox(tr("Gestion des éléments"), this); integrate_elements_ = new QCheckBox(tr("Intégrer automatiquement les éléments dans les projets (recommandé)")); @@ -222,7 +222,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage windowed_mode_ -> setChecked(true); } - m_grid_outside_border -> setChecked(grid_outside); + m_zoom_out_beyond_folio -> setChecked(zoom_out_folio); integrate_elements_ -> setChecked(integrate_elements); highlight_integrated_elements_ -> setChecked(highlight_integrated_elements); @@ -235,7 +235,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage QVBoxLayout *projects_view_mode_layout = new QVBoxLayout; projects_view_mode_layout -> addWidget(windowed_mode_); projects_view_mode_layout -> addWidget(tabbed_mode_); - projects_view_mode_layout -> addWidget(m_grid_outside_border); + projects_view_mode_layout -> addWidget(m_zoom_out_beyond_folio); projects_view_mode_layout -> addWidget(use_trackpad_); projects_view_mode_ -> setLayout(projects_view_mode_layout); @@ -300,7 +300,7 @@ void GeneralConfigurationPage::applyConf() { settings.setValue("diagrameditor/highlight-integrated-elements", highlight_integrated_elements_ -> isChecked()); settings.setValue("elementeditor/default-informations", default_element_infos_textfield_ -> toPlainText()); settings.setValue("diagramview/gestures", use_trackpad_ -> isChecked()); - settings.setValue("diagrameditor/draw-grid-outside-of-border", m_grid_outside_border->isChecked()); + settings.setValue("diagrameditor/zoom-out-beyond-of-folio", m_zoom_out_beyond_folio->isChecked()); } /// @return l'icone de cette page diff --git a/sources/configpages.h b/sources/configpages.h index 29d314095..bad988820 100644 --- a/sources/configpages.h +++ b/sources/configpages.h @@ -89,7 +89,7 @@ class GeneralConfigurationPage : public ConfigPage { QGroupBox *projects_view_mode_; QRadioButton *windowed_mode_; QRadioButton *tabbed_mode_; - QCheckBox *m_grid_outside_border; + QCheckBox *m_zoom_out_beyond_folio; QLabel *warning_view_mode_; QGroupBox *elements_management_; QCheckBox *integrate_elements_; diff --git a/sources/diagram.cpp b/sources/diagram.cpp index ea57394d9..80af3c65b 100644 --- a/sources/diagram.cpp +++ b/sources/diagram.cpp @@ -139,7 +139,8 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) { p -> setBrush(Qt::NoBrush); - QRectF rect = QETApp::settings().value("diagrameditor/draw-grid-outside-of-border", false).toBool() ? + //If user allow zoom out beyond of folio, we draw grid outside of border. + QRectF rect = QETApp::settings().value("diagrameditor/zoom-out-beyond-of-folio", false).toBool() ? r : border_and_titleblock.insideBorderRect().intersected(r); diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index e5bf4d14a..6d684cea8 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -350,41 +350,46 @@ void DiagramView::setSelectionMode() { } /** - Agrandit le schema (+33% = inverse des -25 % de zoomMoins()) -*/ + * @brief DiagramView::zoomIn + * Zoom in the current folio + */ void DiagramView::zoomIn() { - scale(4.0/3.0, 4.0/3.0); + scale(1.15, 1.15); adjustGridToZoom(); } /** - Retrecit le schema (-25% = inverse des +33 % de zoomPlus()) -*/ + * @brief DiagramView::zoomOut + * Zoom out the current folio. + * If zoom-out-beyond-of-folio is true in common setting, the zoom out is infinite + * else zoom out is stopped when the entire folio is visible. + */ void DiagramView::zoomOut() { - scale(0.75, 0.75); - if ((mapFromScene(0,0).rx() == 0) && (mapFromScene(0,0).ry() == 0)){ - fitInView(sceneRect(), Qt::KeepAspectRatio); - } + if (QETApp::settings().value("diagrameditor/zoom-out-beyond-of-folio", false).toBool() || + (horizontalScrollBar()->maximum() || verticalScrollBar()->maximum()) ) + scale(0.85, 0.85); + adjustGridToZoom(); } /** - Agrandit le schema avec le trackpad -*/ + * @brief DiagramView::zoomInSlowly + * Like zoomIn but more slowly + */ void DiagramView::zoomInSlowly() { scale(1.02, 1.02); adjustGridToZoom(); } /** - Retrecit le schema avec le trackpad -*/ + * @brief DiagramView::zoomOutSlowly + * Like zoomOut but more slowly + */ void DiagramView::zoomOutSlowly() { - scale(0.98, 0.98); - // Interdit le dezoome plus grand que le folio - if ((mapFromScene(0,0).rx() == 0) && (mapFromScene(0,0).ry() == 0)){ - fitInView(sceneRect(), Qt::KeepAspectRatio); - } + if (QETApp::settings().value("diagrameditor/zoom-out-beyond-of-folio", false).toBool() || + (horizontalScrollBar()->maximum() || verticalScrollBar()->maximum()) ) + scale(0.98, 0.98); + adjustGridToZoom(); } @@ -780,8 +785,6 @@ void DiagramView::adjustSceneRect() { QRectF scene_rect = scene->sceneRect(); scene_rect.adjust(-Diagram::margin, -Diagram::margin, Diagram::margin, Diagram::margin); - scene_rect.setWidth(scene_rect.width()*2); - scene_rect.setHeight(scene_rect.height()*2); setSceneRect(scene_rect); }