Skip to content

Commit

Permalink
Check github for latest release information
Browse files Browse the repository at this point in the history
  • Loading branch information
Simon Ho committed Feb 15, 2018
1 parent df4c0e2 commit b3fa2b9
Show file tree
Hide file tree
Showing 7 changed files with 380 additions and 8 deletions.
3 changes: 2 additions & 1 deletion designer/ui/convertUI.bat
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ CALL pyuic5 project_window_qt.ui -o ../project_window_qt.py
CALL pyuic5 project_new_window_qt.ui -o ../project_new_window_qt.py
CALL pyuic5 battery_window_qt.ui -o ../battery_window_qt.py
CALL pyuic5 settings_window_qt.ui -o ../settings_window_qt.py
CALL pyuic5 about_dialog_qt.ui -o ../about_dialog_qt.py
CALL pyuic5 about_dialog_qt.ui -o ../about_dialog_qt.py
CALL pyuic5 update_dialog_qt.ui -o ../update_dialog_qt.py
179 changes: 179 additions & 0 deletions designer/ui/update_dialog_qt.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="windowModality">
<enum>Qt::ApplicationModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>396</width>
<height>156</height>
</rect>
</property>
<property name="windowTitle">
<string>Software Update</string>
</property>
<property name="modal">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="title">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Software Update</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="openExternalLinks">
<bool>false</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="mainLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="info">
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="latest_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Latest version:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="current_label">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Current version:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="latest_value">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="current_value">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="buttonsLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="btn_update">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Update</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="btn_close">
<property name="text">
<string>Close</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
101 changes: 101 additions & 0 deletions designer/update_dialog_qt.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'update_dialog_qt.ui'
#
# Created by: PyQt5 UI code generator 5.6
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.setWindowModality(QtCore.Qt.ApplicationModal)
Dialog.resize(396, 156)
Dialog.setModal(True)
self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout.setObjectName("verticalLayout")
self.title = QtWidgets.QLabel(Dialog)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.title.sizePolicy().hasHeightForWidth())
self.title.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.title.setFont(font)
self.title.setAlignment(QtCore.Qt.AlignCenter)
self.title.setOpenExternalLinks(False)
self.title.setTextInteractionFlags(QtCore.Qt.LinksAccessibleByMouse)
self.title.setObjectName("title")
self.verticalLayout.addWidget(self.title)
self.mainLayout = QtWidgets.QHBoxLayout()
self.mainLayout.setObjectName("mainLayout")
self.verticalLayout_4 = QtWidgets.QVBoxLayout()
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.info = QtWidgets.QLabel(Dialog)
self.info.setText("")
self.info.setObjectName("info")
self.verticalLayout_4.addWidget(self.info)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.gridLayout_4 = QtWidgets.QGridLayout()
self.gridLayout_4.setObjectName("gridLayout_4")
self.latest_label = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.latest_label.setFont(font)
self.latest_label.setObjectName("latest_label")
self.gridLayout_4.addWidget(self.latest_label, 0, 0, 1, 1)
self.current_label = QtWidgets.QLabel(Dialog)
font = QtGui.QFont()
font.setBold(True)
font.setWeight(75)
self.current_label.setFont(font)
self.current_label.setObjectName("current_label")
self.gridLayout_4.addWidget(self.current_label, 1, 0, 1, 1)
self.latest_value = QtWidgets.QLabel(Dialog)
self.latest_value.setText("")
self.latest_value.setObjectName("latest_value")
self.gridLayout_4.addWidget(self.latest_value, 0, 1, 1, 1)
self.current_value = QtWidgets.QLabel(Dialog)
self.current_value.setText("")
self.current_value.setObjectName("current_value")
self.gridLayout_4.addWidget(self.current_value, 1, 1, 1, 1)
self.horizontalLayout_3.addLayout(self.gridLayout_4)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_3.addItem(spacerItem)
self.verticalLayout_4.addLayout(self.horizontalLayout_3)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_4.addItem(spacerItem1)
self.buttonsLayout = QtWidgets.QHBoxLayout()
self.buttonsLayout.setObjectName("buttonsLayout")
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.buttonsLayout.addItem(spacerItem2)
self.btn_update = QtWidgets.QPushButton(Dialog)
self.btn_update.setEnabled(False)
self.btn_update.setObjectName("btn_update")
self.buttonsLayout.addWidget(self.btn_update)
self.btn_close = QtWidgets.QPushButton(Dialog)
self.btn_close.setObjectName("btn_close")
self.buttonsLayout.addWidget(self.btn_close)
self.verticalLayout_4.addLayout(self.buttonsLayout)
self.mainLayout.addLayout(self.verticalLayout_4)
self.verticalLayout.addLayout(self.mainLayout)

