mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Set better column widths in the dive list
This code seems rather crude to me. I'm sure this could be done better. This also makes the column alignment work again. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
f9c97ff97d
commit
c4e2c322a3
2 changed files with 39 additions and 6 deletions
|
@ -14,6 +14,8 @@
|
|||
#include <QSortFilterProxyModel>
|
||||
#include <QSettings>
|
||||
#include <QCloseEvent>
|
||||
#include <QApplication>
|
||||
#include <QFontMetrics>
|
||||
|
||||
#include "divelistview.h"
|
||||
#include "starwidget.h"
|
||||
|
@ -32,6 +34,38 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
|
|||
sortModel->setSourceModel(model);
|
||||
ui->ListWidget->setModel(sortModel);
|
||||
|
||||
/* figure out appropriate widths for the columns. The strings chosen
|
||||
* are somewhat random (but at least we're trying to allow them to be
|
||||
* localized so they are somewhat universal) */
|
||||
QFontMetrics fm(QApplication::font());
|
||||
int pixelsWide = fm.width(tr("Trip Wed, Mar 29, 2000 (100 dives)"));
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::DATE, pixelsWide);
|
||||
|
||||
/* all the columns that have usually up to four numbers plus maybe
|
||||
* a decimal separator */
|
||||
pixelsWide = fm.width("000.0");
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::DEPTH, pixelsWide);
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::TEMPERATURE, pixelsWide);
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::TOTALWEIGHT, pixelsWide);
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::SAC, pixelsWide);
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::OTU, pixelsWide);
|
||||
|
||||
/* this one is likely dominated by the header (need extra pixels) */
|
||||
pixelsWide = fm.width(tr("maxCNS")) + 10;
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::MAXCNS, pixelsWide);
|
||||
|
||||
/* the rest we try to cover with reasonable sample text again */
|
||||
pixelsWide = fm.width(" 123456");
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::NR, pixelsWide);
|
||||
pixelsWide = fm.width("00:00:00");
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::DURATION, pixelsWide);
|
||||
pixelsWide = fm.width(tr("twin HP119"));
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::CYLINDER, pixelsWide);
|
||||
pixelsWide = fm.width("888888");
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::NITROX, pixelsWide);
|
||||
pixelsWide = fm.width(tr("7mm wet, farmer johns and jacket"));
|
||||
ui->ListWidget->setColumnWidth(TreeItemDT::SUIT, pixelsWide);
|
||||
|
||||
setWindowIcon(QIcon(":subsurface-icon"));
|
||||
readSettings();
|
||||
}
|
||||
|
|
|
@ -434,7 +434,8 @@ QVariant DiveItem::data(int column, int role) const
|
|||
{
|
||||
QVariant retVal;
|
||||
|
||||
if (role == Qt::TextAlignmentRole) {
|
||||
switch (role) {
|
||||
case Qt::TextAlignmentRole:
|
||||
switch (column) {
|
||||
case DATE: /* fall through */
|
||||
case SUIT: /* fall through */
|
||||
|
@ -445,9 +446,8 @@ QVariant DiveItem::data(int column, int role) const
|
|||
retVal = Qt::AlignRight;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (role == Qt::DisplayRole) {
|
||||
break;
|
||||
case Qt::DisplayRole:
|
||||
switch (column) {
|
||||
case NR:
|
||||
retVal = dive->number;
|
||||
|
@ -492,6 +492,7 @@ QVariant DiveItem::data(int column, int role) const
|
|||
retVal = dive->rating;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
@ -598,8 +599,6 @@ QVariant DiveTripModel::data(const QModelIndex& index, int role) const
|
|||
if (!index.isValid())
|
||||
return QVariant();
|
||||
|
||||
if (role != Qt::DisplayRole)
|
||||
return QVariant();
|
||||
|
||||
TreeItemDT* item = static_cast<TreeItemDT*>(index.internalPointer());
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue