Sunday Patches.

Tomaz Canabrava tcanabrava at kde.org
Sun Jun 16 13:54:15 PDT 2013


Dirk, Linus:

This fixes a few annoyances that Linus described - Not all of them, but this
should make the app way more usable for editing Cylinders and Weigths.

Test there and tell me what's wrong so I can continue.

There'ss still the 'multi dive edition' missing. But I'm trying to concentrate
on the Dive Plan ( and failing miserably  )


Tomaz


The following changes since commit 84d4a2dae069a2e728cea8d7a4506921b558603f:

  Partially fix dive downloading (2013-06-15 17:03:23 -0700)

are available in the git repository at:

  https://github.com/tcanabrava/subsurface moreLinusFixes

for you to fetch changes up to c917b29701470398b51aa5ad9541275825d912fd:

  Save / Restore the sizes of the columns in Cylinders / Weigth widgets
(2013-06-16 14:36:23 -0300)

----------------------------------------------------------------
Tomaz Canabrava (7):
      Create a 'ComboBoxDelegate' to concentrate the comboboxness of
delegates.
      Made all models have the same font.
      Better handling of default sizes on the Cylinder and Weight widgets
      Make the columns have a sane default width for 'type'
      Remove the Vertical Header on Cylinder and Weigth edit
      Removed the grid lines of the table views.
      Save / Restore the sizes of the columns in Cylinders / Weigth widgets

 qt-ui/maintab.cpp        |  53
++++++++++++++++++++++++++++++++++++++++++++++++++---
 qt-ui/maintab.h          |   4 ++++
 qt-ui/maintab.ui         |  48
++++++++++++++++++++++++++++++++++++++++++++++--
 qt-ui/modeldelegates.cpp |  62
++++++++++++++++++++++++++------------------------------------
 qt-ui/modeldelegates.h   |  17 ++++++++++++-----
 qt-ui/models.cpp         | 157
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------
 qt-ui/models.h           |   7 ++++++-
 7 files changed, 246 insertions(+), 102 deletions(-)

diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index ea1687a..c6b49da 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -16,6 +16,7 @@
 #include <QLabel>
 #include <QDebug>
 #include <QSet>
+#include <QSettings>

 MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
                                    ui(new Ui::MainTab()),
@@ -79,13 +80,17 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
        connect(ui->cylinders, SIGNAL(clicked(QModelIndex)), ui->cylinders-

>model(), SLOT(remove(QModelIndex)));
        connect(ui->weights, SIGNAL(clicked(QModelIndex)), ui->weights-

>model(), SLOT(remove(QModelIndex)));

-       ui->cylinders->setColumnWidth(CylindersModel::REMOVE, 24);
-       ui->cylinders->horizontalHeader()-

>setResizeMode(QHeaderView::ResizeToContents);
+       QFontMetrics metrics(defaultModelFont());
+       QFontMetrics metrics2(font());
+
        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->horizontalHeader()->setResizeMode (WeightModel::REMOVE ,
QHeaderView::Fixed);
+       ui->weights->verticalHeader()->setDefaultSectionSize( metrics.height()
+8 );
        ui->weights->setItemDelegateForColumn(WeightModel::TYPE, new
WSInfoDelegate());
+       initialUiSetup();
 }

 // We need to manually position the 'plus' on cylinder and weight.
@@ -474,3 +479,45 @@ void MainTab::on_visibility_valueChanged(int value)
                return;
        currentDive->visibility = value;
 }
