Skip to content

Commit

Permalink
Исправлена проблема, при которой невозможно было повторно ввести паро…
Browse files Browse the repository at this point in the history
…ль в случае

неправильного ввода пароля на зашифрованной ветке, когда в базе только одна
корневая зашифрованная ветка
  • Loading branch information
xintrea committed Nov 3, 2018
1 parent 606ddf7 commit ee2b02a
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 3 deletions.
2 changes: 1 addition & 1 deletion app/src/main.h
Expand Up @@ -34,7 +34,7 @@ using namespace std;
// Версия программы
#define APPLICATION_RELEASE_VERSION 1
#define APPLICATION_RELEASE_SUBVERSION 44
#define APPLICATION_RELEASE_MICROVERSION 44
#define APPLICATION_RELEASE_MICROVERSION 45


// Поддерживаемая версия формата базы (хранилища)
Expand Down
28 changes: 26 additions & 2 deletions app/src/views/tree/TreeScreen.cpp
Expand Up @@ -362,7 +362,7 @@ void TreeScreen::setupSignals(void)
connect(knowTreeView, &KnowTreeView::tapAndHoldGestureFinished,
this, &TreeScreen::onCustomContextMenuRequested);

// Соединение сигнал-слот что ветка выбрана мышкой или стрелками на клавиатуре
// Соединение сигнал-слот что ветка выбрана мышкой или стрелками на клавиатуре (через selection-модель)
if(mytetraConfig.getInterfaceMode()=="desktop")
connect(knowTreeView->selectionModel(), &QItemSelectionModel::currentRowChanged,
this, &TreeScreen::onKnowtreeClicked);
Expand All @@ -371,6 +371,12 @@ void TreeScreen::setupSignals(void)
connect(knowTreeView, &KnowTreeView::clicked,
this, &TreeScreen::onKnowtreeClicked);

// Сигнал что ветка выбрана мышкой
// используется для возможности ввести пароль, если в базе одна корневая ветка, и она зашифрована
connect(knowTreeView, &KnowTreeView::pressed,
this, &TreeScreen::checkIfOneRootCryptItem);


// Сигнал чтобы открыть на редактирование параметры записи при двойном клике
// connect(knowTreeView, SIGNAL(doubleClicked(const QModelIndex &)),
// actionList["editBranch"], SLOT(trigger(void)));
Expand Down Expand Up @@ -1389,7 +1395,25 @@ void TreeScreen::updateBranchOnScreen(const QModelIndex &index)
}


// Действия при клике на ветку дерева
// Вспомогательный слот, позволяющий ввести пароль на ветку в случае,
// если в базе только одна корневая ветка и она зашифрована
void TreeScreen::checkIfOneRootCryptItem(const QModelIndex &index)
{
// Если пароль доступа к зашифрованным данным не вводился в этой сессии
if(globalParameters.getCryptKey().length()==0) {

// Указатель на текущую выбранную ветку дерева
TreeItem *item = knowTreeModel->getItem(index);

// Проверяется, происходит ли клик по зашифрованной ветке
if(item->getField("crypt")=="1") {
onKnowtreeClicked(index); // Вызывается стандартный клик по ветке, он запустит процедуру ввода пароля
}
}
}


// Действия при клике на ветку дерева через selection-модель
void TreeScreen::onKnowtreeClicked(const QModelIndex &index)
{
// QModelIndex index = nodetreeview->selectionModel()->currentIndex();
Expand Down
1 change: 1 addition & 0 deletions app/src/views/tree/TreeScreen.h
Expand Up @@ -71,6 +71,7 @@ private slots:

// Действия при клике на ветку дерева
void onKnowtreeClicked(const QModelIndex &index);
void checkIfOneRootCryptItem(const QModelIndex &index);

// Открытие контекстного меню
void onCustomContextMenuRequested(const QPoint &pos);
Expand Down

0 comments on commit ee2b02a

Please sign in to comment.