Submitted by LeftEccoForIQ on 2021/05/20 16:15

With the current modus operandi in grids, there is about a five second (?) delay before the angled arrow icon appears next to the mouse cursor and you can drop an item as the child of the item under the cursor. How about doing this immediately once an item is dropped with the mouse cursor over the header column rather than any of the others? That would speed things up for me... :-)

Comments

There is a setting in options.ini: DragDropToChildDelay

You can reduce the delay which defaults to 2 seconds (2000 mSec)

(you can also hold the Shift key to set it to zero)

 

Thanks for that improvement. Well, most of the time I do want to drop items in the existing structure so a general lowering of the delay might be counterproductive, but the possibility to fine-tune is welcome, of course! I just thought using the pointer location to determine the effect rather than timing might be more efficient.

Came up with this nifty little bit of AHK code that does what I want - drop items quickly as subitem and collapse the expanded target branch. Just like drag and drop while holding the button for two seconds on the lower half of an item, with the added benefit of the subitems remaining hidden. So it's great for sorting stuff, i. e. throwing a couple of items under a new parent without the new siblings in the target position getting in the way visually.

Maybe someone else wants to give it a try, it works if the mouse button is released within 80 pixels of the left edge of the grid - feel free to adjust. If it's further to the right, the item will be dropped at the default level, not one level further down.

 

~LButton::
    WinGetClass, LDownClass, ahk_id %LDownID%
return
~LButton Up:: ;+
    MouseGetPos, LUpX
    WinGetClass, LUpClass, ahk_id %LUpID%
    
    if (LDownClass = "ThunderRT6MDIForm" and LUpClass = "ThunderRT6MDIForm")
    {
        WinGetPos, IQsLeftEdge, , , , ahk_class ThunderRT6MDIForm
        ControlGetPos, GridsLeftEdge, , , , Exontrol.G2antt.WindowList1, ahk_class ThunderRT6MDIForm
        if (LUpX > IQsLeftEdge + GridsLeftEdge and LUpX <= IQsLeftEdge + GridsLeftEdge + 80 and A_Cursor = "Unknown")
            SendEvent, !{Right}^{Left}
    }

Now if I could only find a way to drop items as the topmost child rather than bottommost, which I greatly prefer...

Hi Left,

In v117Pre14:

  • Change: Grid: Drag-drop: Hold Shift forces sub-item. Hold Alt forces sibling. Drop as a sub-item only on the tree column, otherwise as a sibling. If Shift key is down, will not automatically expand drop target item

Hmmm, to be honest, I'd rather IQ went back to 'drop as sibling' as the default behaviour for drop in the tree column. The new approach of zero delay for drop as child if on lower half of item and drop as sibling on upper half requires too much close attention for my taste and is neither here nor there - or it forces you to use both hands with mouse + modifiers. For the tree column, I'd like to suggest reverting to the old behaviour of drop as sibling as default plus adjustable delay for drop as child. Further, I would hope that drop outside the tree column could be set to drop as child without delay, maybe with an option of unfolding the parent or keeping it collapsed.

I'm surprised no one else has commented as it seems this was a rather fundamental change.

Cheers

PS: If Explorer-style cut and paste of (multiple) items (clearing only the field value for the 'cut from' grid and adding a value for the 'pasted to' grid) finally became  a thing, I'd hopefully be much less obsessed with trying to make drag and drop more efficient. Nudge-nudge...

PPS: A pity we have lost our emoticons button.

Hi Left,

Indeed, it was not great.

In the next version:

  • Change: Grid: Drag-drop: Hold Shift forces sub-item. Hold Alt forces sibling. Otherwise, drop as a sibling if left of the mouse down position, as a sub if right of the mouse down position. If Shift key is down, will not automatically expand drop target item

> Change: Grid: Drag-drop: Hold Shift forces sub-item. Hold Alt forces sibling. Otherwise, drop as a sibling if left of the mouse down position, as a sub if right of the mouse down position. If Shift key is down, will not automatically expand drop target item

The shortcuts are a great implementation.

But the mouse down position doesnt help much here: I mostly have a dual-pane layout and am dragging from one pane to the other. So,

  1. dragging from right to left pane drops as sub-item
  2. dragging from left to right pane drops at same level

I was very confused about this for a while.
I suspect the dual-pane layout à la file managers is commonly used in IQ (?) and a lot of users arent going to be familiar with these shortcuts, so I reckon there will be confusion (I thought it was a bug tbh)

Hi Tom,

  1. dragging from right to left pane drops as sub-item
  2. dragging from left to right pane drops at same level

Actually, this is not how it works...

Rather, when drag is not initiated from the same grid (or from another app), dropping on the first third (1/3) will be on the same level, otherwise, as a sub-item

HTH !

Pierre

dropping on the first third (1/3) will be on the same level, otherwise, as a sub-itemII

While the new implementation of drag and drop is working great, the two different modes (same grid vs. other grid) can be somewhat confusing. I have a feeling that it might be best to use the "other grid" approach from the quotation above globally. So consider only mouse button up position relative to a percentage of the width of the control / window and ignore mouse button down position, perhaps make the percentage user-configurable.

Cheers

Suggestions