Skip to content
This repository was archived by the owner on Aug 28, 2020. It is now read-only.

Commit f3a83ee

Browse files
committed
Merge pull request #149 from robertbasic/fix/issue125
Fix/issue125. Fixes #125
2 parents 61f2520 + e43e2fe commit f3a83ee

File tree

6 files changed

+37
-9
lines changed

6 files changed

+37
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
### Fixed
1111
- Fix for GTK critical errors on Ubuntu
1212
- Do not jump to top of the file every time a debugging session starts
13+
- Updating settings now updates current project's settings as well
1314

1415
### Removed
1516

pugdebug/gui/projects.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,16 @@ def load_projects(self):
107107
model = self.model()
108108
model.load_projects()
109109

110+
def load_project_by_name(self, project_name):
111+
model = self.model()
112+
items = model.findItems(project_name)
113+
if len(items) > 0:
114+
item = items[0]
115+
project = model.get_project_by_item(item)
116+
return project
117+
118+
return None
119+
110120
def show_context_menu(self, point):
111121
context_menu = QMenu(self)
112122

pugdebug/gui/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
class PugdebugSettingsWindow(QDialog):
2222

23-
settings_changed_signal = pyqtSignal(set)
23+
settings_changed_signal = pyqtSignal(dict)
2424

2525
def __init__(self, parent):
2626
super(PugdebugSettingsWindow, self).__init__(parent)

pugdebug/models/projects.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ def get_settings(self):
4747

4848
return project_settings
4949

50+
def set_settings(self, new_settings):
51+
for key, value in new_settings.items():
52+
self.setValue(key, value)
53+
5054
def delete(self):
5155
delete_project(self.get_project_name())
5256

pugdebug/models/settings.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,13 @@ def set_setting(key, value):
162162

163163

164164
def save_settings(new_settings):
165-
changed_settings = set()
165+
changed_settings = {}
166166

167167
for key in new_settings:
168168
value = new_settings[key]
169169
if not has_setting(key) or get_setting(key) != value:
170170
set_setting(key, value)
171-
changed_settings.add(key)
171+
changed_settings[key] = value
172172

173173
return changed_settings
174174

pugdebug/pugdebug.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121
from pugdebug.models.documents import PugdebugDocuments
2222
from pugdebug.models.file_browser import PugdebugFileBrowser
2323
from pugdebug.models.projects import PugdebugProjects
24-
from pugdebug.models.settings import get_setting, set_setting, save_settings
24+
from pugdebug.models.settings import (get_setting, set_setting,
25+
save_settings, has_setting)
2526

2627

2728
class Pugdebug(QObject):
@@ -257,10 +258,10 @@ def handle_new_project_created(self, project_name):
257258
"""
258259
self.projects_browser.load_projects()
259260

260-
item = self.projects_browser.model().findItems(project_name)[0]
261-
project = self.projects_browser.model().get_project_by_item(item)
261+
project = self.projects_browser.load_project_by_name(project_name)
262262

263-
self.load_project(project)
263+
if project is not None:
264+
self.load_project(project)
264265

265266
def projects_browser_item_activated(self, index):
266267
"""Handle when a projects browser item gets activated
@@ -418,14 +419,26 @@ def handle_settings_changed(self, changed_settings):
418419
419420
Given argument is a set of settings's names which have been changed.
420421
"""
421-
if 'path/project_root' in changed_settings:
422+
423+
if has_setting('current_project'):
424+
project_name = get_setting('current_project')
425+
426+
project = self.projects_browser.load_project_by_name(project_name)
427+
428+
if project is not None:
429+
project.set_settings(changed_settings)
430+
431+
changed_setting_keys = changed_settings.keys()
432+
433+
if 'path/project_root' in changed_setting_keys:
422434
self.handle_project_root_changed()
423435

424436
features = ['debugger/max_depth',
425437
'debugger/max_children',
426438
'debugger/max_data']
427439

428-
if any(True for feature in features if feature in changed_settings):
440+
if any(True for feature in features
441+
if feature in changed_setting_keys):
429442
self.handle_debugger_features_changed()
430443

431444
def handle_project_root_changed(self):

0 commit comments

Comments
 (0)