• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdenetwork API Reference
  • KDE Home
  • Contact Us
 

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • ui
  • history
rangetreewidget.h
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2008 Javier Goday <jgoday@gmail.com>
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 */
10 
11 #ifndef RANGETREEWIDGET_H
12 #define RANGETREEWIDGET_H
13 
14 #include <QMap>
15 #include <QStyledItemDelegate>
16 #include <QSortFilterProxyModel>
17 #include <QTreeView>
18 
19 class QStandardItem;
20 class QStandardItemModel;
21 class QSortFilterProxyModel;
22 class QVariant;
23 class RangeDelegate;
24 
30 class RangeSortFilterProxyModel : public QSortFilterProxyModel
31 {
32 public:
33  RangeSortFilterProxyModel(QObject *parent = 0);
34  ~RangeSortFilterProxyModel();
35 
36 protected:
37  virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
38 };
39 
40 class RangeTreeWidget : public QTreeView
41 {
42 Q_OBJECT
43 public:
44 
45  RangeTreeWidget(QWidget *parent = 0);
46  ~RangeTreeWidget();
47 
51  int addRange(const QVariant &min, const QVariant &max, const QString &title);
52  void clear();
53 
54  void add(const QVariant &data, const QString &column);
55  void add(const QVariant &data, const QVariantList &columns);
56  void addLabel(const QString &title);
57  void setLabels(const QStringList &labels);
58 
63  void setRangeDelegate(RangeDelegate *delegate);
64 
65  QList <QVariantList> data();
66  QStandardItem *currentItem(int column = -1);
67  QStandardItem *item(const QModelIndex &index = QModelIndex(), int column = 0);
68 
69 public slots:
70  void removeRow(int row, const QModelIndex &parent = QModelIndex());
74  void setFilterRegExp(const QString &text);
75 
76 private:
81  QStandardItem *getRange(const QVariant &data);
82 
83 private:
84  class Range;
85 
86  QStandardItemModel *m_model;
87  RangeSortFilterProxyModel *m_proxyModel;
88  QMap <int, QStandardItem *> m_data;
89  QList <RangeTreeWidget::Range> m_ranges;
90 
91  RangeDelegate *m_rangeDelegate;
92 };
93 
97 class RangeDelegate : public QObject
98 {
99 Q_OBJECT
100  public:
101  RangeDelegate(QObject *parent = 0);
102  ~RangeDelegate();
103 
107  virtual QVariant getRangeData(const QVariant &data) = 0;
108 };
109 
113 class HostRangeDelegate : public RangeDelegate
114 {
115 Q_OBJECT
116  public:
117  HostRangeDelegate(QObject *parent = 0);
118  ~HostRangeDelegate();
119 
120  QVariant getRangeData(const QVariant &data);
121 };
122 
123 class RangeTreeWidgetItemDelegate : public QStyledItemDelegate
124 {
125 public:
126  RangeTreeWidgetItemDelegate(QAbstractItemView *parent);
127 
128  void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
129  QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const;
130 };
131 #endif
RangeSortFilterProxyModel::RangeSortFilterProxyModel
RangeSortFilterProxyModel(QObject *parent=0)
Definition: rangetreewidget.cpp:62
RangeTreeWidgetItemDelegate::RangeTreeWidgetItemDelegate
RangeTreeWidgetItemDelegate(QAbstractItemView *parent)
Definition: rangetreewidget.cpp:285
RangeTreeWidget::setRangeDelegate
void setRangeDelegate(RangeDelegate *delegate)
Set a delegate in case you want to create the ranges dinamically Ej, the host ranges delegate...
Definition: rangetreewidget.cpp:187
RangeTreeWidget::item
QStandardItem * item(const QModelIndex &index=QModelIndex(), int column=0)
Definition: rangetreewidget.cpp:226
RangeTreeWidget::addLabel
void addLabel(const QString &title)
Definition: rangetreewidget.cpp:171
RangeSortFilterProxyModel
We need to override the qsortfilterproxymodel behavior to avoid include the range rows in the search ...
Definition: rangetreewidget.h:30
RangeTreeWidget::setLabels
void setLabels(const QStringList &labels)
Definition: rangetreewidget.cpp:178
QWidget
HostRangeDelegate::HostRangeDelegate
HostRangeDelegate(QObject *parent=0)
Definition: rangetreewidget.cpp:272
QStandardItemModel
QObject
RangeDelegate::~RangeDelegate
~RangeDelegate()
Definition: rangetreewidget.cpp:268
QStyledItemDelegate
RangeTreeWidget::removeRow
void removeRow(int row, const QModelIndex &parent=QModelIndex())
Definition: rangetreewidget.cpp:231
RangeTreeWidgetItemDelegate::sizeHint
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: rangetreewidget.cpp:333
HostRangeDelegate::getRangeData
QVariant getRangeData(const QVariant &data)
Returns the current range of the incoming data.
Definition: rangetreewidget.cpp:280
RangeTreeWidgetItemDelegate
Definition: rangetreewidget.h:123
RangeDelegate
Creates ranges dinamically, based on the item data.
Definition: rangetreewidget.h:97
QTreeView
RangeTreeWidget::data
QList< QVariantList > data()
Definition: rangetreewidget.cpp:193
HostRangeDelegate
Creates a ragen based on the host of the transfer.
Definition: rangetreewidget.h:113
RangeTreeWidget::currentItem
QStandardItem * currentItem(int column=-1)
Definition: rangetreewidget.cpp:212
RangeDelegate::RangeDelegate
RangeDelegate(QObject *parent=0)
Definition: rangetreewidget.cpp:264
QSortFilterProxyModel
RangeTreeWidget::RangeTreeWidget
RangeTreeWidget(QWidget *parent=0)
Definition: rangetreewidget.cpp:81
RangeTreeWidget::setFilterRegExp
void setFilterRegExp(const QString &text)
Filters the data throws the qsortfilterproxymodel.
Definition: rangetreewidget.cpp:236
RangeTreeWidget::~RangeTreeWidget
~RangeTreeWidget()
Definition: rangetreewidget.cpp:103
RangeTreeWidget::addRange
int addRange(const QVariant &min, const QVariant &max, const QString &title)
Creates a range with a title between two values.
Definition: rangetreewidget.cpp:117
RangeTreeWidget::clear
void clear()
Definition: rangetreewidget.cpp:141
HostRangeDelegate::~HostRangeDelegate
~HostRangeDelegate()
Definition: rangetreewidget.cpp:276
RangeTreeWidget::add
void add(const QVariant &data, const QString &column)
Definition: rangetreewidget.cpp:148
RangeDelegate::getRangeData
virtual QVariant getRangeData(const QVariant &data)=0
Returns the current range of the incoming data.
QStandardItem
RangeTreeWidget
Definition: rangetreewidget.h:40
RangeSortFilterProxyModel::filterAcceptsRow
virtual bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
Definition: rangetreewidget.cpp:71
RangeSortFilterProxyModel::~RangeSortFilterProxyModel
~RangeSortFilterProxyModel()
Definition: rangetreewidget.cpp:67
RangeTreeWidgetItemDelegate::paint
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: rangetreewidget.cpp:289
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal