-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 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

View File

@@ -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_;

View File

@@ -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);

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() {
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);
}