#include "scoretable.h"
#include "matchdaymodel.h"
-ScoreTable::ScoreTable(QWidget *parent) :
+ScoreTable::ScoreTable(QWidget *parent, MatchDayModel* model) :
QTableView(parent)
{
this->setAttribute(Qt::WA_TranslucentBackground);
- this->setModel(new MatchDayModel(this));
+ this->setAttribute(Qt::WA_TransparentForMouseEvents);
+
+ this->setModel(model);
this->setSelectionMode(QAbstractItemView::NoSelection);
- //this->verticalHeader()->hide();
- this->verticalHeader()->setStretchLastSection(false);
+ this->verticalHeader()->hide();
this->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
this->verticalHeader()->setMinimumSectionSize(1);
- //this->horizontalHeader()->hide();
+ this->horizontalHeader()->hide();
this->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents);
this->horizontalHeader()->setMinimumSectionSize(1);
qDebug() << "Min VertHeaderSize: " << this->verticalHeader()->minimumSectionSize();
+ this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- this->viewport()->setAutoFillBackground(false);
+ this->viewport()->setAutoFillBackground(true);
this->setShowGrid(false);
}
QSize ScoreTable::sizeHint() const
{
- QSize i;
-
- i = (QSize(this->horizontalHeader()->width(),
- this->verticalHeader()->height()));
-
- return i;
+ QSize s;
+
+ for (int i = 0; i < horizontalHeader()->count(); i++) {
+ s.setWidth(s.width() + horizontalHeader()->sectionSize(i));
+ }
+ // add missing few pixels (from borders mabye?)
+ // TODO: find better solution!
+ s.setWidth(s.width());
+ for (int i = 0; i < verticalHeader()->count(); i++) {
+ s.setHeight(s.height() + verticalHeader()->sectionSize(i));
+ }
+ // add missing few pixels (from borders mabye?)
+ // TODO: find better solution!
+ s.setHeight(s.height() + 3);
+
+ return s;
}
void ScoreTable::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
{
+ QSize s;
+
+ // this will recalculate section sizes
QTableView::dataChanged(topLeft, bottomRight);
- qDebug() << "QTBV CR Size: " << this->childrenRect().size();
- qDebug() << "QTBVVP CR Size: " << this->childrenRect().size();
+ for (int i = 0; i < horizontalHeader()->count(); i++) {
+ s.setWidth(s.width() + horizontalHeader()->sectionSize(i));
+ }
+ // add missing few pixels (from borders mabye?)
+ // TODO: find better solution!
+ s.setWidth(s.width());
+ for (int i = 0; i < verticalHeader()->count(); i++) {
+ s.setHeight(s.height() + verticalHeader()->sectionSize(i));
+ }
+ // add missing few pixels (from borders mabye?)
+ // TODO: find better solution!
+ s.setHeight(s.height() + 3);
+ this->resize(s);
+ this->parentWidget()->resize(s);
- this->viewport()->resize(QSize(this->horizontalHeader()->width(),
- this->verticalHeader()->height()));
+ qDebug() << s;
updateGeometry();
-
}
+
+//void ScoreTable::mousePressEvent(QMouseEvent* event)
+//{
+// event->ignore();
+//}
+