diff --git a/sources/configpages.cpp b/sources/configpages.cpp index 10e2a978b..03be47b71 100644 --- a/sources/configpages.cpp +++ b/sources/configpages.cpp @@ -117,6 +117,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 use_trackpad = settings.value("diagramview/gestures", true).toBool(); bool highlight_integrated_elements = settings.value("diagrameditor/highlight-integrated-elements", true).toBool(); QString default_element_informations = settings.value("elementeditor/default-informations", "").toString(); @@ -126,6 +127,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage projects_view_mode_ = new QGroupBox(tr("Projets"), this); windowed_mode_ = new QRadioButton(tr("Utiliser des fen\352tres"), projects_view_mode_); tabbed_mode_ = new QRadioButton(tr("Utiliser des onglets"), projects_view_mode_); + use_trackpad_ = new QCheckBox(tr("Utiliser les gestures du trackpad"), projects_view_mode_); warning_view_mode_ = new QLabel(tr("Ces param\350tres s'appliqueront d\350s la prochaine ouverture d'un \351diteur de sch\351mas.")); elements_management_ = new QGroupBox(tr("Gestion des \351l\351ments"), this); @@ -142,7 +144,10 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage default_element_infos_textfield_ -> setAcceptRichText(false); use_system_colors_ -> setChecked(use_system_colors); - + + use_trackpad_ -> setChecked(false); + use_trackpad_ -> setChecked(use_trackpad); + if (tabbed) { tabbed_mode_ -> setChecked(true); } else { @@ -161,6 +166,7 @@ GeneralConfigurationPage::GeneralConfigurationPage(QWidget *parent) : ConfigPage projects_view_mode_layout -> addWidget(windowed_mode_); projects_view_mode_layout -> addWidget(tabbed_mode_); projects_view_mode_layout -> addWidget(warning_view_mode_); + projects_view_mode_layout -> addWidget(use_trackpad_); projects_view_mode_ -> setLayout(projects_view_mode_layout); QVBoxLayout *elements_management_layout = new QVBoxLayout(); @@ -215,6 +221,9 @@ void GeneralConfigurationPage::applyConf() { QETApp::instance() -> useSystemPalette(must_use_system_colors); } + bool was_use_trackpad = settings.value("use_trackpad", "true").toBool(); + bool must_use_trackpad = use_trackpad_ -> isChecked(); + settings.setValue("use_trackpad", must_use_trackpad ); settings.setValue("lang", lang_combo_box->itemData(lang_combo_box->currentIndex()).toString()); QString view_mode = tabbed_mode_ -> isChecked() ? "tabbed" : "windowed"; @@ -223,6 +232,7 @@ void GeneralConfigurationPage::applyConf() { settings.setValue("diagrameditor/integrate-elements", integrate_elements_ -> isChecked()); 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()); } /// @return l'icone de cette page diff --git a/sources/configpages.h b/sources/configpages.h index 9d00a6d18..4929a2a89 100644 --- a/sources/configpages.h +++ b/sources/configpages.h @@ -83,6 +83,7 @@ class GeneralConfigurationPage : public ConfigPage { QFrame *horiz_line_; QGroupBox *appearance_; QCheckBox *use_system_colors_; + QCheckBox *use_trackpad_; QGroupBox *projects_view_mode_; QRadioButton *windowed_mode_; QRadioButton *tabbed_mode_; diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index 05280501e..a02294506 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -579,31 +579,34 @@ void DiagramView::mouseReleaseEvent(QMouseEvent *e) { else QGraphicsView::mouseReleaseEvent(e); } +/** + * @brief DiagramView::gestures + * @return + */ +bool DiagramView::gestures() const { + return(QETApp::settings().value("diagramview/gestures", true).toBool()); + } + /** Manage wheel event of mouse @param e QWheelEvent */ void DiagramView::wheelEvent(QWheelEvent *e) { //Zoom and scrolling - if (e->buttons() != Qt::MidButton) { - -#if defined(__APPLE__) && defined(__MACH__) - QAbstractScrollArea::wheelEvent(e); - } - #else - if (!(e -> modifiers() & Qt::ControlModifier)) { + if (e->buttons() != Qt::MidButton & !gestures ()) { + if (!(e -> modifiers() & Qt::ControlModifier )) { if (e -> delta() > 0){ zoomIn(); } else{ zoomOut(); } - } - else { - QAbstractScrollArea::wheelEvent(e); - } - } - #endif + } + } else { + QAbstractScrollArea::wheelEvent(e); + } + + } diff --git a/sources/diagramview.h b/sources/diagramview.h index 312426ac9..69d338c86 100644 --- a/sources/diagramview.h +++ b/sources/diagramview.h @@ -126,7 +126,8 @@ class DiagramView : public QGraphicsView { bool mustIntegrateElement(const ElementsLocation &) const; bool mustIntegrateTitleBlockTemplate(const TitleBlockTemplateLocation &) const; bool addElementAtPos(const ElementsLocation &, const QPoint &); - + bool gestures() const; + signals: /// Signal emitted after the selection changed void selectionChanged();