Block non-user updates in DatabaseWidgetStateSync.
This commit is contained in:
@@ -724,6 +724,9 @@ void DatabaseWidget::toggleSearch()
|
|||||||
void DatabaseWidget::closeSearch()
|
void DatabaseWidget::closeSearch()
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_lastGroup);
|
Q_ASSERT(m_lastGroup);
|
||||||
|
|
||||||
|
Q_EMIT listModeAboutToActivate();
|
||||||
|
|
||||||
m_groupView->setCurrentGroup(m_lastGroup);
|
m_groupView->setCurrentGroup(m_lastGroup);
|
||||||
m_searchTimer->stop();
|
m_searchTimer->stop();
|
||||||
|
|
||||||
@@ -732,6 +735,8 @@ void DatabaseWidget::closeSearch()
|
|||||||
|
|
||||||
void DatabaseWidget::showSearch()
|
void DatabaseWidget::showSearch()
|
||||||
{
|
{
|
||||||
|
Q_EMIT searchModeAboutToActivate();
|
||||||
|
|
||||||
m_searchUi->searchEdit->blockSignals(true);
|
m_searchUi->searchEdit->blockSignals(true);
|
||||||
m_searchUi->searchEdit->clear();
|
m_searchUi->searchEdit->clear();
|
||||||
m_searchUi->searchEdit->blockSignals(false);
|
m_searchUi->searchEdit->blockSignals(false);
|
||||||
|
|||||||
@@ -88,7 +88,9 @@ Q_SIGNALS:
|
|||||||
void groupContextMenuRequested(const QPoint& globalPos);
|
void groupContextMenuRequested(const QPoint& globalPos);
|
||||||
void entryContextMenuRequested(const QPoint& globalPos);
|
void entryContextMenuRequested(const QPoint& globalPos);
|
||||||
void unlockedDatabase();
|
void unlockedDatabase();
|
||||||
|
void listModeAboutToActivate();
|
||||||
void listModeActivated();
|
void listModeActivated();
|
||||||
|
void searchModeAboutToActivate();
|
||||||
void searchModeActivated();
|
void searchModeActivated();
|
||||||
void splitterSizesChanged();
|
void splitterSizesChanged();
|
||||||
void entryColumnSizesChanged();
|
void entryColumnSizesChanged();
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
DatabaseWidgetStateSync::DatabaseWidgetStateSync(QObject* parent)
|
DatabaseWidgetStateSync::DatabaseWidgetStateSync(QObject* parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_activeDbWidget(Q_NULLPTR)
|
, m_activeDbWidget(Q_NULLPTR)
|
||||||
|
, m_blockUpdates(false)
|
||||||
{
|
{
|
||||||
m_splitterSizes = variantToIntList(config()->get("GUI/SplitterState"));
|
m_splitterSizes = variantToIntList(config()->get("GUI/SplitterState"));
|
||||||
m_columnSizesList = variantToIntList(config()->get("GUI/EntryListColumnSizes"));
|
m_columnSizesList = variantToIntList(config()->get("GUI/EntryListColumnSizes"));
|
||||||
@@ -45,6 +46,8 @@ void DatabaseWidgetStateSync::setActive(DatabaseWidget* dbWidget)
|
|||||||
m_activeDbWidget = dbWidget;
|
m_activeDbWidget = dbWidget;
|
||||||
|
|
||||||
if (m_activeDbWidget) {
|
if (m_activeDbWidget) {
|
||||||
|
m_blockUpdates = true;
|
||||||
|
|
||||||
if (!m_splitterSizes.isEmpty()) {
|
if (!m_splitterSizes.isEmpty()) {
|
||||||
m_activeDbWidget->setSplitterSizes(m_splitterSizes);
|
m_activeDbWidget->setSplitterSizes(m_splitterSizes);
|
||||||
}
|
}
|
||||||
@@ -56,6 +59,8 @@ void DatabaseWidgetStateSync::setActive(DatabaseWidget* dbWidget)
|
|||||||
restoreSearchView();
|
restoreSearchView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_blockUpdates = false;
|
||||||
|
|
||||||
connect(m_activeDbWidget, SIGNAL(splitterSizesChanged()),
|
connect(m_activeDbWidget, SIGNAL(splitterSizesChanged()),
|
||||||
SLOT(updateSplitterSizes()));
|
SLOT(updateSplitterSizes()));
|
||||||
connect(m_activeDbWidget, SIGNAL(entryColumnSizesChanged()),
|
connect(m_activeDbWidget, SIGNAL(entryColumnSizesChanged()),
|
||||||
@@ -64,6 +69,10 @@ void DatabaseWidgetStateSync::setActive(DatabaseWidget* dbWidget)
|
|||||||
SLOT(restoreListView()));
|
SLOT(restoreListView()));
|
||||||
connect(m_activeDbWidget, SIGNAL(searchModeActivated()),
|
connect(m_activeDbWidget, SIGNAL(searchModeActivated()),
|
||||||
SLOT(restoreSearchView()));
|
SLOT(restoreSearchView()));
|
||||||
|
connect(m_activeDbWidget, SIGNAL(listModeAboutToActivate()),
|
||||||
|
SLOT(blockUpdates()));
|
||||||
|
connect(m_activeDbWidget, SIGNAL(searchModeAboutToActivate()),
|
||||||
|
SLOT(blockUpdates()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,6 +81,8 @@ void DatabaseWidgetStateSync::restoreListView()
|
|||||||
if (!m_columnSizesList.isEmpty()) {
|
if (!m_columnSizesList.isEmpty()) {
|
||||||
m_activeDbWidget->setEntryViewHeaderSizes(m_columnSizesList);
|
m_activeDbWidget->setEntryViewHeaderSizes(m_columnSizesList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_blockUpdates = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseWidgetStateSync::restoreSearchView()
|
void DatabaseWidgetStateSync::restoreSearchView()
|
||||||
@@ -79,15 +90,30 @@ void DatabaseWidgetStateSync::restoreSearchView()
|
|||||||
if (!m_columnSizesSearch.isEmpty()) {
|
if (!m_columnSizesSearch.isEmpty()) {
|
||||||
m_activeDbWidget->setEntryViewHeaderSizes(m_columnSizesSearch);
|
m_activeDbWidget->setEntryViewHeaderSizes(m_columnSizesSearch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_blockUpdates = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DatabaseWidgetStateSync::blockUpdates()
|
||||||
|
{
|
||||||
|
m_blockUpdates = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseWidgetStateSync::updateSplitterSizes()
|
void DatabaseWidgetStateSync::updateSplitterSizes()
|
||||||
{
|
{
|
||||||
|
if (m_blockUpdates) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_splitterSizes = m_activeDbWidget->splitterSizes();
|
m_splitterSizes = m_activeDbWidget->splitterSizes();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseWidgetStateSync::updateColumnSizes()
|
void DatabaseWidgetStateSync::updateColumnSizes()
|
||||||
{
|
{
|
||||||
|
if (m_blockUpdates) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_activeDbWidget->isGroupSelected()) {
|
if (m_activeDbWidget->isGroupSelected()) {
|
||||||
m_columnSizesList = m_activeDbWidget->entryHeaderViewSizes();
|
m_columnSizesList = m_activeDbWidget->entryHeaderViewSizes();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public Q_SLOTS:
|
|||||||
void restoreSearchView();
|
void restoreSearchView();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
|
void blockUpdates();
|
||||||
void updateSplitterSizes();
|
void updateSplitterSizes();
|
||||||
void updateColumnSizes();
|
void updateColumnSizes();
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@ private:
|
|||||||
|
|
||||||
DatabaseWidget* m_activeDbWidget;
|
DatabaseWidget* m_activeDbWidget;
|
||||||
|
|
||||||
|
bool m_blockUpdates;
|
||||||
QList<int> m_splitterSizes;
|
QList<int> m_splitterSizes;
|
||||||
QList<int> m_columnSizesList;
|
QList<int> m_columnSizesList;
|
||||||
QList<int> m_columnSizesSearch;
|
QList<int> m_columnSizesSearch;
|
||||||
|
|||||||
Reference in New Issue
Block a user