+
+void MainTab::hideEvent(QHideEvent* event)
+{
+       QSettings s;
+       s.beginGroup("MainTab");
+       s.beginGroup("Cylinders");
+       for (int i = 0; i < CylindersModel::COLUMNS; i++) {
+               s.setValue(QString("colwidth%1").arg(i), ui->cylinders-

>columnWidth(i));
+       }
+       s.endGroup();
+       s.beginGroup("Weights");
+       for (int i = 0; i < WeightModel::COLUMNS; i++) {
+               s.setValue(QString("colwidth%1").arg(i), ui->weights-

>columnWidth(i));
+       }
+       s.endGroup();
+       s.sync();
+}
+
+void MainTab::initialUiSetup()
+{
+       QSettings s;
+       s.beginGroup("MainTab");
+       s.beginGroup("Cylinders");
+       for (int i = 0; i < CylindersModel::COLUMNS; i++) {
+               QVariant width = s.value(QString("colwidth%1").arg(i));
+               if (width.isValid())
+                       ui->cylinders->setColumnWidth(i, width.toInt());
+               else
+                       ui->cylinders->resizeColumnToContents(i);
+       }
+       s.endGroup();
+       s.beginGroup("Weights");
+       for (int i = 0; i < WeightModel::COLUMNS; i++) {
+               QVariant width = s.value(QString("colwidth%1").arg(i));
+               if (width.isValid())
+                       ui->weights->setColumnWidth(i, width.toInt());
+               else
+                       ui->weights->resizeColumnToContents(i);
+       }
+       s.endGroup();
+
+}
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index b92db67..124bcff 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -40,6 +40,10 @@ public:
        bool eventFilter(QObject* , QEvent*);
        virtual void resizeEvent(QResizeEvent*);
        virtual void showEvent(QShowEvent*);
+    virtual void hideEvent(QHideEvent* );
+
+       void initialUiSetup();
+

 public Q_SLOTS:
        void addCylinder_clicked();
diff --git a/qt-ui/maintab.ui b/qt-ui/maintab.ui
index 733a605..c42dc46 100644
--- a/qt-ui/maintab.ui
+++ b/qt-ui/maintab.ui
@@ -14,7 +14,7 @@
    <string>TabWidget</string>
   </property>
   <property name="currentIndex">
-   <number>0</number>
+   <number>1</number>
   </property>
   <widget class="QWidget" name="notesTab">
    <attribute name="title">
@@ -192,6 +192,12 @@
           <property name="alternatingRowColors">
            <bool>true</bool>
           </property>
+          <property name="showGrid">
+           <bool>false</bool>
+          </property>
+          <attribute name="verticalHeaderVisible">
+           <bool>false</bool>
+          </attribute>
          </widget>
         </item>
        </layout>
@@ -202,7 +208,45 @@
        </property>
        <layout class="QVBoxLayout" name="verticalLayout_3">
         <item>
-         <widget class="QTableView" name="weights"/>
+         <widget class="QTableView" name="weights">
+          <property name="styleSheet">
+           <string notr="true"> QTableView {
+     show-decoration-selected: 1;
+ }
+
+ QTableView::item {
+     border: 1px solid #d9d9d9;
+     border-top-color: transparent;
+     border-bottom-color: transparent;
+     padding: 2px;
+ }
+
+ QTableView::item:hover {
+     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd,
stop: 1 #cbdaf1);
+     border: 1px solid #bfcde4;
+ }
+
+ QTableView::item:selected {
+     border: 1px solid #567dbc;
+ }
+
+ QTableView::item:selected:active{
+     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1,
stop: 1 #567dbc);
+ }
+
+ QTableView::item:selected:!active {
+     background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6b9be8,
stop: 1 #577fbf);
+ }
+
+</string>
+          </property>
+          <property name="showGrid">
+           <bool>false</bool>
+          </property>
+          <attribute name="verticalHeaderVisible">
+           <bool>false</bool>
+          </attribute>
+         </widget>
         </item>
        </layout>
       </widget>
diff --git a/qt-ui/modeldelegates.cpp b/qt-ui/modeldelegates.cpp
index c90a1e8..01f5197 100644
--- a/qt-ui/modeldelegates.cpp
+++ b/qt-ui/modeldelegates.cpp
@@ -17,7 +17,6 @@ StarWidgetsDelegate::StarWidgetsDelegate(QWidget* parent):
        QStyledItemDelegate(parent),
        parentWidget(parent)
 {
-
 }

 void StarWidgetsDelegate::paint(QPainter* painter, const
QStyleOptionViewItem& option, const QModelIndex& index) const
@@ -51,19 +50,11 @@ QSize StarWidgetsDelegate::sizeHint(const
QStyleOptionViewItem& option, const QM
        return QSize(IMG_SIZE * TOTALSTARS + SPACING * (TOTALSTARS-1),
IMG_SIZE);
 }

