ソースを参照

track notes are only saved when notepad loses focus

Olivier Massot 4 年 前
コミット
f4147f8c28
3 ファイル変更666 行追加876 行削除
  1. 657 870
      ui/qt/rsc_rc.py
  2. 0 1
      ui/qt/widgets/frame_notes.py
  3. 9 5
      ui/window.py

ファイルの差分が大きいため隠しています
+ 657 - 870
ui/qt/rsc_rc.py


+ 0 - 1
ui/qt/widgets/frame_notes.py

@@ -102,4 +102,3 @@ class FrameNotes(QtWidgets.QFrame):
         self.playlist.notes = notes
         session_repo.commit()
         self.dirty = False
-

+ 9 - 5
ui/window.py

@@ -4,7 +4,7 @@
 
     @author:[author], [year]
 """
-
+from PyQt5 import QtWidgets
 from path import Path
 
 from PyQt5.QtGui import QIcon
@@ -58,6 +58,8 @@ class MainWindow(QMainWindow):
             item.index = i
             self.ui.menu.addItem(item)
 
+        QtWidgets.qApp.focusChanged.connect(self.focus_changed)
+
         # Menu item clicked
         self.ui.menu.itemClicked.connect(self.menu_item_selected)
 
@@ -83,7 +85,6 @@ class MainWindow(QMainWindow):
         self.ui.explorerTrackTagsTable.tagUnchecked.connect(self.removeTrackTags)
 
         self.ui.explorerTrackMetaStack.setCurrentIndex(0)
-        self.ui.explorerTrackNotepad.textChanged.connect(self.explorerTrackNotesChanged)
         self.ui.explorerTrackPlay.clicked.connect(self.explorerPlaySelected)
 
         self.ui.btnSelectPlaylist.clicked.connect(self.selectPlaylist)
@@ -122,6 +123,10 @@ class MainWindow(QMainWindow):
                 playlist = playlist_repo.get_by_id(playlist_id)
                 self.loadPlaylist(playlist)
 
+    def focus_changed(self, old, new):
+        if old is self.ui.explorerTrackNotepad:
+            self.saveTrackNotes()
+
     def menu_item_selected(self, e):
         self.ui.stack.setCurrentIndex(e.index)
 
@@ -152,9 +157,7 @@ class MainWindow(QMainWindow):
         # track infos
         self.update_meta()
 
-        self.ui.explorerTrackNotepad.textChanged.disconnect(self.explorerTrackNotesChanged)
         self.ui.explorerTrackNotepad.setHtml(track.note)
-        self.ui.explorerTrackNotepad.textChanged.connect(self.explorerTrackNotesChanged)
 
         self.ui.explorerTrackTagsTable.populate(track)
 
@@ -350,13 +353,14 @@ class MainWindow(QMainWindow):
         track_tag_repo.query().filter(TrackTag.track_id == track_id).filter(TrackTag.tag_id == tag_id).delete()
         track_tag_repo.commit()
 
-    def explorerTrackNotesChanged(self):
+    def saveTrackNotes(self):
         if not self.selected_track:
             return
         note = self.ui.explorerTrackNotepad.toHtml()
         track_repo = TrackRepository()
         self.selected_track.note = note
         track_repo.commit()
+        print('track notes saved')
 
     def explorerSearchChanged(self):
         searchText = self.ui.explorerLineSearch.text()

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません