diff --git a/res/ui/about.ui b/res/ui/about.ui index 1b86b12fd034038ee501a55b1b3a304986a2c903..4ea3a486921d41a934835baf6e2ea636c9f4ba0e 100644 --- a/res/ui/about.ui +++ b/res/ui/about.ui @@ -24,6 +24,9 @@ <property name="alignment"> <set>Qt::AlignCenter</set> </property> + <property name="openExternalLinks"> + <bool>true</bool> + </property> </widget> </item> <item> diff --git a/res/ui/homescreen.ui b/res/ui/homescreen.ui index 5175ab847228391bdad450b76f7c4b4ea4e08438..b26d8fc1279adbbba46043460d8589c3bdd95107 100644 --- a/res/ui/homescreen.ui +++ b/res/ui/homescreen.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>400</width> - <height>301</height> + <height>325</height> </rect> </property> <property name="sizePolicy"> @@ -20,7 +20,11 @@ <string>Form</string> </property> <property name="styleSheet"> - <string notr="true">QToolButton { + <string notr="true">QLabel { + qproperty-alignment: AlignCenter; +} + +QToolButton { font-size: 14pt; font-weight: bold; }</string> @@ -42,11 +46,14 @@ <item> <widget class="QLabel" name="label_welcome"> <property name="text"> - <string><html><head/><body><p align="center"><span style=" font-size:xx-large; font-weight:600;">Welcome to Cutecoin !</span></p><p>Would you like to...</p></body></html></string> + <string><html><head/><body><p>TestText</p></body></html></string> </property> <property name="textFormat"> <enum>Qt::RichText</enum> </property> + <property name="openExternalLinks"> + <bool>true</bool> + </property> </widget> </item> <item> diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index 8f0d043269fc14bf58402b48bfcb80d8cb5a60ee..dc7ae0fd400592374ef3e220445563c44de08f2f 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -9,6 +9,8 @@ import logging import json import tarfile import shutil +import requests +import datetime from PyQt5.QtCore import QObject, pyqtSignal @@ -319,3 +321,22 @@ class Application(QObject): data = {'default_account': self.default_account, 'local_accounts': self.jsonify_accounts()} return data + + def latest_version(self): + version = (True, __version__) + releases = requests.get("https://api.github.com/repos/ucoin-io/cutecoin/releases") + latest = None + for r in releases.json(): + if not latest: + latest = r + else: + latest_date = datetime.datetime.strptime(latest['published_at'], "%Y-%m-%dT%H:%M:%SZ") + date = datetime.datetime.strptime(r['published_at'], "%Y-%m-%dT%H:%M:%SZ") + if latest_date < date: + latest = r + latest_version = tuple(latest["tag_name"].split(".")) + version = (__version__ == latest_version, + latest_version, + latest["html_url"]) + logging.debug("Found version : {0}".format(latest_version)) + return version diff --git a/src/cutecoin/gui/homescreen.py b/src/cutecoin/gui/homescreen.py index e31275ec98e598355ba3bae05ae00ae116bca919..335ab9035453550414e7cdb230b2ac8802465f70 100644 --- a/src/cutecoin/gui/homescreen.py +++ b/src/cutecoin/gui/homescreen.py @@ -6,6 +6,7 @@ Created on 31 janv. 2015 from PyQt5.QtWidgets import QWidget from ..gen_resources.homescreen_uic import Ui_HomeScreenWidget +from ..__init__ import __version__ class HomeScreenWidget(QWidget, Ui_HomeScreenWidget): @@ -13,9 +14,27 @@ class HomeScreenWidget(QWidget, Ui_HomeScreenWidget): classdocs """ - def __init__(self): + def __init__(self, app): """ Constructor """ super().__init__() self.setupUi(self) + + latest = app.latest_version() + version_info = "" + version_url = "" + if not latest[0]: + version_info = "Please get the latest release {version}" \ + .format(version='.'.join(latest[1])) + version_url = latest[2] + + self.label_welcome.setText( + """ + <h1>Welcome to Cutecoin {version}</h1> + <h2>{version_info}</h2> + <h3><a href={version_url}>Download link</a></h3> + <p>Would you like to...</p> + """.format(version=__version__, + version_info=version_info, + version_url=version_url)) diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py index 40d0c4a09220223167a0ccbaf62c71616b7add32..f2c76aa622f51e35d26a76ab54c526d5e940eb41 100644 --- a/src/cutecoin/gui/mainwindow.py +++ b/src/cutecoin/gui/mainwindow.py @@ -102,7 +102,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.loader.connection_error.connect(self.display_error) self.loader_thread.started.connect(self.loader.load) - self.homescreen = HomeScreenWidget() + self.homescreen = HomeScreenWidget(self.app) self.centralWidget().layout().addWidget(self.homescreen) self.homescreen.button_new.clicked.connect(self.open_add_account_dialog) self.homescreen.button_import.clicked.connect(self.import_account) @@ -172,7 +172,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.status_label.setText("Loading account {0}".format(account_name)) self.loader.set_account_name(account_name) self.loader_thread.start(QThread.LowPriority) - self.homescreen.setEnabled(False) + self.homescreen.button_new.setEnabled(False) + self.homescreen.button_import.setEnabled(False) def open_transfer_money_dialog(self): dialog = TransferMoneyDialog(self.app.current_account, @@ -207,12 +208,27 @@ class MainWindow(QMainWindow, Ui_MainWindow): aboutDialog = QDialog(self) aboutUi = Ui_AboutPopup() aboutUi.setupUi(aboutDialog) + + latest = self.app.latest_version() + version_info = "" + version_url = "" + if not latest[0]: + version_info = "Latest release : {version}" \ + .format(version='.'.join(latest[1])) + version_url = latest[2] + + new_version_text = """ + <p><b>{version_info}</b></p> + <p><a href={version_url}>Download link</a></p> + """.format(version_info=version_info, + version_url=version_url) text = """ <h1>Cutecoin</h1> <p>Python/Qt uCoin client</p> <p>Version : {:}</p> + {new_version_text} <p>License : MIT</p> @@ -221,7 +237,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): <p>inso</p> <p>vit</p> <p>canercandan</p> - """.format(__version__) + """.format(__version__, + new_version_text=new_version_text) aboutUi.label.setText(text) aboutDialog.show()