-QWidget* TankInfoDelegate::createEditor(QWidget* parent, const
QStyleOptionViewItem& option, const QModelIndex& index) const
+ComboBoxDelegate::ComboBoxDelegate(QAbstractItemModel *model, QObject*
parent): QStyledItemDelegate(parent), model(model)
 {
-       QComboBox *comboDelegate = new QComboBox(parent);
-       TankInfoModel *model = TankInfoModel::instance();
-       comboDelegate->setModel(model);
-       comboDelegate->setEditable(true);
-       comboDelegate->setAutoCompletion(true);
-       comboDelegate->setAutoCompletionCaseSensitivity(Qt::CaseInsensitive);
-       comboDelegate->completer()-

>setCompletionMode(QCompleter::PopupCompletion);
-       return comboDelegate;
 }

-void TankInfoDelegate::setEditorData(QWidget* editor, const QModelIndex&
index) const
+void ComboBoxDelegate::setEditorData(QWidget* editor, const QModelIndex&
index) const
 {
        QComboBox *c = qobject_cast<QComboBox*>(editor);
        QString data = index.model()->data(index, Qt::DisplayRole).toString();
@@ -74,6 +65,28 @@ void TankInfoDelegate::setEditorData(QWidget* editor, const
QModelIndex& index)
                c->setEditText(data);
 }

+QWidget* ComboBoxDelegate::createEditor(QWidget* parent, const
QStyleOptionViewItem& option, const QModelIndex& index) const
+{
+       QComboBox *comboDelegate = new QComboBox(parent);
+       comboDelegate->setModel(model);
+       comboDelegate->setEditable(true);
+       comboDelegate->setAutoCompletion(true);
+       comboDelegate->setAutoCompletionCaseSensitivity(Qt::CaseInsensitive);
+       comboDelegate->completer()-

>setCompletionMode(QCompleter::PopupCompletion);
+       return comboDelegate;
+}
+
+void ComboBoxDelegate::updateEditorGeometry(QWidget* editor, const
QStyleOptionViewItem& option, const QModelIndex& index) const
+{
+       QRect defaultRect = option.rect;
+       defaultRect.setX( defaultRect.x() -1);
+       defaultRect.setY( defaultRect.y() -1);
+       defaultRect.setWidth( defaultRect.width() + 2);
+       defaultRect.setHeight( defaultRect.height() + 2);
+    editor->setGeometry(defaultRect);
+}
+
+
 void TankInfoDelegate::setModelData(QWidget* editor, QAbstractItemModel*
model, const QModelIndex& thisindex) const
 {
        QComboBox *c = qobject_cast<QComboBox*>(editor);
@@ -97,31 +110,8 @@ void TankInfoDelegate::setModelData(QWidget* editor,
QAbstractItemModel* model,
        mymodel->passInData(model->index(thisindex.row(),
CylindersModel::SIZE), tankSize);
 }

-TankInfoDelegate::TankInfoDelegate(QObject* parent):
QStyledItemDelegate(parent)
-{
-}
-
-QWidget* WSInfoDelegate::createEditor(QWidget* parent, const
QStyleOptionViewItem& option, const QModelIndex& index) const
+TankInfoDelegate::TankInfoDelegate(QObject* parent):
ComboBoxDelegate(TankInfoModel::instance(), parent)
 {
-       QComboBox *comboDelegate = new QComboBox(parent);
-       WSInfoModel *model = WSInfoModel::instance();
-       comboDelegate->setModel(model);
-       comboDelegate->setEditable(true);
-       comboDelegate->setAutoCompletion(true);
-       comboDelegate->setAutoCompletionCaseSensitivity(Qt::CaseInsensitive);
-       comboDelegate->completer()-

>setCompletionMode(QCompleter::PopupCompletion);
-       return comboDelegate;
-}
-
-void WSInfoDelegate::setEditorData(QWidget* editor, const QModelIndex& index)
const
-{
-       QComboBox *c = qobject_cast<QComboBox*>(editor);
-       QString data = index.model()->data(index, Qt::DisplayRole).toString();
-       int i = c->findText(data);
-       if (i != -1)
-               c->setCurrentIndex(i);
-       else
-               c->setEditText(data);
 }

 void WSInfoDelegate::setModelData(QWidget* editor, QAbstractItemModel* model,
const QModelIndex& thisindex) const
@@ -145,6 +135,6 @@ void WSInfoDelegate::setModelData(QWidget* editor,
QAbstractItemModel* model, co
        mymodel->passInData(model->index(thisindex.row(),
WeightModel::WEIGHT), grams);
 }

-WSInfoDelegate::WSInfoDelegate(QObject* parent): QStyledItemDelegate(parent)
+WSInfoDelegate::WSInfoDelegate(QObject* parent):
ComboBoxDelegate(WSInfoModel::instance(), parent)
 {
 }
diff --git a/qt-ui/modeldelegates.h b/qt-ui/modeldelegates.h
index 79fbe29..a33fc89 100644
--- a/qt-ui/modeldelegates.h
+++ b/qt-ui/modeldelegates.h
@@ -13,21 +13,28 @@ private:
        QWidget *parentWidget;
 };

