- added a protection on opening the tools database UI if the tools DB file is not loaded

This commit is contained in:
Marius Stanciu 2020-10-29 12:53:19 +02:00 committed by Marius
parent 3f94c1dcfa
commit 443f9a51e8
7 changed files with 31 additions and 5 deletions

View File

@ -13,6 +13,7 @@ CHANGELOG for FlatCAM beta
- updated Punch Gerber Tool such that the aperture table is updated upon clicking of the checboxes in Processed Pads Type
- updated Punch Gerber Tool: the Excellon method now takes into consideration the pads choice
- minor change for the FCComboBox UI element by setting its size policy as ignored so it will not expand the notebook when the name of one of its items is very long
- added a protection on opening the tools database UI if the tools DB file is not loaded
28.10.2020

View File

@ -1100,7 +1100,9 @@ class GeometryObject(FlatCAMObj, Geometry):
if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab)
break
self.app.on_tools_database()
ret_val = self.app.on_tools_database()
if ret_val == 'fail':
return
self.app.tools_db_tab.ok_to_add = True
self.app.tools_db_tab.ui.buttons_frame.hide()
self.app.tools_db_tab.ui.add_tool_from_db.show()

View File

@ -525,7 +525,9 @@ class CutOut(AppTool):
if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab)
break
self.app.on_tools_database(source='cutout')
ret_val = self.app.on_tools_database(source='cutout')
if ret_val == 'fail':
return
self.app.tools_db_tab.ok_to_add = True
self.app.tools_db_tab.ui.buttons_frame.hide()
self.app.tools_db_tab.ui.add_tool_from_db.show()

View File

@ -2680,7 +2680,9 @@ class ToolIsolation(AppTool, Gerber):
if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab)
break
self.app.on_tools_database(source='iso')
ret_val = self.app.on_tools_database(source='iso')
if ret_val == 'fail':
return
self.app.tools_db_tab.ok_to_add = True
self.app.tools_db_tab.ui.buttons_frame.hide()
self.app.tools_db_tab.ui.add_tool_from_db.show()

View File

@ -3809,7 +3809,9 @@ class NonCopperClear(AppTool, Gerber):
if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab)
break
self.app.on_tools_database(source='ncc')
ret_val = self.app.on_tools_database(source='ncc')
if ret_val == 'fail':
return
self.app.tools_db_tab.ok_to_add = True
self.app.tools_db_tab.ui.buttons_frame.hide()
self.app.tools_db_tab.ui.add_tool_from_db.show()

View File

@ -2725,7 +2725,9 @@ class ToolPaint(AppTool, Gerber):
if self.app.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
self.app.ui.plot_tab_area.setCurrentWidget(self.app.tools_db_tab)
break
self.app.on_tools_database(source='paint')
ret_val = self.app.on_tools_database(source='paint')
if ret_val == 'fail':
return
self.app.tools_db_tab.ok_to_add = True
self.app.tools_db_tab.ui.buttons_frame.hide()
self.app.tools_db_tab.ui.add_tool_from_db.show()

View File

@ -5648,6 +5648,21 @@ class App(QtCore.QObject):
:return:
"""
filename = self.data_path + '\\tools_db.FlatDB'
# load the database tools from the file
try:
with open(filename) as f:
__ = f.read()
except Exception as eros:
log.debug("The tools DB file is not loaded: %s" % str(eros))
log.error("Could not access tools DB file. The file may be locked,\n"
"not existing or doesn't have the read permissions.\n"
"Check to see if exists, it should be here: %s\n"
"It may help to reboot the app, it will try to recreate it if it's missing." % self.data_path)
self.inform.emit('[ERROR] %s' % _("Could not load Tools DB file."))
return 'fail'
for idx in range(self.ui.plot_tab_area.count()):
if self.ui.plot_tab_area.tabText(idx) == _("Tools Database"):
# there can be only one instance of Tools Database at one time