diff --git a/app/playlists.py b/app/playlists.py index 442634b..7910a7f 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -781,6 +781,9 @@ class DbDialog(QDialog): self.ui.setupUi(self) self.ui.searchString.textEdited.connect(self.chars_typed) self.ui.matchList.itemDoubleClicked.connect(self.double_click) + self.ui.btnAdd.clicked.connect(self.add_selected) + self.ui.btnAddClose.clicked.connect(self.add_selected_and_close) + self.ui.btnClose.clicked.connect(self.close) record = Settings.get_int("dbdialog_width") width = record.f_int or 800 @@ -797,6 +800,18 @@ class DbDialog(QDialog): if record.f_int != self.width(): record.update({'f_int': self.width()}) + def add_selected(self): + if not self.ui.matchList.selectedItems(): + return + + item = self.ui.matchList.currentItem() + track_id = item.data(Qt.UserRole) + self.add_track(track_id) + + def add_selected_and_close(self): + self.add_selected() + self.close() + def chars_typed(self, s): if len(s) >= 3: matches = Tracks.search_titles(s) @@ -813,8 +828,10 @@ class DbDialog(QDialog): def double_click(self, entry): track_id = entry.data(Qt.UserRole) - track = Tracks.track_from_id(track_id) + self.add_track(track_id) + def add_track(self, track_id): + track = Tracks.track_from_id(track_id) # Store in current playlist in database db_playlist = Playlists.get_playlist_by_id(self.parent().playlist_id) db_playlist.add_track(track) diff --git a/app/ui/dlg_SearchDatabase.ui b/app/ui/dlg_SearchDatabase.ui index 972c1e6..fcbde29 100644 --- a/app/ui/dlg_SearchDatabase.ui +++ b/app/ui/dlg_SearchDatabase.ui @@ -15,71 +15,69 @@ - - - - - - - Title: - - - - - - - + + + + + Title: + + + + + + + + + - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - + + + + + Qt::Horizontal + + + + 88 + 20 + + + + + + + + &Add + + + true + + + + + + + A&dd and close + + + + + + + &Close + + + + - - - buttonBox - accepted() - Dialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Dialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - +