| 39 | #include <stdint.h> |
| 40 | |
| 41 | InputEditorView::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); |
nothing calls this directly
no test coverage detected