diff options
author | alex-z <blackslayer4@gmail.com> | 2021-09-09 14:33:57 +0300 |
---|---|---|
committer | alex-z <blackslayer4@gmail.com> | 2021-10-25 14:45:05 +0300 |
commit | c1dab7e4cb254bf492b458c8c0c1bab8f55b17b0 (patch) | |
tree | 66681ba48f072166942867ee9021a7934d633e6f /src/gui/tray/UnifiedSearchInputContainer.qml | |
parent | b8e2dc24f3c1d67424dd363af85f9311a702dd78 (diff) |
Unified Search via Tray window
Signed-off-by: alex-z <blackslayer4@gmail.com>
Diffstat (limited to 'src/gui/tray/UnifiedSearchInputContainer.qml')
-rw-r--r-- | src/gui/tray/UnifiedSearchInputContainer.qml | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/gui/tray/UnifiedSearchInputContainer.qml b/src/gui/tray/UnifiedSearchInputContainer.qml new file mode 100644 index 000000000..eda93a11d --- /dev/null +++ b/src/gui/tray/UnifiedSearchInputContainer.qml @@ -0,0 +1,110 @@ +import QtQml 2.15 +import QtQuick 2.15 +import QtQuick.Controls 2.3 +import QtGraphicalEffects 1.0 +import Style 1.0 + +TextField { + id: trayWindowUnifiedSearchTextField + + property bool isSearchInProgress: false + + readonly property color textFieldIconsColor: Style.menuBorder + + readonly property int textFieldIconsOffset: 10 + + readonly property double textFieldIconsScaleFactor: 0.6 + + readonly property int textFieldHorizontalPaddingOffset: 14 + + leftPadding: trayWindowUnifiedSearchTextFieldSearchIcon.width + trayWindowUnifiedSearchTextFieldSearchIcon.anchors.leftMargin + textFieldHorizontalPaddingOffset + rightPadding: trayWindowUnifiedSearchTextFieldClearTextButton.width + trayWindowUnifiedSearchTextFieldClearTextButton.anchors.rightMargin + textFieldHorizontalPaddingOffset + + placeholderText: qsTr("Search files, messages, events...") + + selectByMouse: true + + background: Rectangle { + radius: 5 + border.color: parent.activeFocus ? Style.ncBlue : Style.menuBorder + border.width: 1 + } + + Image { + id: trayWindowUnifiedSearchTextFieldSearchIcon + + anchors { + left: parent.left + leftMargin: parent.textFieldIconsOffset + verticalCenter: parent.verticalCenter + } + + visible: !trayWindowUnifiedSearchTextField.isSearchInProgress + + smooth: true; + antialiasing: true + mipmap: true + + source: "qrc:///client/theme/black/search.svg" + sourceSize: Qt.size(parent.height * parent.textFieldIconsScaleFactor, parent.height * parent.textFieldIconsScaleFactor) + + ColorOverlay { + anchors.fill: parent + source: parent + cached: true + color: parent.parent.textFieldIconsColor + } + } + + BusyIndicator { + id: trayWindowUnifiedSearchTextFieldIconInProgress + running: visible + visible: trayWindowUnifiedSearchTextField.isSearchInProgress + anchors { + left: trayWindowUnifiedSearchTextField.left + bottom: trayWindowUnifiedSearchTextField.bottom + leftMargin: trayWindowUnifiedSearchTextField.textFieldIconsOffset - 4 + topMargin: 4 + bottomMargin: 4 + verticalCenter: trayWindowUnifiedSearchTextField.verticalCenter + } + width: height + } + + Image { + id: trayWindowUnifiedSearchTextFieldClearTextButton + + anchors { + right: parent.right + rightMargin: parent.textFieldIconsOffset + verticalCenter: parent.verticalCenter + } + + smooth: true; + antialiasing: true + mipmap: true + + visible: parent.text + + source: "qrc:///client/theme/black/clear.svg" + sourceSize: Qt.size(parent.height * parent.textFieldIconsScaleFactor, parent.height * parent.textFieldIconsScaleFactor) + + ColorOverlay { + anchors.fill: parent + cached: true + source: parent + color: parent.parent.textFieldIconsColor + } + + MouseArea { + id: trayWindowUnifiedSearchTextFieldClearTextButtonMouseArea + + anchors.fill: parent + + onClicked: { + trayWindowUnifiedSearchTextField.text = "" + trayWindowUnifiedSearchTextField.onTextEdited() + } + } + } +} |