diff --git a/FlatCAMApp.py b/FlatCAMApp.py
index c9e6daaf..3e93c6a8 100644
--- a/FlatCAMApp.py
+++ b/FlatCAMApp.py
@@ -1,4 +1,5 @@
-import sys, traceback
+import sys
+import traceback
import urllib
import getopt
import random
@@ -16,6 +17,7 @@ from contextlib import contextmanager
########################################
## Imports part of FlatCAM ##
########################################
+import FlatCAMVersion
from FlatCAMWorker import Worker
from ObjectCollection import *
from FlatCAMObj import *
@@ -64,7 +66,9 @@ class App(QtCore.QObject):
## Version
version = 8.5
- version_date = "2016/7"
+ #version_date_str = "2016/7"
+ version_date = (0, 0, 0)
+ version_name = None
## URL for update checks and statistics
version_url = "http://flatcam.org/version"
@@ -115,6 +119,13 @@ class App(QtCore.QObject):
# in the worker task.
thread_exception = QtCore.pyqtSignal(object)
+ @property
+ def version_date_str(self):
+ return "{:4d}/{:02d}".format(
+ self.version_date[0],
+ self.version_date[1]
+ )
+
def __init__(self, user_defaults=True, post_gui=None):
"""
Starts the application.
@@ -123,6 +134,8 @@ class App(QtCore.QObject):
:rtype: App
"""
+ FlatCAMVersion.setup(self)
+
App.log.info("FlatCAM Starting...")
###################
@@ -184,7 +197,7 @@ class App(QtCore.QObject):
QtCore.QObject.__init__(self)
- self.ui = FlatCAMGUI(self.version)
+ self.ui = FlatCAMGUI(self.version, name=self.version_name)
self.connect(self.ui,
QtCore.SIGNAL("geomUpdate(int, int, int, int)"),
self.save_geometry)
@@ -549,7 +562,11 @@ class App(QtCore.QObject):
self.shell.setWindowIcon(self.ui.app_icon)
self.shell.setWindowTitle("FlatCAM Shell")
self.shell.resize(*self.defaults["shell_shape"])
- self.shell.append_output("FlatCAM %s\n(c) 2014-2015 Juan Pablo Caram\n\n" % self.version)
+ self.shell.append_output("FlatCAM {}".format(self.version))
+ if self.version_name:
+ self.shell.append_output(" - {}".format(self.version_name))
+ self.shell.append_output("\n(c) 2014-{} Juan Pablo Caram\n\n".format(
+ self.version_date[0]))
self.shell.append_output("Type help to get started.\n\n")
self.init_tcl()
@@ -583,7 +600,7 @@ class App(QtCore.QObject):
App.log.debug("END of constructor. Releasing control.")
def init_tcl(self):
- if hasattr(self,'tcl'):
+ if hasattr(self, 'tcl'):
# self.tcl = None
# TODO we need to clean non default variables and procedures here
# new object cannot be used here as it will not remember values created for next passes,
@@ -1063,7 +1080,8 @@ class App(QtCore.QObject):
self.report_usage("on_about")
version = self.version
- version_date = self.version_date
+ version_date_str = self.version_date_str
+ version_year = self.version_date[0]
class AboutDialog(QtGui.QDialog):
def __init__(self, parent=None):
@@ -1085,12 +1103,16 @@ class App(QtCore.QObject):
title = QtGui.QLabel(
"FlatCAM
"
- "Version %s (%s)
"
+ "Version {} ({})
"
"
"
"2D Computer-Aided Printed Circuit Board
"
"Manufacturing.
"
"
"
- "(c) 2014-2015 Juan Pablo Caram" % (version, version_date)
+ "(c) 2014-{} Juan Pablo Caram".format(
+ version,
+ version_date_str,
+ version_year
+ )
)
layout2.addWidget(title, stretch=1)
diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py
index 9f22faa5..908152e6 100644
--- a/FlatCAMGUI.py
+++ b/FlatCAMGUI.py
@@ -7,7 +7,7 @@ class FlatCAMGUI(QtGui.QMainWindow):
# Emitted when persistent window geometry needs to be retained
geom_update = QtCore.pyqtSignal(int, int, int, int, name='geomUpdate')
- def __init__(self, version):
+ def __init__(self, version, name=None):
super(FlatCAMGUI, self).__init__()
# Divine icon pack by Ipapun @ finicons.com
@@ -248,7 +248,10 @@ class FlatCAMGUI(QtGui.QMainWindow):
self.setWindowIcon(self.app_icon)
self.setGeometry(100, 100, 1024, 650)
- self.setWindowTitle('FlatCAM %s - Development Version' % version)
+ title = 'FlatCAM {}'.format(version)
+ if name is not None:
+ title += ' - {}'.format(name)
+ self.setWindowTitle(title)
self.show()
def closeEvent(self, event):
diff --git a/FlatCAMVersion.py b/FlatCAMVersion.py
new file mode 100644
index 00000000..f5935cfc
--- /dev/null
+++ b/FlatCAMVersion.py
@@ -0,0 +1,22 @@
+import logging
+
+version = {
+ "number": 8.5,
+ "date": (2016, 7, 1), # Year, Month, Day
+ "name": None,
+ "release": True,
+}
+
+
+def setup(app):
+ app.version = version["number"]
+ app.version_date = version["date"]
+ if version["release"]:
+ app.log.setLevel(logging.WARNING)
+ else:
+ app.log.setLevel(logging.DEBUG)
+
+ if version["name"] is None and version["release"] == False:
+ app.version_name = "Development Version"
+ else:
+ app.version_name = version["name"]
diff --git a/sandbox/prepare_release.py b/sandbox/prepare_release.py
new file mode 100644
index 00000000..e69de29b