mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-02-17 21:04:19 -05:00
Synchronize the height of the preview panel for all open databases
This commit is contained in:
parent
6bbd42bfd1
commit
8b00d0580b
@ -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<int> DatabaseWidget::splitterSizes() const
|
||||
QList<int> DatabaseWidget::mainSplitterSizes() const
|
||||
{
|
||||
return m_splitter->sizes();
|
||||
return m_mainSplitter->sizes();
|
||||
}
|
||||
|
||||
void DatabaseWidget::setSplitterSizes(const QList<int>& sizes)
|
||||
void DatabaseWidget::setMainSplitterSizes(const QList<int>& sizes)
|
||||
{
|
||||
m_splitter->setSizes(sizes);
|
||||
m_mainSplitter->setSizes(sizes);
|
||||
}
|
||||
|
||||
QList<int> DatabaseWidget::detailSplitterSizes() const
|
||||
{
|
||||
return m_detailSplitter->sizes();
|
||||
}
|
||||
|
||||
void DatabaseWidget::setDetailSplitterSizes(const QList<int> &sizes)
|
||||
{
|
||||
m_detailSplitter->setSizes(sizes);
|
||||
}
|
||||
|
||||
QList<int> DatabaseWidget::entryHeaderViewSizes() const
|
||||
|
@ -88,8 +88,10 @@ public:
|
||||
bool isGroupSelected() const;
|
||||
bool isInEditMode() const;
|
||||
bool isEditWidgetModified() const;
|
||||
QList<int> splitterSizes() const;
|
||||
void setSplitterSizes(const QList<int>& sizes);
|
||||
QList<int> mainSplitterSizes() const;
|
||||
void setMainSplitterSizes(const QList<int>& sizes);
|
||||
QList<int> detailSplitterSizes() const;
|
||||
void setDetailSplitterSizes(const QList<int>& sizes);
|
||||
QList<int> entryHeaderViewSizes() const;
|
||||
void setEntryViewHeaderSizes(const QList<int>& 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;
|
||||
|
@ -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,8 +50,11 @@ 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_detailSplitterSizes.isEmpty())
|
||||
m_activeDbWidget->setDetailSplitterSizes(m_detailSplitterSizes);
|
||||
|
||||
if (m_activeDbWidget->isInSearchMode())
|
||||
restoreSearchView();
|
||||
@ -58,7 +63,9 @@ void DatabaseWidgetStateSync::setActive(DatabaseWidget* dbWidget)
|
||||
|
||||
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 +109,8 @@ void DatabaseWidgetStateSync::updateSplitterSizes()
|
||||
return;
|
||||
}
|
||||
|
||||
m_splitterSizes = m_activeDbWidget->splitterSizes();
|
||||
m_mainSplitterSizes = m_activeDbWidget->mainSplitterSizes();
|
||||
m_detailSplitterSizes = m_activeDbWidget->detailSplitterSizes();
|
||||
}
|
||||
|
||||
void DatabaseWidgetStateSync::updateColumnSizes()
|
||||
|
@ -46,7 +46,8 @@ private:
|
||||
DatabaseWidget* m_activeDbWidget;
|
||||
|
||||
bool m_blockUpdates;
|
||||
QList<int> m_splitterSizes;
|
||||
QList<int> m_mainSplitterSizes;
|
||||
QList<int> m_detailSplitterSizes;
|
||||
QList<int> m_columnSizesList;
|
||||
QList<int> m_columnSizesSearch;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user