-class TankInfoDelegate : public QStyledItemDelegate{
+class ComboBoxDelegate : public QStyledItemDelegate{
        Q_OBJECT
 public:
-       explicit TankInfoDelegate(QObject* parent = 0);
+       explicit ComboBoxDelegate(QAbstractItemModel *model, QObject* parent =
0);
        virtual QWidget* createEditor(QWidget* parent, const
QStyleOptionViewItem& option, const QModelIndex& index) const;
        virtual void setEditorData(QWidget* editor, const QModelIndex& index)
const;
+    virtual void updateEditorGeometry(QWidget* editor, const
QStyleOptionViewItem& option, const QModelIndex& index) const;
+protected:
+       QAbstractItemModel *model;
+};
+
+class TankInfoDelegate : public ComboBoxDelegate{
+       Q_OBJECT
+public:
+       explicit TankInfoDelegate(QObject* parent = 0);
        virtual void setModelData(QWidget* editor, QAbstractItemModel* model,
const QModelIndex& index) const;
 };

-class WSInfoDelegate : public QStyledItemDelegate{
+class WSInfoDelegate : public ComboBoxDelegate{
        Q_OBJECT
 public:
        explicit WSInfoDelegate(QObject* parent = 0);
-       virtual QWidget* createEditor(QWidget* parent, const
QStyleOptionViewItem& option, const QModelIndex& index) const;
-       virtual void setEditorData(QWidget* editor, const QModelIndex& index)
const;
        virtual void setModelData(QWidget* editor, QAbstractItemModel* model,
const QModelIndex& index) const;
 };

diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index b85c067..6d64599 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -14,6 +14,13 @@
 #include <QFont>
 #include <QIcon>

+QFont defaultModelFont()
+{
+       QFont font;
+       font.setPointSizeF( font.pointSizeF() * 0.8);
+       return font;
+}
+
 CylindersModel::CylindersModel(QObject* parent): QAbstractTableModel(parent),
current(0), rows(0)
 {
 }
@@ -21,15 +28,14 @@ CylindersModel::CylindersModel(QObject* parent):
QAbstractTableModel(parent), cu
 QVariant CylindersModel::headerData(int section, Qt::Orientation orientation,
int role) const
 {
        QVariant ret;
-       QFont font;

        if (orientation == Qt::Vertical)
                return ret;

        switch (role) {
        case Qt::FontRole:
-               font.setPointSizeF(font.pointSizeF() * 0.8);
-               return font;
+               ret = defaultModelFont();
+               break;
        case Qt::DisplayRole:
                switch(section) {
                case TYPE:              ret = tr("Type"); break;
@@ -52,7 +58,6 @@ int CylindersModel::columnCount(const QModelIndex& parent)
const
 QVariant CylindersModel::data(const QModelIndex& index, int role) const
 {
        QVariant ret;
-       QFont font;

        if (!index.isValid() || index.row() >= MAX_CYLINDERS)
                return ret;
@@ -60,11 +65,10 @@ QVariant CylindersModel::data(const QModelIndex& index,
int role) const
        cylinder_t *cyl = &current->cylinder[index.row()];
        switch (role) {
        case Qt::FontRole:
-               font.setPointSizeF(font.pointSizeF() * 0.80);
-               ret = font;
+               ret = defaultModelFont();
                break;
        case Qt::TextAlignmentRole:
-               ret = Qt::AlignRight;
+               ret = Qt::AlignHCenter;
                break;
        case Qt::DisplayRole:
        case Qt::EditRole:
@@ -336,7 +340,6 @@ int WeightModel::columnCount(const QModelIndex& parent)
const
 QVariant WeightModel::data(const QModelIndex& index, int role) const
 {
        QVariant ret;
-       QFont font;
        if (!index.isValid() || index.row() >= MAX_WEIGHTSYSTEMS)
                return ret;

@@ -344,8 +347,7 @@ QVariant WeightModel::data(const QModelIndex& index, int
role) const

        switch (role) {
        case Qt::FontRole:
-               font.setPointSizeF(font.pointSizeF() * 0.80);
-               ret = font;
+               ret = defaultModelFont();
                break;
        case Qt::TextAlignmentRole:
                ret = Qt::AlignRight;
@@ -429,14 +431,12 @@ int WeightModel::rowCount(const QModelIndex& parent)
const
 QVariant WeightModel::headerData(int section, Qt::Orientation orientation,
int role) const
 {
        QVariant ret;
-       QFont font;
        if (orientation == Qt::Vertical)
                return ret;

        switch (role) {
        case Qt::FontRole:
-               font.setPointSizeF(font.pointSizeF() * 0.8);
-               ret = font;
+               ret = defaultModelFont();
                break;
        case Qt::DisplayRole:
                switch(section) {
@@ -534,16 +534,21 @@ QVariant WSInfoModel::data(const QModelIndex& index, int
role) const
        struct ws_info *info = &ws_info[index.row()];

        int gr = info->grams;
-
-       if (role == Qt::DisplayRole || role == Qt::EditRole) {
-               switch(index.column()) {
-                       case GR:
-                               ret = gr;
-                               break;
-                       case DESCRIPTION:
-                               ret = QString(info->name);
-                               break;
-               }
+       switch(role){
+               case Qt::FontRole :
+                       ret = defaultModelFont();
+                       break;
+               case Qt::DisplayRole :
+               case Qt::EditRole :
+                       switch(index.column()) {
+                               case GR:
+                                       ret = gr;
+                                       break;
+                               case DESCRIPTION:
+                                       ret = QString(info->name);
+                                       break;
+                       }
+                       break;
        }
        return ret;
 }
@@ -555,15 +560,20 @@ QVariant WSInfoModel::headerData(int section,
Qt::Orientation orientation, int r
        if (orientation != Qt::Horizontal)
                return ret;

-       if (role == Qt::DisplayRole) {
-               switch(section) {
-                       case GR:
-                               ret = tr("kg");
-                               break;
-                       case DESCRIPTION:
-                               ret = tr("Description");
-                               break;
-               }
+       switch(role){
+               case Qt::FontRole :
+                       ret = defaultModelFont();
+                       break;
+               case Qt::DisplayRole :
+                       switch(section) {
+                               case GR:
+                                       ret = tr("kg");
+                                       break;
+                               case DESCRIPTION:
+                                       ret = tr("Description");
+                                       break;
+                       }
+                       break;
        }
        return ret;
 }
@@ -573,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);
@@ -606,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());
@@ -646,6 +671,10 @@ QVariant TankInfoModel::data(const QModelIndex& index,
int role) const
        if (!index.isValid()) {
                return ret;
        }
+       if (role == Qt::FontRole){
+               return defaultModelFont();
+       }
+
        struct tank_info *info = &tank_info[index.row()];

        int ml = info->ml;
@@ -680,8 +709,12 @@ QVariant TankInfoModel::headerData(int section,
Qt::Orientation orientation, int
        if (orientation != Qt::Horizontal)
                return ret;

-       if (role == Qt::DisplayRole) {
-               switch(section) {
+       switch(role){
+               case Qt::FontRole:
+                       ret = defaultModelFont();
+                       break;
+               case Qt::DisplayRole:
+                       switch(section) {
                        case BAR:
                                ret = tr("Bar");
                                break;
@@ -691,7 +724,8 @@ QVariant TankInfoModel::headerData(int section,
Qt::Orientation orientation, int
                        case DESCRIPTION:
                                ret = tr("Description");
                                break;
-               }
+                       }
+                       break;
        }
        return ret;
 }
@@ -704,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();
@@ -752,21 +792,25 @@ int TreeItemDT::row() const
 QVariant TreeItemDT::data(int column, int role) const
 {
        QVariant ret;
-       switch (column) {
-       case NR:                ret = tr("#"); break;
-       case DATE:              ret = tr("Date"); break;
-       case RATING:            ret = UTF8_BLACKSTAR; break;
-       case DEPTH:             ret = (get_units()->length == units::METERS) ?
tr("m") : tr("ft"); break;
-       case DURATION:          ret = tr("min"); break;
-       case TEMPERATURE:       ret =
QString("%1%2").arg(UTF8_DEGREE).arg((get_units()->temperature ==
units::CELSIUS) ? "C" : "F"); break;
-       case TOTALWEIGHT:       ret = (get_units()->weight == units::KG) ?
tr("kg") : tr("lbs"); break;
-       case SUIT:              ret = tr("Suit"); break;
-       case CYLINDER:          ret = tr("Cyl"); break;
-       case NITROX:            ret = QString("O%1%").arg(UTF8_SUBSCRIPT_2);
break;
-       case SAC:               ret = tr("SAC"); break;
-       case OTU:               ret = tr("OTU"); break;
-       case MAXCNS:            ret = tr("maxCNS"); break;
-       case LOCATION:          ret = tr("Location"); break;
+       switch(role){
+       case Qt::DisplayRole :
+               switch (column) {
+               case NR:                ret = tr("#"); break;
+               case DATE:              ret = tr("Date"); break;
+               case RATING:            ret = UTF8_BLACKSTAR; break;
+               case DEPTH:             ret = (get_units()->length ==
units::METERS) ? tr("m") : tr("ft"); break;
+               case DURATION:          ret = tr("min"); break;
+               case TEMPERATURE:       ret =
QString("%1%2").arg(UTF8_DEGREE).arg((get_units()->temperature ==
units::CELSIUS) ? "C" : "F"); break;
+               case TOTALWEIGHT:       ret = (get_units()->weight ==
units::KG) ? tr("kg") : tr("lbs"); break;
+               case SUIT:              ret = tr("Suit"); break;
+               case CYLINDER:          ret = tr("Cyl"); break;
+               case NITROX:            ret =
QString("O%1%").arg(UTF8_SUBSCRIPT_2); break;
+               case SAC:               ret = tr("SAC"); break;
+               case OTU:               ret = tr("OTU"); break;
+               case MAXCNS:            ret = tr("maxCNS"); break;
+               case LOCATION:          ret = tr("Location"); break;
+               }
+               break;
        }
        return ret;
 }
@@ -981,9 +1025,7 @@ QVariant DiveTripModel::data(const QModelIndex& index,
int role) const
                return QVariant();

        if (role == Qt::FontRole) {
-               QFont font;
-               font.setPointSizeF(font.pointSizeF() * 0.7);
-               return font;
+               return defaultModelFont();
        }
        TreeItemDT* item = static_cast<TreeItemDT*>(index.internalPointer());

@@ -1004,6 +1046,11 @@ QVariant DiveTripModel::headerData(int section,
Qt::Orientation orientation,
        if (orientation == Qt::Horizontal && role == Qt::DisplayRole)
                return rootItem->data(section, role);

+       switch(role){
+               case Qt::FontRole :
+               return  defaultModelFont();
+       }
+
        return QVariant();
 }

diff --git a/qt-ui/models.h b/qt-ui/models.h
index a012ec6..79af13b 100644
--- a/qt-ui/models.h
+++ b/qt-ui/models.h
@@ -14,6 +14,8 @@
 #include "../dive.h"
 #include "../divelist.h"

+QFont defaultModelFont();
+
 /* Encapsulates the tank_info global variable
  * to show on Qt's Model View System.*/
 class TankInfoModel : public QAbstractTableModel {
@@ -30,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 */
@@ -51,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


More information about the subsurface mailing list