Developer documentation | Axl-2.5.1

axlViewController.cpp
Go to the documentation of this file.
1 /* axlViewController.h ---
2  *
3  * Author: Meriadeg Perrinel
4  * Copyright (C) 2008 - Meriadeg Perrinel, Inria.
5  * Created: Tue Nov 9 16:58:59 2010 (+0100)
6  * Version: $Id$
7  * Last-Updated: Tue Nov 9 17:09:38 2010 (+0100)
8  * By: Meriadeg Perrinel
9  * Update #: 19
10  */
11 
12 /* Commentary:
13  *
14  */
15 
16 /* Change log:
17  *
18  */
19 
20 #include "axlViewController.h"
25 #include <dtkCoreSupport/dtkAbstractData.h>
26 #include <dtkCoreSupport/dtkGlobal.h>
27 
28 class axlViewControllerPrivate
29 {
30 public:
31  QHash<dtkAbstractData *, axlAbstractActor *> actors;
32  QHash<axlAbstractField *, axlAbstractActorField *> actorFields;
33 };
34 
35 // /////////////////////////////////////////////////////////////////
36 // axlViewController
37 // /////////////////////////////////////////////////////////////////
38 
39 axlViewController::axlViewController(void) : QObject(), d(new axlViewControllerPrivate)
40 {
41 
42 }
43 
45 {
46  delete d;
47 
48  d = NULL;
49 }
50 
51 dtkAbstractData *axlViewController::data(axlAbstractActor *actor)
52 {
53  return d->actors.key(actor);
54 }
55 
57 {
58  return d->actors.value(data);
59 }
60 
61 bool axlViewController::insert(dtkAbstractData *data, axlAbstractActor *actor)
62 {
63  if(!data) {
64  qDebug() << DTK_PRETTY_FUNCTION << " no data !";
65  return false;
66  }
67 
68  if(!actor) {
69  qDebug() << DTK_PRETTY_FUNCTION << " no actor !";
70  return false;
71  }
72 
73  d->actors.insert(data,actor);
74 
75  emit inserted();
76 
77  return true;
78 }
79 
80 
81 void axlViewController::remove(dtkAbstractData *data)
82 {
83  d->actors.remove(data);
84 }
85 
87 {
88  return d->actors.size();
89 }
90 
91 QList<dtkAbstractData *> axlViewController::data(void)
92 {
93  return d->actors.keys();
94 }
95 
97 {
98  return d->actors.contains(data);
99 }
100 
101 // FIELD QHASH
102 
104 {
105  return d->actorFields.key(actorField);
106 }
107 
109 {
110  return d->actorFields.value(dataField);
111 }
112 
114 {
115  if(!dataField) {
116  qDebug() << DTK_PRETTY_FUNCTION << " no dataField !";
117  return false;
118  }
119 
120  if(!actorField) {
121  qDebug() << DTK_PRETTY_FUNCTION << " no actorField !";
122  return false;
123  }
124 
125  d->actorFields.insert(dataField, actorField);
126 
127  emit insertedField();
128 
129  return true;
130 }
131 
133 {
134  d->actorFields.remove(dataField);
135 }
136 
138 {
139  return d->actorFields.size();
140 }
141 
142 QList<axlAbstractField *> axlViewController::dataField(void)
143 {
144  return d->actorFields.keys();
145 }
146 
147 
148 
150 {
151  return "axlViewController";
152 }
153 
void removeField(axlAbstractField *dataField)
QList< axlAbstractField * > dataField(void)
virtual QString description(void) const
virtual ~axlViewController(void)
bool insertField(axlAbstractField *dataField, axlAbstractActorField *actorField)
QList< dtkAbstractData * > data(void)
Class axlAbstractField defines an API for arrays of numeric data.
void remove(dtkAbstractData *data)
void insertedField(void)
bool contains(axlAbstractData *data)
axlAbstractActor * actor(dtkAbstractData *data)
void inserted(void)
bool insert(dtkAbstractData *data, axlAbstractActor *actor)
Class axlAbstractData defines an API for all type of axel data.
axlAbstractActorField * actorField(axlAbstractField *dataField)