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

Commit b5ac064

Browse files
committed
only add project to array if it does not yet exist
1 parent af913d3 commit b5ac064

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

pugdebug/models/settings.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,30 @@ def set(self, key, value):
6464
return self.application_settings.setValue(key, value)
6565

6666
def add_project(self, project):
67-
number_of_projects = self.__get_number_of_projects()
68-
self.application_settings.beginWriteArray('projects')
69-
self.application_settings.setArrayIndex(number_of_projects)
70-
self.application_settings.setValue('projects', project)
71-
self.application_settings.endArray()
67+
index = self.__get_next_index(project)
68+
69+
if index is not False:
70+
self.application_settings.beginWriteArray('projects')
71+
self.application_settings.setArrayIndex(index)
72+
self.application_settings.setValue('projects', project)
73+
self.application_settings.endArray()
7274

73-
def __get_number_of_projects(self):
75+
def __get_next_index(self, project):
7476
size = self.application_settings.beginReadArray('projects')
77+
78+
index = None
79+
80+
for i in range(0, size):
81+
self.application_settings.setArrayIndex(i)
82+
existing_project = self.application_settings.value('projects')
83+
84+
if existing_project == project:
85+
index = i
86+
break
87+
7588
self.application_settings.endArray()
76-
return size
89+
90+
return False if index is not None else size
7791

7892

7993
settings = PugdebugSettings()

0 commit comments

Comments
 (0)