# HG changeset patch # User Andre Heinecke # Date 1434642508 -7200 # Node ID 5923d569167b779830807ab790fa862abfec9f23 # Parent d6f3a31e505e1ba0c0207bd3a4746489c18ddc25 Make Header tooltips configurable diff -r d6f3a31e505e -r 5923d569167b src/constants.h --- a/src/constants.h Tue Jun 16 16:08:05 2015 +0200 +++ b/src/constants.h Thu Jun 18 17:48:28 2015 +0200 @@ -127,4 +127,8 @@ * @brief Default value for the detachable image. */ #define DETACHABLE_IMAGE_DEFAULT false +/** +* @brief The configuration group for the tooltips. */ +#define TOOLTIP_CONFIG_GROUP "Tooltips" + #endif // CONSTANTS_H diff -r d6f3a31e505e -r 5923d569167b src/l10n/main_de_DE.ts --- a/src/l10n/main_de_DE.ts Tue Jun 16 16:08:05 2015 +0200 +++ b/src/l10n/main_de_DE.ts Thu Jun 18 17:48:28 2015 +0200 @@ -113,7 +113,7 @@ MetaDataView - + Failed to parse file: '%1' Die Datei '%1' konnte nicht eingelesen werden. @@ -126,22 +126,17 @@ Geschwindigkeit: - - RetraceIT Version:<br/><bold>%1</bold> - - - - + Screenshot Nr.: Screenshot Nr.: - + Index Nr.: Index Nr.: - + Timestamp: Zeitstempel: @@ -150,12 +145,12 @@ Unbekannt - + %1 second per Picture %1 Sekunde pro Bild - + %1 seconds per Picture %1 Sekunden pro Bild diff -r d6f3a31e505e -r 5923d569167b src/libqxt/qxtcsvmodel.cpp --- a/src/libqxt/qxtcsvmodel.cpp Tue Jun 16 16:08:05 2015 +0200 +++ b/src/libqxt/qxtcsvmodel.cpp Thu Jun 18 17:48:28 2015 +0200 @@ -45,12 +45,13 @@ class QxtCsvModelPrivate : public QxtPrivate { public: - QxtCsvModelPrivate() : csvData(), header(), maxColumn(0), quoteMode(QxtCsvModel::DefaultQuoteMode) + QxtCsvModelPrivate() : csvData(), header(), header_tt(), maxColumn(0), quoteMode(QxtCsvModel::DefaultQuoteMode) {} QXT_DECLARE_PUBLIC(QxtCsvModel) QList csvData; QStringList header; + QStringList header_tt; int maxColumn; QxtCsvModel::QuoteMode quoteMode; }; @@ -139,7 +140,9 @@ { if(section < qxt_d().header.count() && orientation == Qt::Horizontal && (role == Qt::DisplayRole || role == Qt::EditRole || role == Qt::UserRole)) return qxt_d().header[section]; - else + else if (section < qxt_d().header_tt.count() && role == Qt::ToolTipRole) { + return qxt_d().header_tt[section]; + } else return QAbstractTableModel::headerData(section, orientation, role); } @@ -267,12 +270,21 @@ */ bool QxtCsvModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant& value, int role) { - if(orientation != Qt::Horizontal) return false; // We don't support the vertical header - if(role != Qt::DisplayRole && role != Qt::EditRole) return false; // We don't support any other roles if(section < 0) return false; // Bogus input while(section > qxt_d().header.size()) { qxt_d().header << QString(); } + while(section >= qxt_d().header_tt.size()) { + qxt_d().header_tt << QString(); + } + qDebug() << "Sect " << section << " size " << qxt_d().header_tt.size(); + if(orientation != Qt::Horizontal) return false; // We don't support the vertical header + if(role == Qt::ToolTipRole) { + qxt_d().header_tt[section] = value.toString(); + emit headerDataChanged(Qt::Horizontal, section, section); + return true; + } + if(role != Qt::DisplayRole && role != Qt::EditRole) return false; // We don't support any other roles qxt_d().header[section] = value.toString(); emit headerDataChanged(Qt::Horizontal, section, section); return true; @@ -369,8 +381,10 @@ row.insert(col, QString()); } } - for(int i = 0; i < count ;i++) + for(int i = 0; i < count ;i++) { d_ptr.header.insert(col, QString()); + d_ptr.header_tt.insert(col, QString()); + } d_ptr.maxColumn += count; endInsertColumns(); return true; @@ -400,8 +414,10 @@ d_ptr.csvData[i].removeAt(col); } } - for(int i = 0; i < count; i++) + for(int i = 0; i < count; i++) { d_ptr.header.removeAt(col); + d_ptr.header_tt.removeAt(col); + } emit endRemoveColumns(); return true; } diff -r d6f3a31e505e -r 5923d569167b src/metadataview.cpp --- a/src/metadataview.cpp Tue Jun 16 16:08:05 2015 +0200 +++ b/src/metadataview.cpp Thu Jun 18 17:48:28 2015 +0200 @@ -109,6 +109,7 @@ qDebug() << "Failed to find displayDate column: " << displayDate; mDateColIdx = DATE_COLUMN_FALLBACK_IDX; } + setupHeaderTooltips(); return QString(); } @@ -249,3 +250,16 @@ } } } + +void MetaDataView::setupHeaderTooltips() { + QSettings settings; + settings.beginGroup(TOOLTIP_CONFIG_GROUP); + for (int i=0; i < mSortModel->columnCount(); i++) { + QString entry = mSortModel->headerData(i, Qt::Horizontal).toString(); + QString toolTip = settings.value(entry).toString(); + settings.setValue(entry, toolTip); + if (!mSortModel->setHeaderData(i, Qt::Horizontal, toolTip, Qt::ToolTipRole)) { + qDebug() << "Failed to set header data"; + } + } +} diff -r d6f3a31e505e -r 5923d569167b src/metadataview.h --- a/src/metadataview.h Tue Jun 16 16:08:05 2015 +0200 +++ b/src/metadataview.h Thu Jun 18 17:48:28 2015 +0200 @@ -55,6 +55,9 @@ /** @brief the data has been changed. Could be filter. */ void dataChanged(); + /** @brief load the configured header tooltips */ + void setupHeaderTooltips(); + public slots: /** @brief selects the next row and emits a selection changed signal */ void selectNextRow();