HAL
lut_table_widget.cpp
Go to the documentation of this file.
1 #include <QHeaderView>
2 
4 #include "gui/gui_globals.h"
6 
7 namespace hal{
8 
10  QTableView(parent),
11  mLutModel(new LUTTableModel(this))
12  {
13  this->setModel(mLutModel);
16  this->setContextMenuPolicy(Qt::ContextMenuPolicy::CustomContextMenu);
19 
21  }
22 
24  {
25  mLutModel->setBooleanFunction(bf, functionName);
26  this->clearSelection();
27  this->update();
28  adjustTableSizes();
29  }
30 
31  void LUTTableWidget::adjustTableSizes(){
32  // Columns
33  int w = this->size().width();
34  int colCount = mLutModel->columnCount();
35 
36  // The output column is bigger than the size of input columns so that both sizes are in the golden ratio
37  int inputWidth = w/(colCount + 0.618);
38  for(int c = 0; c < (colCount-1); c++){
40  this->horizontalHeader()->resizeSection(c, inputWidth);
41  }
43 
44  // Rows
45  this->resizeRowsToContents();
46  int h = horizontalHeader()->height() + 4;
47  for (int i = 0; i < mLutModel->rowCount(); i++)
48  h += rowHeight(i);
49 
52 
53  }
54 
57  adjustTableSizes();
58  }
59 
60 } // namespace hal
A model for truth-tables.
int rowCount(const QModelIndex &parent=QModelIndex()) const override
int columnCount(const QModelIndex &parent=QModelIndex()) const override
void setBooleanFunction(const BooleanFunction lutFunction, const QString outputPinName)
LUTTableWidget(QWidget *parent=nullptr)
void setBooleanFunction(BooleanFunction bf, QString functionName)
void resizeEvent(QResizeEvent *event) override
virtual bool event(QEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
void setSelectionMode(QAbstractItemView::SelectionMode mode)
void setFrameStyle(int style)
void resizeSection(int logicalIndex, int size)
void setSectionResizeMode(QHeaderView::ResizeMode mode)
QHeaderView * horizontalHeader() const const
void resizeRowsToContents()
int rowHeight(int row) const const
virtual void setModel(QAbstractItemModel *model) override
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
void setFocusPolicy(Qt::FocusPolicy policy)
void setMaximumHeight(int maxh)
void setMinimumHeight(int minh)
void setSizePolicy(QSizePolicy)
void update()