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

okteta

  • sources
  • kde-4.12
  • kdesdk
  • okteta
  • kasten
  • controllers
  • view
  • structures
structviewitemdelegate.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of the Okteta Kasten Framework, made within the KDE community.
3  *
4  * Copyright 2009, 2010 Alex Richardson <alex.richardson@gmx.de>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) version 3, or any
10  * later version accepted by the membership of KDE e.V. (or its
11  * successor approved by the membership of KDE e.V.), which shall
12  * act as a proxy defined in Section 6 of version 3 of the license.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #include "structviewitemdelegate.h"
24 #include "datatypes/datainformation.h"
25 #include <QtGui/QLineEdit>
26 #include <QtCore/QScopedPointer>
27 #include <KDebug>
28 
29 StructViewItemDelegate::StructViewItemDelegate(QObject * parent) :
30  QStyledItemDelegate(parent)
31 {
32 }
33 
34 StructViewItemDelegate::~StructViewItemDelegate()
35 {
36 }
37 
38 QWidget* StructViewItemDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& option,
39  const QModelIndex& index) const
40 {
41  Q_UNUSED(option)
42  if (!index.isValid())
43  return 0;
44  DataInformationBase* dataB = static_cast<DataInformationBase*> (index.internalPointer());
45  if (!dataB || dataB->isTopLevel())
46  return 0;
47  DataInformation* data = dataB->asDataInformation();
48  QWidget* ret = data->createEditWidget(parent);
49  ret->setFocusPolicy(Qt::WheelFocus);
50  return ret;
51 }
52 
53 void StructViewItemDelegate::setModelData(QWidget* editor, QAbstractItemModel* model,
54  const QModelIndex& index) const
55 {
56  if (!index.isValid())
57  return;
58  DataInformationBase* dataB = static_cast<DataInformationBase*> (index.internalPointer());
59  if (!dataB || dataB->isTopLevel())
60  return;
61  DataInformation* data = dataB->asDataInformation();
62  QVariant value = data->dataFromWidget(editor);
63  model->setData(index, value, Qt::EditRole);
64 }
65 
66 void StructViewItemDelegate::setEditorData(QWidget* editor, const QModelIndex& index) const
67 {
68 
69  if (!index.isValid())
70  return;
71  DataInformationBase* dataB = static_cast<DataInformationBase*> (index.internalPointer());
72  if (!dataB || dataB->isTopLevel())
73  return;
74  DataInformation* data = dataB->asDataInformation();
75  data->setWidgetData(editor);
76 }
77 
78 QSize StructViewItemDelegate::sizeHint(const QStyleOptionViewItem& option,
79  const QModelIndex& index) const
80 {
81  return QStyledItemDelegate::sizeHint(option, index) + QSize(0, 8);
82 }
DataInformation
Interface that must be implemented by all datatypes.
Definition: datainformation.h:67
structviewitemdelegate.h
datainformation.h
QWidget
StructViewItemDelegate::~StructViewItemDelegate
virtual ~StructViewItemDelegate()
Definition: structviewitemdelegate.cpp:34
StructViewItemDelegate::setEditorData
virtual void setEditorData(QWidget *editor, const QModelIndex &index) const
Definition: structviewitemdelegate.cpp:66
QObject
QStyledItemDelegate
StructViewItemDelegate::createEditor
virtual QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: structviewitemdelegate.cpp:38
DataInformationBase::isTopLevel
virtual bool isTopLevel() const =0
StructViewItemDelegate::sizeHint
virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: structviewitemdelegate.cpp:78
DataInformation::dataFromWidget
virtual QVariant dataFromWidget(const QWidget *w) const =0
get the needed data from the widget
QAbstractItemModel
DataInformationBase::asDataInformation
DataInformation * asDataInformation()
Definition: datainformationbase.h:107
DataInformationBase
Definition: datainformationbase.h:44
DataInformation::setWidgetData
virtual void setWidgetData(QWidget *w) const =0
initialize the delegate widget with the correct data
DataInformation::createEditWidget
virtual QWidget * createEditWidget(QWidget *parent) const =0
create a QWidget for the QItemDelegate
StructViewItemDelegate::StructViewItemDelegate
StructViewItemDelegate(QObject *parent=0)
Definition: structviewitemdelegate.cpp:29
StructViewItemDelegate::setModelData
virtual void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
Definition: structviewitemdelegate.cpp:53
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:04:09 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okteta

Skip menu "okteta"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

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