@@ -303,6 +303,7 @@ Item {
303303 property var sshKeyModalItem: null
304304 property bool showPasswordHistoryModal: false
305305 property var activePasswordHistoryItem: null
306+ readonly property bool hasActiveModal: root .showActionPalette || root .showSshKeyModal || root .showPasswordHistoryModal
306307 property var activeAttachmentPreview: null
307308 property string loadingAttachmentId: " "
308309
@@ -349,7 +350,7 @@ Item {
349350
350351 onEffectiveViewChanged: {
351352 Qt .callLater (function () {
352- if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField ) {
353+ if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root . hasActiveModal ) {
353354 searchHeader .searchField .forceActiveFocus ()
354355 } else if (root .opened && root .effectiveView !== " dependency_check" && authViewComponent && authViewComponent .unlockInput ) {
355356 authViewComponent .unlockInput .forceActiveFocus ()
@@ -969,19 +970,19 @@ Item {
969970 onShowActionPaletteChanged: {
970971 if (root .showActionPalette ) {
971972 root .updateAvailableActions ()
972- } else {
973+ } else if ( ! root . hasActiveModal ) {
973974 root .restoreSearchFocus ()
974975 }
975976 }
976977
977978 onShowSshKeyModalChanged: {
978- if (! root .showSshKeyModal ) {
979+ if (! root .showSshKeyModal && ! root . hasActiveModal ) {
979980 root .restoreSearchFocus ()
980981 }
981982 }
982983
983984 onShowPasswordHistoryModalChanged: {
984- if (! root .showPasswordHistoryModal ) {
985+ if (! root .showPasswordHistoryModal && ! root . hasActiveModal ) {
985986 root .restoreSearchFocus ()
986987 }
987988 }
@@ -1883,7 +1884,7 @@ Item {
18831884
18841885 Shortcut {
18851886 sequence: " Ctrl+K"
1886- enabled: root .opened && root .effectiveView === " search" && ! root .showActionPalette && ! root . showSshKeyModal
1887+ enabled: root .opened && root .effectiveView === " search" && ! root .hasActiveModal
18871888 onActivated: {
18881889 root .actionPaletteIndex = 0
18891890 root .showActionPalette = true
@@ -1892,51 +1893,51 @@ Item {
18921893
18931894 Shortcut {
18941895 sequences: [" Ctrl+Return" , " Ctrl+Enter" ]
1895- enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal
1896+ enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal
18961897 onActivated: root .copyItemTotp (root .selectedItem )
18971898 }
18981899
18991900 Shortcut {
19001901 sequence: " Ctrl+U"
1901- enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal
1902+ enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal
19021903 onActivated: root .copyItemUsername (root .selectedItem )
19031904 }
19041905
19051906 Shortcut {
19061907 sequence: " Ctrl+T"
1907- enabled: root .opened && (root .showPasswordHistoryModal || (root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal ))
1908+ enabled: root .opened && (root .showPasswordHistoryModal || (root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal ))
19081909 onActivated: root .toggleItemRevealed ()
19091910 }
19101911
19111912 Shortcut {
19121913 sequence: " Ctrl+O"
1913- enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal
1914+ enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal
19141915 onActivated: root .openFirstWebsite (root .selectedItem )
19151916 }
19161917
19171918 Shortcut {
19181919 sequence: " Ctrl+E"
1919- enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && root .selectedItem .type_name === " ssh_key" && ! root .showActionPalette && ! root . showSshKeyModal
1920+ enabled: root .opened && root .effectiveView === " search" && root .selectedItem !== null && root .selectedItem .type_name === " ssh_key" && ! root .hasActiveModal
19201921 onActivated: {
19211922 root .openSshKeyModal (" export" , root .selectedItem )
19221923 }
19231924 }
19241925
19251926 Shortcut {
19261927 sequence: " Ctrl+L"
1927- enabled: root .opened && root .authState .status === " unlocked" && ! root .showSshKeyModal
1928+ enabled: root .opened && root .authState .status === " unlocked" && ! root .hasActiveModal
19281929 onActivated: root .doLock ()
19291930 }
19301931
19311932 Shortcut {
19321933 sequence: " Ctrl+R"
1933- enabled: root .opened && (root .authState .status === " unlocked" || (root .authState .status === " locked" && root .authState .has_session )) && ! root .isBusy && ! root .showSshKeyModal
1934+ enabled: root .opened && (root .authState .status === " unlocked" || (root .authState .status === " locked" && root .authState .has_session )) && ! root .isBusy && ! root .hasActiveModal
19341935 onActivated: root .syncVault (false , true )
19351936 }
19361937
19371938 Shortcut {
19381939 sequence: " Ctrl+,"
1939- enabled: root .opened && ! root .showSshKeyModal
1940+ enabled: root .opened && ! root .hasActiveModal
19401941 onActivated: {
19411942 if (settingsView .showReleaseNotes ) {
19421943 settingsView .showReleaseNotes = false
@@ -1947,15 +1948,15 @@ Item {
19471948
19481949 Shortcut {
19491950 sequence: " Alt+V"
1950- enabled: root .opened && root .effectiveView === " search" && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal
1951+ enabled: root .opened && root .effectiveView === " search" && ! root .hasActiveModal
19511952 onActivated: {
19521953 if (searchHeader) searchHeader .openVaultScope ()
19531954 }
19541955 }
19551956
19561957 Shortcut {
19571958 sequence: " Alt+F"
1958- enabled: root .opened && root .effectiveView === " search" && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal
1959+ enabled: root .opened && root .effectiveView === " search" && ! root .hasActiveModal
19591960 onActivated: {
19601961 if (searchHeader) searchHeader .openFolderScope ()
19611962 }
@@ -1994,12 +1995,14 @@ Item {
19941995 Keys .priority : Keys .BeforeItem
19951996 Keys .onPressed : function (event ) {
19961997 if (event .modifiers & Qt .ControlModifier && (event .key === Qt .Key_T || (event .text && event .text .toLowerCase () === " t" ))) {
1997- root .toggleItemRevealed ()
1998- event .accepted = true
1999- return
1998+ if (root .showPasswordHistoryModal || (root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal )) {
1999+ root .toggleItemRevealed ()
2000+ event .accepted = true
2001+ return
2002+ }
20002003 }
20012004
2002- if (event .modifiers & Qt .AltModifier && root .effectiveView === " search" ) {
2005+ if (event .modifiers & Qt .AltModifier && root .effectiveView === " search" && ! root . hasActiveModal ) {
20032006 if (event .key === Qt .Key_V ) {
20042007 if (searchHeader) searchHeader .openVaultScope ()
20052008 event .accepted = true
@@ -2076,40 +2079,40 @@ Item {
20762079 }
20772080 event .accepted = true
20782081 } else if (event .modifiers & Qt .ControlModifier ) {
2079- if ((event .key === Qt .Key_Return || event .key === Qt .Key_Enter ) && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2082+ if ((event .key === Qt .Key_Return || event .key === Qt .Key_Enter ) && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal ) {
20802083 root .copyItemTotp (root .selectedItem )
20812084 event .accepted = true
2082- } else if (event .key === Qt .Key_U && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2085+ } else if (event .key === Qt .Key_U && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal ) {
20832086 root .copyItemUsername (root .selectedItem )
20842087 event .accepted = true
2085- } else if (event .key === Qt .Key_K && root .effectiveView === " search" && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2088+ } else if (event .key === Qt .Key_K && root .effectiveView === " search" && ! root .hasActiveModal ) {
20862089 root .actionPaletteIndex = 0
20872090 root .showActionPalette = true
20882091 event .accepted = true
2089- } else if (event .key === Qt .Key_T && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2092+ } else if (event .key === Qt .Key_T && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal ) {
20902093 root .toggleItemRevealed ()
20912094 event .accepted = true
2092- } else if (event .key === Qt .Key_O && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2095+ } else if (event .key === Qt .Key_O && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal ) {
20932096 root .openFirstWebsite (root .selectedItem )
20942097 event .accepted = true
2095- } else if (event .key === Qt .Key_E && root .effectiveView === " search" && root .selectedItem !== null && root .selectedItem .type_name === " ssh_key" && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2098+ } else if (event .key === Qt .Key_E && root .effectiveView === " search" && root .selectedItem !== null && root .selectedItem .type_name === " ssh_key" && ! root .hasActiveModal ) {
20962099 root .openSshKeyModal (" export" , root .selectedItem )
20972100 event .accepted = true
2098- } else if (event .key === Qt .Key_H && root .effectiveView === " search" && root .selectedItem !== null && ! root .showActionPalette && ! root . showSshKeyModal && ! root . showPasswordHistoryModal ) {
2101+ } else if (event .key === Qt .Key_H && root .effectiveView === " search" && root .selectedItem !== null && ! root .hasActiveModal ) {
20992102 if (root .selectedItem .login && root .selectedItem .login .password_history && root .selectedItem .login .password_history .length > 0 ) {
21002103 root .activePasswordHistoryItem = root .selectedItem
21012104 root .showPasswordHistoryModal = true
21022105 } else {
21032106 root .statusMessage = " No password history recorded for this item."
21042107 }
21052108 event .accepted = true
2106- } else if (event .key === Qt .Key_L && root .authState .status === " unlocked" && ! root .showSshKeyModal && ! root . showPasswordHistoryModal ) {
2109+ } else if (event .key === Qt .Key_L && root .authState .status === " unlocked" && ! root .hasActiveModal ) {
21072110 root .doLock ()
21082111 event .accepted = true
2109- } else if (event .key === Qt .Key_R && (root .authState .status === " unlocked" || (root .authState .status === " locked" && root .authState .has_session )) && ! root .isBusy && ! root .showSshKeyModal && ! root . showPasswordHistoryModal ) {
2112+ } else if (event .key === Qt .Key_R && (root .authState .status === " unlocked" || (root .authState .status === " locked" && root .authState .has_session )) && ! root .isBusy && ! root .hasActiveModal ) {
21102113 root .syncVault (false , true )
21112114 event .accepted = true
2112- } else if (event .key === Qt .Key_Comma && ! root .showSshKeyModal && ! root . showPasswordHistoryModal ) {
2115+ } else if (event .key === Qt .Key_Comma && ! root .hasActiveModal ) {
21132116 root .currentView = (root .effectiveView === " settings" ) ? " auto" : " settings"
21142117 event .accepted = true
21152118 }
@@ -2128,7 +2131,7 @@ Item {
21282131 SearchHeader {
21292132 id: searchHeader
21302133 visible: root .effectiveView === " search"
2131- modalsActive: root .showActionPalette || root . showSshKeyModal || root . showPasswordHistoryModal
2134+ modalsActive: root .hasActiveModal
21322135 Layout .preferredHeight : visible ? implicitHeight : 0
21332136 searchQuery: root .searchQuery
21342137 categoryList: root .categoryList
@@ -2724,7 +2727,7 @@ Item {
27242727 root .clearSensitiveState ()
27252728 }
27262729 Qt .callLater (function () {
2727- if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .showActionPalette ) {
2730+ if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .hasActiveModal ) {
27282731 if (! searchHeader .searchField .activeFocus ) {
27292732 var canRemember = Boolean (root .config && root .config .remember_last_search === true && root .authState && root .authState .status === " unlocked" )
27302733 searchHeader .focusSearch (canRemember)
@@ -3100,7 +3103,7 @@ Item {
31003103 root .statusMessage = " Vault synchronized."
31013104 root .loadVaultItems ()
31023105 Qt .callLater (function () {
3103- if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .showActionPalette ) {
3106+ if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .hasActiveModal ) {
31043107 searchHeader .searchField .forceActiveFocus ()
31053108 }
31063109 })
@@ -3134,7 +3137,7 @@ Item {
31343137 var cleanText = (text || " " ).trim ()
31353138 if (cleanText === root .lastVaultItemsRawText && root .rawVaultItems && root .rawVaultItems .length > 0 ) {
31363139 Qt .callLater (function () {
3137- if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .showActionPalette ) {
3140+ if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .hasActiveModal ) {
31383141 searchHeader .searchField .forceActiveFocus ()
31393142 }
31403143 })
@@ -3161,7 +3164,7 @@ Item {
31613164 }
31623165 root .filterVaultItems (false )
31633166 Qt .callLater (function () {
3164- if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .showActionPalette ) {
3167+ if (root .opened && root .effectiveView === " search" && searchHeader && searchHeader .searchField && ! root .hasActiveModal ) {
31653168 searchHeader .searchField .forceActiveFocus ()
31663169 }
31673170 })
0 commit comments