* Fixes #3541 * CSV export now includes TOTP settings, Entry Icon (database icon number only), Modified Time, and Created Time. * CSV import properly understands time in ISO 8601 format and Unix Timestamp. * CSV import will set the TOTP settings and entry icon based on the chosen column.
765 lines
25 KiB
XML
765 lines
25 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<ui version="4.0">
|
|
<class>CsvImportWidget</class>
|
|
<widget class="QWidget" name="CsvImportWidget">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>788</width>
|
|
<height>530</height>
|
|
</rect>
|
|
</property>
|
|
<property name="windowTitle">
|
|
<string/>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
<item>
|
|
<widget class="MessageWidget" name="messageWidget" native="true"/>
|
|
</item>
|
|
<item>
|
|
<widget class="QScrollArea" name="scrollArea">
|
|
<property name="horizontalScrollBarPolicy">
|
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
|
</property>
|
|
<property name="widgetResizable">
|
|
<bool>true</bool>
|
|
</property>
|
|
<widget class="QWidget" name="scrollAreaWidgetContents">
|
|
<property name="geometry">
|
|
<rect>
|
|
<x>0</x>
|
|
<y>0</y>
|
|
<width>753</width>
|
|
<height>615</height>
|
|
</rect>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
|
<item>
|
|
<widget class="QLabel" name="labelHeadline">
|
|
<property name="font">
|
|
<font>
|
|
<pointsize>11</pointsize>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Import CSV fields</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
|
<item>
|
|
<widget class="QLabel" name="labelFilename">
|
|
<property name="text">
|
|
<string>filename</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer_3">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
<item>
|
|
<widget class="QLabel" name="labelSizeRowsCols">
|
|
<property name="text">
|
|
<string>size, rows, columns</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
<item>
|
|
<widget class="QGroupBox" name="groupBoxColumnAssociations">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="title">
|
|
<string>Column Association</string>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
|
<item>
|
|
<layout class="QGridLayout" name="gridLayout_combos">
|
|
<item row="3" column="1">
|
|
<widget class="QComboBox" name="passwordCombo"/>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QLabel" name="passwordLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Password</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="usernameLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Username</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QComboBox" name="usernameCombo"/>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QComboBox" name="titleCombo"/>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="titleLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Title</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="groupCombo"/>
|
|
</item>
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="groupLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Group</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="0">
|
|
<widget class="QLabel" name="urlLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>URL</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="1">
|
|
<widget class="QComboBox" name="urlCombo"/>
|
|
</item>
|
|
<item row="0" column="2">
|
|
<widget class="QLabel" name="notesLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Notes</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="3">
|
|
<widget class="QComboBox" name="notesCombo"/>
|
|
</item>
|
|
<item row="1" column="2">
|
|
<widget class="QLabel" name="totpLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>TOTP</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="3">
|
|
<widget class="QComboBox" name="totpCombo"/>
|
|
</item>
|
|
<item row="4" column="3">
|
|
<widget class="QComboBox" name="createdCombo"/>
|
|
</item>
|
|
<item row="4" column="2">
|
|
<widget class="QLabel" name="createdLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Created</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="2">
|
|
<widget class="QLabel" name="lastModifiedLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Last Modified</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="3">
|
|
<widget class="QComboBox" name="lastModifiedCombo"/>
|
|
</item>
|
|
<item row="2" column="2">
|
|
<widget class="QLabel" name="iconLabel">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Icon</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
<property name="indent">
|
|
<number>2</number>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="3">
|
|
<widget class="QComboBox" name="iconCombo"/>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<spacer name="verticalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Vertical</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>20</width>
|
|
<height>40</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="Encoding">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="title">
|
|
<string>Encoding</string>
|
|
</property>
|
|
<layout class="QFormLayout" name="formLayout">
|
|
<item row="0" column="0">
|
|
<widget class="QLabel" name="labelCodec">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Codec</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="0" column="1">
|
|
<widget class="QComboBox" name="comboBoxCodec">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="accessibleName">
|
|
<string>Codec</string>
|
|
</property>
|
|
<property name="editable">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true">UTF-8</string>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">UTF-8</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">Windows-1252</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">UTF-16</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">UTF-16LE</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="0">
|
|
<widget class="QLabel" name="labelTextQualifier">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Text is qualified by</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="1" column="1">
|
|
<widget class="QComboBox" name="comboBoxTextQualifier">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="accessibleName">
|
|
<string>Text qualification</string>
|
|
</property>
|
|
<property name="editable">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true">"</string>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">"</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">'</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">:</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">.</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">|</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="labelFieldSeparator">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Fields are separated by</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<widget class="QComboBox" name="comboBoxFieldSeparator">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="accessibleName">
|
|
<string>Field separation</string>
|
|
</property>
|
|
<property name="editable">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true">,</string>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">,</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">;</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">-</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">:</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">.</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">TAB (\t)</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="0">
|
|
<widget class="QLabel" name="labelComments">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Comments start with</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="3" column="1">
|
|
<widget class="QComboBox" name="comboBoxComment">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="accessibleName">
|
|
<string>Comments start with</string>
|
|
</property>
|
|
<property name="editable">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="currentText">
|
|
<string notr="true">#</string>
|
|
</property>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">#</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">;</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">:</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string notr="true">@</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="0">
|
|
<widget class="QLabel" name="labelSkipRows">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Header lines skipped</string>
|
|
</property>
|
|
<property name="alignment">
|
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="1">
|
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
<item>
|
|
<widget class="QSpinBox" name="spinBoxSkip">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="accessibleName">
|
|
<string>Number of header lines to discard</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer_2">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>122</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item row="5" column="1">
|
|
<widget class="QCheckBox" name="checkBoxFieldNames">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>First line has field names</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="6" column="1">
|
|
<widget class="QCheckBox" name="checkBoxBackslash">
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="text">
|
|
<string>Consider '\' an escape character</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<spacer name="horizontalSpacer">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
<property name="sizeHint" stdset="0">
|
|
<size>
|
|
<width>40</width>
|
|
<height>20</height>
|
|
</size>
|
|
</property>
|
|
</spacer>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item>
|
|
<widget class="QGroupBox" name="groupBoxPreview">
|
|
<property name="font">
|
|
<font>
|
|
<weight>75</weight>
|
|
<bold>true</bold>
|
|
</font>
|
|
</property>
|
|
<property name="title">
|
|
<string>Preview</string>
|
|
</property>
|
|
<property name="checkable">
|
|
<bool>false</bool>
|
|
</property>
|
|
<layout class="QVBoxLayout" name="verticalLayout">
|
|
<item>
|
|
<widget class="QTableView" name="tableViewFields">
|
|
<property name="sizePolicy">
|
|
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
|
|
<horstretch>0</horstretch>
|
|
<verstretch>0</verstretch>
|
|
</sizepolicy>
|
|
</property>
|
|
<property name="minimumSize">
|
|
<size>
|
|
<width>0</width>
|
|
<height>300</height>
|
|
</size>
|
|
</property>
|
|
<property name="font">
|
|
<font>
|
|
<weight>50</weight>
|
|
<bold>false</bold>
|
|
</font>
|
|
</property>
|
|
<property name="accessibleName">
|
|
<string>CSV import preview</string>
|
|
</property>
|
|
<property name="cornerButtonEnabled">
|
|
<bool>false</bool>
|
|
</property>
|
|
<attribute name="horizontalHeaderVisible">
|
|
<bool>true</bool>
|
|
</attribute>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="QDialogButtonBox" name="buttonBox">
|
|
<property name="standardButtons">
|
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
</property>
|
|
<property name="centerButtons">
|
|
<bool>false</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>MessageWidget</class>
|
|
<extends>QWidget</extends>
|
|
<header>gui/MessageWidget.h</header>
|
|
<container>1</container>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<tabstops>
|
|
<tabstop>scrollArea</tabstop>
|
|
<tabstop>groupCombo</tabstop>
|
|
<tabstop>titleCombo</tabstop>
|
|
<tabstop>usernameCombo</tabstop>
|
|
<tabstop>passwordCombo</tabstop>
|
|
<tabstop>comboBoxCodec</tabstop>
|
|
<tabstop>comboBoxTextQualifier</tabstop>
|
|
<tabstop>comboBoxFieldSeparator</tabstop>
|
|
<tabstop>comboBoxComment</tabstop>
|
|
<tabstop>spinBoxSkip</tabstop>
|
|
<tabstop>checkBoxFieldNames</tabstop>
|
|
<tabstop>checkBoxBackslash</tabstop>
|
|
<tabstop>tableViewFields</tabstop>
|
|
</tabstops>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|