keepassxc/src/gui/DatabaseWidgetStateSync.h
Fonic e3a5a22b84 Update state syncer to account for new features
Update state syncer (class DatabaseWidgetStateSync) to account for new
features:
- properly sync view state when switching tabs
- properly read/write view state from/to config

Update classes EntryModel and EntryView to consistenly name list/search
modes. Before, both classes defined list mode as 'group mode' and search
mode as 'entry list mode', which differed from naming in other classes
such as DatabaseWidget.
2018-01-21 15:17:05 +01:00

75 lines
2.1 KiB
C++

/*
* Copyright (C) 2014 Felix Geyer <debfx@fobos.de>
* Copyright (C) 2014 Florian Geyer <blueice@fobos.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 or (at your option)
* version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KEEPASSX_DATABASEWIDGETSTATESYNC_H
#define KEEPASSX_DATABASEWIDGETSTATESYNC_H
#include "gui/DatabaseWidget.h"
class DatabaseWidgetStateSync : public QObject
{
Q_OBJECT
public:
explicit DatabaseWidgetStateSync(QObject* parent = nullptr);
~DatabaseWidgetStateSync();
public slots:
void setActive(DatabaseWidget* dbWidget);
void restoreListView();
void restoreSearchView();
private slots:
void blockUpdates();
void updateSplitterSizes();
/**
* @author Fonic <https://github.com/fonic>
* Slot to update entry view view state
*/
void updateViewState();
private:
static QList<int> variantToIntList(const QVariant& variant);
static QVariant intListToVariant(const QList<int>& list);
DatabaseWidget* m_activeDbWidget;
bool m_blockUpdates;
QList<int> m_mainSplitterSizes;
QList<int> m_detailSplitterSizes;
/**
* @author Fonic <https://github.com/fonic>
* Properties to store state of entry view 'Hide Usernames'/'Hide
* Passwords' settings
*/
bool m_entryHideUsernames;
bool m_entryHidePasswords;
/**
* @author Fonic <https://github.com/fonic>
* Properties to store states of entry view list/search view (replaces
* m_columnSizesList/m_columnSizesSearch)
*/
QByteArray m_entryListViewState;
QByteArray m_entrySearchViewState;
};
#endif // KEEPASSX_DATABASEWIDGETSTATESYNC_H