diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-06-16 13:28:59 -0300 |
---|---|---|
committer | Tomaz Canabrava <tcanabrava@kde.org> | 2013-06-16 13:28:59 -0300 |
commit | 20849f014eafa7ed697fb65af139ce3ee0561605 (patch) | |
tree | f2ad19b21559fdf13e2db59b871951024ad2a331 | |
parent | f9b4c6b889e2444533af1baabdee3687020c1e7b (diff) | |
download | subsurface-20849f014eafa7ed697fb65af139ce3ee0561605.tar.gz |
Make the columns have a sane default width for 'type'
Make the columns on Cylinders edit and Wheight Edit to
have sane values for 'type', this is needed because the
old behavior was to set it fixed size, and the default fixed
size was silly. this calculates a good predefined value
taking the font size in consideration.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
-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 |