In track add dialog, ESC clears currently selected track
This commit is contained in:
parent
8651dae3f3
commit
403c470c8a
@ -1903,14 +1903,19 @@ class DbDialog(QDialog):
|
|||||||
def add_selected(self) -> None:
|
def add_selected(self) -> None:
|
||||||
"""Handle Add button"""
|
"""Handle Add button"""
|
||||||
|
|
||||||
if not self.ui.matchList.selectedItems() and not self.ui.txtNote.text():
|
|
||||||
return
|
|
||||||
|
|
||||||
track = None
|
track = None
|
||||||
|
|
||||||
|
if self.ui.matchList.selectedItems():
|
||||||
item = self.ui.matchList.currentItem()
|
item = self.ui.matchList.currentItem()
|
||||||
if item:
|
if item:
|
||||||
track = item.data(Qt.ItemDataRole.UserRole)
|
track = item.data(Qt.ItemDataRole.UserRole)
|
||||||
self.add_track(track)
|
|
||||||
|
note = self.ui.txtNote.text()
|
||||||
|
|
||||||
|
if not note and not track:
|
||||||
|
return
|
||||||
|
|
||||||
|
self.add_track(track, self.ui.txtNote.text())
|
||||||
|
|
||||||
def add_selected_and_close(self) -> None:
|
def add_selected_and_close(self) -> None:
|
||||||
"""Handle Add and Close button"""
|
"""Handle Add and Close button"""
|
||||||
@ -1918,7 +1923,7 @@ class DbDialog(QDialog):
|
|||||||
self.add_selected()
|
self.add_selected()
|
||||||
self.accept()
|
self.accept()
|
||||||
|
|
||||||
def add_track(self, track: Tracks) -> None:
|
def add_track(self, track: Optional[Tracks], note: str) -> None:
|
||||||
"""Add passed track to playlist on screen"""
|
"""Add passed track to playlist on screen"""
|
||||||
|
|
||||||
if self.get_one_track:
|
if self.get_one_track:
|
||||||
@ -1927,20 +1932,10 @@ class DbDialog(QDialog):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if track:
|
if track:
|
||||||
self.musicmuster.visible_playlist_tab().insert_track(
|
self.musicmuster.visible_playlist_tab().insert_track(self.session, track, note)
|
||||||
self.session, track, note=self.ui.txtNote.text()
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.musicmuster.visible_playlist_tab().insert_header(
|
self.musicmuster.visible_playlist_tab().insert_header(self.session, note)
|
||||||
self.session, note=self.ui.txtNote.text()
|
|
||||||
)
|
|
||||||
|
|
||||||
# TODO: this shouldn't be needed as insert_track() saves
|
|
||||||
# playlist
|
|
||||||
# # Save to database (which will also commit changes)
|
|
||||||
# self.musicmuster.visible_playlist_tab().save_playlist(self.session)
|
|
||||||
# Clear note field and select search text to make it easier for
|
|
||||||
# next search
|
|
||||||
self.ui.txtNote.clear()
|
self.ui.txtNote.clear()
|
||||||
self.select_searchtext()
|
self.select_searchtext()
|
||||||
|
|
||||||
@ -1969,9 +1964,20 @@ class DbDialog(QDialog):
|
|||||||
"""Add items that are double-clicked"""
|
"""Add items that are double-clicked"""
|
||||||
|
|
||||||
track = entry.data(Qt.ItemDataRole.UserRole)
|
track = entry.data(Qt.ItemDataRole.UserRole)
|
||||||
self.add_track(track)
|
note = self.ui.txtNote.text()
|
||||||
# Select search text to make it easier for next search
|
self.add_track(track, note)
|
||||||
self.select_searchtext()
|
|
||||||
|
def keyPressEvent(self, event):
|
||||||
|
"""
|
||||||
|
Clear selection on ESC if there is one
|
||||||
|
"""
|
||||||
|
|
||||||
|
if event.key() == Qt.Key.Key_Escape:
|
||||||
|
if self.ui.matchList.selectedItems():
|
||||||
|
self.ui.matchList.clearSelection()
|
||||||
|
return
|
||||||
|
|
||||||
|
super(DbDialog, self).keyPressEvent(event)
|
||||||
|
|
||||||
def select_searchtext(self) -> None:
|
def select_searchtext(self) -> None:
|
||||||
"""Select the searchbox"""
|
"""Select the searchbox"""
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user