kalarm
alarmlistview.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "kalarm.h"
00022
00023 #include <QHeaderView>
00024 #include <QMouseEvent>
00025 #include <QApplication>
00026
00027 #include <kconfiggroup.h>
00028
00029 #include "eventlistmodel.h"
00030 #include "alarmlistfiltermodel.h"
00031 #include "alarmlistview.moc"
00032
00033
00034 AlarmListView::AlarmListView(const QByteArray& configGroup, QWidget* parent)
00035 : EventListView(parent),
00036 mConfigGroup(configGroup)
00037 {
00038 setEditOnSingleClick(true);
00039 connect(header(), SIGNAL(sectionMoved(int, int, int)), SLOT(sectionMoved()));
00040 }
00041
00042 void AlarmListView::setModel(QAbstractItemModel* model)
00043 {
00044 EventListView::setModel(model);
00045 KConfigGroup config(KGlobal::config(), mConfigGroup.constData());
00046 QByteArray settings = config.readEntry("ListHead", QByteArray());
00047 if (!settings.isEmpty())
00048 header()->restoreState(settings);
00049 header()->setMovable(true);
00050 header()->setStretchLastSection(false);
00051 header()->setResizeMode(EventListModel::TimeColumn, QHeaderView::ResizeToContents);
00052 header()->setResizeMode(EventListModel::TimeToColumn, QHeaderView::ResizeToContents);
00053 header()->setResizeMode(EventListModel::RepeatColumn, QHeaderView::ResizeToContents);
00054 header()->setResizeMode(EventListModel::ColourColumn, QHeaderView::Fixed);
00055 header()->setResizeMode(EventListModel::TypeColumn, QHeaderView::Fixed);
00056 header()->setResizeMode(EventListModel::TextColumn, QHeaderView::Stretch);
00057 header()->setStretchLastSection(true);
00058 const int margin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin);
00059 header()->resizeSection(EventListModel::ColourColumn, viewOptions().fontMetrics.lineSpacing() * 3 / 4);
00060 header()->resizeSection(EventListModel::TypeColumn, EventListModel::iconWidth() + 2*margin + 2);
00061 }
00062
00063
00064
00065
00066
00067 void AlarmListView::sectionMoved()
00068 {
00069 KConfigGroup config(KGlobal::config(), mConfigGroup.constData());
00070 config.writeEntry("ListHead", header()->saveState());
00071 config.sync();
00072 }
00073
00074
00075
00076
00077 void AlarmListView::selectTimeColumns(bool time, bool timeTo)
00078 {
00079 if (!time && !timeTo)
00080 return;
00081
00082 bool hidden = header()->isSectionHidden(EventListModel::TimeColumn);
00083 if (time && hidden)
00084 {
00085
00086 header()->setSectionHidden(EventListModel::TimeColumn, false);
00087
00088 }
00089 else if (!time && !hidden)
00090 {
00091
00092 header()->setSectionHidden(EventListModel::TimeColumn, true);
00093
00094 }
00095 hidden = header()->isSectionHidden(EventListModel::TimeToColumn);
00096 if (timeTo && hidden)
00097 {
00098
00099 header()->setSectionHidden(EventListModel::TimeToColumn, false);
00100
00101 }
00102 else if (!timeTo && !hidden)
00103 {
00104
00105 header()->setSectionHidden(EventListModel::TimeToColumn, true);
00106
00107 }
00108
00109
00110
00111
00112
00113 }
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124