Compare commits
26 Commits
efc122844e
...
8f7d599c06
Author | SHA1 | Date | |
---|---|---|---|
|
8f7d599c06 | ||
|
0a9d61986c | ||
|
b521e83829 | ||
|
08e2eafb7c | ||
|
c27bb53d7c | ||
|
6f9769607a | ||
|
551ab27b09 | ||
|
c57bdfaeaf | ||
|
af92ca67d7 | ||
|
6889ab5ac1 | ||
|
eddafbbdcc | ||
|
8d110ec790 | ||
|
a49cd13a83 | ||
|
50d479f7a6 | ||
|
94477c5480 | ||
|
ff1e50745d | ||
|
8118355f39 | ||
|
1d686adcb9 | ||
|
f8aa11bc41 | ||
|
923f77a2db | ||
|
45a2b1d2a7 | ||
|
7a3ea3a93c | ||
|
1878338a44 | ||
|
a64ae977cc | ||
|
ca3dafc5f0 | ||
|
55b3b6f8c2 |
10
.github/workflows/build.yml
vendored
@ -91,7 +91,7 @@ jobs:
|
||||
- name: create .tar
|
||||
run: tar -cf monero-wallet-gui.tar monero-wallet-gui.app
|
||||
working-directory: build/bin
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: build/bin/monero-wallet-gui.tar
|
||||
@ -121,7 +121,7 @@ jobs:
|
||||
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui
|
||||
- name: test qml
|
||||
run: xvfb-run -a /home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui --test-qml
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: |
|
||||
@ -149,7 +149,7 @@ jobs:
|
||||
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-windows sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j3'
|
||||
- name: sha256sum
|
||||
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monero-wallet-gui.exe
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: |
|
||||
@ -177,7 +177,7 @@ jobs:
|
||||
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -e THREADS=3 monero:build-env-android
|
||||
- name: Remove obsolete docker layers
|
||||
run: docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi || true
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ github.job }}
|
||||
path: /home/runner/work/monero-gui/monero-gui/build/Android/release/android-build/monero-gui.apk
|
||||
@ -195,7 +195,7 @@ jobs:
|
||||
export OUTPUT="$VERSION.tar"
|
||||
echo "OUTPUT=$OUTPUT" >> $GITHUB_ENV
|
||||
/home/runner/.local/bin/git-archive-all --prefix "$VERSION/" --force-submodules "$OUTPUT"
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.OUTPUT }}
|
||||
path: /home/runner/work/monero-gui/monero-gui/${{ env.OUTPUT }}
|
||||
|
@ -5,7 +5,7 @@ message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
|
||||
|
||||
set(VERSION_MAJOR "18")
|
||||
set(VERSION_MINOR "3")
|
||||
set(VERSION_REVISION "3")
|
||||
set(VERSION_REVISION "4")
|
||||
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
|
||||
|
||||
option(STATIC "Link libraries statically, requires static Qt")
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Use macOS 10.12 - 10.13 for better backwards compability.
|
||||
|
||||
1. `HOMEBREW_OPTFLAGS="-march=core2" HOMEBREW_OPTIMIZATION_LEVEL="O0" brew install boost zmq libpgm miniupnpc libsodium expat libunwind-headers protobuf libgcrypt hidapi`
|
||||
1. `HOMEBREW_OPTFLAGS="-march=core2" HOMEBREW_OPTIMIZATION_LEVEL="O0" brew install boost zmq libpgm miniupnpc libsodium expat libunwind-headers protobuf@21 libgcrypt hidapi libusb cmake pkg-config && brew link protobuf@21`
|
||||
|
||||
2. Get the latest LTS from here: https://www.qt.io/offline-installers and install
|
||||
|
||||
@ -12,7 +12,7 @@ Use macOS 10.12 - 10.13 for better backwards compability.
|
||||
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
cmake -D CMAKE_BUILD_TYPE=Release -D ARCH=default -D CMAKE_PREFIX_PATH=~/Qt5.12.8/5.12.8/clang_64 ..
|
||||
cmake -D CMAKE_BUILD_TYPE=Release -D ARCH=default -D CMAKE_PREFIX_PATH=/path/to/Qt5.12.8/5.12.8/clang_64 ..
|
||||
make
|
||||
make deploy
|
||||
```
|
||||
|
@ -1,7 +1,7 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
ARG THREADS=1
|
||||
ARG QT_VERSION=v5.15.13-lts-lgpl
|
||||
ARG QT_VERSION=v5.15.14-lts-lgpl
|
||||
|
||||
ENV CFLAGS="-fPIC"
|
||||
ENV CPPFLAGS="-fPIC"
|
||||
|
@ -1,7 +1,7 @@
|
||||
FROM ubuntu:20.04
|
||||
|
||||
ARG THREADS=1
|
||||
ARG QT_VERSION=v5.15.13-lts-lgpl
|
||||
ARG QT_VERSION=v5.15.14-lts-lgpl
|
||||
ENV SOURCE_DATE_EPOCH=1397818193
|
||||
|
||||
RUN apt update && \
|
||||
|
@ -60,9 +60,7 @@ The Bitcoin donation address is: `1KTexdemPdxSBcG55heUuTjDRYqbC5ZL8H`
|
||||
GUI development funding and/or some supporting services are also graciously provided by [sponsors](https://www.getmonero.org/community/sponsorships/):
|
||||
|
||||
[<img width="150" src="https://www.getmonero.org/img/sponsors/tarilabs.png"/>](https://tarilabs.com/)
|
||||
[<img width="150" src="https://www.getmonero.org/img/sponsors/globee.png"/>](https://globee.com/)
|
||||
[<img width="150" src="https://www.getmonero.org/img/sponsors/symas.png"/>](https://symas.com/)
|
||||
[<img width="150" src="https://www.getmonero.org/img/sponsors/forked_logo.png"/>](http://www.forked.net/)
|
||||
[<img width="150" src="https://www.getmonero.org/img/sponsors/macstadium.png"/>](https://www.macstadium.com/)
|
||||
|
||||
There are also several mining pools that kindly donate a portion of their fees, [a list of them can be found on our Bitcointalk post](https://bitcointalk.org/index.php?topic=583449.0).
|
||||
@ -107,7 +105,7 @@ Packaging for your favorite distribution would be a welcome contribution!
|
||||
```
|
||||
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
|
||||
```
|
||||
\* `master` - replace with the desired version tag (e.g. `v0.18.3.3`) to build the release binaries.
|
||||
\* `master` - replace with the desired version tag (e.g. `v0.18.3.4`) to build the release binaries.
|
||||
3. Prepare build environment
|
||||
```
|
||||
cd monero-gui
|
||||
@ -130,7 +128,7 @@ Packaging for your favorite distribution would be a welcome contribution!
|
||||
```
|
||||
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
|
||||
```
|
||||
\* `master` - replace with the desired version tag (e.g. `v0.18.3.3`) to build the release binaries.
|
||||
\* `master` - replace with the desired version tag (e.g. `v0.18.3.4`) to build the release binaries.
|
||||
3. Prepare build environment
|
||||
```
|
||||
cd monero-gui
|
||||
|
@ -32,6 +32,7 @@ import QtQuick.Dialogs 1.2
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Window 2.0
|
||||
import FontAwesome 1.0
|
||||
|
||||
import "../components" as MoneroComponents
|
||||
import "effects/" as MoneroEffects
|
||||
@ -200,24 +201,34 @@ Rectangle {
|
||||
height: 48
|
||||
color: "transparent"
|
||||
|
||||
MoneroEffects.ImageMask {
|
||||
anchors.centerIn: parent
|
||||
width: 16
|
||||
height: 16
|
||||
image: MoneroComponents.Style.titleBarCloseSource
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
Text {
|
||||
text: FontAwesome.times
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 19
|
||||
color: closeButtonMouseArea.containsMouse ? MoneroComponents.Style.dimmedFontColor : MoneroComponents.Style.defaultFontColor
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
opacity: 0.75
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnCloseStandardDialogTooltip
|
||||
anchors.fill: parent
|
||||
text: qsTr("Close") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: closeButtonMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
root.close()
|
||||
root.rejected()
|
||||
}
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: closeButton.color = "#262626";
|
||||
onExited: closeButton.color = "transparent";
|
||||
onEntered: btnCloseStandardDialogTooltip.tooltipPopup.open()
|
||||
onExited: btnCloseStandardDialogTooltip.tooltipPopup.close()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,9 +55,6 @@ QtObject {
|
||||
property string titleBarBackgroundGradientStop: blackTheme ? _b_titleBarBackgroundGradientStop : _w_titleBarBackgroundGradientStop
|
||||
property string titleBarBackgroundBorderColor: blackTheme ? _b_titleBarBackgroundBorderColor : _w_titleBarBackgroundBorderColor
|
||||
property string titleBarLogoSource: blackTheme ? _b_titleBarLogoSource : _w_titleBarLogoSource
|
||||
property string titleBarMinimizeSource: blackTheme ? _b_titleBarMinimizeSource : _w_titleBarMinimizeSource
|
||||
property string titleBarFullscreenSource: blackTheme ? _b_titleBarFullscreenSource : _w_titleBarFullscreenSource
|
||||
property string titleBarCloseSource: blackTheme ? _b_titleBarCloseSource : _w_titleBarCloseSource
|
||||
property string titleBarButtonHoverColor: blackTheme ? _b_titleBarButtonHoverColor : _w_titleBarButtonHoverColor
|
||||
|
||||
property string wizardBackgroundGradientStart: blackTheme ? _b_wizardBackgroundGradientStart : _w_wizardBackgroundGradientStart
|
||||
@ -117,9 +114,6 @@ QtObject {
|
||||
property string _b_titleBarBackgroundGradientStop: "#191919"
|
||||
property string _b_titleBarBackgroundBorderColor: "#2f2f2f"
|
||||
property string _b_titleBarLogoSource: "qrc:///images/titlebarLogo.png"
|
||||
property string _b_titleBarMinimizeSource: "qrc:///images/minimize.svg"
|
||||
property string _b_titleBarFullscreenSource: "qrc:///images/fullscreen.svg"
|
||||
property string _b_titleBarCloseSource: "qrc:///images/close.svg"
|
||||
property string _b_titleBarButtonHoverColor: "#10FFFFFF"
|
||||
|
||||
property string _b_wizardBackgroundGradientStart: "#1e1e1e"
|
||||
@ -179,9 +173,6 @@ QtObject {
|
||||
property string _w_titleBarBackgroundGradientStop: "#FBFBFB"
|
||||
property string _w_titleBarBackgroundBorderColor: "#DEDEDE"
|
||||
property string _w_titleBarLogoSource: "qrc:///images/themes/white/titlebarLogo.png"
|
||||
property string _w_titleBarMinimizeSource: "qrc:///images/themes/white/minimize.svg"
|
||||
property string _w_titleBarFullscreenSource: "qrc:///images/themes/white/fullscreen.svg"
|
||||
property string _w_titleBarCloseSource: "qrc:///images/themes/white/close.svg"
|
||||
property string _w_titleBarButtonHoverColor: "#11000000"
|
||||
|
||||
property string _w_wizardBackgroundGradientStart: "white"
|
||||
|
@ -161,6 +161,7 @@ Rectangle {
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
visible: middlePanel.state !== "Merchant" && !informationPopup.visible && !confirmationDialog.visible
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: {
|
||||
@ -201,6 +202,7 @@ Rectangle {
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
visible: middlePanel.state !== "Merchant" && !informationPopup.visible && !confirmationDialog.visible
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: {
|
||||
@ -240,6 +242,7 @@ Rectangle {
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
visible: middlePanel.state !== "Merchant" && !informationPopup.visible && !confirmationDialog.visible
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: {
|
||||
@ -318,26 +321,36 @@ Rectangle {
|
||||
Layout.preferredWidth: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
|
||||
MoneroEffects.ImageMask {
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 18
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: 3
|
||||
width: 15
|
||||
image: MoneroComponents.Style.titleBarMinimizeSource
|
||||
Text {
|
||||
text: FontAwesome.windowMinimize
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 16
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
fontAwesomeFallbackIcon: FontAwesome.minus
|
||||
fontAwesomeFallbackSize: 18
|
||||
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
opacity: 0.75
|
||||
}
|
||||
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnMinimizeWindowTooltip
|
||||
anchors.fill: parent
|
||||
text: qsTr("Minimize") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
visible: !informationPopup.visible && !confirmationDialog.visible
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||
onExited: parent.color = "transparent"
|
||||
onEntered: {
|
||||
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||
btnMinimizeWindowTooltip.tooltipPopup.open()
|
||||
}
|
||||
onExited: {
|
||||
parent.color = "transparent"
|
||||
btnMinimizeWindowTooltip.tooltipPopup.close()
|
||||
}
|
||||
onClicked: root.minimizeClicked();
|
||||
}
|
||||
}
|
||||
@ -350,25 +363,37 @@ Rectangle {
|
||||
Layout.preferredWidth: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
|
||||
Image {
|
||||
Text {
|
||||
text: appWindow.visibility == Window.Maximized ? FontAwesome.windowRestore : FontAwesome.windowMaximize
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 16
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
source: MoneroComponents.Style.titleBarFullscreenSource
|
||||
sourceSize.width: 16
|
||||
sourceSize.height: 16
|
||||
smooth: true
|
||||
mipmap: true
|
||||
opacity: 0.75
|
||||
rotation: appWindow.visibility === Window.FullScreen ? 180 : 0
|
||||
}
|
||||
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnMaximizeRestoreTooltip
|
||||
anchors.fill: parent
|
||||
text: appWindow.visibility == Window.Maximized ? qsTr("Restore") : qsTr("Maximize") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: buttonArea
|
||||
anchors.fill: parent
|
||||
visible: !informationPopup.visible && !confirmationDialog.visible
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||
onExited: parent.color = "transparent"
|
||||
onEntered: {
|
||||
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||
btnMaximizeRestoreTooltip.tooltipPopup.open()
|
||||
}
|
||||
onExited: {
|
||||
parent.color = "transparent"
|
||||
btnMaximizeRestoreTooltip.tooltipPopup.close()
|
||||
}
|
||||
onClicked: root.maximizeClicked();
|
||||
}
|
||||
}
|
||||
@ -380,25 +405,35 @@ Rectangle {
|
||||
Layout.preferredWidth: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
|
||||
MoneroEffects.ImageMask {
|
||||
Text {
|
||||
text: FontAwesome.times
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 19
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: 16
|
||||
width: 16
|
||||
image: MoneroComponents.Style.titleBarCloseSource
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
fontAwesomeFallbackIcon: FontAwesome.times
|
||||
fontAwesomeFallbackSize: 21
|
||||
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
|
||||
opacity: 0.75
|
||||
}
|
||||
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnCloseWindowTooltip
|
||||
anchors.fill: parent
|
||||
text: qsTr("Close Monero GUI") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||
onExited: parent.color = "transparent"
|
||||
onEntered: {
|
||||
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
|
||||
btnCloseWindowTooltip.tooltipPopup.open()
|
||||
}
|
||||
onExited: {
|
||||
parent.color = "transparent"
|
||||
btnCloseWindowTooltip.tooltipPopup.close()
|
||||
}
|
||||
onClicked: root.closeClicked();
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +43,7 @@ Object {
|
||||
property string edit : "\uf044"
|
||||
property string ellipsisH : "\uf141"
|
||||
property string exclamationCircle : "\uf06a"
|
||||
property string expandAlt : "\uf424"
|
||||
property string eye : "\uf06e"
|
||||
property string eyeSlash : "\uf070"
|
||||
property string folderOpen : "\uf07c"
|
||||
|
@ -1,5 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<g fill="none" fill-rule="evenodd" stroke="#FFF" stroke-linecap="round" stroke-width="1.85" opacity="1">
|
||||
<path d="M1 1l14 14M15 1L1 15"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 250 B |
@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<g fill="none" fill-rule="evenodd" stroke="#FFF" stroke-width="1.636" opacity="1">
|
||||
<rect width="16.364" height="16.364" x=".818" y=".818" rx="1.636"/>
|
||||
<rect width="16.364" height="3.273" x=".818" y=".818" fill="#FFF" rx="1.636"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 350 B |
@ -1,3 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="4" viewBox="0 0 18 4">
|
||||
<rect width="16" height="2" x="899" y="31" fill="#FFF" fill-rule="evenodd" stroke="#FFF" stroke-width="2" opacity="1" rx="1" transform="translate(-898 -30)"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 252 B |
@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<g fill="none" fill-rule="evenodd" opacity="1">
|
||||
<path fill="none" d="M-10-10h36v36h-36z" opacity="1"/>
|
||||
<path stroke="#000" stroke-linecap="round" stroke-width="1.5" d="M1 1l14 14M15 1L1 15"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 312 B |
@ -1,7 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<g fill="none" fill-rule="evenodd" opacity="1" transform="translate(-9 -9)">
|
||||
<path fill="none" d="M0 0h36v36H0z" opacity="1"/>
|
||||
<rect width="16" height="16" x="10" y="10" stroke="#000" stroke-width="1.5" rx="1.5"/>
|
||||
<path fill="#FFF" stroke="#000" stroke-width="1.5" d="M11 10h14a1 1 0 0 1 1 1v2H10v-2a1 1 0 0 1 1-1z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 446 B |
@ -1,3 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="2" viewBox="0 0 16 2">
|
||||
<rect width="16" height="2" x="10" y="25" fill="#000" fill-rule="evenodd" opacity="1" rx="1" transform="translate(-10 -25)"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 219 B |
BIN
images/trezor5.png
Normal file
After Width: | Height: | Size: 305 KiB |
@ -70,7 +70,7 @@ function checkSignature(signature) {
|
||||
}
|
||||
|
||||
function isValidOpenAliasAddress(address) {
|
||||
var regex = /^[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+$/; // Basic domain structure
|
||||
var regex = /^[A-Za-z0-9-@]+(\.[A-Za-z0-9-]+)+$/; // Basic domain structure, allow email-like address
|
||||
|
||||
if (!regex.test(address)) {
|
||||
return false;
|
||||
|
@ -166,7 +166,7 @@ function getApproximateBlockchainHeight(_date, _nettype){
|
||||
|
||||
if(_nettype == "Testnet" || _nettype == "Stagenet"){
|
||||
// testnet got some huge rollbacks, so the estimation is way off
|
||||
var approximateTestnetRolledBackBlocks = _nettype == "Testnet" ? 342100 : 30000;
|
||||
var approximateTestnetRolledBackBlocks = _nettype == "Testnet" ? 342100 : _nettype == "Stagenet" ? 60000 : 30000;
|
||||
if(approxBlockchainHeight > approximateTestnetRolledBackBlocks)
|
||||
approxBlockchainHeight -= approximateTestnetRolledBackBlocks
|
||||
}
|
||||
|
9
main.qml
@ -1778,13 +1778,13 @@ ApplicationWindow {
|
||||
name: "wizard"
|
||||
PropertyChanges { target: middlePanel; visible: false }
|
||||
PropertyChanges { target: wizard; visible: true }
|
||||
PropertyChanges { target: resizeArea; visible: true }
|
||||
PropertyChanges { target: resizeArea; visible: appWindow.visibility !== Window.Maximized }
|
||||
PropertyChanges { target: titleBar; state: "essentials" }
|
||||
}, State {
|
||||
name: "normal"
|
||||
PropertyChanges { target: middlePanel; visible: true }
|
||||
PropertyChanges { target: wizard; visible: false }
|
||||
PropertyChanges { target: resizeArea; visible: true }
|
||||
PropertyChanges { target: resizeArea; visible: appWindow.visibility !== Window.Maximized }
|
||||
PropertyChanges { target: titleBar; state: "default" }
|
||||
}
|
||||
]
|
||||
@ -1895,11 +1895,14 @@ ApplicationWindow {
|
||||
|
||||
MoneroEffects.ImageMask {
|
||||
anchors.centerIn: parent
|
||||
visible: persistentSettings.customDecorations
|
||||
visible: persistentSettings.customDecorations && appWindow.visibility !== Window.Maximized
|
||||
image: "qrc:///images/resize.png"
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
width: 12
|
||||
height: 12
|
||||
fontAwesomeFallbackIcon: FontAwesome.expandAlt
|
||||
fontAwesomeFallbackSize: 18
|
||||
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
|
||||
opacity: (parent.containsMouse || parent.pressed) ? 0.5 : 1.0
|
||||
}
|
||||
|
||||
|
2
monero
@ -1 +1 @@
|
||||
Subproject commit 81d4db08eb75ce5392c65ca6571e7b08e41b7c95
|
||||
Subproject commit b089f9ee69924882c5d14dd1a6991deb05d9d1cd
|
@ -96,23 +96,35 @@ Rectangle {
|
||||
Layout.preferredWidth: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
|
||||
MoneroEffects.ImageMask {
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 18
|
||||
Text {
|
||||
text: FontAwesome.windowMinimize
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 16
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: 3
|
||||
width: 15
|
||||
image: MoneroComponents.Style.titleBarMinimizeSource
|
||||
color: "white"
|
||||
opacity: 0.75
|
||||
}
|
||||
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnMinimizeWindowTooltip
|
||||
anchors.fill: parent
|
||||
text: qsTr("Minimize") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: parent.color = "#44FFFFFF"
|
||||
onExited: parent.color = "transparent"
|
||||
onEntered: {
|
||||
parent.color = "#44FFFFFF"
|
||||
btnMinimizeWindowTooltip.tooltipPopup.open()
|
||||
}
|
||||
onExited: {
|
||||
parent.color = "transparent"
|
||||
btnMinimizeWindowTooltip.tooltipPopup.close()
|
||||
}
|
||||
onClicked: root.minimizeClicked();
|
||||
}
|
||||
}
|
||||
@ -125,16 +137,21 @@ Rectangle {
|
||||
Layout.preferredWidth: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
|
||||
Image {
|
||||
Text {
|
||||
text: appWindow.visibility == Window.Maximized ? FontAwesome.windowRestore : FontAwesome.windowMaximize
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 16
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
source: MoneroComponents.Style._b_titleBarFullscreenSource
|
||||
sourceSize.width: 16
|
||||
sourceSize.height: 16
|
||||
smooth: true
|
||||
mipmap: true
|
||||
opacity: 0.75
|
||||
rotation: appWindow.visibility === Window.FullScreen ? 180 : 0
|
||||
}
|
||||
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnMaximizeRestoreTooltip
|
||||
anchors.fill: parent
|
||||
text: appWindow.visibility == Window.Maximized ? qsTr("Restore") : qsTr("Maximize") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
@ -142,8 +159,14 @@ Rectangle {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: parent.color = "#44FFFFFF"
|
||||
onExited: parent.color = "transparent"
|
||||
onEntered: {
|
||||
parent.color = "#44FFFFFF"
|
||||
btnMaximizeRestoreTooltip.tooltipPopup.open()
|
||||
}
|
||||
onExited: {
|
||||
parent.color = "transparent"
|
||||
btnMaximizeRestoreTooltip.tooltipPopup.close()
|
||||
}
|
||||
onClicked: root.maximizeClicked();
|
||||
}
|
||||
}
|
||||
@ -155,22 +178,35 @@ Rectangle {
|
||||
Layout.preferredWidth: parent.height
|
||||
Layout.preferredHeight: parent.height
|
||||
|
||||
MoneroEffects.ImageMask {
|
||||
Text {
|
||||
text: FontAwesome.times
|
||||
font.family:FontAwesome.fontFamilySolid
|
||||
font.pixelSize: 19
|
||||
color: MoneroComponents.Style.defaultFontColor
|
||||
font.styleName: "Solid"
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: 16
|
||||
width: 16
|
||||
image: MoneroComponents.Style._b_titleBarCloseSource
|
||||
color: "white"
|
||||
opacity: 0.75
|
||||
}
|
||||
|
||||
MoneroComponents.Tooltip {
|
||||
id: btnCloseWindowTooltip
|
||||
anchors.fill: parent
|
||||
text: qsTr("Close Monero GUI") + translationManager.emptyString
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
onEntered: parent.color = "#44FFFFFF"
|
||||
onExited: parent.color = "transparent"
|
||||
onEntered: {
|
||||
parent.color = "#44FFFFFF"
|
||||
btnCloseWindowTooltip.tooltipPopup.open()
|
||||
}
|
||||
onExited: {
|
||||
parent.color = "transparent"
|
||||
btnCloseWindowTooltip.tooltipPopup.close()
|
||||
}
|
||||
onClicked: root.closeClicked();
|
||||
}
|
||||
}
|
||||
|
7
qml.qrc
@ -258,12 +258,6 @@
|
||||
<file>images/middlePanelShadow.png</file>
|
||||
<file>images/themes/white/titlebarLogo@2x.png</file>
|
||||
<file>images/themes/white/titlebarLogo.png</file>
|
||||
<file>images/fullscreen.svg</file>
|
||||
<file>images/close.svg</file>
|
||||
<file>images/minimize.svg</file>
|
||||
<file>images/themes/white/close.svg</file>
|
||||
<file>images/themes/white/fullscreen.svg</file>
|
||||
<file>images/themes/white/minimize.svg</file>
|
||||
<file>components/effects/ColorTransition.qml</file>
|
||||
<file>components/effects/GradientBackground.qml</file>
|
||||
<file>images/check-white.svg</file>
|
||||
@ -283,6 +277,7 @@
|
||||
<file>images/ledgerNanoX.png</file>
|
||||
<file>images/ledgerStax.png</file>
|
||||
<file>images/trezor3.png</file>
|
||||
<file>images/trezor5.png</file>
|
||||
<file>images/trezorT.png</file>
|
||||
<file>images/trezorT@2x.png</file>
|
||||
<file>qtquickcontrols2.conf</file>
|
||||
|
@ -70,9 +70,6 @@ namespace
|
||||
|
||||
QPixmap screenshot()
|
||||
{
|
||||
#ifdef Q_OS_MAC
|
||||
return MacOSHelper::screenshot();
|
||||
#else
|
||||
std::unordered_set<QWindow *> hidden;
|
||||
const QWindowList windows = QGuiApplication::allWindows();
|
||||
for (QWindow *window : windows)
|
||||
@ -91,7 +88,6 @@ QPixmap screenshot()
|
||||
});
|
||||
|
||||
return QGuiApplication::primaryScreen()->grabWindow(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
@ -53,21 +53,21 @@ void P2PoolManager::download() {
|
||||
QString fileName;
|
||||
QString validHash;
|
||||
#ifdef Q_OS_WIN
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-windows-x64.zip";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.10-windows-x64.zip";
|
||||
validHash = "2b5a37576ac6e73a6f26a0112d9a51360babef765199fbe06a6bfc513ed45581";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v4.1/p2pool-v4.1-windows-x64.zip";
|
||||
fileName = m_p2poolPath + "/p2pool-v4.1-windows-x64.zip";
|
||||
validHash = "a2a6327e2442282fe344d69a5e61ddb6bf66950bffd32c5a99b9cecc62d3a7d6";
|
||||
#elif defined(Q_OS_LINUX)
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-linux-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.10-linux-x64.tar.gz";
|
||||
validHash = "441969c999e860231b2e48651747866754bad17292331fb22c5340c8a250168a";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v4.1/p2pool-v4.1-linux-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v4.1-linux-x64.tar.gz";
|
||||
validHash = "9d62adcb8426932ff51dae0eb02551b1b88996aa25804a470dc127bef30b4c07";
|
||||
#elif defined(Q_OS_MACOS_AARCH64)
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-macos-aarch64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.10-macos-aarch64.tar.gz";
|
||||
validHash = "f8ff6de7b2ac38f0d3ac23e30cc8827d5a1b83c4190f4e79e8db695acc742a68";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v4.1/p2pool-v4.1-macos-aarch64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v4.1-macos-aarch64.tar.gz";
|
||||
validHash = "3cce06835e50395c986511019c7dabd93855de78c787d518f22e6c6572b44d2e";
|
||||
#elif defined(Q_OS_MACOS)
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v3.10/p2pool-v3.10-macos-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v3.10-macos-x64.tar.gz";
|
||||
validHash = "9b20656556fe4bfe3df1df9a6f2c7c8bc9aa0dd2c4ac66ebca2c8580581ff9f6";
|
||||
url = "https://github.com/SChernykh/p2pool/releases/download/v4.1/p2pool-v4.1-macos-x64.tar.gz";
|
||||
fileName = m_p2poolPath + "/p2pool-v4.1-macos-x64.tar.gz";
|
||||
validHash = "e87dfda26388774688da8336a00df3f4befcb98c3ee4b26d496ff05179cce5e7";
|
||||
#endif
|
||||
QFile file(fileName);
|
||||
epee::net_utils::http::http_simple_client http_client;
|
||||
|
@ -38,7 +38,6 @@ class MacOSHelper
|
||||
public:
|
||||
static bool isCapsLock();
|
||||
static bool openFolderAndSelectItem(const QUrl &path);
|
||||
static QPixmap screenshot();
|
||||
static QString bundlePath();
|
||||
static void disableWindowTabbing();
|
||||
};
|
||||
|
@ -68,41 +68,6 @@ bool MacOSHelper::openFolderAndSelectItem(const QUrl &path)
|
||||
return true;
|
||||
}
|
||||
|
||||
QPixmap MacOSHelper::screenshot()
|
||||
{
|
||||
std::unordered_set<uintptr_t> appWindowIds;
|
||||
for (NSWindow *window in [NSApp windows])
|
||||
{
|
||||
appWindowIds.insert((uintptr_t)[window windowNumber]);
|
||||
}
|
||||
|
||||
CFArrayRef onScreenWindows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
|
||||
const auto onScreenWindowsClenaup = sg::make_scope_guard([&onScreenWindows]() {
|
||||
CFRelease(onScreenWindows);
|
||||
});
|
||||
|
||||
CFMutableArrayRef foreignWindows = CFArrayCreateMutable(NULL, CFArrayGetCount(onScreenWindows), NULL);
|
||||
const auto foreignWindowsClenaup = sg::make_scope_guard([&foreignWindows]() {
|
||||
CFRelease(foreignWindows);
|
||||
});
|
||||
|
||||
for (CFIndex index = 0, count = CFArrayGetCount(onScreenWindows); index < count; ++index)
|
||||
{
|
||||
const uintptr_t windowId = reinterpret_cast<const uintptr_t>(CFArrayGetValueAtIndex(onScreenWindows, index));
|
||||
if (appWindowIds.find(windowId) == appWindowIds.end())
|
||||
{
|
||||
CFArrayAppendValue(foreignWindows, reinterpret_cast<const void *>(windowId));
|
||||
}
|
||||
}
|
||||
|
||||
CGImageRef image = CGWindowListCreateImageFromArray(CGRectInfinite, foreignWindows, kCGWindowListOptionAll);
|
||||
const auto imageClenaup = sg::make_scope_guard([&image]() {
|
||||
CFRelease(image);
|
||||
});
|
||||
|
||||
return QtMac::fromCGImageRef(image);
|
||||
}
|
||||
|
||||
QString MacOSHelper::bundlePath()
|
||||
{
|
||||
NSBundle *main = [NSBundle mainBundle];
|
||||
|
@ -96,7 +96,7 @@ QString xdgMime(){
|
||||
"X-GNOME-FullName=Monero-GUI\n"
|
||||
"Comment=Monero GUI\n"
|
||||
"Keywords=Monero;\n"
|
||||
"Exec=%1 %u\n"
|
||||
"Exec=\"%1\" %u\n"
|
||||
"Terminal=false\n"
|
||||
"Type=Application\n"
|
||||
"Icon=monero\n"
|
||||
|
@ -58,6 +58,7 @@ Rectangle {
|
||||
ListElement { column1: "Ledger Stax"; column2: "Ledger";}
|
||||
ListElement { column1: "Trezor Model T"; column2: "Trezor";}
|
||||
ListElement { column1: "Trezor Safe 3"; column2: "Trezor";}
|
||||
ListElement { column1: "Trezor Safe 5"; column2: "Trezor";}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
@ -169,6 +170,8 @@ Rectangle {
|
||||
return "qrc:///images/trezorT.png";
|
||||
} else if (trezorType == "Trezor Safe 3") {
|
||||
return "qrc:///images/trezor3.png";
|
||||
} else if (trezorType == "Trezor Safe 5") {
|
||||
return "qrc:///images/trezor5.png";
|
||||
}
|
||||
} else if (hardwareWalletType == "Ledger") {
|
||||
if (ledgerType == "Ledger Nano S") {
|
||||
|
@ -149,7 +149,7 @@ Rectangle {
|
||||
imageIcon: "qrc:///images/local-node-full.png"
|
||||
|
||||
onMenuClicked: {
|
||||
appWindow.persistentSettings.pruneBlockchain = false; // can be toggled on next page
|
||||
appWindow.persistentSettings.pruneBlockchain = true;
|
||||
applyWalletMode(2, 'wizardHome');
|
||||
}
|
||||
}
|
||||
|