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

Commit 9b68e4a

Browse files
committed
delete a project
1 parent 01fe0b4 commit 9b68e4a

File tree

3 files changed

+57
-2
lines changed

3 files changed

+57
-2
lines changed

pugdebug/gui/projects.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,4 @@ def show_context_menu(self, point):
111111
def handle_delete_action(self):
112112
for index in self.selectedIndexes():
113113
project = self.model().get_project_by_index(index)
114-
print(project.get_project_name())
114+
project.delete()

pugdebug/models/projects.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99

1010
__author__ = "robertbasic"
1111

12+
import os
13+
1214
from PyQt5.QtCore import QCoreApplication, QSettings
1315
from PyQt5.QtGui import QStandardItemModel, QStandardItem
1416

15-
from pugdebug.models.settings import get_projects, has_setting
17+
from pugdebug.models.settings import get_projects, has_setting, delete_project
1618

1719

1820
class PugdebugProject(QSettings):
@@ -45,6 +47,15 @@ def get_settings(self):
4547

4648
return project_settings
4749

50+
def delete(self):
51+
delete_project(self.get_project_name())
52+
53+
filename = self.fileName()
54+
try:
55+
os.unlink(filename)
56+
except OSError as e:
57+
print(e)
58+
4859

4960
class PugdebugProjects(QStandardItemModel):
5061

pugdebug/models/settings.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,21 @@ def add_project(self, project):
7272
self.application_settings.setValue('projects', project)
7373
self.application_settings.endArray()
7474

75+
def delete_project(self, project):
76+
size = self.application_settings.beginReadArray('projects')
77+
78+
for i in range(0, size):
79+
self.application_settings.setArrayIndex(i)
80+
existing_project = self.application_settings.value('projects')
81+
82+
if existing_project == project:
83+
self.application_settings.remove('projects')
84+
break
85+
86+
self.application_settings.endArray()
87+
88+
self.__reindex_projects_array()
89+
7590
def get_projects(self):
7691
size = self.application_settings.beginReadArray('projects')
7792

@@ -101,6 +116,31 @@ def __get_next_index(self, project):
101116

102117
return False if index is not None else size
103118

119+
def __reindex_projects_array(self):
120+
size = self.application_settings.beginReadArray('projects')
121+
122+
projects = set()
123+
for i in range(0, size):
124+
self.application_settings.setArrayIndex(i)
125+
project = self.application_settings.value('projects')
126+
127+
if project is not None:
128+
projects.add(project)
129+
130+
self.application_settings.endArray()
131+
132+
self.application_settings.remove('projects')
133+
134+
self.application_settings.beginWriteArray('projects')
135+
136+
i = 0
137+
for project in projects:
138+
self.application_settings.setArrayIndex(i)
139+
self.application_settings.setValue('projects', project)
140+
i += 1
141+
142+
self.application_settings.endArray()
143+
104144

105145
settings = PugdebugSettings()
106146

@@ -137,5 +177,9 @@ def add_project(project):
137177
settings.add_project(project)
138178

139179

180+
def delete_project(project):
181+
settings.delete_project(project)
182+
183+
140184
def get_projects():
141185
return settings.get_projects()

0 commit comments

Comments
 (0)