diff --git a/FlatCAMApp.py b/FlatCAMApp.py
index d0178276..6d9f6066 100644
--- a/FlatCAMApp.py
+++ b/FlatCAMApp.py
@@ -3915,9 +3915,12 @@ class App(QtCore.QObject):
# "{down} area "
"{down}
"
# " {issue} "
- "{issue}
".
- format(title=_("2D Computer-Aided Printed Circuit Board Manufacturing"),
- devel=_("Development"), down=_("DOWNLOAD"), issue=_("Issue tracker"))
+ ""
+ "{issue}
".format(
+ title=_("2D Computer-Aided Printed Circuit Board Manufacturing"),
+ devel=_("Development"),
+ down=_("DOWNLOAD"),
+ issue=_("Issue tracker"))
)
title.setOpenExternalLinks(True)
@@ -3927,7 +3930,8 @@ class App(QtCore.QObject):
description_label = QtWidgets.QLabel(
"FlatCAM {version} {beta} ({date}) - {arch}
"
"http://flatcam.org
".format(
- version=version,beta=('BETA' if beta else ''),
+ version=version,
+ beta=('BETA' if beta else ''),
date=version_date,
arch=platform.architecture()[0])
)
@@ -4005,31 +4009,83 @@ class App(QtCore.QObject):
self.splash_tab_layout.addWidget(logo, stretch=0)
self.splash_tab_layout.addWidget(title, stretch=1)
- self.prog_grid_lay = QtWidgets.QGridLayout()
+ pal = QtGui.QPalette()
+ pal.setColor(QtGui.QPalette.Background, Qt.white)
+
+ self.prog_form_lay = QtWidgets.QFormLayout()
+ self.prog_form_lay.setHorizontalSpacing(20)
prog_widget = QtWidgets.QWidget()
- prog_widget.setLayout(self.prog_grid_lay)
- self.programmmers_tab_layout.addWidget(prog_widget)
- self.programmmers_tab_layout.addStretch()
+ prog_widget.setLayout(self.prog_form_lay)
+ prog_scroll = QtWidgets.QScrollArea()
+ prog_scroll.setWidget(prog_widget)
+ prog_scroll.setWidgetResizable(True)
+ prog_scroll.setFrameShape(QtWidgets.QFrame.NoFrame)
+ prog_scroll.setPalette(pal)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Programmer")), 0, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Status")), 0, 1)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Juan Pablo Caram"), 1, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Program Author")), 1, 1)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Denis Hayrullin"), 2, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % " "), 2, 1)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Kamil Sopko"), 3, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % " "), 3, 1)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Marius Stanciu"), 4, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Maintainer >=2019")), 4, 1)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Matthieu Berthomé"), 5, 0)
- self.prog_grid_lay.addWidget(QtWidgets.QLabel('%s' % " "), 5, 1)
+ self.programmmers_tab_layout.addWidget(prog_scroll)
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % _("Programmer")),
+ QtWidgets.QLabel('%s' % _("Status")))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Juan Pablo Caram"),
+ QtWidgets.QLabel('%s' % _("Program Author")))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Denis Hayrullin"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Kamil Sopko"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Marius Stanciu"),
+ QtWidgets.QLabel('%s' % _("Maintainer >=2019")))
+ self.prog_form_lay.addRow(QtWidgets.QLabel(''))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Alexandru Lazar"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Matthieu Berthomé"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Mike Evans"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Victor Benso"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel(''))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Barnaby Walters"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Jørn Sandvik Nilsson"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Lei Zheng"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Marco A Quezada"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel(''))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Cedric Dussud"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Christopher Hemingway"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Damian Wrobel"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Daniel Sallin"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel(''))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Bruno Vunderl"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Gonzalo Lopez"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Jakob Staudt"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Mike Smith"))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel(''))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Lubos Medovarsky"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Steve Martina"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "Thomas Duffin"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel(''))
+
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "@Idechix"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "@SM"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "@grbf"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "@Symonty"))
+ self.prog_form_lay.addRow(QtWidgets.QLabel('%s' % "@mgix"))
self.translator_grid_lay = QtWidgets.QGridLayout()
+
+ # trans_widget = QtWidgets.QWidget()
+ # trans_widget.setLayout(self.translator_grid_lay)
+ # self.translators_tab_layout.addWidget(trans_widget)
+ # self.translators_tab_layout.addStretch()
+
trans_widget = QtWidgets.QWidget()
trans_widget.setLayout(self.translator_grid_lay)
- self.translators_tab_layout.addWidget(trans_widget)
- self.translators_tab_layout.addStretch()
+ trans_scroll = QtWidgets.QScrollArea()
+ trans_scroll.setWidget(trans_widget)
+ trans_scroll.setWidgetResizable(True)
+ trans_scroll.setFrameShape(QtWidgets.QFrame.NoFrame)
+ trans_scroll.setPalette(pal)
+ self.translators_tab_layout.addWidget(trans_scroll)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Language")), 0, 0)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % _("Translator")), 0, 1)
@@ -4050,7 +4106,7 @@ class App(QtCore.QObject):
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % "Marius Stanciu (Google-Translation)"), 5, 1)
self.translator_grid_lay.addWidget(QtWidgets.QLabel('%s' % " "), 5, 2)
self.translator_grid_lay.setColumnStretch(0, 0)
- # self.translators_tab_layout.addStretch()
+ self.translators_tab_layout.addStretch()
self.license_tab_layout.addWidget(license_label)
self.license_tab_layout.addStretch()
diff --git a/README.md b/README.md
index 4ed62c3e..cca72ff3 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing.
=================================================
+17.09.2019
+
+- added more programmers that contributed to FlatCAM over the years, in the "About FlatCAM" -> Programmers window
+
16.09.2019
- modified the TclCommand New so it will no longer close all tabs when called (it closed the Code Editor tab which may have been holding the code that run)
diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py
index 38a8da54..129714c1 100644
--- a/flatcamGUI/FlatCAMGUI.py
+++ b/flatcamGUI/FlatCAMGUI.py
@@ -5175,8 +5175,8 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
self.excellon_optimization_label = QtWidgets.QLabel(_('Algorithm:'))
self.excellon_optimization_label.setToolTip(
_("This sets the optimization type for the Excellon drill path.\n"
- "If <> is checked then Google OR-Tools algorithm with MetaHeuristic\n"
- "Guided Local Path is used. Default search time is 3sec.\n"
+ "If <> is checked then Google OR-Tools algorithm with\n"
+ "MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
"If <> is checked then Travelling Salesman algorithm is used for\n"
"drill path optimization.\n"
@@ -5192,8 +5192,8 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI):
orientation='vertical', stretch=False)
self.excellon_optimization_radio.setToolTip(
_("This sets the optimization type for the Excellon drill path.\n"
- "If <> is checked then Google OR-Tools algorithm with MetaHeuristic\n"
- "Guided Local Path is used. Default search time is 3sec.\n"
+ "If <> is checked then Google OR-Tools algorithm with\n"
+ "MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n"
"If <> is checked then Google OR-Tools Basic algorithm is used.\n"
"If <> is checked then Travelling Salesman algorithm is used for\n"
"drill path optimization.\n"