Other: small fixes on devel-facelift

This commit is contained in:
Alexander Bilyak
2021-10-04 17:36:32 +00:00
committed by Jakub
parent d11cf57879
commit 3601adcae6
5 changed files with 7 additions and 122 deletions

View File

@ -25,7 +25,7 @@ import Notifications 1.0
QtObject { QtObject {
id: root id: root
property var backend: go property var backend
property Notifications _notifications: Notifications { property Notifications _notifications: Notifications {
id: notifications id: notifications
@ -98,7 +98,7 @@ QtObject {
visible: true visible: true
icon.source: "./icons/systray-mono.png" icon.source: "./icons/systray-mono.png"
icon.mask: true // make sure that systems like macOS will use proper color icon.mask: true // make sure that systems like macOS will use proper color
tooltip: `Proton Mail Bridge v${go.version}` tooltip: `Proton Mail Bridge v${backend.version}`
onActivated: { onActivated: {
function calcStatusWindowPosition() { function calcStatusWindowPosition() {
function isInInterval(num, lower_limit, upper_limit) { function isInInterval(num, lower_limit, upper_limit) {

View File

@ -726,7 +726,7 @@ Window {
signal resetFinished() signal resetFinished()
property string logsPath: "/home/cuto" // StandardPaths.locate(StandardPaths.DesktopLocation) property string logsPath: "/home/cuto" // StandardPaths.locate(StandardPaths.DesktopLocation)
property string version: "v2.0.X" property string version: "2.0.X-BridePreview"
property string licensePath: "/home/cuto" // StandardPaths.locate(StandardPaths.DesktopLocation) property string licensePath: "/home/cuto" // StandardPaths.locate(StandardPaths.DesktopLocation)
property string releaseNotesLink: "https://protonmail.com/download/bridge/early_releases.html" property string releaseNotesLink: "https://protonmail.com/download/bridge/early_releases.html"

View File

@ -1,116 +0,0 @@
// Copyright (c) 2021 Proton Technologies AG
//
// This file is part of ProtonMail Bridge.
//
// ProtonMail Bridge is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ProtonMail Bridge is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with ProtonMail Bridge. If not, see <https://www.gnu.org/licenses/>.
import QtQuick 2.8
Rectangle {
id: root
color: "transparent"
property color fillColor : Style.currentStyle.background_norm
property color strokeColor : Style.currentStyle.background_strong
property real strokeWidth : 1
property real radiusTopLeft : 10
property real radiusBottomLeft : 10
property real radiusTopRight : 10
property real radiusBottomRight : 10
function paint() {
canvas.requestPaint()
}
onFillColorChanged : root.paint()
onStrokeColorChanged : root.paint()
onStrokeWidthChanged : root.paint()
onRadiusTopLeftChanged : root.paint()
onRadiusBottomLeftChanged : root.paint()
onRadiusTopRightChanged : root.paint()
onRadiusBottomRightChanged : root.paint()
Canvas {
id: canvas
anchors.fill: root
onPaint: {
var ctx = getContext("2d")
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = root.fillColor
ctx.strokeStyle = root.strokeColor
ctx.lineWidth = root.strokeWidth
var dimensions = {
x: ctx.lineWidth,
y: ctx.lineWidth,
w: canvas.width-2*ctx.lineWidth,
h: canvas.height-2*ctx.lineWidth,
}
var radius = {
tl: root.radiusTopLeft,
tr: root.radiusTopRight,
bl: root.radiusBottomLeft,
br: root.radiusBottomRight,
}
root.roundRect(
ctx,
dimensions,
radius, true, true
)
}
}
// adapted from: https://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-on-html-canvas/3368118#3368118
function roundRect(ctx, dim, radius, fill, stroke) {
if (typeof stroke == 'undefined') {
stroke = true;
}
if (typeof radius === 'undefined') {
radius = 5;
}
if (typeof radius === 'number') {
radius = {tl: radius, tr: radius, br: radius, bl: radius};
} else {
var defaultRadius = {tl: 0, tr: 0, br: 0, bl: 0};
for (var side in defaultRadius) {
radius[side] = radius[side] || defaultRadius[side];
}
}
ctx.beginPath();
ctx.moveTo(dim.x + radius.tl, dim.y);
ctx.lineTo(dim.x + dim.w - radius.tr, dim.y);
ctx.quadraticCurveTo(dim.x + dim.w, dim.y, dim.x + dim.w, dim.y + radius.tr);
ctx.lineTo(dim.x + dim.w, dim.y + dim.h - radius.br);
ctx.quadraticCurveTo(dim.x + dim.w, dim.y + dim.h, dim.x + dim.w - radius.br, dim.y + dim.h);
ctx.lineTo(dim.x + radius.bl, dim.y + dim.h);
ctx.quadraticCurveTo(dim.x, dim.y + dim.h, dim.x, dim.y + dim.h - radius.bl);
ctx.lineTo(dim.x, dim.y + radius.tl);
ctx.quadraticCurveTo(dim.x, dim.y, dim.x + radius.tl, dim.y);
ctx.closePath();
if (fill) {
ctx.fill();
}
if (stroke) {
ctx.stroke();
}
}
Component.onCompleted: root.paint()
}

View File

@ -31,7 +31,6 @@ Menu 4.0 Menu.qml
MenuItem 4.0 MenuItem.qml MenuItem 4.0 MenuItem.qml
Popup 4.0 Popup.qml Popup 4.0 Popup.qml
RadioButton 4.0 RadioButton.qml RadioButton 4.0 RadioButton.qml
RoundedRectangle 4.0 RoundedRectangle.qml
Switch 4.0 Switch.qml Switch 4.0 Switch.qml
TextArea 4.0 TextArea.qml TextArea 4.0 TextArea.qml
TextField 4.0 TextField.qml TextField 4.0 TextField.qml

View File

@ -21,12 +21,13 @@ package qt
import ( import (
"errors" "errors"
"os"
qmlLog "github.com/ProtonMail/proton-bridge/internal/frontend/qt/log" qmlLog "github.com/ProtonMail/proton-bridge/internal/frontend/qt/log"
"github.com/therecipe/qt/core" "github.com/therecipe/qt/core"
"github.com/therecipe/qt/qml" "github.com/therecipe/qt/qml"
"github.com/therecipe/qt/quickcontrols2" "github.com/therecipe/qt/quickcontrols2"
"github.com/therecipe/qt/widgets" "github.com/therecipe/qt/widgets"
"os"
) )
func (f *FrontendQt) initiateQtApplication() error { func (f *FrontendQt) initiateQtApplication() error {
@ -50,7 +51,6 @@ func (f *FrontendQt) initiateQtApplication() error {
f.qml = NewQMLBackend(f.engine) f.qml = NewQMLBackend(f.engine)
f.qml.setup(f) f.qml.setup(f)
f.engine.RootContext().SetContextProperty("go", f.qml)
f.engine.AddImportPath("qrc:/qml/") f.engine.AddImportPath("qrc:/qml/")
f.engine.AddPluginPath("qrc:/qml/") f.engine.AddPluginPath("qrc:/qml/")
@ -67,5 +67,7 @@ func (f *FrontendQt) initiateQtApplication() error {
return errors.New("QML not loaded properly") return errors.New("QML not loaded properly")
} }
f.engine.RootObjects()[0].SetProperty("backend", f.qml.ToVariant())
return nil return nil
} }