Compare commits

...

26 Commits

Author SHA1 Message Date
rating89us
5e740c9d05
Merge 902cc2b13e into 0a9d61986c 2024-11-25 23:26:27 +00:00
luigi1111
0a9d61986c
Merge pull request #4355
b521e83 workflows/build: upload-artifact@v4 (plowsof)
2024-10-01 15:31:17 -04:00
plowsof
b521e83829
workflows/build: upload-artifact@v4 2024-09-17 23:10:08 +01:00
luigi1111
08e2eafb7c
Merge pull request #4335
551ab27 build: prepare v0.18.3.4 (selsta)
2024-08-14 16:13:26 -04:00
luigi1111
c27bb53d7c
Merge pull request #4321
f8aa11b docker: bump Qt to v5.15.14 (tobtoht)
2024-08-14 16:12:54 -04:00
luigi1111
6f9769607a
Merge pull request #4320
923f77a WizardModeSelection: enable pruning by default (selsta)
2024-08-14 16:12:04 -04:00
selsta
551ab27b09
build: prepare v0.18.3.4 2024-08-14 21:55:32 +02:00
luigi1111
c57bdfaeaf
Merge pull request #4334
ff1e507 p2pool: update to v4.1 (SChernykh)
2024-08-13 12:41:49 -04:00
luigi1111
af92ca67d7
Merge pull request #4333
8118355 macOS: remove deprecated screenshot function (tobtoht)
2024-08-13 12:41:22 -04:00
luigi1111
6889ab5ac1
Merge pull request #4332
1d686ad wizard: add new Trezor Safe 5 (selsta)
2024-08-13 12:39:50 -04:00
luigi1111
eddafbbdcc
Merge pull request #4319
45a2b1d README.md: sponsors;remove forked networking/globee (plowsof)
2024-08-13 12:38:54 -04:00
luigi1111
8d110ec790
Merge pull request #4310
7a3ea3a Wizard: fix stagenet getApproximateBlockchainHeight (selsta)
2024-08-13 12:38:27 -04:00
luigi1111
a49cd13a83
Merge pull request #4308
1878338 TxUtils: allow @ in OpenAlias domain (selsta)
2024-08-13 12:37:59 -04:00
luigi1111
50d479f7a6
Merge pull request #4300
a64ae97 utils: add quotes to desktop entry path (selsta)
2024-08-13 12:37:20 -04:00
luigi1111
94477c5480
Merge pull request #4285
ca3dafc DEPLOY: add more dependencies, use full path in prefix (selsta)
2024-08-13 12:36:52 -04:00
SChernykh
ff1e50745d p2pool: update to v4.1 2024-08-12 20:47:51 +02:00
tobtoht
8118355f39
macOS: remove deprecated screenshot function 2024-08-09 23:30:30 +02:00
selsta
1d686adcb9
wizard: add new Trezor Safe 5 2024-08-08 21:22:06 +02:00
tobtoht
f8aa11bc41
docker: bump Qt to v5.15.14 2024-05-24 22:29:14 +02:00
selsta
923f77a2db
WizardModeSelection: enable pruning by default 2024-05-24 17:07:23 +02:00
plowsof
45a2b1d2a7
README.md: sponsors;remove forked networking/globee
https://github.com/monero-project/monero/pull/9324
2024-05-23 21:36:00 +01:00
selsta
7a3ea3a93c
Wizard: fix stagenet getApproximateBlockchainHeight 2024-04-28 21:13:18 +02:00
selsta
1878338a44
TxUtils: allow @ in OpenAlias domain 2024-04-25 16:31:22 +02:00
selsta
a64ae977cc
utils: add quotes to desktop entry path 2024-04-02 17:10:04 +02:00
selsta
ca3dafc5f0
DEPLOY: add more dependencies, use full path in prefix 2024-03-09 20:37:08 +01:00
rating89us
902cc2b13e TitleBar, MerchantTitleBar: add tooltips + fontAwesome fallback icons + restore icon; keep hover background color when switching theme 2021-12-01 22:10:12 +01:00
24 changed files with 308 additions and 136 deletions

View File

@ -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 }}

View File

@ -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")

View File

