More "manage category" cleanups

This commit is contained in:
Charles Haley 2011-07-31 19:11:30 +01:00
parent 0c3212f256
commit a701da4e67

View File

@ -72,6 +72,7 @@ class TagListEditor(QDialog, Ui_TagListEditor):
Ui_TagListEditor.__init__(self) Ui_TagListEditor.__init__(self)
self.setupUi(self) self.setupUi(self)
# Put the category name into the title bar
t = self.windowTitle() t = self.windowTitle()
self.setWindowTitle(t + ' (' + cat_name + ')') self.setWindowTitle(t + ' (' + cat_name + ')')
# Remove help icon on title bar # Remove help icon on title bar
@ -79,6 +80,7 @@ class TagListEditor(QDialog, Ui_TagListEditor):
self.setWindowFlags(self.windowFlags()&(~Qt.WindowContextHelpButtonHint)) self.setWindowFlags(self.windowFlags()&(~Qt.WindowContextHelpButtonHint))
self.setWindowIcon(icon) self.setWindowIcon(icon)
# Get saved geometry info
try: try:
self.table_column_widths = \ self.table_column_widths = \
gprefs.get('tag_list_editor_table_widths', None) gprefs.get('tag_list_editor_table_widths', None)
@ -87,6 +89,7 @@ class TagListEditor(QDialog, Ui_TagListEditor):
except: except:
pass pass
# initialization
self.to_rename = {} self.to_rename = {}
self.to_delete = set([]) self.to_delete = set([])
self.original_names = {} self.original_names = {}
@ -125,14 +128,16 @@ class TagListEditor(QDialog, Ui_TagListEditor):
for row,tag in enumerate(sorted(self.all_tags.keys(), key=sorter)): for row,tag in enumerate(sorted(self.all_tags.keys(), key=sorter)):
item = NameTableWidgetItem(tag) item = NameTableWidgetItem(tag)
item.setData(Qt.UserRole, self.all_tags[tag]) item.setData(Qt.UserRole, self.all_tags[tag])
item.setFlags (item.flags() | Qt.ItemIsEditable) item.setFlags (item.flags() | Qt.ItemIsSelectable | Qt.ItemIsEditable)
self.table.setItem(row, 0, item) self.table.setItem(row, 0, item)
if tag == tag_to_match: if tag == tag_to_match:
select_item = item select_item = item
item = CountTableWidgetItem(self.counts[tag]) item = CountTableWidgetItem(self.counts[tag])
# only the name column can be selected
item.setFlags (item.flags() & ~Qt.ItemIsSelectable) item.setFlags (item.flags() & ~Qt.ItemIsSelectable)
self.table.setItem(row, 1, item) self.table.setItem(row, 1, item)
# Scroll to the selected item if there is one
if select_item is not None: if select_item is not None:
self.table.setCurrentItem(select_item) self.table.setCurrentItem(select_item)
@ -140,16 +145,12 @@ class TagListEditor(QDialog, Ui_TagListEditor):
self.rename_button.clicked.connect(self.rename_tag) self.rename_button.clicked.connect(self.rename_tag)
self.table.itemDoubleClicked.connect(self._rename_tag) self.table.itemDoubleClicked.connect(self._rename_tag)
self.table.itemChanged.connect(self.finish_editing) self.table.itemChanged.connect(self.finish_editing)
self.buttonBox.accepted.connect(self.accepted)
def table_column_resized(self, col, old, new): def table_column_resized(self, col, old, new):
self.save_state()
def save_state(self):
self.table_column_widths = [] self.table_column_widths = []
for c in range(0, self.table.columnCount()): for c in range(0, self.table.columnCount()):
self.table_column_widths.append(self.table.columnWidth(c)) self.table_column_widths.append(self.table.columnWidth(c))
gprefs['tag_list_editor_table_widths'] = self.table_column_widths
gprefs['tag_list_editor_dialog_geometry'] = bytearray(self.saveGeometry())
def resizeEvent(self, *args): def resizeEvent(self, *args):
QDialog.resizeEvent(self, *args) QDialog.resizeEvent(self, *args)
@ -164,7 +165,10 @@ class TagListEditor(QDialog, Ui_TagListEditor):
w /= self.table.columnCount() w /= self.table.columnCount()
for c in range(0, self.table.columnCount()): for c in range(0, self.table.columnCount()):
self.table.setColumnWidth(c, w) self.table.setColumnWidth(c, w)
self.save_state()
def save_geometry(self):
gprefs['tag_list_editor_table_widths'] = self.table_column_widths
gprefs['tag_list_editor_dialog_geometry'] = bytearray(self.saveGeometry())
def finish_editing(self, item): def finish_editing(self, item):
if not item.text(): if not item.text():
@ -191,11 +195,11 @@ class TagListEditor(QDialog, Ui_TagListEditor):
deletes = self.table.selectedItems() deletes = self.table.selectedItems()
if not deletes: if not deletes:
error_dialog(self, _('No items selected'), error_dialog(self, _('No items selected'),
_('You must select at least one items from the list.')).exec_() _('You must select at least one item from the list.')).exec_()
return return
ct = ', '.join([unicode(item.text()) for item in deletes]) ct = ', '.join([unicode(item.text()) for item in deletes])
if not question_dialog(self, _('Are your sure?'), if not question_dialog(self, _('Are you sure?'),
'<p>'+_('Are you certain you want to delete the following items?')+'<br>'+ct): '<p>'+_('Are you sure you want to delete the following items?')+'<br>'+ct):
return return
row = self.table.row(deletes[0]) row = self.table.row(deletes[0])
for item in deletes: for item in deletes:
@ -229,5 +233,4 @@ class TagListEditor(QDialog, Ui_TagListEditor):
self.name_col.setIcon(self.blank_icon) self.name_col.setIcon(self.blank_icon)
def accepted(self): def accepted(self):
self.save_state() self.save_geometry()
self.accept()