This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Export -> To Clipboard vs Copy Special

Tags: None
(comma "," separated)
User avatar
jstaniek
Moderator
Posts
1027
Karma
2
OS
Hi!
This time a request for some concrete consulting. A 10-years-old-or-so implementation/design in Kexi exposes object copying action as Export -> to Clipboard to the user. Now after a user failed to identify it's actually like a "Copy Special" action, it's apparent there's room for improvements:

viewtopic.php?f=221&t=123946

About the action: it's an "interactive copy" for selected table of data, i.e. the user controls some options such as character encoding before the data is copied to the system clipboard. Then it can be pasted to a spreadsheet, browser window or a text file.

What's your opinion on this? Is "Copy Special" at the top level of the context menu better?

For symmetry, there's Paste Special already in the global toolbar:

Image

PS: It's typical GUI blooper: Export to Clipboard and Export to File are technically very similar actions so programmer tend to keep them closer.

Cheers!


Best regards,
Jarosław Staniek
• Qt Certified Specialist
KEXI - Open Source Visual DB Apps Builder
• Request a feature or fix for KEXI here
May I help you? Please mention your app's version and OS when asking for help
User avatar
Heiko Tietze
Registered Member
Posts
593
Karma
0
OS
Some thoughts on how I read the problem.
nathangant wrote:I can right-click on the kexi table, but only get "Open", "Design", "Export", "Rename" and "Delete".

Users expect to see well known function related to the current context in the drop-down menu (HIG). If the caption Export is not the usual label for Copy you should consider to rename it. But perhaps Export is neither Copy nor Save but "Dump..." or "Backup..." [to file - or clipboard] (AFAIK there is no sql command like Export/Save/Copy). On the other hand it sounds like hairsplitting - if there wouldn't be a user who has problems with the association of Export with Backup.
jstaniek wrote:Is "Copy Special" at the top level of the context menu better?

"Copy Special" sounds a little bit weird to me, and slow. If Copy is not related to the current selection, what else could Special mean, why do you call it Copy? Or who needs to be able to tweak the data being copied to clipboard, like changing variable format on the fly? If you consider to offer a limited number of options, like copy selection, copy column, copy table etc. you could just say so. A simple menubutton with the default option to copy the selection and all advanced copy actions in the dropdown menu would be appropriate. This control makes sense for Paste and Paste Special too. BTW: How Special is your Paste?
jstaniek wrote:PS: It's typical GUI blooper: Export to Clipboard and Export to File are technically very similar actions so programmer tend to keep them closer.

Yes, it's a nice example. Gimp, for instance, limits Save/SaveAs to the internal xcf format only and wants me to Export images. I always miss the right option first.
User avatar
jstaniek
Moderator
Posts
1027
Karma
2
OS
@Heiko Thanks a lot!

Parameter-less copy operation does not make sense for this action, I'll try to explain it below. Do you think Copy... (just with "..." added) would make that work? Or Copy Data...?

A side note: Since you mentioned SQL: please ignore anything related to SQL, it's all well hidden and *usually* not exposed to the user. Kexi is not a database designer/editor, it's an app builder that happens to acknowledge that good apps address needs of business data-orientation.

The Copy action is related to current selection in the Project navigator and is only for tables. It's about copying tabular data to a clipboard in some version of a CSV format, without copying entire table definition. So pasting this information back to Kexi won't create identical table with all original properties (data types, constraints, etc.).

There *might* be a real parameter-less Copy/Paste action added for duplicating entire table with all its properties but it's not necessary if we have Save As action, by the way. We plan to have it as it would be in line with forms, reports, etc. where Save As is present already. In this case user opens a table design and clicks Save As.

There are other (parameter-less this time) Copy actions all over the app, and their semantics and implementation are plugin-defined/dependent and most often operate within given type of object. For example you can open a Form Design and copy a button, then paste it somewhere on this or other form. Other example: coping text from a cell in a data table grid. That's traditional one.

In the future there may be more "Copy special" actions defined by plugins. In a plugin-based IDE we never know: even users are allowed to add some.

Existence of Copy Special (or whatever it'll be named) is caused by the desire of making data movement between Kexi and external app easier:
user would prefer to use clipboard instead of exporting data for a intermediate file using Export -> To Data File action, and then loading it in the external app. That said, this path is also available.

PS: A small discussion about global vs local scope of actions, and background. Regarding Paste Special, it's a global action since it's context-less (well, strictly, the context is just the currently opened project), so it's present in the top "project-wide" toolbar. Compared to Paste I had a problem with placing Copy/Copy special there: users never knew what's the context of copying: is it the current selection of Project Navigator or is it the opened currently opened table. Eventually the choice of context was the latter: but then the action was enabled only when table was opened and when its tab was the active one. Users were then clearly confused that the action was disabled at times.


Best regards,
Jarosław Staniek
• Qt Certified Specialist
KEXI - Open Source Visual DB Apps Builder
• Request a feature or fix for KEXI here
May I help you? Please mention your app's version and OS when asking for help
luebking
Karma
0
If there's no plain copy in this context, I'd name it "Copy" and assign the normal shortcut. That's less confusing (by not introducing sth. new while the user wastes time to look for the plain copy) and the user simply has to take one more action on copying unconditionally.

If there is (or might ever be) a plain copy (eg. for internal usage) i'd go with "Copy as...", "as" hinting that you've to define something, "..." that you'll be presented a dialog.
User avatar
jstaniek
Moderator
Posts
1027
Karma
2
OS
luebking wrote:If there's no plain copy in this context, I'd name it "Copy" and assign the normal shortcut. That's less confusing (by not introducing sth. new while the user wastes time to look for the plain copy) and the user simply has to take one more action on copying unconditionally.

If there is (or might ever be) a plain copy (eg. for internal usage) i'd go with "Copy as...", "as" hinting that you've to define something, "..." that you'll be presented a dialog.

The latter. Copy As... is nice! Thanks.


Best regards,
Jarosław Staniek
• Qt Certified Specialist
KEXI - Open Source Visual DB Apps Builder
• Request a feature or fix for KEXI here
May I help you? Please mention your app's version and OS when asking for help


Bookmarks



Who is online

Registered users: Bing [Bot], daret, Google [Bot], Sogou [Bot]