@ -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
```

View File

@ -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"

View File

@ -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 && \

View File

@ -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

View File

@ -57,6 +57,7 @@ QtObject {
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 titleBarRestoreSource: blackTheme ? _b_titleBarRestoreSource : _w_titleBarRestoreSource
property string titleBarCloseSource: blackTheme ? _b_titleBarCloseSource : _w_titleBarCloseSource
property string titleBarButtonHoverColor: blackTheme ? _b_titleBarButtonHoverColor : _w_titleBarButtonHoverColor
@ -119,6 +120,7 @@ QtObject {
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_titleBarRestoreSource: "qrc:///images/restore.svg"
property string _b_titleBarCloseSource: "qrc:///images/close.svg"
property string _b_titleBarButtonHoverColor: "#10FFFFFF"
@ -181,6 +183,7 @@ QtObject {
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_titleBarRestoreSource: "qrc:///images/themes/white/restore.svg"
property string _w_titleBarCloseSource: "qrc:///images/themes/white/close.svg"
property string _w_titleBarButtonHoverColor: "#11000000"

View File

@ -137,7 +137,7 @@ Rectangle {
// collapse sidebar
Rectangle {
id: btnCloseWallet
color: "transparent"
color: btnCloseWalletMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -160,17 +160,12 @@ Rectangle {
}
MouseArea {
id: btnCloseWalletMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnCloseWalletTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnCloseWalletTooltip.tooltipPopup.close()
}
onEntered: btnCloseWalletTooltip.tooltipPopup.open()
onExited: btnCloseWalletTooltip.tooltipPopup.close()
onClicked: root.closeWalletClicked(leftPanel.visible)
}
}
@ -178,7 +173,7 @@ Rectangle {
// language selection
Rectangle {
id: btnLanguageToggle
color: "transparent"
color: btnLanguageToggleMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -200,24 +195,19 @@ Rectangle {
}
MouseArea {
id: btnLanguageToggleMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnLanguageToggleTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnLanguageToggleTooltip.tooltipPopup.close()
}
onEntered: btnLanguageToggleTooltip.tooltipPopup.open()
onExited: btnLanguageToggleTooltip.tooltipPopup.close()
onClicked: root.languageClicked()
}
}
// switch theme
Rectangle {
color: "transparent"
color: switchThemeMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -239,17 +229,12 @@ Rectangle {
}
MouseArea {
id: switchThemeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: {
parent.color = MoneroComponents.Style.titleBarButtonHoverColor
btnSwitchThemeTooltip.tooltipPopup.open()
}
onExited: {
parent.color = "transparent"
btnSwitchThemeTooltip.tooltipPopup.close()
}
onEntered: btnSwitchThemeTooltip.tooltipPopup.open()
onExited: btnSwitchThemeTooltip.tooltipPopup.close()
onClicked: {
MoneroComponents.Style.blackTheme = !MoneroComponents.Style.blackTheme;
}
@ -313,7 +298,7 @@ Rectangle {
// minimize
Rectangle {
color: "transparent"
color: minimizeMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
visible: root.showMinimizeButton
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -328,47 +313,62 @@ Rectangle {
color: MoneroComponents.Style.defaultFontColor
fontAwesomeFallbackIcon: FontAwesome.minus
fontAwesomeFallbackSize: 18
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
fontAwesomeFallbackOpacity: 1
opacity: 0.75
}
MoneroComponents.Tooltip {
id: minimizeTooltip
anchors.fill: parent
text: qsTr("Minimize") + translationManager.emptyString
tooltipLeft: true
}
MouseArea {
id: minimizeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onEntered: minimizeTooltip.tooltipPopup.open()
onExited: minimizeTooltip.tooltipPopup.close()
onClicked: root.minimizeClicked();
}
}
// maximize
Rectangle {
id: test
visible: root.showMaximizeButton
color: "transparent"
color: maximizeMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Image {
MoneroEffects.ImageMask {
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
source: MoneroComponents.Style.titleBarFullscreenSource
sourceSize.width: 16
sourceSize.height: 16
smooth: true
mipmap: true
image: appWindow.visibility === Window.Maximized ? MoneroComponents.Style.titleBarRestoreSource : MoneroComponents.Style.titleBarFullscreenSource
color: MoneroComponents.Style.defaultFontColor
width: 16
height: 16
opacity: 0.75
rotation: appWindow.visibility === Window.FullScreen ? 180 : 0
fontAwesomeFallbackIcon: appWindow.visibility === Window.Maximized ? FontAwesome.windowRestore : FontAwesome.windowMaximize
fontAwesomeFallbackSize: 21
fontAwesomeFallbackOpacity: 1
}
MoneroComponents.Tooltip {
id: maximizeTooltip
anchors.fill: parent
text: appWindow.visibility === Window.Maximized ? qsTr("Restore") : qsTr("Maximize") + translationManager.emptyString
tooltipLeft: true
}
MouseArea {
id: buttonArea
id: maximizeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onEntered: maximizeTooltip.tooltipPopup.open()
onExited: maximizeTooltip.tooltipPopup.close()
onClicked: root.maximizeClicked();
}
}
@ -376,7 +376,7 @@ Rectangle {
// close
Rectangle {
visible: root.showCloseButton
color: "transparent"
color: closeMouseArea.containsMouse ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -389,16 +389,24 @@ Rectangle {
color: MoneroComponents.Style.defaultFontColor
fontAwesomeFallbackIcon: FontAwesome.times
fontAwesomeFallbackSize: 21
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
fontAwesomeFallbackOpacity: 1
opacity: 0.75
}
MoneroComponents.Tooltip {
id: closeTooltip
anchors.fill: parent
text: qsTr("Close Monero GUI") + translationManager.emptyString
tooltipLeft: true
}
MouseArea {
id: closeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = MoneroComponents.Style.titleBarButtonHoverColor
onExited: parent.color = "transparent"
onEntered: closeTooltip.tooltipPopup.open()
onExited: closeTooltip.tooltipPopup.close()
onClicked: root.closeClicked();
}
}

View File

@ -73,4 +73,6 @@ Object {
property string shieldAlt : "\uf3ed"
property string signOutAlt : "\uf2f5"
property string times : "\uf00d"
property string windowMaximize : "\uf2d0"
property string windowRestore : "\uf2d2"
}

83
images/restore.svg Normal file
View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="18"
height="18"
viewBox="0 0 18 18"
version="1.1"
id="svg161"
sodipodi:docname="restore.svg"
inkscape:version="1.1.1 (1:1.1+202109281944+c3084ef5ed)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs165" />
<sodipodi:namedview
id="namedview163"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="22.416667"
inkscape:cx="13.494424"
inkscape:cy="8.8550186"
inkscape:window-width="1848"
inkscape:window-height="1016"
inkscape:window-x="72"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg161">
<inkscape:grid
type="xygrid"
id="grid247" />
</sodipodi:namedview>
<g
fill="none"
fill-rule="evenodd"
stroke="#ffffff"
stroke-width="1.636"
opacity="1"
id="g159"
transform="matrix(0.81887555,0,0,0.81887555,2.7243075,0.03677091)"
style="fill:none">
<rect
width="16.364"
height="16.364"
x="0.81800002"
y="0.81800002"
rx="1.636"
id="rect155"
style="fill:none" />
</g>
<g
fill="none"
fill-rule="evenodd"
stroke="#ffffff"
stroke-width="1.636"
opacity="1"
id="g159-3"
transform="matrix(0.81887555,0,0,0.81887555,0.05518064,3.2479998)"
style="fill:none">
<rect
width="16.364"
height="16.364"
x="0.81800002"
y="0.81800002"
rx="1.636"
id="rect155-6"
style="fill:none" />
<rect
width="16.364"
height="3.273"
x="0.81800002"
y="0.81800002"
fill="#ffffff"
rx="1.636"
id="rect157-7"
style="fill:none" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="18"
height="18"
viewBox="0 0 18 18"
version="1.1"
id="svg161"
sodipodi:docname="restore.svg"
inkscape:version="1.1.1 (1:1.1+202109281944+c3084ef5ed)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs165" />
<sodipodi:namedview
id="namedview163"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="22.416667"
inkscape:cx="4.7063196"
inkscape:cy="8.8550185"
inkscape:window-width="1848"
inkscape:window-height="1016"
inkscape:window-x="72"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="svg161">
<inkscape:grid
type="xygrid"
id="grid247" />
</sodipodi:namedview>
<g
fill="none"
fill-rule="evenodd"
stroke="#ffffff"
stroke-width="1.636"
opacity="1"
id="g159"
transform="matrix(0.81887555,0,0,0.81887555,2.7243075,0.03677091)"
style="fill:none;stroke:#000000;stroke-opacity:1">
<rect
width="16.364"
height="16.364"
x="0.81800002"
y="0.81800002"
rx="1.636"
id="rect155"
style="fill:none;stroke:#000000;stroke-opacity:1" />
</g>
<g
fill="none"
fill-rule="evenodd"
stroke="#ffffff"
stroke-width="1.636"
opacity="1"
id="g159-3"
transform="matrix(0.81887555,0,0,0.81887555,0.05518064,3.2479998)"
style="fill:none;stroke:#000000;stroke-opacity:1">
<rect
width="16.364"
height="16.364"
x="0.81800002"
y="0.81800002"
rx="1.636"
id="rect155-6"
style="fill:none;stroke:#000000;stroke-opacity:1" />
<rect
width="16.364"
height="3.273"
x="0.81800002"
y="0.81800002"
fill="#ffffff"
rx="1.636"
id="rect157-7"
style="fill:none;stroke:#000000;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
images/trezor5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

View File

@ -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;

View File

@ -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
}

2
monero

@ -1 +1 @@
Subproject commit 81d4db08eb75ce5392c65ca6571e7b08e41b7c95
Subproject commit b089f9ee69924882c5d14dd1a6991deb05d9d1cd

View File

@ -91,7 +91,7 @@ Rectangle {
// minimize
Rectangle {
color: "transparent"
color: minimizeMouseArea.containsMouse ? "#44FFFFFF" : "transparent"
visible: root.showMinimizeButton
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -104,46 +104,64 @@ Rectangle {
width: 15
image: MoneroComponents.Style.titleBarMinimizeSource
color: "white"
fontAwesomeFallbackIcon: FontAwesome.minus
fontAwesomeFallbackSize: 18
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
opacity: 0.75
}
MoneroComponents.Tooltip {
id: minimizeTooltip
anchors.fill: parent
text: qsTr("Minimize") + translationManager.emptyString
tooltipLeft: true
}
MouseArea {
id: minimizeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = "#44FFFFFF"
onExited: parent.color = "transparent"
onEntered: minimizeTooltip.tooltipPopup.open()
onExited: minimizeTooltip.tooltipPopup.close()
onClicked: root.minimizeClicked();
}
}
// maximize
Rectangle {
id: test
visible: root.showMaximizeButton
color: "transparent"
color: maximizeMouseArea.containsMouse ? "#44FFFFFF" : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
Image {
MoneroEffects.ImageMask {
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
source: MoneroComponents.Style._b_titleBarFullscreenSource
sourceSize.width: 16
sourceSize.height: 16
smooth: true
mipmap: true
image: appWindow.visibility === Window.Maximized ? MoneroComponents.Style.titleBarRestoreSource : MoneroComponents.Style._b_titleBarFullscreenSource
color: "white"
width: 16
height: 16
fontAwesomeFallbackIcon: appWindow.visibility === Window.Maximized ? FontAwesome.windowRestore : FontAwesome.windowMaximize
fontAwesomeFallbackSize: 21
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
opacity: 0.75
rotation: appWindow.visibility === Window.FullScreen ? 180 : 0
}
MoneroComponents.Tooltip {
id: maximizeTooltip
anchors.fill: parent
text: appWindow.visibility === Window.Maximized ? qsTr("Restore") : qsTr("Maximize") + translationManager.emptyString
tooltipLeft: true
}
MouseArea {
id: buttonArea
id: maximizeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = "#44FFFFFF"
onExited: parent.color = "transparent"
onEntered: maximizeTooltip.tooltipPopup.open()
onExited: maximizeTooltip.tooltipPopup.close()
onClicked: root.maximizeClicked();
}
}
@ -151,7 +169,7 @@ Rectangle {
// close
Rectangle {
visible: root.showCloseButton
color: "transparent"
color: closeMouseArea.containsMouse ? "#44FFFFFF" : "transparent"
Layout.preferredWidth: parent.height
Layout.preferredHeight: parent.height
@ -162,15 +180,26 @@ Rectangle {
width: 16
image: MoneroComponents.Style._b_titleBarCloseSource
color: "white"
fontAwesomeFallbackIcon: FontAwesome.times
fontAwesomeFallbackSize: 21
fontAwesomeFallbackOpacity: MoneroComponents.Style.blackTheme ? 0.8 : 0.6
opacity: 0.75
}
MoneroComponents.Tooltip {
id: closeTooltip
anchors.fill: parent
text: qsTr("Close Monero GUI") + translationManager.emptyString
tooltipLeft: true
}
MouseArea {
id: closeMouseArea
anchors.fill: parent
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onEntered: parent.color = "#44FFFFFF"
onExited: parent.color = "transparent"
onEntered: closeTooltip.tooltipPopup.open()
onExited: closeTooltip.tooltipPopup.close()
onClicked: root.closeClicked();
}
}

View File

@ -261,9 +261,11 @@
<file>images/fullscreen.svg</file>
<file>images/close.svg</file>
<file>images/minimize.svg</file>
<file>images/restore.svg</file>
<file>images/themes/white/close.svg</file>
<file>images/themes/white/fullscreen.svg</file>
<file>images/themes/white/minimize.svg</file>
<file>images/themes/white/restore.svg</file>
<file>components/effects/ColorTransition.qml</file>
<file>components/effects/GradientBackground.qml</file>
<file>images/check-white.svg</file>
@ -283,6 +285,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>

View 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

View File

@ -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;

View File

@ -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();
};

View File

@ -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];

View File

@ -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"

View File

@ -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") {

View File

@ -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');
}
}