mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 07:07:44 +00:00
Spreadsheet: Add an import wizard, and add support for custom CSV files
Fixes the import half of #4269.
This commit is contained in:
parent
3bbcde9192
commit
3c151b3de6
7 changed files with 601 additions and 52 deletions
176
Userland/Applications/Spreadsheet/csv_import.gml
Normal file
176
Userland/Applications/Spreadsheet/csv_import.gml
Normal file
|
@ -0,0 +1,176 @@
|
|||
@GUI::Widget {
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [20, 20, 20, 20]
|
||||
}
|
||||
|
||||
@GUI::HorizontalSplitter {
|
||||
@GUI::Widget {
|
||||
name: "csv_options"
|
||||
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {
|
||||
}
|
||||
|
||||
@GUI::GroupBox {
|
||||
title: "Delimiter"
|
||||
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
// FIXME: This is working around the fact that group boxes don't allocate space for their title and border!
|
||||
margins: [10, 20, 10, 10]
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "delimiter_comma_radio"
|
||||
text: "Comma"
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "delimiter_semicolon_radio"
|
||||
text: "Semicolon"
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "delimiter_tab_radio"
|
||||
text: "Tab"
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "delimiter_space_radio"
|
||||
text: "Space"
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 25
|
||||
|
||||
layout: @GUI::HorizontalBoxLayout {
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "delimiter_other_radio"
|
||||
text: "Other: "
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::TextBox {
|
||||
name: "delimiter_other_text_box"
|
||||
text: ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::GroupBox {
|
||||
title: "Quote"
|
||||
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
// FIXME: This is working around the fact that group boxes don't allocate space for their title and border!
|
||||
margins: [10, 20, 10, 10]
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "quote_single_radio"
|
||||
text: "Single Quotes"
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "quote_double_radio"
|
||||
text: "Double Quotes"
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 25
|
||||
|
||||
layout: @GUI::HorizontalBoxLayout {
|
||||
}
|
||||
|
||||
@GUI::RadioButton {
|
||||
name: "quote_other_radio"
|
||||
text: "Other: "
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::TextBox {
|
||||
name: "quote_other_text_box"
|
||||
text: ""
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
fixed_height: 25
|
||||
|
||||
layout: @GUI::HorizontalBoxLayout {
|
||||
}
|
||||
|
||||
@GUI::Label {
|
||||
text: "Escape by "
|
||||
autosize: true
|
||||
}
|
||||
|
||||
@GUI::ComboBox {
|
||||
name: "quote_escape_combo_box"
|
||||
model_only: true
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::GroupBox {
|
||||
title: "Trim Field Spaces"
|
||||
fixed_height: 40
|
||||
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
margins: [6, 6, 6, 0]
|
||||
}
|
||||
|
||||
@GUI::Widget {
|
||||
layout: @GUI::HorizontalBoxLayout {
|
||||
}
|
||||
|
||||
@GUI::CheckBox {
|
||||
name: "trim_leading_field_spaces_check_box"
|
||||
text: "Leading spaces"
|
||||
}
|
||||
|
||||
@GUI::CheckBox {
|
||||
name: "trim_trailing_field_spaces_check_box"
|
||||
text: "Trailing spaces"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::CheckBox {
|
||||
fixed_height: 15
|
||||
name: "read_header_check_box"
|
||||
text: "Read a header row"
|
||||
}
|
||||
}
|
||||
|
||||
@GUI::GroupBox {
|
||||
title: "Data Preview"
|
||||
fixed_width: 150
|
||||
|
||||
layout: @GUI::VerticalBoxLayout {
|
||||
// FIXME: This is working around the fact that group boxes don't allocate space for their title and border!
|
||||
margins: [10, 20, 10, 10]
|
||||
}
|
||||
|
||||
@GUI::TableView {
|
||||
name: "data_preview_table_view"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue