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

Method initLabelView

UI/librarywindow.cpp:443–533  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441}
442
443void LibraryWindow::initLabelView()
444{
445 LabelModel::instance()->waitLabelLoaded();
446 labelView = new LabelTreeView(this);
447 labelView->setObjectName(QStringLiteral("LabelView"));
448 labelView->setAnimated(true);
449 labelView->setMouseTracking(true);
450 labelView->setEditTriggers(QAbstractItemView::NoEditTriggers);
451 labelView->setSelectionMode(QAbstractItemView::SelectionMode::ExtendedSelection);
452 labelView->header()->hide();
453 labelView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
454 labelView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
455 labelView->setFont(QFont(GlobalObjects::normalFont, 12));
456 labelView->setIndentation(16);
457 new FloatScrollBar(labelView->verticalScrollBar(), labelView);
458 LabelItemDelegate *labelItemDelegate = new LabelItemDelegate(this);
459 labelView->setItemDelegate(labelItemDelegate);
460 labelProxyModel = new LabelProxyModel(this);
461 labelProxyModel->setSourceModel(LabelModel::instance());
462 labelProxyModel->setRecursiveFilteringEnabled(true);
463 labelView->setModel(labelProxyModel);
464 labelView->setSortingEnabled(true);
465 labelProxyModel->sort(0, Qt::AscendingOrder);
466 labelProxyModel->setFilterKeyColumn(0);
467 labelView->setContextMenuPolicy(Qt::CustomContextMenu);
468
469 QMenu *labelViewContextMenu = new ElaMenu(labelView);
470 QAction *actDeleteTag = labelViewContextMenu->addAction(tr("Delete"));
471 QObject::connect(actDeleteTag, &QAction::triggered, labelView, [=](){
472 QItemSelection selection = labelView->selectionModel()->selection();
473 if (selection.empty()) return;
474 LabelModel::instance()->removeTag(labelProxyModel->mapSelectionToSource(selection).indexes().first());
475 });
476 QAction *actCopyTag = labelViewContextMenu->addAction(tr("Copy"));
477 QObject::connect(actCopyTag, &QAction::triggered, labelView, [=](){
478 QItemSelection selection = labelView->selectionModel()->selection();
479 if (selection.empty()) return;
480 QModelIndex index = labelProxyModel->mapToSource(selection.indexes().first());
481 const TagNode *tag = (const TagNode *)LabelModel::instance()->data(index, TagNodeRole).value<void *>();
482 QApplication::clipboard()->setText(tag->tagFilter);
483 });
484 QObject::connect(labelView, &LabelTreeView::customContextMenuRequested, labelView, [=](){
485 QItemSelection selection = labelView->selectionModel()->selection();
486 if (selection.empty()) return;
487 QModelIndex index = labelProxyModel->mapToSource(selection.indexes().first());
488 const TagNode *tag = (const TagNode *)LabelModel::instance()->data(index, TagNodeRole).value<void *>();
489 actDeleteTag->setEnabled(tag->tagType == TagNode::TAG_CUSTOM);
490 labelViewContextMenu->exec(QCursor::pos());
491 });
492
493 auto expand = [=](){
494 labelView->expand(labelProxyModel->index(0,0,QModelIndex()));
495 labelView->expand(labelProxyModel->index(1,0,QModelIndex()));
496 labelView->expand(labelProxyModel->index(2,0,QModelIndex()));
497 labelView->expand(labelProxyModel->index(3,0,QModelIndex()));
498 };
499 expand();
500

Callers

nothing calls this directly

Calls 15

QFontClass · 0.85
waitLabelLoadedMethod · 0.80
headerMethod · 0.80
setFontMethod · 0.80
setEnabledMethod · 0.80
selectedLabelListMethod · 0.80
hideMethod · 0.45
selectionMethod · 0.45
emptyMethod · 0.45
removeTagMethod · 0.45
dataMethod · 0.45
setTextMethod · 0.45

Tested by

no test coverage detected