mirror of
https://github.com/seiichiro0185/sailotp.git
synced 2024-11-22 07:39:42 +00:00
Added NotifyBanner component for showing notifications
Show notification after copying token to clipboard
This commit is contained in:
parent
0ea71dfb89
commit
9fe40ff767
6 changed files with 102 additions and 16 deletions
|
@ -29,7 +29,8 @@ OTHER_FILES += qml/harbour-sailotp.qml \
|
||||||
qml/lib/sha.js \
|
qml/lib/sha.js \
|
||||||
qml/sailotp.png \
|
qml/sailotp.png \
|
||||||
qml/pages/ExportPage.qml \
|
qml/pages/ExportPage.qml \
|
||||||
qml/lib/gibberish-aes.js
|
qml/lib/gibberish-aes.js \
|
||||||
|
qml/components/NotifyBanner.qml
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
src/fileio.h
|
src/fileio.h
|
||||||
|
|
84
qml/components/NotifyBanner.qml
Normal file
84
qml/components/NotifyBanner.qml
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2013, Stefan Brand <seiichiro@seiichiro0185.org>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
* are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice, this
|
||||||
|
* list of conditions and the following disclaimer in the documentation and/or other
|
||||||
|
* materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* 3. The names of the contributors may not be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||||
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: notifyBanner
|
||||||
|
width: Screen.width
|
||||||
|
height: notifyText.height + 2*Theme.paddingMedium
|
||||||
|
visible: showBanner
|
||||||
|
|
||||||
|
property bool showBanner: false
|
||||||
|
|
||||||
|
function show(text, time) {
|
||||||
|
notifyText.text = text;
|
||||||
|
timeout.interval = time;
|
||||||
|
showBanner = true;
|
||||||
|
timeout.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: timeout
|
||||||
|
interval: 3000
|
||||||
|
onTriggered: {
|
||||||
|
interval = 3000
|
||||||
|
showBanner = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: banner
|
||||||
|
anchors.fill: parent
|
||||||
|
color: Theme.secondaryHighlightColor
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: notifyText
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.margins: Theme.paddingLarge
|
||||||
|
|
||||||
|
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.primaryColor
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
elide: Text.ElideRight
|
||||||
|
maximumLineCount: 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
showBanner = false
|
||||||
|
timeout.stop()
|
||||||
|
timeout.interval = 3000
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,6 +30,7 @@
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
import Sailfish.Silica 1.0
|
import Sailfish.Silica 1.0
|
||||||
import "pages"
|
import "pages"
|
||||||
|
import "components"
|
||||||
|
|
||||||
ApplicationWindow
|
ApplicationWindow
|
||||||
{
|
{
|
||||||
|
@ -41,6 +42,8 @@ ApplicationWindow
|
||||||
property string coverType: ""
|
property string coverType: ""
|
||||||
property string coverOTP: "------"
|
property string coverOTP: "------"
|
||||||
|
|
||||||
|
NotifyBanner { id: notify }
|
||||||
|
|
||||||
initialPage: Component { MainView { } }
|
initialPage: Component { MainView { } }
|
||||||
cover: Qt.resolvedUrl("cover/CoverPage.qml")
|
cover: Qt.resolvedUrl("cover/CoverPage.qml")
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,6 +163,7 @@ Page {
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Clipboard.text = otp
|
Clipboard.text = otp
|
||||||
|
notify.show("Token for " + title + " copied", 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView.onRemove: animateRemoval()
|
ListView.onRemove: animateRemoval()
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Name: harbour-sailotp
|
Name: harbour-sailotp
|
||||||
Summary: SailOTP
|
Summary: SailOTP
|
||||||
Version: 0.4
|
Version: 0.5
|
||||||
Release: 2
|
Release: 1
|
||||||
Group: Security
|
Group: Security
|
||||||
URL: https://github.com/seiichiro0185/sailotp/
|
URL: https://github.com/seiichiro0185/sailotp/
|
||||||
License: "BSD\t"
|
License: "BSD\t"
|
||||||
|
@ -15,19 +15,19 @@ QMakeOptions:
|
||||||
- VERSION=%{version}
|
- VERSION=%{version}
|
||||||
- RELEASE=%{release}
|
- RELEASE=%{release}
|
||||||
PkgConfigBR:
|
PkgConfigBR:
|
||||||
- sailfishapp >= 0.0.10
|
|
||||||
- Qt5Core
|
|
||||||
- Qt5Qml
|
|
||||||
- Qt5Quick
|
- Qt5Quick
|
||||||
|
- Qt5Qml
|
||||||
|
- Qt5Core
|
||||||
|
- sailfishapp >= 0.0.10
|
||||||
Requires:
|
Requires:
|
||||||
- sailfishsilica-qt5 >= 0.10.9
|
- sailfishsilica-qt5 >= 0.10.9
|
||||||
Files:
|
Files:
|
||||||
- /usr/share/icons/hicolor/86x86/apps
|
|
||||||
- /usr/share/applications
|
|
||||||
- /usr/share/harbour-sailotp
|
|
||||||
- /usr/bin
|
|
||||||
- '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png'
|
|
||||||
- '%{_datadir}/applications/%{name}.desktop'
|
|
||||||
- '%{_datadir}/%{name}/qml'
|
|
||||||
- '%{_bindir}'
|
- '%{_bindir}'
|
||||||
|
- '%{_datadir}/%{name}/qml'
|
||||||
|
- '%{_datadir}/applications/%{name}.desktop'
|
||||||
|
- '%{_datadir}/icons/hicolor/86x86/apps/%{name}.png'
|
||||||
|
- /usr/bin
|
||||||
|
- /usr/share/harbour-sailotp
|
||||||
|
- /usr/share/applications
|
||||||
|
- /usr/share/icons/hicolor/86x86/apps
|
||||||
PkgBR: []
|
PkgBR: []
|
||||||
|
|
|
@ -27,10 +27,7 @@
|
||||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef QT_QML_DEBUG
|
|
||||||
#include <QtQuick>
|
#include <QtQuick>
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <sailfishapp.h>
|
#include <sailfishapp.h>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
|
|
Loading…
Reference in a new issue