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

okular

  • sources
  • kde-4.12
  • kdegraphics
  • okular
  • core
documentcommands_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2013 Jon Mease <jon.mease@gmail.com> *
3  * *
4  * This program is free software; you can redistribute it and/or modify *
5  * it under the terms of the GNU General Public License as published by *
6  * the Free Software Foundation; either version 2 of the License, or *
7  * (at your option) any later version. *
8  ***************************************************************************/
9 
10 #ifndef _OKULAR_DOCUMENT_COMMANDS_P_H_
11 #define _OKULAR_DOCUMENT_COMMANDS_P_H_
12 
13 #include <QtGui/QUndoCommand>
14 #include <QDomNode>
15 
16 #include "area.h"
17 
18 namespace Okular {
19 
20 class Document;
21 class Annotation;
22 class DocumentPrivate;
23 class FormFieldText;
24 class FormFieldButton;
25 class FormFieldChoice;
26 
27 class AddAnnotationCommand : public QUndoCommand
28 {
29  public:
30  AddAnnotationCommand(Okular::DocumentPrivate * docPriv, Okular::Annotation* annotation, int pageNumber);
31 
32  virtual ~AddAnnotationCommand();
33 
34  virtual void undo();
35 
36  virtual void redo();
37 
38  private:
39  Okular::DocumentPrivate * m_docPriv;
40  Okular::Annotation* m_annotation;
41  int m_pageNumber;
42  bool m_done;
43 };
44 
45 class RemoveAnnotationCommand : public QUndoCommand
46 {
47  public:
48  RemoveAnnotationCommand(Okular::DocumentPrivate * doc, Okular::Annotation* annotation, int pageNumber);
49  virtual ~RemoveAnnotationCommand();
50  virtual void undo();
51  virtual void redo();
52 
53  private:
54  Okular::DocumentPrivate * m_doc;
55  Okular::Annotation* m_annotation;
56  int m_pageNumber;
57  bool m_done;
58 };
59 
60 class ModifyAnnotationPropertiesCommand : public QUndoCommand
61 {
62  public:
63  ModifyAnnotationPropertiesCommand( Okular::DocumentPrivate* docPriv, Okular::Annotation* annotation,
64  int pageNumber,
65  QDomNode oldProperties,
66  QDomNode newProperties );
67 
68  virtual void undo();
69  virtual void redo();
70 
71  private:
72  Okular::DocumentPrivate * m_docPriv;
73  Okular::Annotation* m_annotation;
74  int m_pageNumber;
75  QDomNode m_prevProperties;
76  QDomNode m_newProperties;
77 };
78 
79 class TranslateAnnotationCommand : public QUndoCommand
80 {
81  public:
82  TranslateAnnotationCommand(Okular::DocumentPrivate* docPriv,
83  Okular::Annotation* annotation,
84  int pageNumber,
85  const Okular::NormalizedPoint & delta,
86  bool completeDrag
87  );
88  virtual void undo();
89  virtual void redo();
90  virtual int id() const;
91  virtual bool mergeWith(const QUndoCommand *uc);
92  Okular::NormalizedPoint minusDelta();
93 
94  private:
95  Okular::DocumentPrivate * m_docPriv;
96  Okular::Annotation* m_annotation;
97  int m_pageNumber;
98  Okular::NormalizedPoint m_delta;
99  bool m_completeDrag;
100 };
101 
102 class EditTextCommand : public QUndoCommand
103 {
104  public:
105  EditTextCommand( const QString & newContents,
106  int newCursorPos,
107  const QString & prevContents,
108  int prevCursorPos,
109  int prevAnchorPos
110  );
111 
112  virtual void undo() = 0;
113  virtual void redo() = 0;
114  virtual int id() const = 0;
115  virtual bool mergeWith(const QUndoCommand *uc);
116 
117  private:
118  enum EditType {
119  CharBackspace,
120  CharDelete,
121  CharInsert,
122  OtherEdit
123  };
124 
125  QString oldContentsLeftOfCursor();
126  QString newContentsLeftOfCursor();
127  QString oldContentsRightOfCursor();
128  QString newContentsRightOfCursor();
129 
130  protected:
131  QString m_newContents;
132  int m_newCursorPos;
133  QString m_prevContents;
134  int m_prevCursorPos;
135  int m_prevAnchorPos;
136  EditType m_editType;
137 };
138 
139 
140 class EditAnnotationContentsCommand : public EditTextCommand
141 {
142  public:
143  EditAnnotationContentsCommand(Okular::DocumentPrivate* docPriv,
144  Okular::Annotation* annotation,
145  int pageNumber,
146  const QString & newContents,
147  int newCursorPos,
148  const QString & prevContents,
149  int prevCursorPos,
150  int prevAnchorPos
151  );
152 
153  virtual void undo();
154  virtual void redo();
155  virtual int id() const;
156  virtual bool mergeWith(const QUndoCommand *uc);
157 
158  private:
159  Okular::DocumentPrivate * m_docPriv;
160  Okular::Annotation* m_annotation;
161  int m_pageNumber;
162 };
163 
164 class EditFormTextCommand : public EditTextCommand
165 {
166  public:
167  EditFormTextCommand( Okular::Document* doc,
168  Okular::FormFieldText* form,
169  int pageNumber,
170  const QString & newContents,
171  int newCursorPos,
172  const QString & prevContents,
173  int prevCursorPos,
174  int prevAnchorPos );
175  virtual void undo();
176  virtual void redo();
177  virtual int id() const;
178  virtual bool mergeWith( const QUndoCommand *uc );
179  private:
180  Okular::Document* m_doc;
181  Okular::FormFieldText* m_form;
182  int m_pageNumber;
183 };
184 
185 class EditFormListCommand : public QUndoCommand
186 {
187  public:
188  EditFormListCommand( Okular::Document* doc,
189  FormFieldChoice* form,
190  int pageNumber,
191  const QList< int > & newChoices,
192  const QList< int > & prevChoices
193  );
194 
195  virtual void undo();
196  virtual void redo();
197 
198  private:
199  Okular::Document* m_doc;
200  FormFieldChoice* m_form;
201  int m_pageNumber;
202  QList< int > m_newChoices;
203  QList< int > m_prevChoices;
204 };
205 
206 class EditFormComboCommand : public EditTextCommand
207 {
208  public:
209  EditFormComboCommand( Okular::Document* doc,
210  FormFieldChoice* form,
211  int pageNumber,
212  const QString & newText,
213  int newCursorPos,
214  const QString & prevText,
215  int prevCursorPos,
216  int prevAnchorPos
217  );
218 
219  virtual void undo();
220  virtual void redo();
221  virtual int id() const;
222  virtual bool mergeWith( const QUndoCommand *uc );
223 
224  private:
225  Okular::Document* m_doc;
226  FormFieldChoice* m_form;
227  int m_pageNumber;
228  int m_newIndex;
229  int m_prevIndex;
230 };
231 
232 class EditFormButtonsCommand : public QUndoCommand
233 {
234  public:
235  EditFormButtonsCommand( Okular::Document* doc,
236  int pageNumber,
237  const QList< FormFieldButton* > & formButtons,
238  const QList< bool > & newButtonStates
239  );
240 
241  virtual void undo();
242  virtual void redo();
243 
244  private:
245  void clearFormButtonStates();
246 
247  private:
248  Okular::Document* m_doc;
249  int m_pageNumber;
250  QList< FormFieldButton* > m_formButtons;
251  QList< bool > m_newButtonStates;
252  QList< bool > m_prevButtonStates;
253 };
254 
255 }
256 #endif
257 
258 /* kate: replace-tabs on; indent-width 4; */
Okular::NormalizedPoint
NormalizedPoint is a helper class which stores the coordinates of a normalized point.
Definition: area.h:47
Okular::ModifyAnnotationPropertiesCommand
Definition: documentcommands_p.h:60
Okular::EditAnnotationContentsCommand::mergeWith
virtual bool mergeWith(const QUndoCommand *uc)
Definition: documentcommands.cpp:278
Okular::EditFormTextCommand::id
virtual int id() const
Definition: documentcommands.cpp:320
Okular::EditTextCommand::redo
virtual void redo()=0
Okular::EditAnnotationContentsCommand::redo
virtual void redo()
Definition: documentcommands.cpp:267
Okular::RemoveAnnotationCommand::redo
virtual void redo()
Definition: documentcommands.cpp:74
Okular::EditFormComboCommand::EditFormComboCommand
EditFormComboCommand(Okular::Document *doc, FormFieldChoice *form, int pageNumber, const QString &newText, int newCursorPos, const QString &prevText, int prevCursorPos, int prevAnchorPos)
Definition: documentcommands.cpp:365
Okular::RemoveAnnotationCommand::RemoveAnnotationCommand
RemoveAnnotationCommand(Okular::DocumentPrivate *doc, Okular::Annotation *annotation, int pageNumber)
Definition: documentcommands.cpp:51
Okular::EditTextCommand::m_prevContents
QString m_prevContents
Definition: documentcommands_p.h:133
area.h
Okular::EditTextCommand::m_prevAnchorPos
int m_prevAnchorPos
Definition: documentcommands_p.h:135
Okular::TranslateAnnotationCommand::minusDelta
Okular::NormalizedPoint minusDelta()
Definition: documentcommands.cpp:153
Okular::TranslateAnnotationCommand::TranslateAnnotationCommand
TranslateAnnotationCommand(Okular::DocumentPrivate *docPriv, Okular::Annotation *annotation, int pageNumber, const Okular::NormalizedPoint &delta, bool completeDrag)
Definition: documentcommands.cpp:106
Okular::EditAnnotationContentsCommand::undo
virtual void undo()
Definition: documentcommands.cpp:261
Okular::EditAnnotationContentsCommand
Definition: documentcommands_p.h:140
Okular::AddAnnotationCommand::redo
virtual void redo()
Definition: documentcommands.cpp:44
Okular::EditFormComboCommand::undo
virtual void undo()
Definition: documentcommands.cpp:397
Okular::EditFormComboCommand::id
virtual int id() const
Definition: documentcommands.cpp:423
Okular::EditAnnotationContentsCommand::id
virtual int id() const
Definition: documentcommands.cpp:273
Okular::FormFieldText
Interface of a text form field.
Definition: form.h:176
Okular::EditFormButtonsCommand
Definition: documentcommands_p.h:232
Okular::ModifyAnnotationPropertiesCommand::redo
virtual void redo()
Definition: documentcommands.cpp:100
Okular::EditFormTextCommand::redo
virtual void redo()
Definition: documentcommands.cpp:314
Okular::TranslateAnnotationCommand::redo
virtual void redo()
Definition: documentcommands.cpp:126
Okular::EditTextCommand::m_editType
EditType m_editType
Definition: documentcommands_p.h:136
Okular::TranslateAnnotationCommand::undo
virtual void undo()
Definition: documentcommands.cpp:120
Okular::TranslateAnnotationCommand
Definition: documentcommands_p.h:79
Okular::AddAnnotationCommand::~AddAnnotationCommand
virtual ~AddAnnotationCommand()
Definition: documentcommands.cpp:30
Okular::EditFormTextCommand::undo
virtual void undo()
Definition: documentcommands.cpp:308
Okular::EditAnnotationContentsCommand::EditAnnotationContentsCommand
EditAnnotationContentsCommand(Okular::DocumentPrivate *docPriv, Okular::Annotation *annotation, int pageNumber, const QString &newContents, int newCursorPos, const QString &prevContents, int prevCursorPos, int prevAnchorPos)
Definition: documentcommands.cpp:245
Okular::TranslateAnnotationCommand::id
virtual int id() const
Definition: documentcommands.cpp:132
Okular::FormFieldChoice
Interface of a choice form field.
Definition: form.h:258
Okular::EditFormButtonsCommand::redo
virtual void redo()
Definition: documentcommands.cpp:476
Okular::Document
The Document.
Definition: document.h:84
Okular::ModifyAnnotationPropertiesCommand::ModifyAnnotationPropertiesCommand
ModifyAnnotationPropertiesCommand(Okular::DocumentPrivate *docPriv, Okular::Annotation *annotation, int pageNumber, QDomNode oldProperties, QDomNode newProperties)
Definition: documentcommands.cpp:80
Okular::AddAnnotationCommand::undo
virtual void undo()
Definition: documentcommands.cpp:38
Okular::EditFormComboCommand::redo
virtual void redo()
Definition: documentcommands.cpp:410
Okular::RemoveAnnotationCommand
Definition: documentcommands_p.h:45
Okular::EditTextCommand::m_newCursorPos
int m_newCursorPos
Definition: documentcommands_p.h:132
Okular::EditFormListCommand::EditFormListCommand
EditFormListCommand(Okular::Document *doc, FormFieldChoice *form, int pageNumber, const QList< int > &newChoices, const QList< int > &prevChoices)
Definition: documentcommands.cpp:339
Okular::EditTextCommand::id
virtual int id() const =0
Okular::AddAnnotationCommand::AddAnnotationCommand
AddAnnotationCommand(Okular::DocumentPrivate *docPriv, Okular::Annotation *annotation, int pageNumber)
Definition: documentcommands.cpp:21
Okular::DocumentPrivate
Definition: document_p.h:83
Okular::EditTextCommand::mergeWith
virtual bool mergeWith(const QUndoCommand *uc)
Definition: documentcommands.cpp:207
Okular::EditFormListCommand
Definition: documentcommands_p.h:185
Okular::EditFormComboCommand
Definition: documentcommands_p.h:206
Okular::EditTextCommand::undo
virtual void undo()=0
Okular::Annotation
Annotation struct holds properties shared by all annotations.
Definition: annotations.h:90
Okular::EditTextCommand::m_newContents
QString m_newContents
Definition: documentcommands_p.h:131
Okular::RemoveAnnotationCommand::~RemoveAnnotationCommand
virtual ~RemoveAnnotationCommand()
Definition: documentcommands.cpp:60
Okular::EditFormTextCommand
Definition: documentcommands_p.h:164
Okular::EditFormComboCommand::mergeWith
virtual bool mergeWith(const QUndoCommand *uc)
Definition: documentcommands.cpp:428
Okular::RemoveAnnotationCommand::undo
virtual void undo()
Definition: documentcommands.cpp:68
Okular::EditFormTextCommand::mergeWith
virtual bool mergeWith(const QUndoCommand *uc)
Definition: documentcommands.cpp:325
Okular::EditFormButtonsCommand::undo
virtual void undo()
Definition: documentcommands.cpp:464
Okular::TranslateAnnotationCommand::mergeWith
virtual bool mergeWith(const QUndoCommand *uc)
Definition: documentcommands.cpp:137
Okular::AddAnnotationCommand
Definition: documentcommands_p.h:27
Okular::EditFormListCommand::redo
virtual void redo()
Definition: documentcommands.cpp:359
Okular::EditTextCommand::m_prevCursorPos
int m_prevCursorPos
Definition: documentcommands_p.h:134
Okular::EditFormTextCommand::EditFormTextCommand
EditFormTextCommand(Okular::Document *doc, Okular::FormFieldText *form, int pageNumber, const QString &newContents, int newCursorPos, const QString &prevContents, int prevCursorPos, int prevAnchorPos)
Definition: documentcommands.cpp:292
QUndoCommand
Okular::EditFormButtonsCommand::EditFormButtonsCommand
EditFormButtonsCommand(Okular::Document *doc, int pageNumber, const QList< FormFieldButton * > &formButtons, const QList< bool > &newButtonStates)
Definition: documentcommands.cpp:447
Okular::EditFormListCommand::undo
virtual void undo()
Definition: documentcommands.cpp:353
Okular::EditTextCommand::EditTextCommand
EditTextCommand(const QString &newContents, int newCursorPos, const QString &prevContents, int prevCursorPos, int prevAnchorPos)
Definition: documentcommands.cpp:159
Okular::ModifyAnnotationPropertiesCommand::undo
virtual void undo()
Definition: documentcommands.cpp:94
Okular::EditTextCommand
Definition: documentcommands_p.h:102
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:45:02 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okular

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

kdegraphics API Reference

Skip menu "kdegraphics API Reference"
  •     libkdcraw
  •     libkexiv2
  •     libkipi
  •     libksane
  • okular

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