MCPcopy Create free account
hub / github.com/clementgallet/libTAS / InputEditorView

Method InputEditorView

src/program/ui/InputEditorView.cpp:41–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39#include <stdint.h>
40
41InputEditorView::InputEditorView(Context* c, MovieFile *m, QWidget *parent) : QTableView(parent), context(c), movie(m)
42{
43 setSelectionBehavior(QAbstractItemView::SelectRows);
44 setSelectionMode(QAbstractItemView::ExtendedSelection);
45 setShowGrid(true);
46 setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents);
47 setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
48 setEditTriggers(QAbstractItemView::DoubleClicked);
49
50 inputEditorModel = new InputEditorModel(context, movie);
51 setModel(inputEditorModel);
52
53 connect(inputEditorModel, &InputEditorModel::inputSetChanged, this, &InputEditorView::resizeAllColumns);
54 connect(this, &InputEditorView::entered, this, &InputEditorView::showMarkerToolTip);
55 connect(this, &InputEditorView::entered, inputEditorModel, &InputEditorModel::setHoveredCell);
56 setMouseTracking(true);
57
58 /* Drag and Drop for analog inputs */
59 setAcceptDrops(true);
60 setDragDropMode(QAbstractItemView::DropOnly);
61 setDefaultDropAction(Qt::CopyAction);
62 setDragDropOverwriteMode(false);
63 setDropIndicatorShown(false);
64
65 /* Horizontal header */
66 horizontalHeader()->setMinimumSectionSize(20);
67 horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
68 horizontalHeader()->setResizeContentsPrecision(1);
69
70 /* Savestate column is fixed */
71 horizontalHeader()->resizeSection(0, 20);
72
73 /* Frame column is fixed */
74 horizontalHeader()->resizeSection(1, 80);
75
76 /* Add column is fixed */
77 horizontalHeader()->resizeSection(inputEditorModel->columnCount()-1, 20);
78
79 horizontalHeader()->setSectionsMovable(true);
80 horizontalHeader()->setHighlightSections(false);
81 horizontalHeader()->setDropIndicatorShown(true);
82 horizontalHeader()->setDragEnabled(true);
83 horizontalHeader()->setDragDropMode(QTableView::InternalMove);
84 horizontalHeader()->setSectionsClickable(true);
85
86 horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu);
87 connect(horizontalHeader(), &QWidget::customContextMenuRequested, this, &InputEditorView::horizontalMenu);
88 connect(horizontalHeader(), &QHeaderView::sectionMoved, this, &InputEditorView::moveAgainSection);
89 connect(horizontalHeader(), &QHeaderView::sectionClicked, this, &InputEditorView::clickSection);
90
91 horMenu = new QMenu(this);
92 horMenu->addAction(tr("Rename label"), this, &InputEditorView::renameLabel);
93 horMenu->addAction(tr("Clear input column"), this, &InputEditorView::clearInputColumn);
94 horMenu->addAction(tr("Remove input column"), this, &InputEditorView::removeInputColumn);
95 factorAction = horMenu->addAction(tr("Multiple values by factor"), this, &InputEditorView::factorInputColumn);
96 lockAction = horMenu->addAction(tr("Lock input column"), this, &InputEditorView::lockInputColumn);
97 lockAction->setCheckable(true);
98 autoholdAction = horMenu->addAction(tr("Auto-hold"), this, &InputEditorView::autoholdInput);

Callers

nothing calls this directly

Calls 2

columnCountMethod · 0.45
sizeHintMethod · 0.45

Tested by

no test coverage detected