77from ui .edit_game_dialog_ui import Ui_Dialog as EditGameUI
88
99
10- class AddGameDialog (QDialog , AddGameUI ):
10+ class BaseDialog :
11+ def get_categories (self ):
12+ combobox = self .comboBox
13+ categories = database .get_categories ()
14+ for category in categories :
15+ combobox .addItem (category [0 ])
16+
17+
18+ class AddGameDialog (QDialog , AddGameUI , BaseDialog ):
1119 def __init__ (self ):
1220 super ().__init__ ()
1321 self .setFixedSize (450 , 180 )
@@ -23,12 +31,6 @@ def __init__(self):
2331 self .buttonBox .accepted .connect (self .accept_dialog )
2432 self .buttonBox .rejected .connect (self .reject )
2533
26- def get_categories (self ):
27- combobox = self .comboBox
28- categories = database .get_categories ()
29- for category in categories :
30- combobox .addItem (category [0 ])
31-
3234 def choose_file (self ):
3335 file_path = QFileDialog .getOpenFileName (
3436 self , "Выбрать файл" , "" , "EXE - Файл (*.exe)"
@@ -40,7 +42,8 @@ def accept_dialog(self):
4042 game_name = self .game_name .text ().strip ()
4143 game_path = self .file_path .text ().strip ()
4244 category_id = database .get_category_id_by_name (
43- self .comboBox .currentText ())
45+ self .comboBox .currentText ()
46+ )
4447
4548 if not game_name :
4649 QMessageBox .warning (self , "Ошибка" , "Введите название игры" )
@@ -53,14 +56,20 @@ def accept_dialog(self):
5356 if not category_id :
5457 category_id = 1
5558
56- if not database .check_name_is_unique (game_name ):
57- QMessageBox .warning (self , "Ошибка" ,
58- "Игра с таким именем уже существует" )
59+ if not database .check_unique (
60+ select_from = "Games" , where_value = "name" , parameter = game_name
61+ ):
62+ QMessageBox .warning (
63+ self , "Ошибка" , "Игра с таким именем уже существует"
64+ )
5965 return
6066
61- if not database .check_path_is_unique (game_path ):
62- QMessageBox .warning (self , "Ошибка" ,
63- "Игра с таким путём уке существует" )
67+ if not database .check_unique (
68+ select_from = "Games" , where_value = "path" , parameter = game_path
69+ ):
70+ QMessageBox .warning (
71+ self , "Ошибка" , "Игра с таким путём уке существует"
72+ )
6473 return
6574
6675 try :
@@ -69,11 +78,12 @@ def accept_dialog(self):
6978 QMessageBox .information (self , "Успех" , "Игра добавлена!" )
7079
7180 except Exception as e :
72- QMessageBox .critical (self , "Ошибка" ,
73- f"Не удалось добавить игру: { str (e )} " )
81+ QMessageBox .critical (
82+ self , "Ошибка" , f"Не удалось добавить игру: { str (e )} "
83+ )
7484
7585
76- class EditGameDialog (QDialog , EditGameUI ):
86+ class EditGameDialog (QDialog , EditGameUI , BaseDialog ):
7787 def __init__ (self , game_name ):
7888 super ().__init__ ()
7989 self .orig_game_name = game_name
@@ -92,12 +102,6 @@ def __init__(self, game_name):
92102 self .buttonBox .accepted .connect (self .accept_dialog )
93103 self .buttonBox .rejected .connect (self .reject )
94104
95- def get_categories (self ):
96- combobox = self .comboBox
97- categories = database .get_categories ()
98- for category in categories :
99- combobox .addItem (category [0 ])
100-
101105 def load_game_data (self ):
102106 game_data = database .get_game (self .orig_game_name )
103107 if game_data :
@@ -113,7 +117,8 @@ def load_game_data(self):
113117 def accept_dialog (self ):
114118 new_game_name = self .game_name .text ().strip ()
115119 category_id = database .get_category_id_by_name (
116- self .comboBox .currentText ())
120+ self .comboBox .currentText ()
121+ )
117122
118123 if not new_game_name :
119124 QMessageBox .warning (self , "Ошибка" , "Введите название игры" )
@@ -123,21 +128,26 @@ def accept_dialog(self):
123128 category_id = 1
124129
125130 # Проверяем уникальность имени, только если имя изменилось
126- if new_game_name != self .orig_game_name and not database .check_name_is_unique (
127- new_game_name ):
128- QMessageBox .warning (self , "Ошибка" ,
129- "Игра с таким именем уже существует" )
131+ if (
132+ new_game_name != self .orig_game_name
133+ and not database .check_name_is_unique (new_game_name )
134+ ):
135+ QMessageBox .warning (
136+ self , "Ошибка" , "Игра с таким именем уже существует"
137+ )
130138 return
131139
132140 try :
133- database .update_game (self .orig_game_name , new_game_name ,
134- category_id )
141+ database .update_game (
142+ self .orig_game_name , new_game_name , category_id
143+ )
135144 self .accept ()
136145 QMessageBox .information (self , "Успех" , "Игра обновлена!" )
137146
138147 except Exception as e :
139- QMessageBox .critical (self , "Ошибка" ,
140- f"Не удалось обновить игру: { str (e )} " )
148+ QMessageBox .critical (
149+ self , "Ошибка" , f"Не удалось обновить игру: { str (e )} "
150+ )
141151
142152
143153class AddCategoryDialog (QDialog , AddCategoryUI ):
@@ -156,28 +166,35 @@ def __init__(self):
156166 def accept_dialog (self ):
157167 category_name = self .lineEdit .text ().strip ()
158168 if not category_name :
159- QMessageBox .warning (self , "Ошибка" ,
160- "Категория не может быть пустой" )
169+ QMessageBox .warning (
170+ self , "Ошибка" , "Категория не может быть пустой"
171+ )
161172 return
162173
163- if not database .category_name_check_unique (category_name ):
164- QMessageBox .warning (self , "Ошибка" ,
165- "Категория с таким именем уже есть" )
174+ if not database .check_unique (
175+ select_from = "Categories" ,
176+ where_value = "name" ,
177+ parameter = category_name ,
178+ ):
179+ QMessageBox .warning (
180+ self , "Ошибка" , "Категория с таким именем уже есть"
181+ )
166182 return
167183
168184 try :
169185 database .insert_category (category_name )
170186 self .accept ()
171- QMessageBox .information (self , "Успех" ,
172- "Категория успешно добавлена" )
187+ QMessageBox .information (
188+ self , "Успех" , "Категория успешно добавлена"
189+ )
173190
174191 except Exception as e :
175192 QMessageBox .critical (
176193 self , "Ошибка" , f"Не удалось добавить категорию: { str (e )} "
177194 )
178195
179196
180- class DeleteCategoryDialog (QDialog , DeleteCategoryUI ):
197+ class DeleteCategoryDialog (QDialog , DeleteCategoryUI , BaseDialog ):
181198 def __init__ (self ):
182199 super ().__init__ ()
183200 self .setFixedSize (300 , 110 )
@@ -192,32 +209,31 @@ def __init__(self):
192209 self .buttonBox .accepted .connect (self .accept_dialog )
193210 self .buttonBox .rejected .connect (self .reject )
194211
195- def get_categories (self ):
196- combobox = self .comboBox
197- categories = database .get_categories ()
198- for category in categories :
199- combobox .addItem (category [0 ])
200-
201212 def accept_dialog (self ):
202213 category_name = self .comboBox .currentText ()
203214 if category_name == "Все" :
204- QMessageBox .warning (self , "Ошибка" ,
205- "Данную категорию удалить нельзя!" )
215+ QMessageBox .warning (
216+ self , "Ошибка" , "Данную категорию удалить нельзя!"
217+ )
206218 return
207219 if not category_name :
208- QMessageBox .warning (self , "Ошибка" ,
209- "Категория не может быть пустой" )
220+ QMessageBox .warning (
221+ self , "Ошибка" , "Категория не может быть пустой"
222+ )
210223 return
211224
212225 try :
213226 database .edit_games_category (
214- database .get_category_id_by_name (category_name ), 1 )
227+ database .get_category_id_by_name (category_name ), 1
228+ )
215229
216- database .delete_category (
217- database .get_category_id_by_name (category_name ))
230+ database .delete (
231+ select_from = "Categories" ,
232+ where_value = "id" ,
233+ parameter = database .get_category_id_by_name (category_name ),
234+ )
218235 self .accept ()
219- QMessageBox .information (self , "Успех" ,
220- "Категория успешно удалена" )
236+ QMessageBox .information (self , "Успех" , "Категория успешно удалена" )
221237
222238 except Exception as e :
223239 QMessageBox .critical (
0 commit comments