MCPcopy Create free account
hub / github.com/AncientLysine/BiliLocal / LoadProxyModel

Class LoadProxyModel

src/Menu.cpp:40–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38
39namespace{
40class LoadProxyModel:public QAbstractProxyModel
41{
42public:
43 explicit LoadProxyModel(QObject *parent=0):
44 QAbstractProxyModel(parent)
45 {
46 setSourceModel(Load::instance()->getModel());
47 connect(sourceModel(),&QAbstractItemModel::rowsInserted,this,&LoadProxyModel::endInsertRows);
48 connect(sourceModel(),&QAbstractItemModel::rowsAboutToBeInserted,[this](const QModelIndex &parent,int sta,int end){
49 beginInsertRows(mapFromSource(parent),sta,end);
50 });
51 connect(sourceModel(),&QAbstractItemModel::layoutAboutToBeChanged,this,&LoadProxyModel::layoutAboutToBeChanged);
52 connect(sourceModel(),&QAbstractItemModel::layoutChanged,this,&LoadProxyModel::layoutChanged);
53 }
54
55 int columnCount(const QModelIndex &) const
56 {
57 return 1;
58 }
59
60 QVariant data(const QModelIndex &index,int role) const
61 {
62 if(isFakeItem(index)){
63 switch(role){
64 case Qt::TextAlignmentRole:
65 return Qt::AlignCenter;
66 case Qt::FontRole:
67 {
68 QFont f;
69 f.setBold(true);
70 return f;
71 }
72 case Qt::DisplayRole:
73 case Qt::EditRole:
74 return Menu::tr("Load All");
75 case Qt::BackgroundRole:
76 return QColor(0xA0A0A4);
77 case Qt::ForegroundRole:
78 return QColor(0xFFFFFF);
79 case Qt::SizeHintRole:
80 return QSize(0,20);
81 case Load::UrlRole:
82 return QUrl();
83 case Load::StrRole:
84 return "";
85 default:
86 return QVariant();
87 }
88 }
89 else{
90 return sourceModel()->data(mapToSource(index),role);
91 }
92 }
93
94 Qt::ItemFlags flags(const QModelIndex &) const
95 {
96 return Qt::ItemIsSelectable|Qt::ItemIsEnabled;
97 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected