Open kvesik opened 1 year ago
@kchall How should the 'copy module' and 'copy sign' (and potentially 'copy timing' )functionality be accessed?
For 'copy module' I could see any or all of the following:
For 'copy sign' I could see any or all of the following:
For 'copy timing' I could see any or all of the following (this one's a bit trickier to figure out a good solution for...):
Feedback on any of these possibilities? Or any additional ones?
Notes from 20231030 meeting...
Option 1:
Option 2:
Note that copying signs is also connected to importing a whole or partial corpus (see issue #14 )
It was also pointed out that it would be useful to be able to select more than one module in the summary window and copy several at once. This could be facilitated by changing our click system to one more like the kind that a file explorer uses, where a single click highlights a module (or hold ctrl/cmd down to click and select several) and a double-click opens it for editing. We could/should then also implement the same behaviour for signs in the corpus list.
Note that copying a sign should be the first priority in terms of building functionality; then copying a module; then copying timing information.
@kchall I have a few questions about pasting a copied sign.
Suppose the user copies a sign and goes to paste it right back into the same corpus.
Suppose the user copies a sign from Corpus A, then opens Corpus B and pastes the sign.
Thanks, @kvesik!
@kvesik I just tried opening the sample corpus, copying BEER, pasting it back into the sample corpus with a new gloss and ID-gloss, and it shows up totally empty instead of with its original content:
Original:
Copy:
Same thing happens with other signs, or when I paste into a different corpus that also has the same basic sign(s) already in it (e.g. BEER), and I'm not getting any background error messages.
However, it does work correctly (copies a non-blank version) if I create a brand new corpus and paste into that, or open a corpus that doesn't have the same sign in it.
@kvesik Sorry, I'm a total dolt and clearly should stop working for the night. I was just on the wrong branch.
@kvesik Okay, but this time it's a real comment. 😅
If I copy a sign and paste it back into the original corpus, and tell SLP-AA to auto-update the ID-Gloss (e.g. GLOSS), it literally just adds "1" to the original ID-Gloss (e.g. GLOSS1). This is fine for the first copy, but leads to two problems:
If I paste it a second time, I get GLOSS1 again, so now I actually do have duplicated ID-Glosses, which shouldn't happen. Presumably the number should iterate each time I paste.
If I copy the copy and paste that in, then I get another "1", e.g. GLOSS11. This does follow the basic logic of just adding '1' to the ID-Gloss, but is confusing. Is there some way to separate out the name and the number and actually iterate the number? or is it going to be impossible to do that given that the original ID-gloss is a free-text field by the user? could the auto-update actually be something like "-1" and have whatever comes after the dash be iterable?
@kchall Thanks for those comments. I've been pondering the same thing myself in parallel to working on the other outstanding elements of this issue. I had spent some time trying to figure out how to auto-iterate the tag, but things got a bit weird (yes, partly because the ID-gloss is completely up to the user). I like the idea of the auto-update having a special format; that might make things a bit easier.
Still need to implement the copy-module portion of this issue.
@kchall please fetch/pull branch 191 and try out the copy-module functionality so far. You should be able to:
Notes:
Thanks, @kvesik ! From what I can tell, the copying / pasting functionality seems to be working as expected -- yay! I have tried copying and pasting into the same sign, different signs, and a new corpus. I have tried editing the copy or the original and confirmed that the other is not affected. I can copy both single modules and multiples, of both the same and different types.
The double-clicking I think is basically fine, but I keep forgetting that we need to do that, so it keeps taking me by surprise when single-clicking doesn't do anything. We'll have to be very clear when we communicate changes to the coders!
Notes:
- pasting a signtype module into a new sign will overwrite any existing signtype info in that sign-- should we warn the user about this?
- Currently the only way to access the right-click menu is to click on one of the module rectangles or ellipses. I'd like to eventually set it up so that you could also right-click anywhere in the sign summary (eg blank background space) to access the paste option (but not copy or delete). Does this make sense to you or would you prefer a different way to interact with the menus?
[x] Yes, that makes sense and aligns with my intuitions, thanks! (In particular, that's helpful if they're trying to paste into a new sign that has no modules -- otherwise, they have to create a fake module just to paste.)
[x] Can we also add a check for whether the module being copied and the sign it's being pasted in to have the same number of x-slots? If they don't, can we just add a warning saying "The module to be pasted has a different number of x-slots than the current sign. If you proceed, you should manually check the timing options in the pasted module." ...with options "Cancel paste" and "Proceed with paste"
@kchall here is a summary of module copy-paste behaviour when there are linked modules (eg, movement or location with associated relation). Sorry it's a bit messy/small. The full column titles are:
Please let me know if any of this doesn't seem logical to you.
Also fyi there are a few issues with copy/pasting signs that I've noticed as I'm working on modules.
I implemented the check for mismatched x-slots (from your comments above). If the user chooses to proceed, all pasted modules have their timing set to "whole sign" in the background. Questions:
And finally, with respect to menu access when right-clicking on the background instead of specifically on a module button:
One more note from 20241108 meeting:
@kvesik Just confirming that the summary behaviour all makes sense to me. Thanks!
Originally posted by @kchall in https://github.com/PhonologicalCorpusTools/SLPAA/issues/100#issuecomment-1675437965
see also issue #14