feat: Add confirmation dialog for URL deletion

This commit is contained in:
2024-07-12 18:45:29 +02:00
parent 9d4f4911cd
commit 165281564b

25
app.py
View File

@ -143,10 +143,10 @@ class URLManager(QWidget):
self.url_input.clear() self.url_input.clear()
self.description_input.clear() self.description_input.clear()
def delete_url(self): def delete_url(self, row):
selected_item = self.url_list.currentItem() reply = QMessageBox.question(self, 'Delete URL', 'Are you sure you want to delete this URL?',
if selected_item: QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
row = self.url_list.row(selected_item) if reply == QMessageBox.Yes:
del self.urls[row] del self.urls[row]
self.save_urls() self.save_urls()
self.update_url_list() self.update_url_list()
@ -170,10 +170,16 @@ class URLManager(QWidget):
# Action buttons # Action buttons
actions_layout = QHBoxLayout() actions_layout = QHBoxLayout()
edit_button = QPushButton("Edit") edit_button = QPushButton("Edit")
edit_button.setStyleSheet("padding: 2px;")
delete_button = QPushButton("Delete") delete_button = QPushButton("Delete")
delete_button.setStyleSheet("padding: 2px;")
search_button = QPushButton("Search")
search_button.setStyleSheet("padding: 2px;")
edit_button.clicked.connect(lambda ch, row=row_position: self.edit_url(row)) edit_button.clicked.connect(lambda ch, row=row_position: self.edit_url(row))
delete_button.clicked.connect(lambda ch, row=row_position: self.remove_url(row)) delete_button.clicked.connect(lambda ch, row=row_position: self.delete_url(row))
search_button.clicked.connect(lambda ch, row=row_position: self.search_url(row))
actions_layout.addWidget(edit_button) actions_layout.addWidget(edit_button)
actions_layout.addWidget(search_button)
actions_layout.addWidget(delete_button) actions_layout.addWidget(delete_button)
actions_widget = QWidget() actions_widget = QWidget()
actions_widget.setLayout(actions_layout) actions_widget.setLayout(actions_layout)
@ -185,10 +191,11 @@ class URLManager(QWidget):
self.description_input.setPlainText(url['description']) self.description_input.setPlainText(url['description'])
self.urls.pop(row) self.urls.pop(row)
def remove_url(self, row): def search_url(self, row):
del self.urls[row] url = self.urls[row]['url']
self.save_urls() search_engine = self.search_engines[self.search_engine]
self.update_url_list() search_url = search_engine + QUrl(url).toString(QUrl.FullyEncoded)
QDesktopServices.openUrl(QUrl(search_url))
def load_settings(self): def load_settings(self):
settings_path = 'data/settings.json' settings_path = 'data/settings.json'