Bug 150652 - CSV (Text) import dialog: Improve discoverability of Column type setting
Summary: CSV (Text) import dialog: Improve discoverability of Column type setting
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard: target:7.6.0
Keywords: difficultyBeginner, easyHack, skillCpp, topicUI
Depends on:
Blocks: CSV-Import
  Show dependency treegraph
 
Reported: 2022-08-28 18:56 UTC by Mike Kaganski
Modified: 2023-04-19 15:38 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Kaganski 2022-08-28 18:56:07 UTC
CSV Import dialog [1] allows one to define field type explicitly: each column in the preview area is clickable, and then one can either select column type from the dropdown above the preview, or can right-click on the columns themselves to bring the choice menu. This is very important for CSV/text import, because the data does not include information about the data type itself, and thus a multitude of corner cases exist, where automatic detection of default settings would fail: e.g., textual data like card ids that may be confused with numbers, and conversion could result in data loss.

The problem is the poor discoverability of the setting. The drop-down "Column type:" control does not tell user that it would activate on a column click; such rich interaction (with context menus) is generally uncharacteristic for dialogs.

The information about setting "formatting" (bad term; data type is proper) of the columns is also given at [2]. However, users don't find this. Many questions appear at Ask, and also here in bugzilla - see e.g. bug 150635, which encouraged me to report this UX issue.

The problem could be solved in many ways (e.g., adding some descriptive text to the dialog). My proposal would be to add a drop-down control (down arrow) to each column header, similar to how autofilter looks in Calc. This way, user would immediately see the actionable controls, and checking those, would learn that the dialog allows to define the types of columns. (This specific proposal is just a suggestion, and the issue would be resolved by whatever improvement UX finds reasonable.)

[1] https://help.libreoffice.org/7.4/en-US/text/shared/00/00000208.html?DbPAR=CALC
[2] https://help.libreoffice.org/7.4/en-US/text/scalc/guide/csv_files.html?DbPAR=CALC
Comment 1 Tamas 2022-08-28 19:25:29 UTC
Excellent idea!
Comment 2 m_a_riosv 2022-08-28 21:11:22 UTC
+1
Comment 3 Heiko Tietze 2022-08-30 07:06:16 UTC
Some ideas:
a) The label "Column type" should never be disabled.
b) The first column might be auto selected; although it's a multi-selection and we should allow to unselect all.
c) The suggested "down arrow" may be understood as sorting feature (weak argument, since it's added to each column) but extends the column size, which is relevant for some users (bug 53026 and bug 141380)
d) The static tip next or rather underneath the control "Click (incl. Ctrl/Shift) to select columns to change its type"
e) Imagine the term "Standard" is not attracting much attention. The requested change to Text (bug 117672) could help.

My take is a) and if necessary b) and e); c) sounds like too much effort, and d) as if UX surrenders complexity.
Comment 4 Mike Kaganski 2022-08-30 07:19:48 UTC
(In reply to Heiko Tietze from comment #3)
> c) The suggested "down arrow" ... extends the column size,
> which is relevant for some users (bug 53026 and bug 141380)

Just a note: bug 53026 is completely unrelated (it's not about the dialog, but about the columns in the spreadsheet after import).
Comment 5 Rafael Lima 2022-08-31 21:04:13 UTC
I didn't even know this feature existed. I use CSV import all the time and this is very helpful. It'll surely be good to improve discoverability here.

(In reply to Heiko Tietze from comment #3)
> a) The label "Column type" should never be disabled.

Agreed. But then I think (b) ends up being mandatory.

> b) The first column might be auto selected; although it's a multi-selection
> and we should allow to unselect all.

The problem with unselecting all is that the "Column type" should be disabled, otherwise which column would it be applying to if any is selected?

> e) Imagine the term "Standard" is not attracting much attention. The
> requested change to Text (bug 117672) could help.

Isn't the "Standard" type the same as "Automatic" here? Maybe we could use "Automatic" instead of "Standard".
Comment 6 Heiko Tietze 2022-09-01 07:04:31 UTC
We discussed the topic in the design meeting.

Not disabling the label "Column type" (not the dropdown, of course) makes sense and solves the problem to a good extend. No need for the effort to add "downward arrow"-interactions to the columns (which might become tricky with the multiselection, btw).

Code pointer: mxFtType->set_sensitive(false); in sc/source/ui/dbgui/scuiasciiopt.cxx (suggest to remove the variable mxFtType)
Comment 8 Commit Notification 2023-04-19 15:38:22 UTC
TokieSan committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/be1fe4418caa8c26ea53fe1f9acbe36096d5e3a9

tdf#150652 Column Type being disabled makes UX unintuitive

It will be available in 7.6.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.