refactor the hierarchy of the provate classes to be much like Qt-ish (common d_ptr, d_func(), etc)

svn path=/trunk/KDE/kdegraphics/okular/; revision=660511
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 892df34b19
commit 25b6b590b9
  1. 94
      core/action.cpp
  2. 44
      core/action.h

@ -18,18 +18,26 @@
using namespace Okular; using namespace Okular;
class Action::Private class Okular::ActionPrivate
{ {
public:
ActionPrivate()
{
}
virtual ~ActionPrivate()
{
}
}; };
Action::Action() Action::Action( ActionPrivate &dd )
: d( 0 ) : d_ptr( &dd )
{ {
} }
Action::~Action() Action::~Action()
{ {
delete d; delete d_ptr;
} }
QString Action::actionTip() const QString Action::actionTip() const
@ -39,11 +47,11 @@ QString Action::actionTip() const
// ActionGoto // ActionGoto
class ActionGoto::Private class Okular::ActionGotoPrivate : public Okular::ActionPrivate
{ {
public: public:
Private( const QString &fileName, const DocumentViewport &viewport ) ActionGotoPrivate( const QString &fileName, const DocumentViewport &viewport )
: m_extFileName( fileName ), m_vp( viewport ) : ActionPrivate(), m_extFileName( fileName ), m_vp( viewport )
{ {
} }
@ -52,13 +60,12 @@ class ActionGoto::Private
}; };
ActionGoto::ActionGoto( const QString& fileName, const DocumentViewport & viewport ) ActionGoto::ActionGoto( const QString& fileName, const DocumentViewport & viewport )
: d( new Private( fileName, viewport ) ) : Action( *new ActionGotoPrivate( fileName, viewport ) )
{ {
} }
ActionGoto::~ActionGoto() ActionGoto::~ActionGoto()
{ {
delete d;
} }
Action::ActionType ActionGoto::actionType() const Action::ActionType ActionGoto::actionType() const
@ -68,32 +75,36 @@ Action::ActionType ActionGoto::actionType() const
QString ActionGoto::actionTip() const QString ActionGoto::actionTip() const
{ {
Q_D( const ActionGoto );
return d->m_extFileName.isEmpty() ? ( d->m_vp.isValid() ? i18n( "Go to page %1", d->m_vp.pageNumber + 1 ) : "" ) : return d->m_extFileName.isEmpty() ? ( d->m_vp.isValid() ? i18n( "Go to page %1", d->m_vp.pageNumber + 1 ) : "" ) :
i18n("Open external file"); i18n("Open external file");
} }
bool ActionGoto::isExternal() const bool ActionGoto::isExternal() const
{ {
Q_D( const ActionGoto );
return !d->m_extFileName.isEmpty(); return !d->m_extFileName.isEmpty();
} }
QString ActionGoto::fileName() const QString ActionGoto::fileName() const
{ {
Q_D( const ActionGoto );
return d->m_extFileName; return d->m_extFileName;
} }
DocumentViewport ActionGoto::destViewport() const DocumentViewport ActionGoto::destViewport() const
{ {
Q_D( const ActionGoto );
return d->m_vp; return d->m_vp;
} }
// ActionExecute // ActionExecute
class ActionExecute::Private class Okular::ActionExecutePrivate : public Okular::ActionPrivate
{ {
public: public:
Private( const QString &file, const QString & parameters ) ActionExecutePrivate( const QString &file, const QString & parameters )
: m_fileName( file ), m_parameters( parameters ) : ActionPrivate(), m_fileName( file ), m_parameters( parameters )
{ {
} }
@ -102,13 +113,12 @@ class ActionExecute::Private
}; };
ActionExecute::ActionExecute( const QString &file, const QString & parameters ) ActionExecute::ActionExecute( const QString &file, const QString & parameters )
: d( new Private( file, parameters ) ) : Action( *new ActionExecutePrivate( file, parameters ) )
{ {
} }
ActionExecute::~ActionExecute() ActionExecute::~ActionExecute()
{ {
delete d;
} }
Action::ActionType ActionExecute::actionType() const Action::ActionType ActionExecute::actionType() const
@ -118,26 +128,29 @@ Action::ActionType ActionExecute::actionType() const
QString ActionExecute::actionTip() const QString ActionExecute::actionTip() const
{ {
Q_D( const Okular::ActionExecute );
return i18n( "Execute '%1'...", d->m_fileName ); return i18n( "Execute '%1'...", d->m_fileName );
} }
QString ActionExecute::fileName() const QString ActionExecute::fileName() const
{ {
Q_D( const Okular::ActionExecute );
return d->m_fileName; return d->m_fileName;
} }
QString ActionExecute::parameters() const QString ActionExecute::parameters() const
{ {
Q_D( const Okular::ActionExecute );
return d->m_parameters; return d->m_parameters;
} }
// BrowseAction // BrowseAction
class ActionBrowse::Private class Okular::ActionBrowsePrivate : public Okular::ActionPrivate
{ {
public: public:
Private( const QString &url ) ActionBrowsePrivate( const QString &url )
: m_url( url ) : ActionPrivate(), m_url( url )
{ {
} }
@ -145,13 +158,12 @@ class ActionBrowse::Private
}; };
ActionBrowse::ActionBrowse( const QString &url ) ActionBrowse::ActionBrowse( const QString &url )
: d( new Private( url ) ) : Action( *new ActionBrowsePrivate( url ) )
{ {
} }
ActionBrowse::~ActionBrowse() ActionBrowse::~ActionBrowse()
{ {
delete d;
} }
Action::ActionType ActionBrowse::actionType() const Action::ActionType ActionBrowse::actionType() const
@ -161,39 +173,41 @@ Action::ActionType ActionBrowse::actionType() const
QString ActionBrowse::actionTip() const QString ActionBrowse::actionTip() const
{ {
Q_D( const Okular::ActionBrowse );
return d->m_url; return d->m_url;
} }
QString ActionBrowse::url() const QString ActionBrowse::url() const
{ {
Q_D( const Okular::ActionBrowse );
return d->m_url; return d->m_url;
} }
// ActionDocumentAction // ActionDocumentAction
class ActionDocumentAction::Private class Okular::ActionDocumentActionPrivate : public Okular::ActionPrivate
{ {
public: public:
Private( enum DocumentActionType documentActionType ) ActionDocumentActionPrivate( enum ActionDocumentAction::DocumentActionType documentActionType )
: m_type( documentActionType ) : ActionPrivate(), m_type( documentActionType )
{ {
} }
DocumentActionType m_type; ActionDocumentAction::DocumentActionType m_type;
}; };
ActionDocumentAction::ActionDocumentAction( enum DocumentActionType documentActionType ) ActionDocumentAction::ActionDocumentAction( enum DocumentActionType documentActionType )
: d( new Private( documentActionType ) ) : Action( *new ActionDocumentActionPrivate( documentActionType ) )
{ {
} }
ActionDocumentAction::~ActionDocumentAction() ActionDocumentAction::~ActionDocumentAction()
{ {
delete d;
} }
ActionDocumentAction::DocumentActionType ActionDocumentAction::documentActionType() const ActionDocumentAction::DocumentActionType ActionDocumentAction::documentActionType() const
{ {
Q_D( const Okular::ActionDocumentAction );
return d->m_type; return d->m_type;
} }
@ -204,6 +218,7 @@ Action::ActionType ActionDocumentAction::actionType() const
QString ActionDocumentAction::actionTip() const QString ActionDocumentAction::actionTip() const
{ {
Q_D( const Okular::ActionDocumentAction );
switch ( d->m_type ) switch ( d->m_type )
{ {
case PageFirst: case PageFirst:
@ -237,16 +252,16 @@ QString ActionDocumentAction::actionTip() const
// ActionSound // ActionSound
class ActionSound::Private class Okular::ActionSoundPrivate : public Okular::ActionPrivate
{ {
public: public:
Private( double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound ) ActionSoundPrivate( double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound )
: m_volume( volume ), m_sync( sync ), m_repeat( repeat ), : ActionPrivate(), m_volume( volume ), m_sync( sync ),
m_mix( mix ), m_sound( sound ) m_repeat( repeat ), m_mix( mix ), m_sound( sound )
{ {
} }
~Private() ~ActionSoundPrivate()
{ {
delete m_sound; delete m_sound;
} }
@ -259,13 +274,12 @@ class ActionSound::Private
}; };
ActionSound::ActionSound( double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound ) ActionSound::ActionSound( double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound )
: d( new Private( volume, sync, repeat, mix, sound ) ) : Action( *new ActionSoundPrivate( volume, sync, repeat, mix, sound ) )
{ {
} }
ActionSound::~ActionSound() ActionSound::~ActionSound()
{ {
delete d;
} }
Action::ActionType ActionSound::actionType() const Action::ActionType ActionSound::actionType() const
@ -280,42 +294,52 @@ QString ActionSound::actionTip() const
double ActionSound::volume() const double ActionSound::volume() const
{ {
Q_D( const Okular::ActionSound );
return d->m_volume; return d->m_volume;
} }
bool ActionSound::synchronous() const bool ActionSound::synchronous() const
{ {
Q_D( const Okular::ActionSound );
return d->m_sync; return d->m_sync;
} }
bool ActionSound::repeat() const bool ActionSound::repeat() const
{ {
Q_D( const Okular::ActionSound );
return d->m_repeat; return d->m_repeat;
} }
bool ActionSound::mix() const bool ActionSound::mix() const
{ {
Q_D( const Okular::ActionSound );
return d->m_mix; return d->m_mix;
} }
Okular::Sound *ActionSound::sound() const Okular::Sound *ActionSound::sound() const
{ {
Q_D( const Okular::ActionSound );
return d->m_sound; return d->m_sound;
} }
// ActionMovie // ActionMovie
class ActionMovie::Private
class Okular::ActionMoviePrivate : public Okular::ActionPrivate
{ {
public:
ActionMoviePrivate()
: ActionPrivate()
{
}
}; };
ActionMovie::ActionMovie() ActionMovie::ActionMovie()
: d( 0 ) : Action( *new ActionMoviePrivate() )
{ {
} }
ActionMovie::~ActionMovie() ActionMovie::~ActionMovie()
{ {
delete d;
} }
Action::ActionType ActionMovie::actionType() const Action::ActionType ActionMovie::actionType() const

@ -16,6 +16,13 @@
namespace Okular { namespace Okular {
class ActionPrivate;
class ActionGotoPrivate;
class ActionExecutePrivate;
class ActionBrowsePrivate;
class ActionDocumentActionPrivate;
class ActionSoundPrivate;
class ActionMoviePrivate;
class Sound; class Sound;
class DocumentViewport; class DocumentViewport;
@ -41,11 +48,6 @@ class OKULAR_EXPORT Action
Movie ///< Play a movie Movie ///< Play a movie
}; };
/**
* Creates a new action.
*/
Action();
/** /**
* Destroys the action. * Destroys the action.
*/ */
@ -65,10 +67,12 @@ class OKULAR_EXPORT Action
*/ */
virtual QString actionTip() const; virtual QString actionTip() const;
private: protected:
class Private; Action( ActionPrivate &dd );
Private* const d; Q_DECLARE_PRIVATE( Action )
ActionPrivate *d_ptr;
private:
Q_DISABLE_COPY( Action ) Q_DISABLE_COPY( Action )
}; };
@ -119,9 +123,7 @@ class OKULAR_EXPORT ActionGoto : public Action
DocumentViewport destViewport() const; DocumentViewport destViewport() const;
private: private:
class Private; Q_DECLARE_PRIVATE( ActionGoto )
Private* const d;
Q_DISABLE_COPY( ActionGoto ) Q_DISABLE_COPY( ActionGoto )
}; };
@ -165,9 +167,7 @@ class OKULAR_EXPORT ActionExecute : public Action
QString parameters() const; QString parameters() const;
private: private:
class Private; Q_DECLARE_PRIVATE( ActionExecute )
Private* const d;
Q_DISABLE_COPY( ActionExecute ) Q_DISABLE_COPY( ActionExecute )
}; };
@ -206,9 +206,7 @@ class OKULAR_EXPORT ActionBrowse : public Action
QString url() const; QString url() const;
private: private:
class Private; Q_DECLARE_PRIVATE( ActionBrowse )
Private* const d;
Q_DISABLE_COPY( ActionBrowse ) Q_DISABLE_COPY( ActionBrowse )
}; };
@ -267,9 +265,7 @@ class OKULAR_EXPORT ActionDocumentAction : public Action
DocumentActionType documentActionType() const; DocumentActionType documentActionType() const;
private: private:
class Private; Q_DECLARE_PRIVATE( ActionDocumentAction )
Private* const d;
Q_DISABLE_COPY( ActionDocumentAction ) Q_DISABLE_COPY( ActionDocumentAction )
}; };
@ -331,9 +327,7 @@ class OKULAR_EXPORT ActionSound : public Action
Okular::Sound *sound() const; Okular::Sound *sound() const;
private: private:
class Private; Q_DECLARE_PRIVATE( ActionSound )
Private* const d;
Q_DISABLE_COPY( ActionSound ) Q_DISABLE_COPY( ActionSound )
}; };
@ -364,9 +358,7 @@ class ActionMovie : public Action
QString actionTip() const; QString actionTip() const;
private: private:
class Private; Q_DECLARE_PRIVATE( ActionMovie )
Private* const d;
Q_DISABLE_COPY( ActionMovie ) Q_DISABLE_COPY( ActionMovie )
}; };

Loading…
Cancel
Save