Moved the code that handles DiveList column sizes to its correct file.

I got a bit lost trying to find the code that handled DiveList columns
today, so I thought it was better to move it to its file, after all we
do have a divelistview.h :)

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2013-11-08 20:30:17 -02:00 committed by Dirk Hohndel
parent ba638cae05
commit 7dbf76384f
3 changed files with 40 additions and 21 deletions

View file

@ -47,6 +47,42 @@ DiveListView::DiveListView(QWidget *parent) : QTreeView(parent), mouseClickSelec
connect(showSearchBox, SIGNAL(triggered(bool)), this, SLOT(showSearchEdit()));
connect(searchBox, SIGNAL(textChanged(QString)), model, SLOT(setFilterFixedString(QString)));
selectedTrips.clear();
setupUi();
}
DiveListView::~DiveListView()
{
QSettings settings;
settings.beginGroup("ListWidget");
for (int i = DiveTripModel::NR; i < DiveTripModel::COLUMNS; i++){
if (isColumnHidden(i))
continue;
settings.setValue(QString("colwidth%1").arg(i), columnWidth(i));
}
settings.endGroup();
}
void DiveListView::setupUi(){
QSettings settings;
settings.beginGroup("ListWidget");
/* if no width are set, use the calculated width for each column;
* for that to work we need to temporarily expand all rows */
expandAll();
for (int i = DiveTripModel::NR; i < DiveTripModel::COLUMNS; i++) {
if(isColumnHidden(i))
continue;
QVariant width = settings.value(QString("colwidth%1").arg(i));
if (width.isValid())
setColumnWidth(i, width.toInt());
else
setColumnWidth(i, 100);
}
settings.endGroup();
collapseAll();
expand(model()->index(0,0));
scrollTo(model()->index(0,0), QAbstractItemView::PositionAtCenter);
}
void DiveListView::fixMessyQtModelBehaviour()
@ -178,6 +214,7 @@ void DiveListView::reload(DiveTripModel::Layout layout, bool forceSort)
setCurrentIndex(firstDiveOrTrip);
}
}
setupUi();
}
void DiveListView::reloadHeaderActions()

View file

@ -19,6 +19,7 @@ class DiveListView : public QTreeView
Q_OBJECT
public:
DiveListView(QWidget *parent = 0);
~DiveListView();
void selectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
void currentChanged(const QModelIndex& current, const QModelIndex& previous);
void reload(DiveTripModel::Layout layout, bool forceSort = true);
@ -54,6 +55,7 @@ private:
QLineEdit *searchBox;
QModelIndex contextMenuIndex;
void merge_trip(const QModelIndex &a, const int offset);
void setupUi();
};
#endif // DIVELISTVIEW_H

View file

@ -54,9 +54,9 @@ MainWindow::MainWindow() : helpView(0)
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui.ListWidget, SLOT(reloadHeaderActions()));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui.ProfileWidget, SLOT(refresh()));
ui.mainErrorMessage->hide();
ui.ListWidget->reload(DiveTripModel::TREE);
initialUiSetup();
readSettings();
ui.ListWidget->reload(DiveTripModel::TREE);
ui.ListWidget->reloadHeaderActions();
ui.ListWidget->setFocus();
ui.globe->reload();
@ -566,21 +566,6 @@ void MainWindow::initialUiSetup()
case PROFILE_MAXIMIZED : on_actionViewProfile_triggered(); break;
}
settings.endGroup();
settings.beginGroup("ListWidget");
/* if no width are set, use the calculated width for each column;
* for that to work we need to temporarily expand all rows */
ui.ListWidget->expandAll();
for (i = DiveTripModel::NR; i < DiveTripModel::COLUMNS; i++) {
QVariant width = settings.value(QString("colwidth%1").arg(i));
if (width.isValid())
ui.ListWidget->setColumnWidth(i, width.toInt());
else
ui.ListWidget->resizeColumnToContents(i);
}
ui.ListWidget->collapseAll();
ui.ListWidget->expand(ui.ListWidget->model()->index(0,0));
ui.ListWidget->scrollTo(ui.ListWidget->model()->index(0,0), QAbstractItemView::PositionAtCenter);
settings.endGroup();
}
void MainWindow::readSettings()
@ -652,11 +637,6 @@ void MainWindow::writeSettings()
}
settings.endGroup();
settings.beginGroup("ListWidget");
for (i = DiveTripModel::NR; i < DiveTripModel::COLUMNS; i++)
if (!ui.ListWidget->isColumnHidden(i))
settings.setValue(QString("colwidth%1").arg(i), ui.ListWidget->columnWidth(i));
settings.endGroup();
settings.beginGroup("Units");
SAVE_VALUE("length", units.length);
SAVE_VALUE("pressure", units.pressure);