self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)

def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Software Update"))
self.title.setText(_translate("Dialog", "Software Update"))
self.latest_label.setText(_translate("Dialog", "Latest version:"))
self.current_label.setText(_translate("Dialog", "Current version:"))
self.btn_update.setText(_translate("Dialog", "Update"))
self.btn_close.setText(_translate("Dialog", "Close"))

18 changes: 15 additions & 3 deletions interface/battery_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from PyQt5 import QtCore, QtGui, QtWidgets
from utils import display, values
from designer import battery_window_qt
from interface import about_dialog, settings_window
from interface import about_dialog, update_dialog, settings_window
from tasks import ant, flanker, mrt, sart, ravens, digitspan_backwards, sternberg


Expand All @@ -29,7 +29,6 @@ def __init__(self, base_dir, project_dir, res_width, res_height):
self.actionBrowse_Issues.setIcon(QtGui.QIcon(self.github_icon))
self.actionReport_Bug.setIcon(QtGui.QIcon(self.github_icon))
self.actionRequest_Feature.setIcon(QtGui.QIcon(self.github_icon))
self.actionCheck_for_updates.setIcon(QtGui.QIcon(self.github_icon))

# Get passed values
self.base_dir = base_dir
Expand Down Expand Up @@ -59,6 +58,7 @@ def __init__(self, base_dir, project_dir, res_width, res_height):

# Keep reference to the about and settings window objects
self.about = None
self.update = None
self.settings_window = None

# Initialize pygame screen
Expand All @@ -81,7 +81,7 @@ def __init__(self, base_dir, project_dir, res_width, res_height):
self.actionBrowse_Issues.triggered.connect(self.show_browse_issues)
self.actionReport_Bug.triggered.connect(self.show_new_issue)
self.actionRequest_Feature.triggered.connect(self.show_new_issue)
self.actionCheck_for_updates.triggered.connect(self.show_releases)
self.actionCheck_for_updates.triggered.connect(self.show_update)
self.actionAbout.triggered.connect(self.show_about)

# Bind button events
Expand Down Expand Up @@ -190,6 +190,18 @@ def show_about(self):
else:
self.about.activateWindow()
self.about.raise_()

# Create a new UpdateDialog object and display it
def show_update(self):
# If the update dialog does not exist, create one
if self.update is None:
self.update = update_dialog.UpdateDialog(self)
self.update.show()
self.update.finished.connect(lambda: setattr(self, "update", None))
# If update dialog exists, bring it to the front
else:
self.update.activateWindow()
self.update.raise_()

def error_dialog(self, message):
QtWidgets.QMessageBox.warning(self, "Error", message)
Expand Down
18 changes: 15 additions & 3 deletions interface/project_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from PyQt5 import QtCore, QtGui, QtWidgets
from designer import project_window_qt
from interface import about_dialog, battery_window, project_new_window
from interface import about_dialog, battery_window, project_new_window, update_dialog
from utils import values


Expand All @@ -25,12 +25,12 @@ def __init__(self, base_dir, res_width, res_height):
self.actionBrowse_Issues.setIcon(QtGui.QIcon(self.github_icon))
self.actionReport_Bug.setIcon(QtGui.QIcon(self.github_icon))
self.actionRequest_Feature.setIcon(QtGui.QIcon(self.github_icon))
self.actionCheck_for_updates.setIcon(QtGui.QIcon(self.github_icon))

# Keep reference to main battery and new project windows
self.main_battery = None
self.new_project_window = None
self.about = None
self.update = None

self.res_width = res_width
self.res_height = res_height
Expand Down Expand Up @@ -60,7 +60,7 @@ def __init__(self, base_dir, res_width, res_height):
self.actionBrowse_Issues.triggered.connect(self.show_browse_issues)
self.actionReport_Bug.triggered.connect(self.show_new_issue)
self.actionRequest_Feature.triggered.connect(self.show_new_issue)
self.actionCheck_for_updates.triggered.connect(self.show_releases)
self.actionCheck_for_updates.triggered.connect(self.show_update)
self.actionAbout.triggered.connect(self.show_about)

# Bind button events
Expand Down Expand Up @@ -112,6 +112,18 @@ def show_about(self):
else:
self.about.activateWindow()
self.about.raise_()

# Create a new UpdateDialog object and display it
def show_update(self):
# If the update dialog does not exist, create one
if self.update is None:
self.update = update_dialog.UpdateDialog(self)
self.update.show()
self.update.finished.connect(lambda: setattr(self, "update", None))
# If update dialog exists, bring it to the front
else:
self.update.activateWindow()
self.update.raise_()

def project_click(self, item):
if item.parent():
Expand Down
Loading

0 comments on commit b3fa2b9

Please sign in to comment.