blob: feb64bf5c7ee6d569d57d1dfae2474d3b52cd568 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version
2 of the License, or (at your option) any later version.
*/
#include <QSettings>
#include <QHeaderView>
#include <QAction>
#include <QActionGroup>
#include "smtreeview.h"
SmTreeView::SmTreeView(const QString &hSetting, QWidget *parent) : QTreeView(parent), mHeaderSetting(hSetting){
header()->setSectionResizeMode(QHeaderView::ResizeToContents);
}
void SmTreeView::readHeaderConfig(){
QSettings s;
QByteArray headerPos = s.value(mHeaderSetting).toByteArray();
if(!headerPos.isEmpty()){
header()->restoreState(headerPos);
}
QHeaderView *hv = header();
QHash<int, QAction*> headerActions;
foreach(QAction *a, mHeaderGroup->actions()){
headerActions.insert(a->data().toInt(), a);
}
for(int i = 0; i < hv->count(); ++i){
if(!hv->isSectionHidden(i)){
headerActions.value(i)->setChecked(true);
}
}
}
void SmTreeView::writeHeaderConfig(){
QSettings s;
s.setValue(mHeaderSetting, header()->saveState());
}
void SmTreeView::toggleHeader(QObject *action){
QAction *a = qobject_cast<QAction*>(action);
int logicalIndex = a->data().toInt();
QHeaderView *hv = header();
hv->setSectionHidden(logicalIndex, !a->isChecked());
}
|