diff options
-rw-r--r-- | qt-ui/maintab.cpp | 4 | ||||
-rw-r--r-- | qt-ui/models.cpp | 25 | ||||
-rw-r--r-- | qt-ui/models.h | 5 |
3 files changed, 31 insertions, 3 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index 6f63b3574..bee94fb4b 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -80,12 +80,16 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent), connect(ui->weights, SIGNAL(clicked(QModelIndex)), ui->weights->model(), SLOT(remove(QModelIndex))); QFontMetrics metrics(defaultModelFont()); + QFontMetrics metrics2(font()); ui->cylinders->setColumnWidth(CylindersModel::REMOVE, 24); + ui->cylinders->setColumnWidth(CylindersModel::TYPE, metrics2.width(TankInfoModel::instance()->biggerString()) + 20); ui->cylinders->horizontalHeader()->setResizeMode(CylindersModel::REMOVE, QHeaderView::Fixed); ui->cylinders->verticalHeader()->setDefaultSectionSize( metrics.height() +8 ); ui->cylinders->setItemDelegateForColumn(CylindersModel::TYPE, new TankInfoDelegate()); + ui->weights->setColumnWidth(WeightModel::REMOVE, 24); + ui->weights->setColumnWidth(WeightModel::TYPE, metrics2.width(WSInfoModel::instance()->biggerString()) + 20); ui->weights->horizontalHeader()->setResizeMode (WeightModel::REMOVE , QHeaderView::Fixed); ui->weights->verticalHeader()->setDefaultSectionSize( metrics.height() +8 ); ui->weights->setItemDelegateForColumn(WeightModel::TYPE, new WSInfoDelegate()); diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index dd8bac078..6d6459983 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -583,10 +583,20 @@ int WSInfoModel::rowCount(const QModelIndex& parent) const return rows+1; } +const QString& WSInfoModel::biggerString() const +{ + return biggerEntry; +} + WSInfoModel::WSInfoModel() : QAbstractTableModel(), rows(-1) { struct ws_info *info = ws_info; - for (info = ws_info; info->name; info++, rows++); + for (info = ws_info; info->name; info++, rows++){ + QString wsInfoName(info->name); + if( wsInfoName.count() > biggerEntry.count()){ + biggerEntry = wsInfoName; + } + } if (rows > -1) { beginInsertRows(QModelIndex(), 0, rows); @@ -616,6 +626,11 @@ TankInfoModel* TankInfoModel::instance() return self; } +const QString& TankInfoModel::biggerString() const +{ + return biggerEntry; +} + bool TankInfoModel::insertRows(int row, int count, const QModelIndex& parent) { beginInsertRows(parent, rowCount(), rowCount()); @@ -723,7 +738,13 @@ int TankInfoModel::rowCount(const QModelIndex& parent) const TankInfoModel::TankInfoModel() : QAbstractTableModel(), rows(-1) { struct tank_info *info = tank_info; - for (info = tank_info; info->name; info++, rows++); + for (info = tank_info; info->name; info++, rows++){ + QString infoName(info->name); + if (infoName.count() > biggerEntry.count()){ + biggerEntry = infoName; + } + } + if (rows > -1) { beginInsertRows(QModelIndex(), 0, rows); endInsertRows(); diff --git a/qt-ui/models.h b/qt-ui/models.h index 09a2c6a68..79af13bed 100644 --- a/qt-ui/models.h +++ b/qt-ui/models.h @@ -32,10 +32,12 @@ public: /*reimp*/ int rowCount(const QModelIndex& parent = QModelIndex()) const; /*reimp*/ bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex()); /*reimp*/ bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); + const QString& biggerString() const; void clear(); void update(); private: int rows; + QString biggerEntry; }; /* Encapsulate ws_info */ @@ -53,11 +55,12 @@ public: /*reimp*/ int rowCount(const QModelIndex& parent = QModelIndex()) const; /*reimp*/ bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex()); /*reimp*/ bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole); + const QString& biggerString() const; void clear(); void update(); private: int rows; - + QString biggerEntry; }; /* Encapsulation of the Cylinder Model, that presents the |