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

kig

  • sources
  • kde-4.12
  • kdeedu
  • kig
  • misc
guiaction.cc
Go to the documentation of this file.
1 // Copyright (C) 2002 Dominique Devriese <devriese@kde.org>
2 
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
7 
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16 // 02110-1301, USA.
17 
18 #include "guiaction.h"
19 #include "guiaction.moc"
20 
21 #include "coordinate_system.h"
22 #include "coordinate.h"
23 #include "object_constructor.h"
24 
25 #include "../kig/kig_part.h"
26 #include "../kig/kig_document.h"
27 #include "../misc/kiginputdialog.h"
28 #include "../modes/construct_mode.h"
29 #include "../modes/label.h"
30 #include "../objects/object_holder.h"
31 #include "../objects/object_factory.h"
32 #include "../objects/bogus_imp.h"
33 
34 #include <kiconloader.h>
35 #include <klocale.h>
36 #include <kicon.h>
37 #include <kactioncollection.h>
38 
39 #include <qregexp.h>
40 
41 int GUIAction::shortcut() const
42 {
43  return 0;
44 }
45 
46 GUIAction::~GUIAction()
47 {
48 }
49 
50 ConstructibleAction::~ConstructibleAction()
51 {
52 }
53 
54 ConstructibleAction::ConstructibleAction(
55  ObjectConstructor* ctor,
56  const QByteArray& actionname,
57  int shortcut )
58  : GUIAction(), mctor( ctor ), mactionname( actionname ), mshortcut( shortcut )
59 {
60 }
61 
62 QString ConstructibleAction::description() const
63 {
64  return mctor->description();
65 }
66 
67 QByteArray ConstructibleAction::iconFileName( const bool canBeNull ) const
68 {
69  return mctor->iconFileName( canBeNull );
70 }
71 
72 QString ConstructibleAction::descriptiveName() const
73 {
74  return mctor->descriptiveName();
75 }
76 
77 void ConstructibleAction::act( KigPart& d )
78 {
79  BaseConstructMode* m = mctor->constructMode( d );
80  d.runMode( m );
81  delete m;
82  d.rememberConstruction( this );
83 }
84 
85 KigGUIAction::KigGUIAction( GUIAction* act,
86  KigPart& doc )
87  : KAction( act->descriptiveName(), doc.actionCollection() ),
88  mact( act ),
89  mdoc( doc )
90 {
91  QByteArray icon = act->iconFileName( true );
92  if ( !icon.isEmpty() )
93  setIcon( KIcon( icon, doc.iconLoader() ) );
94  setWhatsThis( act->description() );
95  QString tooltip = act->descriptiveName();
96  tooltip.replace( QRegExp( "&&" ), "&" );
97  setToolTip( tooltip );
98  setShortcut( KShortcut( act->shortcut() ) );
99  connect( this, SIGNAL( triggered() ), this, SLOT( slotActivated() ) );
100 
101  doc.actionCollection()->addAction(act->actionName(), this);
102 }
103 
104 void KigGUIAction::slotActivated()
105 {
106  mact->act( mdoc );
107 }
108 
109 const char* ConstructibleAction::actionName() const
110 {
111  return mactionname;
112 }
113 
114 ConstructPointAction::~ConstructPointAction()
115 {
116 }
117 
118 QString ConstructPointAction::description() const
119 {
120  return i18n(
121  "A normal point, i.e. one that is either independent or attached "
122  "to a line, circle, segment."
123  );
124 }
125 
126 QByteArray ConstructPointAction::iconFileName( const bool ) const
127 {
128  return "point";
129 }
130 
131 QString ConstructPointAction::descriptiveName() const
132 {
133  return i18n("Point");
134 }
135 
136 const char* ConstructPointAction::actionName() const
137 {
138  return mactionname;
139 }
140 
141 int ConstructPointAction::shortcut() const
142 {
143  return Qt::Key_P;
144 }
145 
146 void ConstructPointAction::act( KigPart& d )
147 {
148  PointConstructMode m( d );
149  d.runMode( &m );
150 }
151 
152 ConstructPointAction::ConstructPointAction( const char* actionname )
153  : mactionname( actionname )
154 {
155 }
156 
157 GUIAction* KigGUIAction::guiAction()
158 {
159  return mact;
160 }
161 
162 void KigGUIAction::plug( KigPart* doc )
163 {
164  mact->plug( doc, this );
165 }
166 
167 void ConstructibleAction::plug( KigPart* doc, KigGUIAction* kact )
168 {
169  mctor->plug( doc, kact );
170 }
171 
172 QString ConstructTextLabelAction::description() const
173 {
174  return i18n( "Construct a text label." );
175 }
176 
177 QByteArray ConstructTextLabelAction::iconFileName( const bool ) const
178 {
179  return "kig_text";
180 }
181 
182 QString ConstructTextLabelAction::descriptiveName() const
183 {
184  return i18n( "Text Label" );
185 }
186 
187 const char* ConstructTextLabelAction::actionName() const
188 {
189  return mactionname;
190 }
191 
192 void ConstructTextLabelAction::act( KigPart& d )
193 {
194  TextLabelConstructionMode m( d );
195  d.runMode( &m );
196 }
197 
198 ConstructTextLabelAction::ConstructTextLabelAction( const char* actionname )
199  : mactionname( actionname )
200 {
201 }
202 
203 QString AddFixedPointAction::description() const
204 {
205  return i18n( "Construct a Point by its Coordinates" );
206 }
207 
208 QByteArray AddFixedPointAction::iconFileName( const bool ) const
209 {
210  return "pointxy";
211 }
212 
213 QString AddFixedPointAction::descriptiveName() const
214 {
215  return i18n( "Point by Coordinates" );
216 }
217 
218 const char* AddFixedPointAction::actionName() const
219 {
220  return mactionname;
221 }
222 
223 void AddFixedPointAction::act( KigPart& doc )
224 {
225  bool ok;
226  Coordinate c = Coordinate::invalidCoord();
227  KigInputDialog::getCoordinate(
228  i18n( "Fixed Point" ),
229  i18n( "Enter the coordinates for the new point." ) +
230  QString::fromLatin1( "<br>" ) +
231  doc.document().coordinateSystem().coordinateFormatNoticeMarkup(),
232  doc.widget(), &ok, doc.document(), &c );
233  if ( ! ok ) return;
234  ObjectHolder* p = ObjectFactory::instance()->fixedPoint( c );
235  p->calc( doc.document() );
236  doc.addObject( p );
237 }
238 
239 AddFixedPointAction::AddFixedPointAction( const char* actionname )
240  : mactionname( actionname )
241 {
242 }
243 
244 AddFixedPointAction::~AddFixedPointAction()
245 {
246 }
247 
248 QString ConstructNumericLabelAction::description() const
249 {
250  return i18n( "Construct a Numeric Value" );
251 }
252 
253 QByteArray ConstructNumericLabelAction::iconFileName( const bool ) const
254 {
255  return "kig_numericvalue";
256 }
257 
258 QString ConstructNumericLabelAction::descriptiveName() const
259 {
260  return i18n( "Numeric Value" );
261 }
262 
263 const char* ConstructNumericLabelAction::actionName() const
264 {
265  return mactionname;
266 }
267 
268 void ConstructNumericLabelAction::act( KigPart& doc )
269 {
270  NumericLabelMode m( doc );
271  doc.runMode( &m );
272 }
273 
274 ConstructNumericLabelAction::ConstructNumericLabelAction( const char* actionname )
275  : mactionname( actionname )
276 {
277 }
278 
279 ConstructNumericLabelAction::~ConstructNumericLabelAction()
280 {
281 }
282 
283 int ConstructNumericLabelAction::shortcut() const
284 {
285  return Qt::Key_N;
286 }
287 
288 void GUIAction::plug( KigPart*, KigGUIAction* )
289 {
290 }
291 
292 int ConstructibleAction::shortcut() const
293 {
294  return mshortcut;
295 }
296 
297 int ConstructTextLabelAction::shortcut() const
298 {
299  return Qt::Key_B;
300 }
301 
302 int AddFixedPointAction::shortcut() const
303 {
304  return Qt::Key_F;
305 }
306 
307 #if 0
308 TestAction::TestAction( const char* actionname )
309  : mactionname( actionname )
310 {
311 }
312 
313 TestAction::~TestAction()
314 {
315 }
316 
317 QString TestAction::description() const
318 {
319  return QString::fromLatin1( "Test stuff !!!" );
320 }
321 
322 QByteArray TestAction::iconFileName( const bool ) const
323 {
324  return "new";
325 }
326 
327 QString TestAction::descriptiveName() const
328 {
329  return QString::fromLatin1( "Test stuff !!!" );
330 }
331 
332 const char* TestAction::actionName() const
333 {
334  return mactionname;
335 }
336 
337 void TestAction::act( KigPart& doc )
338 {
339  const char* script =
340  "def calc( a ):\n\treturn Point( a.coordinate() + Coordinate( 2, 0 ) )\n";
341  Object* constantpoint = ObjectFactory::instance()->fixedPoint( Coordinate( -1, -1 ) );
342  constantpoint->calc( doc );
343 
344  Object* codeobject = new DataObject( new StringImp( QString::fromLatin1( script ) ) );
345  Object* compiledcode = new RealObject( PythonCompileType::instance(), Objects( codeobject ) );
346  compiledcode->calc( doc );
347 
348  Objects args( compiledcode );
349  args.push_back( constantpoint );
350  Object* scriptobject = new RealObject( PythonExecuteType::instance(), args );
351  scriptobject->calc( doc );
352 
353  doc.addObject( constantpoint );
354  doc.addObject( scriptobject );
355 }
356 
357 #endif // if 0 ( TestAction )
358 
359 #ifdef KIG_ENABLE_PYTHON_SCRIPTING
360 #include "../scripting/python_type.h"
361 #include "../scripting/script_mode.h"
362 
363 NewScriptAction::NewScriptAction( const char* descname, const char* description,
364  const char* actionname, const ScriptType::Type type,
365  const char* icon )
366  : GUIAction(), mactionname( actionname ), mdescname( descname ),
367  mdescription( description ), micon( icon ), mtype( type )
368 {
369  if ( QString( micon ).isEmpty() )
370  {
371  micon = ScriptType::icon( type );
372  }
373 }
374 
375 NewScriptAction::~NewScriptAction()
376 {
377 }
378 
379 QString NewScriptAction::description() const
380 {
381  return i18n( mdescription );
382 }
383 
384 QByteArray NewScriptAction::iconFileName( const bool ) const
385 {
386  return micon;
387 }
388 
389 QString NewScriptAction::descriptiveName() const
390 {
391  return i18n( mdescname );
392 }
393 
394 const char* NewScriptAction::actionName() const
395 {
396  return mactionname;
397 }
398 
399 void NewScriptAction::act( KigPart& doc )
400 {
401  ScriptCreationMode m( doc );
402  m.setScriptType( mtype );
403  doc.runMode( &m );
404 }
405 
406 int NewScriptAction::shortcut() const
407 {
408  return 0;
409 }
410 
411 #endif // if KIG_ENABLE_PYTHON_SCRIPTING ( NewScriptAction )
ObjectFactory::instance
static const ObjectFactory * instance()
Definition: object_factory.cc:90
ObjectConstructor::plug
virtual void plug(KigPart *doc, KigGUIAction *kact)=0
ConstructPointAction::~ConstructPointAction
~ConstructPointAction()
Definition: guiaction.cc:114
ConstructibleAction::shortcut
int shortcut() const
Definition: guiaction.cc:292
AddFixedPointAction::iconFileName
QByteArray iconFileName(const bool canBeNull=false) const
Definition: guiaction.cc:208
BaseConstructMode
Definition: construct_mode.h:58
ObjectConstructor::descriptiveName
virtual const QString descriptiveName() const =0
StringImp
This ObjectImp is a BogusImp containing only a string value.
Definition: bogus_imp.h:167
ConstructPointAction::description
QString description() const
Definition: guiaction.cc:118
GUIAction::act
virtual void act(KigPart &)=0
PythonExecuteType::instance
static const PythonExecuteType * instance()
Definition: python_type.cc:138
ConstructTextLabelAction::iconFileName
QByteArray iconFileName(const bool canBeNull=false) const
Definition: guiaction.cc:177
ConstructibleAction::iconFileName
QByteArray iconFileName(const bool canBeNull=false) const
Definition: guiaction.cc:67
AddFixedPointAction::shortcut
int shortcut() const
Definition: guiaction.cc:302
PointConstructMode
Definition: construct_mode.h:29
ConstructibleAction::ConstructibleAction
ConstructibleAction(ObjectConstructor *ctor, const QByteArray &actionname, int shortcut=0)
Definition: guiaction.cc:54
ScriptType::icon
static const char * icon(ScriptType::Type type)
Returns the icon's name for a script language.
Definition: script-common.cc:107
KigPart::document
const KigDocument & document() const
Definition: kig_part.cpp:989
ConstructTextLabelAction::descriptiveName
QString descriptiveName() const
Definition: guiaction.cc:182
TextLabelConstructionMode
Definition: label.h:106
ScriptType::Type
Type
This enum represents all the script language types actually in Kig.
Definition: script-common.h:36
coordinate_system.h
KigGUIAction::plug
void plug(KigPart *doc)
Definition: guiaction.cc:162
ConstructPointAction::actionName
const char * actionName() const
Definition: guiaction.cc:136
ConstructibleAction::description
QString description() const
Definition: guiaction.cc:62
ConstructNumericLabelAction::descriptiveName
QString descriptiveName() const
Definition: guiaction.cc:258
ConstructTextLabelAction::shortcut
int shortcut() const
Definition: guiaction.cc:297
ConstructNumericLabelAction::~ConstructNumericLabelAction
~ConstructNumericLabelAction()
Definition: guiaction.cc:279
ConstructibleAction::~ConstructibleAction
~ConstructibleAction()
Definition: guiaction.cc:50
Coordinate
The Coordinate class is the basic class representing a 2D location by its x and y components...
Definition: coordinate.h:33
ObjectHolder::calc
void calc(const KigDocument &)
Make our ObjectCalcer recalculate its ObjectImp.
Definition: object_holder.cc:73
KigGUIAction
Definition: guiaction.h:34
ConstructPointAction::shortcut
int shortcut() const
Definition: guiaction.cc:141
ObjectConstructor
This class represents a way to construct a set of objects from a set of other objects.
Definition: object_constructor.h:44
KigInputDialog::getCoordinate
static void getCoordinate(const QString &caption, const QString &label, QWidget *parent, bool *ok, const KigDocument &doc, Coordinate *cvalue)
Static convenience function to get a Coordinate from the user.
Definition: kiginputdialog.cc:259
ConstructPointAction::iconFileName
QByteArray iconFileName(const bool canBeNull=false) const
Definition: guiaction.cc:126
ConstructNumericLabelAction::iconFileName
QByteArray iconFileName(const bool canBeNull=false) const
Definition: guiaction.cc:253
GUIAction::actionName
virtual const char * actionName() const =0
ObjectHolder
An ObjectHolder represents an object as it is known to the document.
Definition: object_holder.h:40
ConstructNumericLabelAction::description
QString description() const
Definition: guiaction.cc:248
ConstructPointAction::ConstructPointAction
ConstructPointAction(const char *actionname)
Definition: guiaction.cc:152
ConstructNumericLabelAction::shortcut
int shortcut() const
Definition: guiaction.cc:283
ConstructTextLabelAction::description
QString description() const
Definition: guiaction.cc:172
ObjectFactory::fixedPoint
ObjectHolder * fixedPoint(const Coordinate &c) const
this returns a fixed point.
Definition: object_factory.cc:44
ConstructTextLabelAction::act
void act(KigPart &)
Definition: guiaction.cc:192
KigPart::runMode
void runMode(KigMode *)
Definition: kig_part.cpp:735
KigGUIAction::KigGUIAction
KigGUIAction(GUIAction *act, KigPart &doc)
Definition: guiaction.cc:85
NumericLabelMode
How to construct a numeric label in a clean way.
Definition: label.h:134
GUIAction::~GUIAction
virtual ~GUIAction()
Definition: guiaction.cc:46
ConstructibleAction::descriptiveName
QString descriptiveName() const
Definition: guiaction.cc:72
AddFixedPointAction::descriptiveName
QString descriptiveName() const
Definition: guiaction.cc:213
PythonCompileType::instance
static const PythonCompileType * instance()
Definition: python_type.cc:95
ConstructibleAction::actionName
const char * actionName() const
Definition: guiaction.cc:109
GUIAction::shortcut
virtual int shortcut() const =0
Definition: guiaction.cc:41
AddFixedPointAction::~AddFixedPointAction
~AddFixedPointAction()
Definition: guiaction.cc:244
KigGUIAction::guiAction
GUIAction * guiAction()
Definition: guiaction.cc:157
ConstructNumericLabelAction::act
void act(KigPart &)
Definition: guiaction.cc:268
CoordinateSystem::coordinateFormatNoticeMarkup
virtual QString coordinateFormatNoticeMarkup() const =0
Like coordinateFormatNotice(), but with HTML tags useful to have a rich text...
KigPart::addObject
void addObject(ObjectHolder *inObject)
Definition: kig_part.cpp:492
ConstructibleAction::act
void act(KigPart &)
Definition: guiaction.cc:77
AddFixedPointAction::description
QString description() const
Definition: guiaction.cc:203
Coordinate::invalidCoord
static Coordinate invalidCoord()
Create an invalid Coordinate.
Definition: coordinate.cpp:171
ConstructibleAction::plug
void plug(KigPart *doc, KigGUIAction *kact)
Definition: guiaction.cc:167
GUIAction::iconFileName
virtual QByteArray iconFileName(const bool canBeNull=false) const =0
ObjectConstructor::description
virtual const QString description() const =0
AddFixedPointAction::actionName
const char * actionName() const
Definition: guiaction.cc:218
KigPart::rememberConstruction
void rememberConstruction(ConstructibleAction *)
Definition: kig_part.cpp:356
GUIAction::descriptiveName
virtual QString descriptiveName() const =0
AddFixedPointAction::act
void act(KigPart &)
Definition: guiaction.cc:223
KAction
ObjectConstructor::constructMode
virtual BaseConstructMode * constructMode(KigPart &doc)
Which construct mode should be used for this ObjectConstructor.
Definition: object_constructor.cc:592
guiaction.h
ConstructTextLabelAction::actionName
const char * actionName() const
Definition: guiaction.cc:187
GUIAction::plug
virtual void plug(KigPart *doc, KigGUIAction *kact)
Definition: guiaction.cc:288
ConstructTextLabelAction::ConstructTextLabelAction
ConstructTextLabelAction(const char *actionname)
Definition: guiaction.cc:198
KigPart
This is a "Part".
Definition: kig_part.h:68
AddFixedPointAction::AddFixedPointAction
AddFixedPointAction(const char *actionname)
Definition: guiaction.cc:239
ConstructPointAction::descriptiveName
QString descriptiveName() const
Definition: guiaction.cc:131
coordinate.h
GUIAction
Definition: guiaction.h:51
KigDocument::coordinateSystem
const CoordinateSystem & coordinateSystem() const
Definition: kig_document.cc:40
ObjectConstructor::iconFileName
virtual const QByteArray iconFileName(const bool canBeNull=false) const =0
ConstructPointAction::act
void act(KigPart &)
Definition: guiaction.cc:146
ConstructNumericLabelAction::actionName
const char * actionName() const
Definition: guiaction.cc:263
ConstructNumericLabelAction::ConstructNumericLabelAction
ConstructNumericLabelAction(const char *actionname)
Definition: guiaction.cc:274
ScriptCreationMode
Script mode to create a script.
Definition: script_mode.h:90
GUIAction::description
virtual QString description() const =0
object_constructor.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:35:39 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kig

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

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

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