fix group layout, add autotype associations

This commit is contained in:
thez3ro 2017-09-29 20:37:37 +02:00
parent d0f8d43739
commit 9279bf7628
No known key found for this signature in database
GPG key ID: F628F9E41DD7C073
3 changed files with 326 additions and 304 deletions

View file

@ -33,6 +33,8 @@ DetailsWidget::DetailsWidget(QWidget* parent)
, m_locked(false) , m_locked(false)
, m_currentEntry(nullptr) , m_currentEntry(nullptr)
, m_currentGroup(nullptr) , m_currentGroup(nullptr)
, m_attributesWidget(nullptr)
, m_autotypeWidget(nullptr)
{ {
m_ui->setupUi(this); m_ui->setupUi(this);
@ -63,8 +65,14 @@ void DetailsWidget::getSelectedEntry(Entry* selectedEntry)
m_ui->stackedWidget->setCurrentIndex(EntryPreview); m_ui->stackedWidget->setCurrentIndex(EntryPreview);
if (m_ui->tabWidget->count() < 4) {
m_ui->tabWidget->insertTab(static_cast<int>(AttributesTab), m_attributesWidget, "Attributes");
m_ui->tabWidget->insertTab(static_cast<int>(AutotypeTab), m_autotypeWidget, "Autotype");
}
m_ui->tabWidget->setTabEnabled(AttributesTab, false); m_ui->tabWidget->setTabEnabled(AttributesTab, false);
m_ui->tabWidget->setTabEnabled(NotesTab, false); m_ui->tabWidget->setTabEnabled(NotesTab, false);
m_ui->tabWidget->setTabEnabled(AutotypeTab, false);
m_ui->totpButton->hide(); m_ui->totpButton->hide();
m_ui->totpWidget->hide(); m_ui->totpWidget->hide();
@ -147,6 +155,21 @@ void DetailsWidget::getSelectedEntry(Entry* selectedEntry)
} }
m_ui->attributesEdit->setText(attributesText); m_ui->attributesEdit->setText(attributesText);
} }
m_ui->autotypeTree->clear();
AutoTypeAssociations* autotypeAssociations = m_currentEntry->autoTypeAssociations();
QList<QTreeWidgetItem *> items;
for (auto assoc : autotypeAssociations->getAll()) {
QStringList association = QStringList() << assoc.window << assoc.sequence;
if (association.at(1).isEmpty()) {
association.replace(1, m_currentEntry->effectiveAutoTypeSequence());
}
items.append(new QTreeWidgetItem(m_ui->autotypeTree, association));
}
if (items.count() > 0) {
m_ui->autotypeTree->addTopLevelItems(items);
m_ui->tabWidget->setTabEnabled(AutotypeTab, true);
}
} }
void DetailsWidget::getSelectedGroup(Group* selectedGroup) void DetailsWidget::getSelectedGroup(Group* selectedGroup)
@ -159,8 +182,15 @@ void DetailsWidget::getSelectedGroup(Group* selectedGroup)
m_ui->stackedWidget->setCurrentIndex(GroupPreview); m_ui->stackedWidget->setCurrentIndex(GroupPreview);
m_ui->tabWidget->setTabEnabled(AttributesTab, false); if (m_ui->tabWidget->count() > 2) {
m_ui->tabWidget->setTabEnabled(NotesTab, false); m_autotypeWidget = m_ui->tabWidget->widget(AutotypeTab);
m_attributesWidget = m_ui->tabWidget->widget(AttributesTab);
m_ui->tabWidget->removeTab(AutotypeTab);
m_ui->tabWidget->removeTab(AttributesTab);
}
m_ui->tabWidget->setTabEnabled(GroupNotesTab, false);
m_ui->totpButton->hide(); m_ui->totpButton->hide();
m_ui->totpWidget->hide(); m_ui->totpWidget->hide();
@ -180,7 +210,11 @@ void DetailsWidget::getSelectedGroup(Group* selectedGroup)
} }
m_ui->titleLabel->setText(title); m_ui->titleLabel->setText(title);
m_ui->notesEdit->setText(m_currentGroup->notes()); QString notes = m_currentGroup->notes();
if (!notes.isEmpty()) {
m_ui->tabWidget->setTabEnabled(GroupNotesTab, true);
m_ui->notesEdit->setText(notes);
}
QString searching = tr("Disabled"); QString searching = tr("Disabled");
if (m_currentGroup->resolveSearchingEnabled()) { if (m_currentGroup->resolveSearchingEnabled()) {
@ -200,10 +234,6 @@ void DetailsWidget::getSelectedGroup(Group* selectedGroup)
} else { } else {
m_ui->groupExpirationLabel->setText(tr("Never")); m_ui->groupExpirationLabel->setText(tr("Never"));
} }
m_ui->groupCreationLabel->setText(groupTime.creationTime().toString(Qt::DefaultLocaleShortDate));
m_ui->groupModifyLabel->setText(groupTime.lastModificationTime().toString(Qt::DefaultLocaleShortDate));
m_ui->groupAccessLabel->setText(groupTime.lastAccessTime().toString(Qt::DefaultLocaleShortDate));
} }
void DetailsWidget::updateTotp() void DetailsWidget::updateTotp()

