mirror of
https://github.com/fergalmoran/picard.git
synced 2025-12-31 13:48:01 +00:00
PICARD-1175: save and restore CD Lookup dialog and headers states
This commit is contained in:
@@ -18,12 +18,21 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
|
||||
from picard import config, log
|
||||
from picard.ui import PicardDialog
|
||||
from picard.ui.ui_cdlookup import Ui_Dialog
|
||||
from picard.mbjson import artist_credit_from_node, label_info_from_node
|
||||
|
||||
|
||||
class CDLookupDialog(PicardDialog):
|
||||
dialog_window_size = "cdlookupdialog_window_size"
|
||||
dialog_header_state = "cdlookupdialog_header_state"
|
||||
|
||||
options = [
|
||||
config.Option("persist", dialog_window_size, QtCore.QSize(720, 360)),
|
||||
config.Option("persist", dialog_header_state, QtCore.QByteArray())
|
||||
]
|
||||
|
||||
def __init__(self, releases, disc, parent=None):
|
||||
PicardDialog.__init__(self, parent)
|
||||
@@ -34,6 +43,7 @@ class CDLookupDialog(PicardDialog):
|
||||
self.ui.release_list.setSortingEnabled(True)
|
||||
self.ui.release_list.setHeaderLabels([_("Album"), _("Artist"), _("Date"), _("Country"),
|
||||
_("Labels"), _("Catalog #s"), _("Barcode")])
|
||||
self.restore_state()
|
||||
if self.releases:
|
||||
for release in self.releases:
|
||||
labels, catalog_numbers = label_info_from_node(release['label-info'])
|
||||
@@ -57,13 +67,46 @@ class CDLookupDialog(PicardDialog):
|
||||
self.ui.release_list.sortByColumn(3, QtCore.Qt.AscendingOrder)
|
||||
self.ui.release_list.sortByColumn(2, QtCore.Qt.DescendingOrder)
|
||||
self.ui.lookup_button.clicked.connect(self.lookup)
|
||||
self.restore_header_state()
|
||||
|
||||
def save_and_accept(self):
|
||||
self.save_state()
|
||||
QtWidgets.QDialog.accept(self)
|
||||
|
||||
def accept(self):
|
||||
release_id = self.ui.release_list.currentItem().data(0, QtCore.Qt.UserRole)
|
||||
self.tagger.load_album(release_id, discid=self.disc.id)
|
||||
QtWidgets.QDialog.accept(self)
|
||||
self.save_and_accept()
|
||||
|
||||
def lookup(self):
|
||||
lookup = self.tagger.get_file_lookup()
|
||||
lookup.disc_lookup(self.disc.submission_url)
|
||||
QtWidgets.QDialog.accept(self)
|
||||
self.save_and_accept()
|
||||
|
||||
def reject(self):
|
||||
self.save_state()
|
||||
QtWidgets.QDialog.reject(self)
|
||||
|
||||
def restore_state(self):
|
||||
size = config.persist[self.dialog_window_size]
|
||||
if size:
|
||||
self.resize(size)
|
||||
log.debug("restore_state: %s" % self.dialog_window_size)
|
||||
|
||||
def restore_header_state(self):
|
||||
header = self.ui.release_list.header()
|
||||
state = config.persist[self.dialog_header_state]
|
||||
if state:
|
||||
header.restoreState(state)
|
||||
log.debug("restore_state: %s" % self.dialog_header_state)
|
||||
|
||||
def save_state(self):
|
||||
if self.ui.release_list:
|
||||
self.save_header_state()
|
||||
log.debug("save_state: %s" % self.dialog_window_size)
|
||||
config.persist[self.dialog_window_size] = self.size()
|
||||
|
||||
def save_header_state(self):
|
||||
state = self.ui.release_list.header().saveState()
|
||||
config.persist[self.dialog_header_state] = state
|
||||
log.debug("save_state: %s" % self.dialog_header_state)
|
||||
|
||||
@@ -17,7 +17,6 @@ class Ui_Dialog(object):
|
||||
self.label.setObjectName("label")
|
||||
self.vboxlayout.addWidget(self.label)
|
||||
self.release_list = QtWidgets.QTreeWidget(Dialog)
|
||||
self.release_list.setRootIsDecorated(False)
|
||||
self.release_list.setObjectName("release_list")
|
||||
self.release_list.headerItem().setText(0, "1")
|
||||
self.vboxlayout.addWidget(self.release_list)
|
||||
|
||||
@@ -29,9 +29,6 @@
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="release_list">
|
||||
<property name="rootIsDecorated">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
@@ -103,8 +100,8 @@
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>278</x>
|
||||
<y>253</y>
|
||||
<x>410</x>
|
||||
<y>227</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>96</x>
|
||||
@@ -119,8 +116,8 @@
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>369</x>
|
||||
<y>253</y>
|
||||
<x>629</x>
|
||||
<y>227</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>179</x>
|
||||
|
||||
Reference in New Issue
Block a user