[kstars] kstars: Introduce zoom speed scale factor to adjust mouse zoom scrolling issue. It is under KStars Options, Advanced --> Look and Feel
Jasem Mutlaq
null at kde.org
Sat Aug 26 14:54:05 UTC 2017
Git commit f31792d52ed8187d7f414422614dad91ad7feb03 by Jasem Mutlaq.
Committed on 26/08/2017 at 14:52.
Pushed by mutlaqja into branch 'master'.
Introduce zoom speed scale factor to adjust mouse zoom scrolling issue. It is under KStars Options, Advanced --> Look and Feel
BUGS:382438
CCMAIL:kstars-devel at kde.org
M +7 -0 kstars/kstars.kcfg
M +4 -0 kstars/options/opsadvanced.cpp
M +325 -343 kstars/options/opsadvanced.ui
M +1 -1 kstars/skymapevents.cpp
https://commits.kde.org/kstars/f31792d52ed8187d7f414422614dad91ad7feb03
diff --git a/kstars/kstars.kcfg b/kstars/kstars.kcfg
index dac76e72b..6cc5c6f95 100644
--- a/kstars/kstars.kcfg
+++ b/kstars/kstars.kcfg
@@ -685,6 +685,13 @@
<min>250.</min>
<max>5000000.</max>
</entry>
+ <entry name="ZoomScrollFactor" type="Double">
+ <label>Zoom scroll sensitivity.</label>
+ <whatsthis>When zooming in or out, change zoom speed factor by this multiplier.</whatsthis>
+ <default>0.2</default>
+ <min>0.01</min>
+ <max>1.0</max>
+ </entry>
<entry name="MagLimitAsteroid" type="Double">
<label>Faint limit for asteroids</label>
<whatsthis>The faint magnitude limit for drawing asteroids.</whatsthis>
diff --git a/kstars/options/opsadvanced.cpp b/kstars/options/opsadvanced.cpp
index 941329dd9..22350199f 100644
--- a/kstars/options/opsadvanced.cpp
+++ b/kstars/options/opsadvanced.cpp
@@ -50,6 +50,10 @@ OpsAdvanced::OpsAdvanced() : QFrame(KStars::Instance())
connect(kcfg_ObsListDemoteHole, &QCheckBox::toggled,
[this](bool state) { kcfg_ObsListHoleSize->setEnabled(state); });
+ connect(zoomScrollSlider, &QSlider::valueChanged, [&](int value) {
+ kcfg_ZoomScrollFactor->setValue(value / 100.0);
+ });
+
//Get a pointer to the KConfigDialog
KConfigDialog *m_ConfigDialog = KConfigDialog::exists("settings");
connect(m_ConfigDialog->button(QDialogButtonBox::Apply), SIGNAL(clicked()), SLOT(slotApply()));
diff --git a/kstars/options/opsadvanced.ui b/kstars/options/opsadvanced.ui
index 81f1b8f3b..a03caaf01 100644
--- a/kstars/options/opsadvanced.ui
+++ b/kstars/options/opsadvanced.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>593</width>
- <height>288</height>
+ <height>321</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
@@ -501,359 +501,341 @@
<attribute name="title">
<string>Look and &Feel</string>
</attribute>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <property name="spacing">
- <number>3</number>
- </property>
- <property name="leftMargin">
- <number>3</number>
- </property>
- <property name="topMargin">
- <number>3</number>
- </property>
- <property name="rightMargin">
- <number>3</number>
- </property>
- <property name="bottomMargin">
- <number>3</number>
- </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <layout class="QGridLayout" name="gridLayout_3">
- <property name="spacing">
- <number>5</number>
- </property>
- <item row="0" column="0">
- <widget class="QCheckBox" name="kcfg_UseAnimatedSlewing">
- <property name="toolTip">
- <string>Show slewing motion when focus changes?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, changing the focus position will result in a visible animated "slew" to the new position. Otherwise, the display will center on the new position instantaneously.</string>
- </property>
- <property name="text">
- <string>Use animated slewing</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" colspan="2">
- <widget class="QCheckBox" name="kcfg_UseAutoLabel">
- <property name="toolTip">
- <string>Show name label of centered object?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, a name label will be temporarily attached to an object while it is centered in the display. You can attach a more persistent label to any object using the right-click popup menu.</string>
- </property>
- <property name="text">
- <string>Attach label to centered object</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="kcfg_UseAntialias">
- <property name="toolTip">
- <string>Select this for smoother (but slower) graphics</string>
- </property>
- <property name="text">
- <string>Use antialiased drawing</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" colspan="2">
- <widget class="QCheckBox" name="kcfg_UseHoverLabel">
- <property name="toolTip">
- <string>Show name label of centered object?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, a name label will be temporarily attached to an object while it is centered in the display. You can attach a more persistent label to any object using the right-click popup menu.</string>
- </property>
- <property name="text">
- <string>Attach temporary label when hovering mouse</string>
- </property>
- </widget>
- </item>
- <item row="2" column="2">
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <property name="spacing">
- <number>5</number>
- </property>
- <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="kcfg_UseAnimatedSlewing">
+ <property name="toolTip">
+ <string>Show slewing motion when focus changes?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, changing the focus position will result in a visible animated "slew" to the new position. Otherwise, the display will center on the new position instantaneously.</string>
+ </property>
+ <property name="text">
+ <string>Use animated slewing</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="3">
+ <widget class="QCheckBox" name="kcfg_UseAutoLabel">
+ <property name="toolTip">
+ <string>Show name label of centered object?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, a name label will be temporarily attached to an object while it is centered in the display. You can attach a more persistent label to any object using the right-click popup menu.</string>
+ </property>
+ <property name="text">
+ <string>Attach label to centered object</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="kcfg_UseAntialias">
+ <property name="toolTip">
+ <string>Select this for smoother (but slower) graphics</string>
+ </property>
+ <property name="text">
+ <string>Use antialiased drawing</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="3">
+ <widget class="QCheckBox" name="kcfg_UseHoverLabel">
+ <property name="toolTip">
+ <string>Show name label of centered object?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, a name label will be temporarily attached to an object while it is centered in the display. You can attach a more persistent label to any object using the right-click popup menu.</string>
+ </property>
+ <property name="text">
+ <string>Attach temporary label when hovering mouse</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="kcfg_HideOnSlew">
+ <property name="toolTip">
+ <string>Do not draw all objects while the map is moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>When the map is in motion, smooth animation is compromised if the program has too many objects to draw on the map; check this item to temporarily hide some of the objects while the display is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Hide objects while moving</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="toolTip">
+ <string>Adjust speed of zooming when scrolling in and out with the mouse wheel</string>
+ </property>
+ <property name="text">
+ <string>Zoom Scroll Speed:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QSlider" name="zoomScrollSlider">
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>20</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" colspan="2">
+ <widget class="QDoubleSpinBox" name="kcfg_ZoomScrollFactor">
+ <property name="minimum">
+ <double>0.010000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>1.000000000000000</double>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
+ </property>
+ <property name="value">
+ <double>0.200000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLabel" name="textLabelHideTimeStep">
+ <property name="text">
+ <string>Also hide if time step larger than:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2">
<widget class="TimeStepBox" name="SlewTimeScale"/>
</item>
</layout>
</item>
- <item row="2" column="0">
- <widget class="QCheckBox" name="kcfg_HideOnSlew">
- <property name="toolTip">
- <string>Do not draw all objects while the map is moving?</string>
- </property>
- <property name="whatsThis">
- <string>When the map is in motion, smooth animation is compromised if the program has too many objects to draw on the map; check this item to temporarily hide some of the objects while the display is in motion.</string>
+ <item>
+ <widget class="QGroupBox" name="HideBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="text">
- <string>Hide objects while moving</string>
+ <property name="title">
+ <string>Configure Hidden Objects</string>
</property>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_7">
+ <item>
+ <layout class="QHBoxLayout">
+ <property name="spacing">
+ <number>5</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="kcfg_HideStars">
+ <property name="toolTip">
+ <string>Hide faint stars while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then fainter stars will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Stars fainter than</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="MagnitudeSpinBox" name="kcfg_MagLimitHideStar">
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="whatsThis">
+ <string>Stars fainter than this will not be drawn while the map is moving.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabelMag1">
+ <property name="text">
+ <string>mag</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayout_5">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="kcfg_HidePlanets">
+ <property name="toolTip">
+ <string>Hide solar system bodies while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then all solar system bodies will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Solar system</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QCheckBox" name="kcfg_HideMilkyWay">
+ <property name="toolTip">
+ <string>Hide the Milky Way contour while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then the Milky Way contour will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Milky Way</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="kcfg_HideMessier">
+ <property name="toolTip">
+ <string>Hide Messier objects when moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then objects in the Messier catalog will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Messier objects</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QCheckBox" name="kcfg_HideCNames">
+ <property name="toolTip">
+ <string>Hide constellation names while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then constellation names will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Constellation names</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="kcfg_HideNGC">
+ <property name="toolTip">
+ <string>Hide NGC objects while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then objects in the NGC catalog will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>NGC objects</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="kcfg_HideCLines">
+ <property name="toolTip">
+ <string>Hide constellation lines while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then constellation lines will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Constellation lines</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="kcfg_HideIC">
+ <property name="toolTip">
+ <string>Hide IC objects while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then objects in the IC catalog will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>IC objects</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QCheckBox" name="kcfg_HideCBounds">
+ <property name="text">
+ <string>Constellation boundaries</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="kcfg_HideLabels">
+ <property name="text">
+ <string>Object labels</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QCheckBox" name="kcfg_HideGrids">
+ <property name="toolTip">
+ <string>Hide coordinate grids while moving?</string>
+ </property>
+ <property name="whatsThis">
+ <string>If checked, then the coordinate grids will be hidden when the map is in motion.</string>
+ </property>
+ <property name="text">
+ <string>Coordinate grids</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QLabel" name="textLabelHideTimeStep">
- <property name="text">
- <string>Also hide if time step larger than:</string>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
</property>
- </widget>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
</item>
</layout>
</item>
- <item>
- <widget class="QGroupBox" name="HideBox">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Configure Hidden Objects</string>
- </property>
- <layout class="QVBoxLayout">
- <property name="spacing">
- <number>5</number>
- </property>
- <property name="leftMargin">
- <number>5</number>
- </property>
- <property name="topMargin">
- <number>5</number>
- </property>
- <property name="rightMargin">
- <number>5</number>
- </property>
- <property name="bottomMargin">
- <number>5</number>
- </property>
- <item>
- <layout class="QHBoxLayout">
- <property name="spacing">
- <number>5</number>
- </property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
- </property>
- <item>
- <widget class="QCheckBox" name="kcfg_HideStars">
- <property name="toolTip">
- <string>Hide faint stars while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then fainter stars will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Stars fainter than</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="MagnitudeSpinBox" name="kcfg_MagLimitHideStar">
- <property name="minimumSize">
- <size>
- <width>40</width>
- <height>0</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="whatsThis">
- <string>Stars fainter than this will not be drawn while the map is moving.</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="textLabelMag1">
- <property name="text">
- <string>mag</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>240</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QGridLayout">
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
- </property>
- <property name="spacing">
- <number>5</number>
- </property>
- <item row="4" column="0" rowspan="2">
- <widget class="QCheckBox" name="kcfg_HideIC">
- <property name="toolTip">
- <string>Hide IC objects while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then objects in the IC catalog will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>IC objects</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QCheckBox" name="kcfg_HideMilkyWay">
- <property name="toolTip">
- <string>Hide the Milky Way contour while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then the Milky Way contour will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Milky Way</string>
- </property>
- </widget>
- </item>
- <item row="0" column="0">
- <widget class="QCheckBox" name="kcfg_HidePlanets">
- <property name="toolTip">
- <string>Hide solar system bodies while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then all solar system bodies will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Solar system</string>
- </property>
- </widget>
- </item>
- <item row="5" column="1">
- <widget class="QCheckBox" name="kcfg_HideCBounds">
- <property name="text">
- <string>Constellation boundaries</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="kcfg_HideMessier">
- <property name="toolTip">
- <string>Hide Messier objects when moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then objects in the Messier catalog will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Messier objects</string>
- </property>
- </widget>
- </item>
- <item row="6" column="1">
- <widget class="QCheckBox" name="kcfg_HideGrids">
- <property name="toolTip">
- <string>Hide coordinate grids while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then the coordinate grids will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Coordinate grids</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0" rowspan="2">
- <widget class="QCheckBox" name="kcfg_HideNGC">
- <property name="toolTip">
- <string>Hide NGC objects while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then objects in the NGC catalog will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>NGC objects</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1" rowspan="2">
- <widget class="QCheckBox" name="kcfg_HideCLines">
- <property name="toolTip">
- <string>Hide constellation lines while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then constellation lines will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Constellation lines</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" rowspan="2">
- <widget class="QCheckBox" name="kcfg_HideCNames">
- <property name="toolTip">
- <string>Hide constellation names while moving?</string>
- </property>
- <property name="whatsThis">
- <string>If checked, then constellation names will be hidden when the map is in motion.</string>
- </property>
- <property name="text">
- <string>Constellation names</string>
- </property>
- </widget>
- </item>
- <item row="6" column="0">
- <widget class="QCheckBox" name="kcfg_HideLabels">
- <property name="text">
- <string>Object labels</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>211</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
@@ -1122,12 +1104,12 @@
<resources/>
<connections/>
<buttongroups>
- <buttongroup name="logbuttonGroup"/>
+ <buttongroup name="verbosityButtonGroup"/>
<buttongroup name="modulesGroup">
<property name="exclusive">
<bool>false</bool>
</property>
</buttongroup>
- <buttongroup name="verbosityButtonGroup"/>
+ <buttongroup name="logbuttonGroup"/>
</buttongroups>
</ui>
diff --git a/kstars/skymapevents.cpp b/kstars/skymapevents.cpp
index 12cb0ccdd..66d7096d7 100644
--- a/kstars/skymapevents.cpp
+++ b/kstars/skymapevents.cpp
@@ -689,7 +689,7 @@ void SkyMap::mouseDoubleClickEvent(QMouseEvent *e)
double SkyMap::zoomFactor(const int modifier)
{
- double factor = (modifier & Qt::ControlModifier) ? DZOOM : 1.5;
+ double factor = (modifier & Qt::ControlModifier) ? DZOOM : (Options::zoomScrollFactor() + 1);
if (modifier & Qt::ShiftModifier)
factor = sqrt(factor);
return factor;
More information about the Kstars-devel
mailing list