View file

@ -44,7 +44,9 @@ public:
{ {
GeneralTab = 0, GeneralTab = 0,
AttributesTab = 1, AttributesTab = 1,
GroupNotesTab = 1,
NotesTab = 2, NotesTab = 2,
AutotypeTab = 3,
}; };
private slots: private slots:
@ -63,6 +65,8 @@ private:
Group* m_currentGroup; Group* m_currentGroup;
quint8 m_step; quint8 m_step;
QTimer* m_timer; QTimer* m_timer;
QWidget* m_attributesWidget;
QWidget* m_autotypeWidget;
QString shortUrl(QString url); QString shortUrl(QString url);
QString shortPassword(QString password); QString shortPassword(QString password);
}; };

View file

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>630</width> <width>630</width>
<height>180</height> <height>200</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -159,9 +159,6 @@
<property name="movable"> <property name="movable">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="tabBarAutoHide">
<bool>false</bool>
</property>
<widget class="QWidget" name="generalTab"> <widget class="QWidget" name="generalTab">
<attribute name="title"> <attribute name="title">
<string>General</string> <string>General</string>
@ -179,308 +176,251 @@
<number>0</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="entryPage"> <widget class="QWidget" name="entryPage">
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QGridLayout" name="gridLayout" columnstretch="1,3">
<property name="leftMargin"> <item row="1" column="1">
<number>0</number> <widget class="QLabel" name="passwordLabel"/>
</property> </item>
<property name="topMargin"> <item row="2" column="1">
<number>0</number> <widget class="QLabel" name="urlLabel">
</property> <property name="sizePolicy">
<property name="rightMargin"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<number>0</number> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
<property name="bottomMargin"> </sizepolicy>
<number>0</number> </property>
</property> <property name="text">
<item> <string/>
<layout class="QHBoxLayout" name="horizontalLayout_6"> </property>
<item> </widget>
<layout class="QHBoxLayout" name="horizontalLayout_7"> </item>
<item> <item row="3" column="0">
<layout class="QGridLayout" name="gridLayout" columnstretch="1,3"> <widget class="QLabel" name="expirationLabel_2">
<item row="2" column="0"> <property name="sizePolicy">
<widget class="QLabel" name="urlLabel_2"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<property name="sizePolicy"> <horstretch>0</horstretch>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <verstretch>0</verstretch>
<horstretch>0</horstretch> </sizepolicy>
<verstretch>0</verstretch> </property>
</sizepolicy> <property name="font">
</property> <font>
<property name="font"> <weight>75</weight>
<font> <bold>true</bold>
<pointsize>9</pointsize> </font>
<weight>75</weight> </property>
<bold>true</bold> <property name="text">
</font> <string>Expiration</string>
</property> </property>
<property name="text"> <property name="alignment">
<string>URL</string> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
<property name="alignment"> </widget>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </item>
</property> <item row="2" column="0">
</widget> <widget class="QLabel" name="urlLabel_2">
</item> <property name="sizePolicy">
<item row="1" column="0"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<widget class="QLabel" name="passwordLabel_2"> <horstretch>0</horstretch>
<property name="sizePolicy"> <verstretch>0</verstretch>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> </sizepolicy>
<horstretch>0</horstretch> </property>
<verstretch>0</verstretch> <property name="font">
</sizepolicy> <font>
</property> <pointsize>9</pointsize>
<property name="font"> <weight>75</weight>
<font> <bold>true</bold>
<weight>75</weight> </font>
<bold>true</bold> </property>
</font> <property name="text">
</property> <string>URL</string>
<property name="text"> </property>
<string>Password</string> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="alignment"> </property>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </widget>
</property> </item>
</widget> <item row="3" column="1">
</item> <widget class="QLabel" name="expirationLabel"/>
<item row="0" column="0"> </item>
<widget class="QLabel" name="usernameLabel_2"> <item row="1" column="0">
<property name="sizePolicy"> <widget class="QLabel" name="passwordLabel_2">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <property name="sizePolicy">
<horstretch>0</horstretch> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<verstretch>0</verstretch> <horstretch>0</horstretch>
</sizepolicy> <verstretch>0</verstretch>
</property> </sizepolicy>
<property name="font"> </property>
<font> <property name="font">
<weight>75</weight> <font>
<bold>true</bold> <weight>75</weight>
</font> <bold>true</bold>
</property> </font>
<property name="layoutDirection"> </property>
<enum>Qt::LeftToRight</enum> <property name="text">
</property> <string>Password</string>
<property name="text"> </property>
<string>Username</string> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="alignment"> </property>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </widget>
</property> </item>
</widget> <item row="0" column="0">
</item> <widget class="QLabel" name="usernameLabel_2">
<item row="0" column="1"> <property name="sizePolicy">
<widget class="QLabel" name="usernameLabel"/> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
</item> <horstretch>0</horstretch>
<item row="2" column="1"> <verstretch>0</verstretch>
<widget class="QLabel" name="urlLabel"> </sizepolicy>
<property name="sizePolicy"> </property>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> <property name="font">
<horstretch>0</horstretch> <font>
<verstretch>0</verstretch> <weight>75</weight>
</sizepolicy> <bold>true</bold>
</property> </font>
<property name="text"> </property>
<string/> <property name="layoutDirection">
</property> <enum>Qt::LeftToRight</enum>
</widget> </property>
</item> <property name="text">
<item row="1" column="1"> <string>Username</string>
<widget class="QLabel" name="passwordLabel"/> </property>
</item> <property name="alignment">
<item row="3" column="0"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<widget class="QLabel" name="expirationLabel_2"> </property>
<property name="sizePolicy"> </widget>
<sizepolicy hsizetype="Minimum" vsizetype="Preferred"> </item>
<horstretch>0</horstretch> <item row="0" column="1">
<verstretch>0</verstretch> <widget class="QLabel" name="usernameLabel"/>
</sizepolicy> </item>
</property> <item row="4" column="1">
<property name="font"> <spacer name="verticalSpacer_2">
<font> <property name="orientation">
<weight>75</weight> <enum>Qt::Vertical</enum>
<bold>true</bold> </property>
</font> <property name="sizeHint" stdset="0">
</property> <size>
<property name="text"> <width>20</width>
<string>Expiration</string> <height>40</height>
</property> </size>
<property name="alignment"> </property>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </spacer>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="expirationLabel"/>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="groupPage"> <widget class="QWidget" name="groupPage">
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QGridLayout" name="gridLayout_4" columnstretch="1,3">
<property name="leftMargin"> <item row="2" column="1">
<number>0</number> <widget class="QLabel" name="groupExpirationLabel">
</property> <property name="sizePolicy">
<property name="topMargin"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<number>0</number> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
<property name="rightMargin"> </sizepolicy>
<number>0</number> </property>
</property> </widget>
<property name="bottomMargin"> </item>
<number>0</number> <item row="0" column="0">
</property> <widget class="QLabel" name="autotypeLabel_2">
<item> <property name="sizePolicy">
<layout class="QHBoxLayout" name="horizontalLayout_8"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<item> <horstretch>0</horstretch>
<layout class="QHBoxLayout" name="horizontalLayout_9"> <verstretch>0</verstretch>
<item> </sizepolicy>
<layout class="QGridLayout" name="gridLayout_4"> </property>
<item row="0" column="1"> <property name="font">
<widget class="QLabel" name="autotypeLabel"/> <font>
</item> <weight>75</weight>
<item row="0" column="0"> <bold>true</bold>
<widget class="QLabel" name="autotypeLabel_2"> </font>
<property name="font"> </property>
<font> <property name="text">
<weight>75</weight> <string>Autotype</string>
<bold>true</bold> </property>
</font> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="text"> </property>
<string>Autotype</string> </widget>
</property> </item>
<property name="alignment"> <item row="1" column="1">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <widget class="QLabel" name="searchingLabel">
</property> <property name="sizePolicy">
</widget> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
</item> <horstretch>0</horstretch>
<item row="2" column="0"> <verstretch>0</verstretch>
<widget class="QLabel" name="groupExpirationLabel_2"> </sizepolicy>
<property name="font"> </property>
<font> </widget>
<weight>75</weight> </item>
<bold>true</bold> <item row="1" column="0">
</font> <widget class="QLabel" name="searchingLabel_2">
</property> <property name="sizePolicy">
<property name="text"> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<string>Expiration</string> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
<property name="alignment"> </sizepolicy>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property>
</property> <property name="font">
</widget> <font>
</item> <weight>75</weight>
<item row="1" column="0"> <bold>true</bold>
<widget class="QLabel" name="searchingLabel_2"> </font>
<property name="font"> </property>
<font> <property name="text">
<weight>75</weight> <string>Searching</string>
<bold>true</bold> </property>
</font> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="text"> </property>
<string>Searching</string> </widget>
</property> </item>
<property name="alignment"> <item row="0" column="1">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <widget class="QLabel" name="autotypeLabel">
</property> <property name="sizePolicy">
</widget> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
</item> <horstretch>0</horstretch>
<item row="1" column="1"> <verstretch>0</verstretch>
<widget class="QLabel" name="searchingLabel"/> </sizepolicy>
</item> </property>
<item row="2" column="1"> </widget>
<widget class="QLabel" name="groupExpirationLabel"/> </item>
</item> <item row="2" column="0">
</layout> <widget class="QLabel" name="groupExpirationLabel_2">
</item> <property name="sizePolicy">
</layout> <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
</item> <horstretch>0</horstretch>
<item> <verstretch>0</verstretch>
<layout class="QGridLayout" name="gridLayout_5"> </sizepolicy>
<item row="1" column="0"> </property>
<widget class="QLabel" name="groupAccessLabel_2"> <property name="font">
<property name="font"> <font>
<font> <weight>75</weight>
<weight>75</weight> <bold>true</bold>
<bold>true</bold> </font>
</font> </property>
</property> <property name="text">
<property name="text"> <string>Expiration</string>
<string>Access</string> </property>
</property> <property name="alignment">
<property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property>
</property> </widget>
</widget> </item>
</item> <item row="3" column="1">
<item row="0" column="1"> <spacer name="verticalSpacer">
<widget class="QLabel" name="groupCreationLabel"/> <property name="orientation">
</item> <enum>Qt::Vertical</enum>
<item row="1" column="1"> </property>
<widget class="QLabel" name="groupAccessLabel"/> <property name="sizeHint" stdset="0">
</item> <size>
<item row="0" column="0"> <width>20</width>
<widget class="QLabel" name="groupCreationLabel_2"> <height>40</height>
<property name="font"> </size>
<font> </property>
<weight>75</weight> </spacer>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Creation</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="groupModifyLabel_2">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Modification</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="groupModifyLabel"/>
</item>
</layout>
</item>
</layout>
</item> </item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
</item> </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> </layout>
</widget> </widget>
<widget class="QWidget" name="attributesTab"> <widget class="QWidget" name="attributesTab">
@ -553,6 +493,54 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="autotypeTab">
<attribute name="title">
<string>Autotype</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QTreeWidget" name="autotypeTree">
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<property name="showDropIndicator" stdset="0">
<bool>true</bool>
</property>
<property name="rootIsDecorated">
<bool>true</bool>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
<property name="columnCount">
<number>2</number>
</property>
<attribute name="headerCascadingSectionResizes">
<bool>false</bool>
</attribute>
<attribute name="headerDefaultSectionSize">
<number>250</number>
</attribute>
<attribute name="headerMinimumSectionSize">
<number>50</number>
</attribute>
<attribute name="headerStretchLastSection">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string>Window</string>
</property>
</column>
<column>
<property name="text">
<string>Sequence</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>