use kDebug
[kdegraphics.git] / okular / core / action.cpp
blobc672a3ec5f0c373b4019689bcb08273a0dc1085e
1 /***************************************************************************
2 * Copyright (C) 2004-2005 by Enrico Ros <eros.kde@email.it> *
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 ***************************************************************************/
10 #include "action.h"
12 // kde includes
13 #include <klocale.h>
15 // local includes
16 #include "document.h"
17 #include "sound.h"
19 using namespace Okular;
21 class Okular::ActionPrivate
23 public:
24 ActionPrivate()
28 virtual ~ActionPrivate()
33 Action::Action( ActionPrivate &dd )
34 : d_ptr( &dd )
38 Action::~Action()
40 delete d_ptr;
43 QString Action::actionTip() const
45 return "";
48 // GotoAction
50 class Okular::GotoActionPrivate : public Okular::ActionPrivate
52 public:
53 GotoActionPrivate( const QString &fileName, const DocumentViewport &viewport )
54 : ActionPrivate(), m_extFileName( fileName ), m_vp( viewport )
58 QString m_extFileName;
59 DocumentViewport m_vp;
62 GotoAction::GotoAction( const QString& fileName, const DocumentViewport & viewport )
63 : Action( *new GotoActionPrivate( fileName, viewport ) )
67 GotoAction::~GotoAction()
71 Action::ActionType GotoAction::actionType() const
73 return Goto;
76 QString GotoAction::actionTip() const
78 Q_D( const GotoAction );
79 return d->m_extFileName.isEmpty() ? ( d->m_vp.isValid() ? i18n( "Go to page %1", d->m_vp.pageNumber + 1 ) : "" ) :
80 i18n("Open external file");
83 bool GotoAction::isExternal() const
85 Q_D( const GotoAction );
86 return !d->m_extFileName.isEmpty();
89 QString GotoAction::fileName() const
91 Q_D( const GotoAction );
92 return d->m_extFileName;
95 DocumentViewport GotoAction::destViewport() const
97 Q_D( const GotoAction );
98 return d->m_vp;
101 // ExecuteAction
103 class Okular::ExecuteActionPrivate : public Okular::ActionPrivate
105 public:
106 ExecuteActionPrivate( const QString &file, const QString & parameters )
107 : ActionPrivate(), m_fileName( file ), m_parameters( parameters )
111 QString m_fileName;
112 QString m_parameters;
115 ExecuteAction::ExecuteAction( const QString &file, const QString & parameters )
116 : Action( *new ExecuteActionPrivate( file, parameters ) )
120 ExecuteAction::~ExecuteAction()
124 Action::ActionType ExecuteAction::actionType() const
126 return Execute;
129 QString ExecuteAction::actionTip() const
131 Q_D( const Okular::ExecuteAction );
132 return i18n( "Execute '%1'...", d->m_fileName );
135 QString ExecuteAction::fileName() const
137 Q_D( const Okular::ExecuteAction );
138 return d->m_fileName;
141 QString ExecuteAction::parameters() const
143 Q_D( const Okular::ExecuteAction );
144 return d->m_parameters;
147 // BrowseAction
149 class Okular::BrowseActionPrivate : public Okular::ActionPrivate
151 public:
152 BrowseActionPrivate( const QString &url )
153 : ActionPrivate(), m_url( url )
157 QString m_url;
160 BrowseAction::BrowseAction( const QString &url )
161 : Action( *new BrowseActionPrivate( url ) )
165 BrowseAction::~BrowseAction()
169 Action::ActionType BrowseAction::actionType() const
171 return Browse;
174 QString BrowseAction::actionTip() const
176 Q_D( const Okular::BrowseAction );
177 return d->m_url;
180 QString BrowseAction::url() const
182 Q_D( const Okular::BrowseAction );
183 return d->m_url;
186 // DocumentAction
188 class Okular::DocumentActionPrivate : public Okular::ActionPrivate
190 public:
191 DocumentActionPrivate( enum DocumentAction::DocumentActionType documentActionType )
192 : ActionPrivate(), m_type( documentActionType )
196 DocumentAction::DocumentActionType m_type;
199 DocumentAction::DocumentAction( enum DocumentActionType documentActionType )
200 : Action( *new DocumentActionPrivate( documentActionType ) )
204 DocumentAction::~DocumentAction()
208 DocumentAction::DocumentActionType DocumentAction::documentActionType() const
210 Q_D( const Okular::DocumentAction );
211 return d->m_type;
214 Action::ActionType DocumentAction::actionType() const
216 return DocAction;
219 QString DocumentAction::actionTip() const
221 Q_D( const Okular::DocumentAction );
222 switch ( d->m_type )
224 case PageFirst:
225 return i18n( "First Page" );
226 case PagePrev:
227 return i18n( "Previous Page" );
228 case PageNext:
229 return i18n( "Next Page" );
230 case PageLast:
231 return i18n( "Last Page" );
232 case HistoryBack:
233 return i18n( "Back" );
234 case HistoryForward:
235 return i18n( "Forward" );
236 case Quit:
237 return i18n( "Quit" );
238 case Presentation:
239 return i18n( "Start Presentation" );
240 case EndPresentation:
241 return i18n( "End Presentation" );
242 case Find:
243 return i18n( "Find..." );
244 case GoToPage:
245 return i18n( "Go To Page..." );
246 case Close:
247 default: ;
250 return QString();
253 // SoundAction
255 class Okular::SoundActionPrivate : public Okular::ActionPrivate
257 public:
258 SoundActionPrivate( double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound )
259 : ActionPrivate(), m_volume( volume ), m_sync( sync ),
260 m_repeat( repeat ), m_mix( mix ), m_sound( sound )
264 ~SoundActionPrivate()
266 delete m_sound;
269 double m_volume;
270 bool m_sync : 1;
271 bool m_repeat : 1;
272 bool m_mix : 1;
273 Okular::Sound *m_sound;
276 SoundAction::SoundAction( double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound )
277 : Action( *new SoundActionPrivate( volume, sync, repeat, mix, sound ) )
281 SoundAction::~SoundAction()
285 Action::ActionType SoundAction::actionType() const
287 return Sound;
290 QString SoundAction::actionTip() const
292 return i18n( "Play sound..." );
295 double SoundAction::volume() const
297 Q_D( const Okular::SoundAction );
298 return d->m_volume;
301 bool SoundAction::synchronous() const
303 Q_D( const Okular::SoundAction );
304 return d->m_sync;
307 bool SoundAction::repeat() const
309 Q_D( const Okular::SoundAction );
310 return d->m_repeat;
313 bool SoundAction::mix() const
315 Q_D( const Okular::SoundAction );
316 return d->m_mix;
319 Okular::Sound *SoundAction::sound() const
321 Q_D( const Okular::SoundAction );
322 return d->m_sound;
325 // ScriptAction
327 class Okular::ScriptActionPrivate : public Okular::ActionPrivate
329 public:
330 ScriptActionPrivate( enum ScriptType type, const QString &script )
331 : ActionPrivate(), m_scriptType( type ), m_script( script )
335 ScriptType m_scriptType;
336 QString m_script;
339 ScriptAction::ScriptAction( enum ScriptType type, const QString &script )
340 : Action( *new ScriptActionPrivate( type, script ) )
344 ScriptAction::~ScriptAction()
348 Action::ActionType ScriptAction::actionType() const
350 return Script;
353 QString ScriptAction::actionTip() const
355 Q_D( const Okular::ScriptAction );
356 switch ( d->m_scriptType )
358 case JavaScript:
359 return i18n( "JavaScript Script" );
362 return QString();
365 ScriptType ScriptAction::scriptType() const
367 Q_D( const Okular::ScriptAction );
368 return d->m_scriptType;
371 QString ScriptAction::script() const
373 Q_D( const Okular::ScriptAction );
374 return d->m_script;
377 // MovieAction
379 #if 0
380 class Okular::MovieActionPrivate : public Okular::ActionPrivate
382 public:
383 MovieActionPrivate()
384 : ActionPrivate()
389 MovieAction::MovieAction()
390 : Action( *new MovieActionPrivate() )
394 MovieAction::~MovieAction()
398 Action::ActionType MovieAction::actionType() const
400 return Movie;
403 QString MovieAction::actionTip() const
405 return i18n( "Play movie..." );
407 #endif