diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index 6571668c8..ec51312c1 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -73,15 +73,15 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent) QLayout* layout = new QHBoxLayout(); mainLayout->addWidget(m_messageWidget); mainLayout->addLayout(layout); - m_splitter = new QSplitter(m_mainWidget); - m_splitter->setChildrenCollapsible(false); + m_mainSplitter = new QSplitter(m_mainWidget); + m_mainSplitter->setChildrenCollapsible(false); m_detailSplitter = new QSplitter(m_mainWidget); m_detailSplitter->setOrientation(Qt::Vertical); m_detailSplitter->setChildrenCollapsible(true); - QWidget* rightHandSideWidget = new QWidget(m_splitter); + QWidget* rightHandSideWidget = new QWidget(m_mainSplitter); - m_groupView = new GroupView(db, m_splitter); + m_groupView = new GroupView(db, m_mainSplitter); m_groupView->setObjectName("groupView"); m_groupView->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_groupView, SIGNAL(customContextMenuRequested(QPoint)), @@ -122,13 +122,13 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent) setTabOrder(m_entryView, m_groupView); - m_splitter->addWidget(m_groupView); - m_splitter->addWidget(rightHandSideWidget); + m_mainSplitter->addWidget(m_groupView); + m_mainSplitter->addWidget(rightHandSideWidget); - m_splitter->setStretchFactor(0, 30); - m_splitter->setStretchFactor(1, 70); + m_mainSplitter->setStretchFactor(0, 30); + m_mainSplitter->setStretchFactor(1, 70); - layout->addWidget(m_splitter); + layout->addWidget(m_mainSplitter); m_mainWidget->setLayout(mainLayout); m_editEntryWidget = new EditEntryWidget(); @@ -168,7 +168,8 @@ DatabaseWidget::DatabaseWidget(Database* db, QWidget* parent) addWidget(m_keepass1OpenWidget); addWidget(m_unlockDatabaseWidget); - connect(m_splitter, SIGNAL(splitterMoved(int,int)), SIGNAL(splitterSizesChanged())); + connect(m_mainSplitter, SIGNAL(splitterMoved(int,int)), SIGNAL(mainSplitterSizesChanged())); + connect(m_detailSplitter, SIGNAL(splitterMoved(int,int)), SIGNAL(detailSplitterSizesChanged())); connect(m_entryView->header(), SIGNAL(sectionResized(int,int,int)), SIGNAL(entryColumnSizesChanged())); connect(m_groupView, SIGNAL(groupChanged(Group*)), this, SLOT(onGroupChanged(Group*))); connect(m_groupView, SIGNAL(groupChanged(Group*)), SIGNAL(groupChanged())); @@ -251,14 +252,24 @@ bool DatabaseWidget::isEditWidgetModified() const } } -QList DatabaseWidget::splitterSizes() const +QList DatabaseWidget::mainSplitterSizes() const { - return m_splitter->sizes(); + return m_mainSplitter->sizes(); } -void DatabaseWidget::setSplitterSizes(const QList& sizes) +void DatabaseWidget::setMainSplitterSizes(const QList& sizes) { - m_splitter->setSizes(sizes); + m_mainSplitter->setSizes(sizes); +} + +QList DatabaseWidget::detailSplitterSizes() const +{ + return m_detailSplitter->sizes(); +} + +void DatabaseWidget::setDetailSplitterSizes(const QList &sizes) +{ + m_detailSplitter->setSizes(sizes); } QList DatabaseWidget::entryHeaderViewSizes() const diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index 404adb528..215077594 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -88,8 +88,10 @@ public: bool isGroupSelected() const; bool isInEditMode() const; bool isEditWidgetModified() const; - QList splitterSizes() const; - void setSplitterSizes(const QList& sizes); + QList mainSplitterSizes() const; + void setMainSplitterSizes(const QList& sizes); + QList detailSplitterSizes() const; + void setDetailSplitterSizes(const QList& sizes); QList entryHeaderViewSizes() const; void setEntryViewHeaderSizes(const QList& sizes); void clearAllWidgets(); @@ -123,7 +125,8 @@ signals: void listModeActivated(); void searchModeAboutToActivate(); void searchModeActivated(); - void splitterSizesChanged(); + void mainSplitterSizesChanged(); + void detailSplitterSizesChanged(); void entryColumnSizesChanged(); void updateSearch(QString text); @@ -214,7 +217,7 @@ private: KeePass1OpenWidget* m_keepass1OpenWidget; UnlockDatabaseWidget* m_unlockDatabaseWidget; UnlockDatabaseDialog* m_unlockDatabaseDialog; - QSplitter* m_splitter; + QSplitter* m_mainSplitter; QSplitter* m_detailSplitter; GroupView* m_groupView; EntryView* m_entryView; diff --git a/src/gui/DatabaseWidgetStateSync.cpp b/src/gui/DatabaseWidgetStateSync.cpp index 1510d8440..57a3dcf86 100644 --- a/src/gui/DatabaseWidgetStateSync.cpp +++ b/src/gui/DatabaseWidgetStateSync.cpp @@ -25,14 +25,16 @@ DatabaseWidgetStateSync::DatabaseWidgetStateSync(QObject* parent) , m_activeDbWidget(nullptr) , m_blockUpdates(false) { - m_splitterSizes = variantToIntList(config()->get("GUI/SplitterState")); + m_mainSplitterSizes = variantToIntList(config()->get("GUI/SplitterState")); + m_detailSplitterSizes = variantToIntList(config()->get("GUI/DetailSplitterState")); m_columnSizesList = variantToIntList(config()->get("GUI/EntryListColumnSizes")); m_columnSizesSearch = variantToIntList(config()->get("GUI/EntrySearchColumnSizes")); } DatabaseWidgetStateSync::~DatabaseWidgetStateSync() { - config()->set("GUI/SplitterState", intListToVariant(m_splitterSizes)); + config()->set("GUI/SplitterState", intListToVariant(m_mainSplitterSizes)); + config()->set("GUI/DetailSplitterState", intListToVariant(m_detailSplitterSizes)); config()->set("GUI/EntryListColumnSizes", intListToVariant(m_columnSizesList)); config()->set("GUI/EntrySearchColumnSizes", intListToVariant(m_columnSizesSearch)); } @@ -48,17 +50,25 @@ void DatabaseWidgetStateSync::setActive(DatabaseWidget* dbWidget) if (m_activeDbWidget) { m_blockUpdates = true; - if (!m_splitterSizes.isEmpty()) - m_activeDbWidget->setSplitterSizes(m_splitterSizes); + if (!m_mainSplitterSizes.isEmpty()) { + m_activeDbWidget->setMainSplitterSizes(m_mainSplitterSizes); + } - if (m_activeDbWidget->isInSearchMode()) + if (!m_detailSplitterSizes.isEmpty()) { + m_activeDbWidget->setDetailSplitterSizes(m_detailSplitterSizes); + } + + if (m_activeDbWidget->isInSearchMode()) { restoreSearchView(); - else + } else { restoreListView(); + } m_blockUpdates = false; - connect(m_activeDbWidget, SIGNAL(splitterSizesChanged()), + connect(m_activeDbWidget, SIGNAL(mainSplitterSizesChanged()), + SLOT(updateSplitterSizes())); + connect(m_activeDbWidget, SIGNAL(detailSplitterSizesChanged()), SLOT(updateSplitterSizes())); connect(m_activeDbWidget, SIGNAL(entryColumnSizesChanged()), SLOT(updateColumnSizes())); @@ -102,7 +112,8 @@ void DatabaseWidgetStateSync::updateSplitterSizes() return; } - m_splitterSizes = m_activeDbWidget->splitterSizes(); + m_mainSplitterSizes = m_activeDbWidget->mainSplitterSizes(); + m_detailSplitterSizes = m_activeDbWidget->detailSplitterSizes(); } void DatabaseWidgetStateSync::updateColumnSizes() diff --git a/src/gui/DatabaseWidgetStateSync.h b/src/gui/DatabaseWidgetStateSync.h index 96ecd104a..79a8ded38 100644 --- a/src/gui/DatabaseWidgetStateSync.h +++ b/src/gui/DatabaseWidgetStateSync.h @@ -46,7 +46,8 @@ private: DatabaseWidget* m_activeDbWidget; bool m_blockUpdates; - QList m_splitterSizes; + QList m_mainSplitterSizes; + QList m_detailSplitterSizes; QList m_columnSizesList; QList m_columnSizesSearch; }; diff --git a/src/gui/DetailsWidget.ui b/src/gui/DetailsWidget.ui index fb31409f8..8fbafe349 100644 --- a/src/gui/DetailsWidget.ui +++ b/src/gui/DetailsWidget.ui @@ -6,22 +6,10 @@ 0 0 - 630 + 600 200 - - - 0 - 0 - - - - - 16777215 - 200 - - @@ -36,12 +24,6 @@ 0 - - - 20 - 16777215 - - @@ -166,85 +148,19 @@ - - - 0 - 0 - - 0 - + + + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + - - - - - - - 0 - 0 - - - - PointingHandCursor - - - - - - - - - - - 0 - 0 - - - - - 75 - true - - - - Expiration - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 9 - 75 - true - - - - URL - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - @@ -267,6 +183,102 @@ + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + 0 + 0 + + + + + 9 + 75 + true + + + + URL + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + PointingHandCursor + + + + + + + + + + + 0 + 0 + + + + + 75 + true + + + + Expiration + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + @@ -291,41 +303,11 @@ - - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - 0 - 0 - - - - - + + @@ -347,7 +329,30 @@ - + + + + + 0 + 0 + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + @@ -357,7 +362,7 @@ - + @@ -379,7 +384,7 @@ - + @@ -389,7 +394,7 @@ - + @@ -411,15 +416,18 @@ - - + + - Qt::Vertical + Qt::Horizontal + + + QSizePolicy::Fixed 20 - 40 + 20 @@ -434,27 +442,9 @@ Attributes - - + + - - - 0 - 1 - - - - - 0 - 80 - - - - - 16777215 - 80 - - Qt::ClickFocus @@ -469,27 +459,9 @@ Notes - - + + - - - 0 - 1 - - - - - 0 - 80 - - - - - 16777215 - 80 - - Qt::ClickFocus @@ -504,8 +476,8 @@ Autotype - - + + QFrame::Sunken