Fix #1158066 ({Enhance] Indicate Custom Columns in column lists)

This commit is contained in:
Kovid Goyal 2013-03-21 10:26:23 +05:30
parent fcf3d082be
commit 503719a1fe
3 changed files with 7 additions and 2 deletions

View File

@ -7,7 +7,7 @@ __docformat__ = 'restructuredtext en'
import copy, sys
from PyQt4.Qt import Qt, QVariant, QListWidgetItem
from PyQt4.Qt import Qt, QVariant, QListWidgetItem, QIcon
from calibre.gui2.preferences import ConfigWidgetBase, test_widget
from calibre.gui2.preferences.columns_ui import Ui_Form
@ -67,6 +67,8 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
for col in colmap:
item = QListWidgetItem(model.headers[col], self.opt_columns)
item.setData(Qt.UserRole, QVariant(col))
if col.startswith('#'):
item.setData(Qt.DecorationRole, QVariant(QIcon(I('column.png'))))
flags = Qt.ItemIsEnabled|Qt.ItemIsSelectable
if col != 'ondevice':
flags |= Qt.ItemIsUserCheckable

View File

@ -6,7 +6,7 @@ __copyright__ = '2010, Kovid Goyal <kovid at kovidgoyal.net>'
import re
from functools import partial
from PyQt4.Qt import QDialog, Qt, QListWidgetItem, QVariant, QColor
from PyQt4.Qt import QDialog, Qt, QListWidgetItem, QVariant, QColor, QIcon
from calibre.gui2.preferences.create_custom_column_ui import Ui_QCreateCustomColumn
from calibre.gui2 import error_dialog
@ -323,6 +323,7 @@ class CreateCustomColumn(QDialog, Ui_QCreateCustomColumn):
}
item = QListWidgetItem(col_heading, self.parent.opt_columns)
item.setData(Qt.UserRole, QVariant(key))
item.setData(Qt.DecorationRole, QVariant(QIcon(I('column.png'))))
item.setFlags(Qt.ItemIsEnabled|Qt.ItemIsUserCheckable|Qt.ItemIsSelectable)
item.setCheckState(Qt.Checked)
else:

View File

@ -53,6 +53,8 @@ class DisplayedFields(QAbstractListModel): # {{{
return name
if role == Qt.CheckStateRole:
return Qt.Checked if visible else Qt.Unchecked
if role == Qt.DecorationRole and field.startswith('#'):
return QIcon(I('column.png'))
return NONE
def flags(self, index):