diff --git a/CMakeLists.txt b/CMakeLists.txt index cb3d1bb..721de41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,6 +101,7 @@ set(REQUIRED_ICONS dialog-ok-apply dialog-password document-close + document-encrypt document-export document-new document-open @@ -118,6 +119,7 @@ set(REQUIRED_ICONS flag-black flag-blue folder + folder-add folder-symbolic go-next help-about @@ -127,17 +129,37 @@ set(REQUIRED_ICONS password-generate password-show-off password-show-on - passwordmanager preferences-desktop-icons preferences-desktop-locale qtcreator - sheet story-editor system-file-manager system-run system-search window-close ) +set(REQUIRED_ICONS_FOR_KIRIGAMI + application-menu + arrow-down + dialog-close + document-decrypt + edit + folder-sync + go-next-symbolic + go-next-symbolic-rtl + go-previous-symbolic + go-previous-symbolic-rtl + go-up + handle-sort + overflow-menu + view-left-close + view-left-new + view-list-icons + view-right-close + view-right-new + window-close + window-close-symbolic +) # find c++utilities find_package(c++utilities 4.10.0 REQUIRED) @@ -157,6 +179,12 @@ endif() find_package(passwordfile 3.1.0 REQUIRED) use_password_file() +# require additional icons when using Kirigami +if(QUICK_QUI) + list(APPEND REQUIRED_ICONS ${REQUIRED_ICONS_FOR_KIRIGAMI}) + list(REMOVE_DUPLICATES REQUIRED_ICONS) +endif() + # require Qt AndroidExtras if(ANDROID AND QUICK_GUI) list(APPEND ADDITIONAL_QT_MODULES AndroidExtras) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index c718d53..7212953 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,6 +1,6 @@ - + - + diff --git a/android/src/org/martchus/passwordmanager/Activity.java b/android/src/org/martchus/passwordmanager/Activity.java index d84526b..770b992 100644 --- a/android/src/org/martchus/passwordmanager/Activity.java +++ b/android/src/org/martchus/passwordmanager/Activity.java @@ -3,7 +3,10 @@ package org.martchus.passwordmanager; import android.content.Intent; import android.content.ActivityNotFoundException; import android.net.Uri; +import android.os.Bundle; import android.os.ParcelFileDescriptor; +import android.view.Window; +import android.view.WindowManager.LayoutParams; import android.support.v4.provider.DocumentFile; import java.io.FileNotFoundException; import org.qtproject.qt5.android.bindings.QtActivity; @@ -45,6 +48,14 @@ public class Activity extends QtActivity { } } + public void applyTheming() { + Window window = getWindow(); + window.addFlags(LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.clearFlags(LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.setStatusBarColor(0x000000FF); + window.setNavigationBarColor(0x000000FF); + } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { diff --git a/qml/main.qml b/qml/main.qml index 7950233..fae8018 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -9,22 +9,24 @@ Kirigami.ApplicationWindow { property alias showPasswordsOnFocus: showPasswordsOnFocusSwitch.checked header: Kirigami.ApplicationHeader { - backButtonEnabled: true + backButtonEnabled: false minimumHeight: 0 preferredHeight: Kirigami.Units.gridUnit * 2.3 maximumHeight: Kirigami.Units.gridUnit * 3 + /* Controls.TextField { anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter placeholderText: qsTr("Filter") width: Kirigami.Units.gridUnit * 8 } + */ } globalDrawer: Kirigami.GlobalDrawer { id: leftMenu title: qsTr("Password Manager") - titleIcon: "qrc://icons/hicolor/scalable/apps/passwordmanager.svg" + titleIcon: "qrc://icons/hicolor/scalable/apps/passwordmanager-black.svg" visible: !nativeInterface.fileOpen topContent: ColumnLayout { Layout.fillWidth: true @@ -87,7 +89,7 @@ Kirigami.ApplicationWindow { Kirigami.Action { text: "Change password" enabled: nativeInterface.fileOpen - iconName: "dialog-password" + iconName: "document-encrypt" onTriggered: enterPasswordDialog.askForNewPassword( "Change password for " + nativeInterface.filePath) }, diff --git a/quickgui/android.cpp b/quickgui/android.cpp index a36faa7..6570416 100644 --- a/quickgui/android.cpp +++ b/quickgui/android.cpp @@ -21,6 +21,11 @@ namespace QtGui { static Controller *controllerForAndroid = nullptr; +void applyThemingForAndroid() +{ + QtAndroid::androidActivity().callObjectMethod("applyTheming", "()"); +} + void registerControllerForAndroid(Controller *controller) { controllerForAndroid = controller; diff --git a/quickgui/android.h b/quickgui/android.h index 7e1f587..c4578d5 100644 --- a/quickgui/android.h +++ b/quickgui/android.h @@ -11,6 +11,8 @@ QT_END_NAMESPACE namespace QtGui { class Controller; + +void applyThemingForAndroid(); void registerControllerForAndroid(Controller *controller); bool showAndroidFileDialog(bool existing); int openFileDescriptorFromAndroidContentUrl(const QString &url, const QString &mode); diff --git a/quickgui/initiatequick.cpp b/quickgui/initiatequick.cpp index 70604b1..fae8f52 100644 --- a/quickgui/initiatequick.cpp +++ b/quickgui/initiatequick.cpp @@ -98,13 +98,7 @@ int runQuickGui(int argc, char *argv[], const QtConfigArguments &qtConfigArgs, c engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml"))); #ifdef Q_OS_ANDROID - QtAndroid::runOnAndroidThread([=]() { - QAndroidJniObject window = QtAndroid::androidActivity().callObjectMethod("getWindow", "()Landroid/view/Window;"); - window.callMethod("addFlags", "(I)V", Android::WindowManager::LayoutParams::DrawsSystemBarBackgrounds); - window.callMethod("clearFlags", "(I)V", Android::WindowManager::LayoutParams::TranslucentStatus); - window.callMethod("setStatusBarColor", "(I)V", QColor("#2196f3").rgba()); - window.callMethod("setNavigationBarColor", "(I)V", QColor("#2196f3").rgba()); - }); + applyThemingForAndroid(); #endif // run event loop diff --git a/resources/icons.qrc b/resources/icons.qrc index b79ac22..34776e0 100644 --- a/resources/icons.qrc +++ b/resources/icons.qrc @@ -2,5 +2,6 @@ icons/hicolor/128x128/apps/passwordmanager.png icons/hicolor/scalable/apps/passwordmanager.svg + icons/hicolor/scalable/apps/passwordmanager-black.svg diff --git a/resources/icons/hicolor/scalable/apps/passwordmanager-black.svg b/resources/icons/hicolor/scalable/apps/passwordmanager-black.svg new file mode 100644 index 0000000..17c9201 --- /dev/null +++ b/resources/icons/hicolor/scalable/apps/passwordmanager-black.svg @@ -0,0 +1,107 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/resources/icons/hicolor/scalable/apps/passwordmanager-circle.svg b/resources/icons/hicolor/scalable/apps/passwordmanager-circle.svg new file mode 100644 index 0000000..16cb9be --- /dev/null +++ b/resources/icons/hicolor/scalable/apps/passwordmanager-circle.svg @@ -0,0 +1,126 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/qtquickcontrols2.conf b/resources/qtquickcontrols2.conf index 2d33cda..f347b4e 100644 --- a/resources/qtquickcontrols2.conf +++ b/resources/qtquickcontrols2.conf @@ -1,8 +1,8 @@ [Material] -Primary=#2196F3 -Accent=#2196F3 +Primary=#000000 +Accent=#000000 Theme=System [Universal] -Accent=#2196F3 +Accent=#000000 Theme=System