Skip to content
Snippets Groups Projects
Commit 2f63bba7 authored by inso's avatar inso
Browse files

Alert in version informations when a new version is available

parent ddf1577a
No related branches found
No related tags found
No related merge requests found
......@@ -24,6 +24,9 @@
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item>
......
......@@ -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>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;&lt;span style=&quot; font-size:xx-large; font-weight:600;&quot;&gt;Welcome to Cutecoin !&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Would you like to...&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;TestText&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item>
......
......@@ -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
......@@ -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))
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment