Esempio n. 1
0
 def __init__(self, obj, parent=None):
     QtWidgets.QDialog.__init__(self, parent)
     self.ui = Ui_VariablesDialog()
     self.ui.setupUi(self)
     self.ui.buttonBox.accepted.connect(self.accept)
     self.ui.buttonBox.rejected.connect(self.reject)
     metadata = obj.metadata
     if isinstance(obj, File):
         self.setWindowTitle(_("File: %s") % obj.base_filename)
     elif isinstance(obj, Track):
         tn = metadata['tracknumber']
         if len(tn) == 1:
             tn = "0" + tn
         self.setWindowTitle(_("Track: %s %s ") % (tn, metadata['title']))
     else:
         self.setWindowTitle(_("Variables"))
     self._display_metadata(metadata)
Esempio n. 2
0
 def __init__(self, obj, parent=None):
     QtGui.QDialog.__init__(self, parent)
     self.ui = Ui_VariablesDialog()
     self.ui.setupUi(self)
     self.ui.buttonBox.accepted.connect(self.accept)
     self.ui.buttonBox.rejected.connect(self.reject)
     metadata = obj.metadata
     if isinstance(obj,File):
         self.setWindowTitle(_("File: %s") % obj.base_filename)
     elif isinstance(obj,Track):
         tn = metadata['tracknumber']
         if len(tn) == 1:
             tn = u"0" + tn
         self.setWindowTitle(_("Track: %s %s ") % (tn, metadata['title']))
     else:
         self.setWindowTitle(_("Variables"))
     self._display_metadata(metadata)
Esempio n. 3
0
class ViewVariablesDialog(QtWidgets.QDialog):
    def __init__(self, obj, parent=None):
        QtWidgets.QDialog.__init__(self, parent)
        self.ui = Ui_VariablesDialog()
        self.ui.setupUi(self)
        self.ui.buttonBox.accepted.connect(self.accept)
        self.ui.buttonBox.rejected.connect(self.reject)
        metadata = obj.metadata
        if isinstance(obj, File):
            self.setWindowTitle(_("File: %s") % obj.base_filename)
        elif isinstance(obj, Track):
            tn = metadata['tracknumber']
            if len(tn) == 1:
                tn = "0" + tn
            self.setWindowTitle(_("Track: %s %s ") % (tn, metadata['title']))
        else:
            self.setWindowTitle(_("Variables"))
        self._display_metadata(metadata)

    def _display_metadata(self, metadata):
        keys = metadata.keys()
        keys = sorted(
            keys,
            key=lambda key: '0' + key
            if key in PRESERVED_TAGS and key.startswith('~') else '1' + key
            if key.startswith('~') else '2' + key)
        media = hidden = album = False
        table = self.ui.metadata_table
        key_example, value_example = self.get_table_items(table, 0)
        self.key_flags = key_example.flags()
        self.value_flags = value_example.flags()
        table.setRowCount(len(keys) + 3)
        i = 0
        for key in keys:
            if key in PRESERVED_TAGS and key.startswith('~'):
                if not media:
                    self.add_separator_row(table, i, _("File variables"))
                    i += 1
                    media = True
            elif key.startswith('~'):
                if not hidden:
                    self.add_separator_row(table, i, _("Hidden variables"))
                    i += 1
                    hidden = True
            else:
                if not album:
                    self.add_separator_row(table, i, _("Tag variables"))
                    i += 1
                    album = True

            key_item, value_item = self.get_table_items(table, i)
            i += 1
            key_item.setText("_" + key[1:] if key.startswith('~') else key)
            if key in metadata:
                value = dict.get(metadata, key)
                if len(value) == 1 and value[0] != '':
                    value = value[0]
                else:
                    value = repr(value)
                value_item.setText(value)

    def add_separator_row(self, table, i, title):
        key_item, value_item = self.get_table_items(table, i)
        font = key_item.font()
        font.setBold(True)
        key_item.setFont(font)
        key_item.setText(title)

    def get_table_items(self, table, i):
        key_item = table.item(i, 0)
        value_item = table.item(i, 1)
        if not key_item:
            key_item = QtWidgets.QTableWidgetItem()
            key_item.setFlags(self.key_flags)
            table.setItem(i, 0, key_item)
        if not value_item:
            value_item = QtWidgets.QTableWidgetItem()
            value_item.setFlags(self.value_flags)
            table.setItem(i, 1, value_item)
        return key_item, value_item
Esempio n. 4
0
class ViewVariablesDialog(QtGui.QDialog):

    def __init__(self, obj, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.ui = Ui_VariablesDialog()
        self.ui.setupUi(self)
        self.ui.buttonBox.accepted.connect(self.accept)
        self.ui.buttonBox.rejected.connect(self.reject)
        metadata = obj.metadata
        if isinstance(obj,File):
            self.setWindowTitle(_("File: %s") % obj.base_filename)
        elif isinstance(obj,Track):
            tn = metadata['tracknumber']
            if len(tn) == 1:
                tn = u"0" + tn
            self.setWindowTitle(_("Track: %s %s ") % (tn, metadata['title']))
        else:
            self.setWindowTitle(_("Variables"))
        self._display_metadata(metadata)

    def _display_metadata(self, metadata):
        keys = metadata.keys()
        keys.sort(key=lambda key:
            '0' + key if key in PRESERVED_TAGS and key.startswith('~') else
            '1' + key if key.startswith('~') else
            '2' + key
            )
        media = hidden = album = False
        table = self.ui.metadata_table
        key_example, value_example = self.get_table_items(table, 0)
        self.key_flags = key_example.flags()
        self.value_flags = value_example.flags()
        table.setRowCount(len(keys)+3)
        i = 0
        for key in keys:
            if key in PRESERVED_TAGS and key.startswith('~') :
                if not media:
                    self.add_separator_row(table, i, _("File variables"))
                    i += 1
                    media = True
            elif key.startswith('~'):
                if not hidden:
                    self.add_separator_row(table, i, _("Hidden variables"))
                    i += 1
                    hidden = True
            else:
                if not album:
                    self.add_separator_row(table, i, _("Tag variables"))
                    i += 1
                    album = True

            key_item, value_item = self.get_table_items(table, i)
            i += 1
            key_item.setText(u"_" + key[1:] if key.startswith('~') else key)
            if key in metadata:
                value = dict.get(metadata, key)
                if len(value) == 1 and value[0] != '':
                    value = value[0]
                else:
                    value = repr(value)
                value_item.setText(value)

    def add_separator_row(self, table, i, title):
        key_item, value_item = self.get_table_items(table, i)
        font = key_item.font()
        font.setBold(True)
        key_item.setFont(font)
        key_item.setText(title)

    def get_table_items(self, table, i):
        key_item = table.item(i, 0)
        value_item = table.item(i, 1)
        if not key_item:
            key_item = QtGui.QTableWidgetItem()
            key_item.setFlags(self.key_flags)
            table.setItem(i, 0, key_item)
        if not value_item:
            value_item = QtGui.QTableWidgetItem()
            value_item.setFlags(self.value_flags)
            table.setItem(i, 1, value_item)
        return key_item, value_item