- increased the number of workers in FlatCAM and made the number of workers customizable from Preferences
This commit is contained in:
parent
cefb74d792
commit
b7fce74ca3
|
@ -319,6 +319,7 @@ class App(QtCore.QObject):
|
||||||
"global_project_at_startup": self.ui.general_defaults_form.general_app_group.project_startup_cb,
|
"global_project_at_startup": self.ui.general_defaults_form.general_app_group.project_startup_cb,
|
||||||
"global_project_autohide": self.ui.general_defaults_form.general_app_group.project_autohide_cb,
|
"global_project_autohide": self.ui.general_defaults_form.general_app_group.project_autohide_cb,
|
||||||
"global_toggle_tooltips": self.ui.general_defaults_form.general_app_group.toggle_tooltips_cb,
|
"global_toggle_tooltips": self.ui.general_defaults_form.general_app_group.toggle_tooltips_cb,
|
||||||
|
"global_worker_number": self.ui.general_defaults_form.general_app_group.worker_number_sb,
|
||||||
|
|
||||||
"global_compression_level": self.ui.general_defaults_form.general_app_group.compress_combo,
|
"global_compression_level": self.ui.general_defaults_form.general_app_group.compress_combo,
|
||||||
"global_save_compressed": self.ui.general_defaults_form.general_app_group.save_type_cb,
|
"global_save_compressed": self.ui.general_defaults_form.general_app_group.save_type_cb,
|
||||||
|
@ -586,6 +587,7 @@ class App(QtCore.QObject):
|
||||||
"global_project_at_startup": False,
|
"global_project_at_startup": False,
|
||||||
"global_project_autohide": True,
|
"global_project_autohide": True,
|
||||||
"global_toggle_tooltips": True,
|
"global_toggle_tooltips": True,
|
||||||
|
"global_worker_number": 2,
|
||||||
"global_compression_level": 3,
|
"global_compression_level": 3,
|
||||||
"global_save_compressed": True,
|
"global_save_compressed": True,
|
||||||
|
|
||||||
|
@ -1221,7 +1223,10 @@ class App(QtCore.QObject):
|
||||||
self.log.debug("Finished adding Geometry and Excellon Editor's.")
|
self.log.debug("Finished adding Geometry and Excellon Editor's.")
|
||||||
|
|
||||||
#### Worker ####
|
#### Worker ####
|
||||||
self.workers = WorkerStack()
|
if self.defaults["global_worker_number"]:
|
||||||
|
self.workers = WorkerStack(workers_number=int(self.defaults["global_worker_number"]))
|
||||||
|
else:
|
||||||
|
self.workers = WorkerStack(workers_number=2)
|
||||||
self.worker_task.connect(self.workers.add_task)
|
self.worker_task.connect(self.workers.add_task)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ class WorkerStack(QtCore.QObject):
|
||||||
worker_task = QtCore.pyqtSignal(dict) # 'worker_name', 'func', 'params'
|
worker_task = QtCore.pyqtSignal(dict) # 'worker_name', 'func', 'params'
|
||||||
thread_exception = QtCore.pyqtSignal(object)
|
thread_exception = QtCore.pyqtSignal(object)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, workers_number):
|
||||||
super(WorkerStack, self).__init__()
|
super(WorkerStack, self).__init__()
|
||||||
|
|
||||||
self.workers = []
|
self.workers = []
|
||||||
|
@ -16,7 +16,7 @@ class WorkerStack(QtCore.QObject):
|
||||||
self.load = {} # {'worker_name': tasks_count}
|
self.load = {} # {'worker_name': tasks_count}
|
||||||
|
|
||||||
# Create workers crew
|
# Create workers crew
|
||||||
for i in range(0, 2):
|
for i in range(0, workers_number):
|
||||||
worker = Worker(self, 'Slogger-' + str(i))
|
worker = Worker(self, 'Slogger-' + str(i))
|
||||||
thread = QtCore.QThread()
|
thread = QtCore.QThread()
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ CAD program, and create G-Code for Isolation routing.
|
||||||
|
|
||||||
- Gerber Editor: made geometry transfer (which is slow) to Editor to be multithreaded
|
- Gerber Editor: made geometry transfer (which is slow) to Editor to be multithreaded
|
||||||
- Gerber Editor: plotting process is showed in the status bar
|
- Gerber Editor: plotting process is showed in the status bar
|
||||||
|
- increased the number of workers in FlatCAM and made the number of workers customizable from Preferences
|
||||||
|
|
||||||
4.04.2019
|
4.04.2019
|
||||||
|
|
||||||
|
|
|
@ -3519,6 +3519,25 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
|
||||||
_( "Check this box if you want to have toolTips displayed\n"
|
_( "Check this box if you want to have toolTips displayed\n"
|
||||||
"when hovering with mouse over items throughout the App.")
|
"when hovering with mouse over items throughout the App.")
|
||||||
)
|
)
|
||||||
|
self.worker_number_label = QtWidgets.QLabel(_('Workers number:'))
|
||||||
|
self.worker_number_label.setToolTip(
|
||||||
|
_("The number of Qthreads made available to the App.\n"
|
||||||
|
"A bigger number may finish the jobs more quickly but\n"
|
||||||
|
"depending on your computer speed, may make the App\n"
|
||||||
|
"unresponsive. Can have a value between 2 and 16.\n"
|
||||||
|
"Default value is 2.\n"
|
||||||
|
"After change, it will be applied at next App start.")
|
||||||
|
)
|
||||||
|
self.worker_number_sb = FCSpinner()
|
||||||
|
self.worker_number_sb.setToolTip(
|
||||||
|
_("The number of Qthreads made available to the App.\n"
|
||||||
|
"A bigger number may finish the jobs more quickly but\n"
|
||||||
|
"depending on your computer speed, may make the App\n"
|
||||||
|
"unresponsive. Can have a value between 2 and 16.\n"
|
||||||
|
"Default value is 2.\n"
|
||||||
|
"After change, it will be applied at next App start.")
|
||||||
|
)
|
||||||
|
self.worker_number_sb.set_range(2, 16)
|
||||||
|
|
||||||
# Just to add empty rows
|
# Just to add empty rows
|
||||||
self.spacelabel = QtWidgets.QLabel('')
|
self.spacelabel = QtWidgets.QLabel('')
|
||||||
|
@ -3539,6 +3558,8 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
|
||||||
self.form_box.addRow(self.project_startup_label, self.project_startup_cb)
|
self.form_box.addRow(self.project_startup_label, self.project_startup_cb)
|
||||||
self.form_box.addRow(self.project_autohide_label, self.project_autohide_cb)
|
self.form_box.addRow(self.project_autohide_label, self.project_autohide_cb)
|
||||||
self.form_box.addRow(self.toggle_tooltips_label, self.toggle_tooltips_cb)
|
self.form_box.addRow(self.toggle_tooltips_label, self.toggle_tooltips_cb)
|
||||||
|
self.form_box.addRow(self.worker_number_label, self.worker_number_sb)
|
||||||
|
|
||||||
self.form_box.addRow(self.spacelabel, self.spacelabel)
|
self.form_box.addRow(self.spacelabel, self.spacelabel)
|
||||||
|
|
||||||
# Add the QFormLayout that holds the Application general defaults
|
# Add the QFormLayout that holds the Application general defaults
|
||||||
|
|
|
@ -1382,6 +1382,18 @@ class SpinBoxDelegate(QtWidgets.QItemDelegate):
|
||||||
class FCSpinner(QtWidgets.QSpinBox):
|
class FCSpinner(QtWidgets.QSpinBox):
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(FCSpinner, self).__init__(parent)
|
super(FCSpinner, self).__init__(parent)
|
||||||
|
self.readyToEdit = True
|
||||||
|
|
||||||
|
def mousePressEvent(self, e, parent=None):
|
||||||
|
super(FCSpinner, self).mousePressEvent(e) # required to deselect on 2e click
|
||||||
|
if self.readyToEdit:
|
||||||
|
self.lineEdit().selectAll()
|
||||||
|
self.readyToEdit = False
|
||||||
|
|
||||||
|
def focusOutEvent(self, e):
|
||||||
|
super(FCSpinner, self).focusOutEvent(e) # required to remove cursor on focusOut
|
||||||
|
self.lineEdit().deselect()
|
||||||
|
self.readyToEdit = True
|
||||||
|
|
||||||
def get_value(self):
|
def get_value(self):
|
||||||
return str(self.value())
|
return str(self.value())
|
||||||
|
@ -1394,6 +1406,9 @@ class FCSpinner(QtWidgets.QSpinBox):
|
||||||
return
|
return
|
||||||
self.setValue(k)
|
self.setValue(k)
|
||||||
|
|
||||||
|
def set_range(self, min_val, max_val):
|
||||||
|
self.setRange(min_val, max_val)
|
||||||
|
|
||||||
# def sizeHint(self):
|
# def sizeHint(self):
|
||||||
# default_hint_size = super(FCSpinner, self).sizeHint()
|
# default_hint_size = super(FCSpinner, self).sizeHint()
|
||||||
# return QtCore.QSize(EDIT_SIZE_HINT, default_hint_size.height())
|
# return QtCore.QSize(EDIT_SIZE_HINT, default_hint_size.height())
|
||||||
|
@ -1430,7 +1445,7 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox):
|
||||||
self.setDecimals(val)
|
self.setDecimals(val)
|
||||||
|
|
||||||
def set_range(self, min_val, max_val):
|
def set_range(self, min_val, max_val):
|
||||||
self.setRange(self, min_val, max_val)
|
self.setRange(min_val, max_val)
|
||||||
|
|
||||||
|
|
||||||
class Dialog_box(QtWidgets.QWidget):
|
class Dialog_box(QtWidgets.QWidget):
|
||||||
|
|
Loading…
Reference in New Issue