[Marble-devel] Re: Suggested Patch for Bug 232098 - JJ: Please add fast adding messurment points by ctrl+click
Thomas Lenarz
tommesml at netcologne.de
Tue Sep 28 21:45:30 CEST 2010
Hello,
just a few thoughts: There are generally three modifier-keys available,
CTRL, ALT, SHIFT. At least on both of my environments (Ubuntu/Gnome,
Xubuntu/XFCE) the ALT + Left-Mouse Click & Drag combination is caught to
move the Window around. Therefore ALT does not feel like an option.
SHIFT seems to be free as an option to call the Measure-Tool with the
same convenience.
However, simply hardwire this function to a modifier-key + mouse-click
combination might be a bit short-sighted. There could be a future need
to conveniently trigger a different function upon a geographical location.
A solution I could think of is to introduce something like a
"current-mode" represented by a set of radiobutton-style menu-items
either in one of the drop-down menus or/and the right-click context-menu
which determines what the modifier-key + Left-Mouse-Click does.
Meaning: If you would like to use the measure-tool for a long track, do
a mouse-right-click for the context-menu, switch from "selection-mode"
to "measure-tool-mode" by selecting the appropriate menu-item. This
should be highlighted with a radiobutton-style marker.
From now on you may use CTRL Left-Mouse-Click to measure.
This would also cover the transparency issue because there are visible
menu-items which could be named in way that it is clear how they work.
This scheme could be extended easily.
Hope I could express what I mean ;-)
All the best,
Thomas
Am 27.09.2010 02:21, Torsten Rahn schrieb:
>
> Technically it's nice work.
> But this kind of overloading sounds scary in terms of usability :-)
> I'm afraid that user's won't understand this easily. Is there maybe a
> different keycombination we could use? Or a slightly different solution that
> has the same convenience but is more transparent?
>
> Best Regards,
> Torsten
>
>
>
> Am Montag, 20. September 2010 19:55:03 schrieb Thomas Lenarz:
>> Hello,
>>
>> I myself haven't tested it on a touchscreen (no possibility).
>> Using either the touchpad of my laptop or a mouse it works fine.
>>
>> However, I am not convinced that it works in all situations because the
>> makes the CTRL-Key kind of overloaded: (press and depress on same
>> location -> Measure-Point; press and depress on different locations ->
>> Rubber-Band)
>>
>> Best wishes,
>> Thomas
>>
>> Am 19.09.2010 21:38, Doug Penner wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> I'm kind of new to marble, but I just want to know if this has been
>>> tested on a touchscreen. I'm not sure how QT handles the mouse events
>>> on different types of mice (touchscreens being an advanced mouse) and
>>> if a large fingered person might cause the mouse-up to be slightly
>>> different than a mouse-down when tapping. A simple solution to that
>>> would probably to make a "dead-zone" value where if the distance
>>> between up and down was very small, it would consider them the same.
>>>
>>>
>>> ~Doug
>>>
>>> On 09/19/2010 11:51 AM, Thomas Lenarz wrote:
>>>> Hello,
>>>>
>>>> I tried to find a solution for the JJ described in Bug 232098
>>>> recently:
>>>>
>>>> I am new to marble development. I played around with the
>>>> QT-Version and would like to propose the following change.
>>>>
>>>> However, I am not sure if this change could break something around
>>>> the rubber-band code, which uses the control-key as well. Therefore
>>>> I compare the coordinates between button-press and button-release.
>>>> The addMeasurePoint() triggers only if the coordinates are equal.
>>>>
>>>> I am not sure how to generate a patch. It would be great if anyone
>>>> could point me to some guidelines.
>>>>
>>>> Please find the patch-file attached to this mail.
>>>>
>>>> Thanks, Thomas
>>>>
>>>> File: marble/src/lib/MarbleWidgetInputHandler.cpp
>>>>
>>>> // Regarding mouse button releases: if ( e->type() ==
>>>> QEvent::MouseButtonRelease&& event->button() == Qt::LeftButton )
>>>> {
>>>>
>>>> if ( ( event->modifiers()& Qt::ControlModifier )&& (
>>>> event->globalPos() == d->m_selectionOrigin ) ) {
>>>> d->m_addMeasurePointAction->setData( QPoint( event->x(), event->y()
>>>> ) ); addMeasurePoint(); } else {
>>>>
>>>> //emit current coordinates to be be interpreted //as requested emit
>>>> mouseClickScreenPosition( d->m_leftpressedx, d->m_leftpressedy );
>>>>
>>>> }
>>>>
>>>>
>>>> MarbleWidgetInputHandler::d->m_widget->setViewContext( Still ); if
>>>> ( MarbleWidgetInputHandler::d->m_widget->mapQuality( Still ) !=
>>>> MarbleWidgetInputHandler::d->m_widget->mapQuality( Animation ) ) {
>>>>
>>>> MarbleWidgetInputHandler::d->m_widget->updateChangedMap(); }
>>>>
>>>> d->m_leftpressed = false; }
>>>>
>>>>
>>>> _______________________________________________ Marble-devel
>>>> mailing list Marble-devel at kde.org
>>>> https://mail.kde.org/mailman/listinfo/marble-devel
>>>
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.10 (GNU/Linux)
>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>>
>>> iEYEARECAAYFAkyWZssACgkQznigyIaDZ0XaWwCgqI/srLaqFP/NIAD3ACVIhOSL
>>> ZXgAoNxK4KGqpG/pWjGYACNe1NGwc/n5
>>> =gpOl
>>> -----END PGP SIGNATURE-----
>>
>> _______________________________________________
>> Marble-devel mailing list
>> Marble-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/marble-devel
>
More information about the Marble-devel
mailing list