summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/maintab.cpp4
-rw-r--r--qt-ui/models.cpp25
-rw-r--r--qt-ui/models.h5
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