Skip to content

Commit 014eb6d

Browse files
committed
fixed #1 ui allows to rename workbenches
1 parent 644d02b commit 014eb6d

File tree

3 files changed

+30
-6
lines changed

3 files changed

+30
-6
lines changed

qgist/workbench/dtype_fsm.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,11 @@ def rename_workbench(self, old_name, new_name, mainwindow):
172172
if not isinstance(mainwindow, QMainWindow):
173173
raise QgistTypeError(translate('global', '"mainwindow" must be a QGis mainwindow. (dtype_fsm rename)'))
174174
if old_name not in self._workbench_dict.keys():
175-
raise QgistValueError(translate('global', '"old_name" is not a known workbench. (dtype_fsm rename)'))
175+
raise QgistWorkbenchNameError(translate('global', '"old_name" is not a known workbench. (dtype_fsm rename)'))
176176
if new_name in self._workbench_dict.keys():
177-
raise QgistValueError(translate('global', '"new_name" is a known workbench, i.e. already exists. (dtype_fsm rename)'))
177+
raise QgistWorkbenchNameError(translate('global', '"new_name" is a known workbench, i.e. already exists. (dtype_fsm rename)'))
178178
if len(new_name) == 0:
179-
raise QgistValueError(translate('global', '"new_name" is empty. (dtype_fsm rename)'))
179+
raise QgistWorkbenchNameError(translate('global', '"new_name" is empty. (dtype_fsm rename)'))
180180
if old_name == new_name:
181181
return
182182

qgist/workbench/dtype_workbench.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,9 @@ def name(self):
255255
@name.setter
256256
def name(self, value):
257257

258-
if not isinstance(name, str):
258+
if not isinstance(value, str):
259259
raise QgistTypeError(translate('global', 'New value of "name" must be a str. (dtype_workbench name)'))
260-
if len(name) == 0:
260+
if len(value) == 0:
261261
raise QgistValueError(translate('global', 'New value of "name" must not be empty. (dtype_workbench name)'))
262262

263263
self._name = value

qgist/workbench/ui_manager.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def __init__(self, plugin_root_fld, mainwindow, combobox_workbench, combobox_wor
100100

101101
def _connect_ui(self):
102102

103-
for item in ('new', 'delete', 'save'):
103+
for item in ('new', 'delete', 'save', 'rename'):
104104
self._ui_dict['toolbutton_{NAME:s}'.format(NAME = item)].clicked.connect(
105105
getattr(self, '_toolbutton_{NAME:s}_clicked'.format(NAME = item))
106106
)
@@ -187,6 +187,30 @@ def _toolbutton_save_clicked(self):
187187
self.reject()
188188
return
189189

190+
def _toolbutton_rename_clicked(self):
191+
192+
old_name = self._workbench_index_to_name(self._ui_dict['list_workbenches'].currentRow())
193+
new_name, user_ok = QInputDialog.getText(
194+
self,
195+
translate('global', 'Rename workbench'),
196+
translate('global', 'New name of workbench')
197+
)
198+
199+
if not user_ok:
200+
return
201+
202+
try:
203+
self._fsm.rename_workbench(old_name, new_name, self._mainwindow)
204+
self._update_workbenches()
205+
self._uptdate_items()
206+
except QgistWorkbenchNameError as e:
207+
msg_warning(e, self)
208+
return
209+
except Qgist_ALL_Errors as e:
210+
msg_critical(e, self)
211+
self.reject()
212+
return
213+
190214
def _update_workbenches(self):
191215

192216
self._ui_dict['list_workbenches'].setEnabled(False)

0 commit comments

Comments
 (0)