From d500f56d6f97d67e4991198a86726fa6c93b9a9b Mon Sep 17 00:00:00 2001 From: Marcos CARDINOT Date: Tue, 17 Mar 2015 17:56:52 -0300 Subject: TableView - improving the column width calculation Even that most (or all) tables have the remove button at the section 0, the method defaultColumnWidth should not assume that it will always be true. This patch will consider the title width of each section, instead of using a static width (which cause problems when the language is not en). Signed-off-by: Marcos Cardinot Signed-off-by: Dirk Hohndel --- qt-ui/tableview.cpp | 5 ++--- qt-ui/tableview.h | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) (limited to 'qt-ui') diff --git a/qt-ui/tableview.cpp b/qt-ui/tableview.cpp index 78a0bce10..e412d77e9 100644 --- a/qt-ui/tableview.cpp +++ b/qt-ui/tableview.cpp @@ -12,11 +12,9 @@ TableView::TableView(QWidget *parent) : QGroupBox(parent) QFontMetrics fm(defaultModelFont()); int text_ht = fm.height(); - int text_em = fm.width('m'); metrics.icon = &defaultIconMetrics(); - metrics.col_width = 7*text_em; metrics.rm_col_width = metrics.icon->sz_small + 2*metrics.icon->spacing; metrics.header_ht = text_ht + 10; // TODO DPI @@ -138,7 +136,8 @@ void TableView::edit(const QModelIndex &index) int TableView::defaultColumnWidth(int col) { - return col == CylindersModel::REMOVE ? metrics.rm_col_width : metrics.col_width; + QString text = ui.tableView->model()->headerData(col, Qt::Horizontal).toString(); + return text.isEmpty() ? metrics.rm_col_width : defaultModelFontMetrics().width(text) + 4; // add small margin } QTableView *TableView::view() diff --git a/qt-ui/tableview.h b/qt-ui/tableview.h index 36eef907a..f72b256ea 100644 --- a/qt-ui/tableview.h +++ b/qt-ui/tableview.h @@ -21,7 +21,6 @@ class TableView : public QGroupBox { struct TableMetrics { const IconMetrics* icon; // icon metrics - int col_width; // generic column width int rm_col_width; // column width of REMOVE column int header_ht; // height of the header }; -- cgit v1.2.3-70-g09d2