MCPcopy Create free account
hub / github.com/KikoPlayProject/KikoPlay / PoolManager

Method PoolManager

UI/poolmanager.cpp:36–565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34 static QCollator comparer;
35}
36PoolManager::PoolManager(QWidget *parent) : CFramelessDialog(tr("Danmu Pool Manager"),parent)
37{
38 comparer.setNumericMode(true);
39 setFont(QFont(GlobalObjects::normalFont, 10));
40 QTreeView *poolView=new QTreeView(this);
41 poolView->setItemDelegate(new KTreeviewItemDelegate(poolView));
42 poolView->setSelectionMode(QAbstractItemView::SingleSelection);
43 poolView->setFont(QFont(GlobalObjects::normalFont, 11));
44 poolView->setAnimated(true);
45 poolView->setAlternatingRowColors(true);
46 poolView->header()->setSortIndicator(0, Qt::SortOrder::AscendingOrder);
47
48 DanmuManagerModel *managerModel=new DanmuManagerModel(this);
49 PoolSortProxyModel *proxyModel=new PoolSortProxyModel(this);
50 proxyModel->setSourceModel(managerModel);
51 proxyModel->setFilterKeyColumn(0);
52 proxyModel->setRecursiveFilteringEnabled(true);
53 poolView->setModel(proxyModel);
54 poolView->setSortingEnabled(true);
55 poolView->setContextMenuPolicy(Qt::CustomContextMenu);
56
57 QLabel *stateLabel=new QLabel(this);
58 stateLabel->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Minimum);
59 QObject::connect(GlobalObjects::danmuManager,&DanmuManager::workerStateMessage,stateLabel,[stateLabel,managerModel](const QString &msg){
60 if(msg=="Done")
61 stateLabel->setText(tr("Pool: %1 Danmu: %2").arg(managerModel->totalPoolCount()).arg(managerModel->totalDanmuCount()));
62 else
63 stateLabel->setText(msg);
64 });
65
66 QAction *act_editTimeLine=new QAction(tr("Edit TimeLine"),this);
67 QObject::connect(act_editTimeLine,&QAction::triggered,this,[this,managerModel,poolView,proxyModel](){
68 QModelIndexList indexList = poolView->selectionModel()->selectedRows();
69 if(indexList.size()==0)return;
70 DanmuPoolSourceNode *srcNode=managerModel->getSourceNode(proxyModel->mapToSource(indexList.first()));
71 if (!srcNode) return;
72 QVector<SimpleDanmuInfo> simpleDanmuList;
73 Pool *pool=GlobalObjects::danmuManager->getPool(srcNode->parent->idInfo);
74 if(pool)
75 {
76 pool->exportSimpleInfo(srcNode->srcId,simpleDanmuList);
77 DanmuSource srcInfo(pool->sources()[srcNode->srcId]);
78 TimelineEdit timeLineEdit(&srcInfo,simpleDanmuList,this);
79 if(QDialog::Accepted==timeLineEdit.exec())
80 {
81 pool->setTimeline(srcNode->srcId,timeLineEdit.timelineInfo);
82 srcNode->hasTimeline = !pool->sources()[srcNode->srcId].timelineInfo.isEmpty();
83 }
84 }
85
86 });
87 QAction *act_addWebSource=new QAction(tr("Add Web Source"),this);
88 QObject::connect(act_addWebSource,&QAction::triggered,this,[this,stateLabel,managerModel,poolView,proxyModel](){
89 QModelIndexList indexList = poolView->selectionModel()->selectedRows();
90 if(indexList.size()==0)return;
91 DanmuPoolNode *poolNode=managerModel->getPoolNode(proxyModel->mapToSource(indexList.first()));
92 if(!poolNode)return;
93 PlayListItem item;

Callers

nothing calls this directly

Calls 15

QFontClass · 0.85
sortFunction · 0.85
setFontMethod · 0.80
headerMethod · 0.80
totalPoolCountMethod · 0.80
totalDanmuCountMethod · 0.80
getSourceNodeMethod · 0.80
exportSimpleInfoMethod · 0.80
getPoolNodeMethod · 0.80
setEnabledMethod · 0.80
valueMethod · 0.80
addSourceMethod · 0.80

Tested by

no test coverage detected