-Replace option : draw grid outside of border by zoom out beyond of folio.

When option is to true, zoom out is infinite and grid is draw outside of border.
-Zoom out with mouse wheel is now more slowly


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3863 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2015-03-29 12:15:25 +00:00
parent 4d86d9e64c
commit e731b48f86
4 changed files with 31 additions and 27 deletions

View File

@@ -186,7 +186,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage
bool use_system_colors = settings.value("usesystemcolors", "true").toBool(); bool use_system_colors = settings.value("usesystemcolors", "true").toBool();
bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed"; bool tabbed = settings.value("diagrameditor/viewmode", "tabbed") == "tabbed";
bool integrate_elements = settings.value("diagrameditor/integrate-elements", true).toBool(); 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 use_trackpad = settings.value("diagramview/gestures", false).toBool();
bool highlight_integrated_elements = settings.value("diagrameditor/highlight-integrated-elements", true).toBool(); bool highlight_integrated_elements = settings.value("diagrameditor/highlight-integrated-elements", true).toBool();
QString default_element_informations = settings.value("elementeditor/default-informations", "").toString(); 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_); 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_); 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_); 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); 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é)")); 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); 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); integrate_elements_ -> setChecked(integrate_elements);
highlight_integrated_elements_ -> setChecked(highlight_integrated_elements); highlight_integrated_elements_ -> setChecked(highlight_integrated_elements);
@@ -235,7 +235,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage
QVBoxLayout *projects_view_mode_layout = new QVBoxLayout; QVBoxLayout *projects_view_mode_layout = new QVBoxLayout;
projects_view_mode_layout -> addWidget(windowed_mode_); projects_view_mode_layout -> addWidget(windowed_mode_);
projects_view_mode_layout -> addWidget(tabbed_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_layout -> addWidget(use_trackpad_);
projects_view_mode_ -> setLayout(projects_view_mode_layout); 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("diagrameditor/highlight-integrated-elements", highlight_integrated_elements_ -> isChecked());
settings.setValue("elementeditor/default-informations", default_element_infos_textfield_ -> toPlainText()); settings.setValue("elementeditor/default-informations", default_element_infos_textfield_ -> toPlainText());
settings.setValue("diagramview/gestures", use_trackpad_ -> isChecked()); 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 /// @return l'icone de cette page

View File

@@ -89,7 +89,7 @@ class GeneralConfigurationPage : public ConfigPage {
QGroupBox *projects_view_mode_; QGroupBox *projects_view_mode_;
QRadioButton *windowed_mode_; QRadioButton *windowed_mode_;
QRadioButton *tabbed_mode_; QRadioButton *tabbed_mode_;
QCheckBox *m_grid_outside_border; QCheckBox *m_zoom_out_beyond_folio;
QLabel *warning_view_mode_; QLabel *warning_view_mode_;
QGroupBox *elements_management_; QGroupBox *elements_management_;
QCheckBox *integrate_elements_; QCheckBox *integrate_elements_;

View File

@@ -139,7 +139,8 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
p -> setBrush(Qt::NoBrush); 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 : r :
border_and_titleblock.insideBorderRect().intersected(r); border_and_titleblock.insideBorderRect().intersected(r);

View File

@@ -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() { void DiagramView::zoomIn() {
scale(4.0/3.0, 4.0/3.0); scale(1.15, 1.15);
adjustGridToZoom(); 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() { void DiagramView::zoomOut() {
scale(0.75, 0.75); if (QETApp::settings().value("diagrameditor/zoom-out-beyond-of-folio", false).toBool() ||
if ((mapFromScene(0,0).rx() == 0) && (mapFromScene(0,0).ry() == 0)){ (horizontalScrollBar()->maximum() || verticalScrollBar()->maximum()) )
fitInView(sceneRect(), Qt::KeepAspectRatio); scale(0.85, 0.85);
}
adjustGridToZoom(); adjustGridToZoom();
} }
/** /**
Agrandit le schema avec le trackpad * @brief DiagramView::zoomInSlowly
*/ * Like zoomIn but more slowly
*/
void DiagramView::zoomInSlowly() { void DiagramView::zoomInSlowly() {
scale(1.02, 1.02); scale(1.02, 1.02);
adjustGridToZoom(); adjustGridToZoom();
} }
/** /**
Retrecit le schema avec le trackpad * @brief DiagramView::zoomOutSlowly
*/ * Like zoomOut but more slowly
*/
void DiagramView::zoomOutSlowly() { void DiagramView::zoomOutSlowly() {
scale(0.98, 0.98); if (QETApp::settings().value("diagrameditor/zoom-out-beyond-of-folio", false).toBool() ||
// Interdit le dezoome plus grand que le folio (horizontalScrollBar()->maximum() || verticalScrollBar()->maximum()) )
if ((mapFromScene(0,0).rx() == 0) && (mapFromScene(0,0).ry() == 0)){ scale(0.98, 0.98);
fitInView(sceneRect(), Qt::KeepAspectRatio);
}
adjustGridToZoom(); adjustGridToZoom();
} }
@@ -780,8 +785,6 @@ void DiagramView::adjustSceneRect()
{ {
QRectF scene_rect = scene->sceneRect(); QRectF scene_rect = scene->sceneRect();
scene_rect.adjust(-Diagram::margin, -Diagram::margin, Diagram::margin, Diagram::margin); 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); setSceneRect(scene_rect);
} }