706
Beginner and other Nonsense / Re: STICKY: Random News
« on: January 31, 2015, 08:36:22 AM »
Something that's always bothered me about the copy/paste paradigm is if you need to paste an item into a list, then if when you paste the item does it displace the highlighted item? or is it to be placed after the highlighted item?
There isn't a good answer for this. If it's the first option then there is often no way to paste into the last item in the list. Sometimes you can select the area below the list, but not always, and usually keyboard support for that if present is awkward.
The second option is no better, you can't then paste an item at the top of the list!
I definitely prefer the first option, since the highlighted item then becomes the newly pasted item. In fact yesterday I tried to add this functionality to SOM_MAP's programming screen. At first I added a button that inserted new instructions above the current selection (so that the newly inserted item becomes selected (this may be an extension provided by SomEx) but the cursor itself doesn't move) but I soon realized that the ability to double-click the instructions in the menu meant that there can only be one way to insert, because there isn't two ways to double-click!
So instead of a button I changed it to a checkbox to change the way the insert button behaves. Except there is an option to make a checkbox appear like a button, so I used that so it looks like a toggle button instead, since that looks much better on that screen. In hindsight I realized that in that case inserting after was generally more useful, because you are essentially building up a program from top to bottom, but with the toggle on to do that you'd have to think in reverse to do the same! So although I find it more intuitive toggled, I think it would only be useful if you are coming in to alter an already built up program.
Still when building up an outline do the same rules apply? I don't know. I think the >> and << buttons do advance the cursor. But I prefer to enter and paste items so that they end up on the same line, even if that means you must manually advance the current line sometimes.
But there actually is a good solution to the copy/paste problem using the XCV keys on the QWERTY keyboard. It turns out that the key right after V is actually B. Which is perfect for Paste Below! or Paste Behind!! Heck even Paste Before if you are in the RTL world!!! It's actually pretty interesting that all of these keys just happened to be clustered together and in the right place. Anyway, I just wanted to share that. XCVB.
The other cool thing about Ctrl+B is it auto advances the cursor if that's what you want. Still in a copy/paste scenario you'd have to go back to whatever you are copying, so it isn't quite as fluid as entering new items.
To make a new item with Enter key there isn't a way to advance the cursor, but since it necessarily opens up an input window it's easy to move it down once past the last item. Ctrl+Enter might be fine for automating that. Ctrl+X,B after the fact would also work.
EDITED: For the record the way >> and << work in the script and project settings editors is the source side's cursor moves in reverse while the destination side remains in place. That's to make it easy to push over a line of items even though you have to start at the end of the list on the source side. In the settings editor there is an "endnotes" item that caps off the list, so adding to the end isn't a problem. But in the script outlines there are no such items, so my plan is to have an error-like box ask if you want to add to the end of the list if the last item is selected. If you need to move many items over and don't want to see the box then it's easy to think to make a temporary dummy item in advance and delete it afterward. It would be possible to add a checkbox to change the behavior, but I feel like it would mess up the symmetry of the classic layout based on the weird MAP file import mini-tool that is now obsolete.
There isn't a good answer for this. If it's the first option then there is often no way to paste into the last item in the list. Sometimes you can select the area below the list, but not always, and usually keyboard support for that if present is awkward.
The second option is no better, you can't then paste an item at the top of the list!
I definitely prefer the first option, since the highlighted item then becomes the newly pasted item. In fact yesterday I tried to add this functionality to SOM_MAP's programming screen. At first I added a button that inserted new instructions above the current selection (so that the newly inserted item becomes selected (this may be an extension provided by SomEx) but the cursor itself doesn't move) but I soon realized that the ability to double-click the instructions in the menu meant that there can only be one way to insert, because there isn't two ways to double-click!
So instead of a button I changed it to a checkbox to change the way the insert button behaves. Except there is an option to make a checkbox appear like a button, so I used that so it looks like a toggle button instead, since that looks much better on that screen. In hindsight I realized that in that case inserting after was generally more useful, because you are essentially building up a program from top to bottom, but with the toggle on to do that you'd have to think in reverse to do the same! So although I find it more intuitive toggled, I think it would only be useful if you are coming in to alter an already built up program.
Still when building up an outline do the same rules apply? I don't know. I think the >> and << buttons do advance the cursor. But I prefer to enter and paste items so that they end up on the same line, even if that means you must manually advance the current line sometimes.
But there actually is a good solution to the copy/paste problem using the XCV keys on the QWERTY keyboard. It turns out that the key right after V is actually B. Which is perfect for Paste Below! or Paste Behind!! Heck even Paste Before if you are in the RTL world!!! It's actually pretty interesting that all of these keys just happened to be clustered together and in the right place. Anyway, I just wanted to share that. XCVB.
The other cool thing about Ctrl+B is it auto advances the cursor if that's what you want. Still in a copy/paste scenario you'd have to go back to whatever you are copying, so it isn't quite as fluid as entering new items.
To make a new item with Enter key there isn't a way to advance the cursor, but since it necessarily opens up an input window it's easy to move it down once past the last item. Ctrl+Enter might be fine for automating that. Ctrl+X,B after the fact would also work.
EDITED: For the record the way >> and << work in the script and project settings editors is the source side's cursor moves in reverse while the destination side remains in place. That's to make it easy to push over a line of items even though you have to start at the end of the list on the source side. In the settings editor there is an "endnotes" item that caps off the list, so adding to the end isn't a problem. But in the script outlines there are no such items, so my plan is to have an error-like box ask if you want to add to the end of the list if the last item is selected. If you need to move many items over and don't want to see the box then it's easy to think to make a temporary dummy item in advance and delete it afterward. It would be possible to add a checkbox to change the behavior, but I feel like it would mess up the symmetry of the classic layout based on the weird MAP file import mini-tool that is now obsolete.