2021-05-24 07:25:56 +00:00
|
|
|
/*
|
|
|
|
SPDX-FileCopyrightText: 2004-2005 Enrico Ros <eros.kde@email.it>
|
|
|
|
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
*/
|
2004-09-04 22:28:14 +00:00
|
|
|
|
2007-04-20 11:26:05 +00:00
|
|
|
#include "action.h"
|
2007-04-19 18:30:20 +00:00
|
|
|
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
// kde includes
|
2014-10-08 11:37:04 +00:00
|
|
|
#include <KLocalizedString>
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
|
2004-12-10 16:04:45 +00:00
|
|
|
// local includes
|
2007-01-03 14:30:48 +00:00
|
|
|
#include "document.h"
|
2012-09-27 10:42:17 +00:00
|
|
|
#include "movie.h"
|
2007-01-06 14:25:33 +00:00
|
|
|
#include "sound.h"
|
2008-09-22 13:41:28 +00:00
|
|
|
#include "sourcereference_p.h"
|
2004-09-04 22:28:14 +00:00
|
|
|
|
2006-09-21 08:45:36 +00:00
|
|
|
using namespace Okular;
|
|
|
|
|
2007-05-02 21:59:44 +00:00
|
|
|
class Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
2007-05-02 21:59:44 +00:00
|
|
|
public:
|
|
|
|
ActionPrivate()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2020-11-11 00:31:47 +00:00
|
|
|
virtual ~ActionPrivate()
|
|
|
|
{
|
|
|
|
qDeleteAll(m_nextActions);
|
|
|
|
}
|
2012-04-03 12:18:10 +00:00
|
|
|
|
2020-02-21 15:11:42 +00:00
|
|
|
ActionPrivate(const ActionPrivate &) = delete;
|
|
|
|
ActionPrivate &operator=(const ActionPrivate &) = delete;
|
|
|
|
|
2012-04-03 12:18:10 +00:00
|
|
|
QVariant m_nativeId;
|
2018-04-30 11:41:55 +00:00
|
|
|
QVector<Action *> m_nextActions;
|
2007-01-03 14:30:48 +00:00
|
|
|
};
|
|
|
|
|
2007-05-02 21:59:44 +00:00
|
|
|
Action::Action(ActionPrivate &dd)
|
|
|
|
: d_ptr(&dd)
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-04-20 12:37:12 +00:00
|
|
|
Action::~Action()
|
2004-09-04 22:28:14 +00:00
|
|
|
{
|
2007-05-02 21:59:44 +00:00
|
|
|
delete d_ptr;
|
2004-12-10 16:04:45 +00:00
|
|
|
}
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
|
2007-04-20 12:37:12 +00:00
|
|
|
QString Action::actionTip() const
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
{
|
2015-10-29 12:37:11 +00:00
|
|
|
return QLatin1String("");
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
}
|
|
|
|
|
2012-04-03 12:18:10 +00:00
|
|
|
void Action::setNativeId(const QVariant &id)
|
|
|
|
{
|
|
|
|
Q_D(Action);
|
|
|
|
d->m_nativeId = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant Action::nativeId() const
|
|
|
|
{
|
|
|
|
Q_D(const Action);
|
|
|
|
return d->m_nativeId;
|
|
|
|
}
|
|
|
|
|
2018-04-30 11:41:55 +00:00
|
|
|
QVector<Action *> Action::nextActions() const
|
|
|
|
{
|
|
|
|
Q_D(const Action);
|
|
|
|
return d->m_nextActions;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Action::setNextActions(const QVector<Action *> &actions)
|
|
|
|
{
|
|
|
|
Q_D(Action);
|
2018-04-30 12:03:22 +00:00
|
|
|
qDeleteAll(d->m_nextActions);
|
2018-04-30 11:41:55 +00:00
|
|
|
d->m_nextActions = actions;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
// GotoAction
|
2007-01-03 14:30:48 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
class Okular::GotoActionPrivate : public Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
public:
|
2007-05-02 22:50:27 +00:00
|
|
|
GotoActionPrivate(const QString &fileName, const DocumentViewport &viewport)
|
2007-05-02 21:59:44 +00:00
|
|
|
: ActionPrivate()
|
|
|
|
, m_extFileName(fileName)
|
|
|
|
, m_vp(viewport)
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2009-05-13 11:13:04 +00:00
|
|
|
GotoActionPrivate(const QString &fileName, const QString &namedDestination)
|
|
|
|
: ActionPrivate()
|
|
|
|
, m_extFileName(fileName)
|
|
|
|
, m_dest(namedDestination)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-01-03 14:30:48 +00:00
|
|
|
QString m_extFileName;
|
|
|
|
DocumentViewport m_vp;
|
2009-05-13 11:13:04 +00:00
|
|
|
QString m_dest;
|
2007-01-03 14:30:48 +00:00
|
|
|
};
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
GotoAction::GotoAction(const QString &fileName, const DocumentViewport &viewport)
|
|
|
|
: Action(*new GotoActionPrivate(fileName, viewport))
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2009-05-13 11:13:04 +00:00
|
|
|
GotoAction::GotoAction(const QString &fileName, const QString &namedDestination)
|
|
|
|
: Action(*new GotoActionPrivate(fileName, namedDestination))
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
GotoAction::~GotoAction()
|
2006-11-27 08:08:39 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Action::ActionType GotoAction::actionType() const
|
2006-11-27 08:08:39 +00:00
|
|
|
{
|
|
|
|
return Goto;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString GotoAction::actionTip() const
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const GotoAction);
|
2015-10-29 12:37:11 +00:00
|
|
|
return d->m_extFileName.isEmpty() ? (d->m_vp.isValid() ? i18n("Go to page %1", d->m_vp.pageNumber + 1) : QLatin1String("")) : i18n("Open external file");
|
2006-11-27 08:08:39 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
bool GotoAction::isExternal() const
|
2006-11-27 08:08:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const GotoAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return !d->m_extFileName.isEmpty();
|
2006-11-27 08:08:39 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString GotoAction::fileName() const
|
2006-11-27 08:08:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const GotoAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_extFileName;
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
DocumentViewport GotoAction::destViewport() const
|
2006-11-27 08:08:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const GotoAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_vp;
|
2006-11-27 08:08:39 +00:00
|
|
|
}
|
|
|
|
|
2009-05-13 11:13:04 +00:00
|
|
|
QString GotoAction::destinationName() const
|
|
|
|
{
|
|
|
|
Q_D(const GotoAction);
|
|
|
|
return d->m_dest;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
// ExecuteAction
|
2007-01-03 14:30:48 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
class Okular::ExecuteActionPrivate : public Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
public:
|
2007-05-02 22:50:27 +00:00
|
|
|
ExecuteActionPrivate(const QString &file, const QString ¶meters)
|
2007-05-02 21:59:44 +00:00
|
|
|
: ActionPrivate()
|
|
|
|
, m_fileName(file)
|
|
|
|
, m_parameters(parameters)
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QString m_fileName;
|
|
|
|
QString m_parameters;
|
|
|
|
};
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
ExecuteAction::ExecuteAction(const QString &file, const QString ¶meters)
|
|
|
|
: Action(*new ExecuteActionPrivate(file, parameters))
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
ExecuteAction::~ExecuteAction()
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Action::ActionType ExecuteAction::actionType() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
return Execute;
|
|
|
|
}
|
2006-11-27 08:08:39 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString ExecuteAction::actionTip() const
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::ExecuteAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return i18n("Execute '%1'...", d->m_fileName);
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString ExecuteAction::fileName() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::ExecuteAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_fileName;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString ExecuteAction::parameters() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::ExecuteAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_parameters;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-04-20 12:37:12 +00:00
|
|
|
// BrowseAction
|
2007-01-03 14:30:48 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
class Okular::BrowseActionPrivate : public Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
public:
|
2021-08-21 23:14:34 +00:00
|
|
|
explicit BrowseActionPrivate(const QUrl &url)
|
2007-05-02 21:59:44 +00:00
|
|
|
: ActionPrivate()
|
|
|
|
, m_url(url)
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2014-08-10 18:36:41 +00:00
|
|
|
QUrl m_url;
|
2007-01-03 14:30:48 +00:00
|
|
|
};
|
|
|
|
|
2014-08-10 18:36:41 +00:00
|
|
|
BrowseAction::BrowseAction(const QUrl &url)
|
2007-05-02 22:50:27 +00:00
|
|
|
: Action(*new BrowseActionPrivate(url))
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
BrowseAction::~BrowseAction()
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Action::ActionType BrowseAction::actionType() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
return Browse;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString BrowseAction::actionTip() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::BrowseAction);
|
2008-09-22 13:41:28 +00:00
|
|
|
QString source;
|
|
|
|
int row = 0, col = 0;
|
|
|
|
if (extractLilyPondSourceReference(d->m_url, &source, &row, &col)) {
|
|
|
|
return sourceReferenceToolTip(source, row, col);
|
|
|
|
}
|
2014-08-10 18:36:41 +00:00
|
|
|
return d->m_url.toDisplayString();
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2014-08-10 18:36:41 +00:00
|
|
|
QUrl BrowseAction::url() const
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::BrowseAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_url;
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
// DocumentAction
|
2007-01-03 14:30:48 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
class Okular::DocumentActionPrivate : public Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
public:
|
2021-08-21 23:14:34 +00:00
|
|
|
explicit DocumentActionPrivate(enum DocumentAction::DocumentActionType documentActionType)
|
2007-05-02 21:59:44 +00:00
|
|
|
: ActionPrivate()
|
|
|
|
, m_type(documentActionType)
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
DocumentAction::DocumentActionType m_type;
|
2007-01-03 14:30:48 +00:00
|
|
|
};
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
DocumentAction::DocumentAction(enum DocumentActionType documentActionType)
|
|
|
|
: Action(*new DocumentActionPrivate(documentActionType))
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
DocumentAction::~DocumentAction()
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
DocumentAction::DocumentActionType DocumentAction::documentActionType() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::DocumentAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_type;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Action::ActionType DocumentAction::actionType() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
return DocAction;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString DocumentAction::actionTip() const
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::DocumentAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
switch (d->m_type) {
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
case PageFirst:
|
|
|
|
return i18n("First Page");
|
|
|
|
case PagePrev:
|
|
|
|
return i18n("Previous Page");
|
|
|
|
case PageNext:
|
|
|
|
return i18n("Next Page");
|
|
|
|
case PageLast:
|
|
|
|
return i18n("Last Page");
|
|
|
|
case HistoryBack:
|
|
|
|
return i18n("Back");
|
|
|
|
case HistoryForward:
|
|
|
|
return i18n("Forward");
|
|
|
|
case Quit:
|
|
|
|
return i18n("Quit");
|
|
|
|
case Presentation:
|
|
|
|
return i18n("Start Presentation");
|
|
|
|
case EndPresentation:
|
|
|
|
return i18n("End Presentation");
|
|
|
|
case Find:
|
|
|
|
return i18n("Find...");
|
|
|
|
case GoToPage:
|
|
|
|
return i18n("Go To Page...");
|
2006-06-16 16:01:26 +00:00
|
|
|
case Close:
|
|
|
|
default:;
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
}
|
2006-12-04 09:31:53 +00:00
|
|
|
|
|
|
|
return QString();
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
// SoundAction
|
2007-01-03 14:30:48 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
class Okular::SoundActionPrivate : public Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
public:
|
2007-05-02 22:50:27 +00:00
|
|
|
SoundActionPrivate(double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound)
|
2007-05-02 21:59:44 +00:00
|
|
|
: ActionPrivate()
|
|
|
|
, m_volume(volume)
|
|
|
|
, m_sync(sync)
|
|
|
|
, m_repeat(repeat)
|
|
|
|
, m_mix(mix)
|
|
|
|
, m_sound(sound)
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2020-11-11 00:31:47 +00:00
|
|
|
~SoundActionPrivate() override
|
|
|
|
{
|
|
|
|
delete m_sound;
|
|
|
|
}
|
2007-01-06 14:25:33 +00:00
|
|
|
|
2007-01-03 14:30:48 +00:00
|
|
|
double m_volume;
|
2007-09-07 13:13:50 +00:00
|
|
|
bool m_sync : 1;
|
|
|
|
bool m_repeat : 1;
|
|
|
|
bool m_mix : 1;
|
2007-01-03 14:30:48 +00:00
|
|
|
Okular::Sound *m_sound;
|
|
|
|
};
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
SoundAction::SoundAction(double volume, bool sync, bool repeat, bool mix, Okular::Sound *sound)
|
|
|
|
: Action(*new SoundActionPrivate(volume, sync, repeat, mix, sound))
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
SoundAction::~SoundAction()
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Action::ActionType SoundAction::actionType() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
return Sound;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString SoundAction::actionTip() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
return i18n("Play sound...");
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
double SoundAction::volume() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::SoundAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_volume;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
bool SoundAction::synchronous() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::SoundAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_sync;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
bool SoundAction::repeat() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::SoundAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_repeat;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
bool SoundAction::mix() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::SoundAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_mix;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Okular::Sound *SoundAction::sound() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
2007-05-02 22:50:27 +00:00
|
|
|
Q_D(const Okular::SoundAction);
|
2007-01-03 14:30:48 +00:00
|
|
|
return d->m_sound;
|
2006-12-04 09:31:53 +00:00
|
|
|
}
|
|
|
|
|
2008-04-13 22:30:27 +00:00
|
|
|
// ScriptAction
|
|
|
|
|
|
|
|
class Okular::ScriptActionPrivate : public Okular::ActionPrivate
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ScriptActionPrivate(enum ScriptType type, const QString &script)
|
|
|
|
: ActionPrivate()
|
|
|
|
, m_scriptType(type)
|
|
|
|
, m_script(script)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
ScriptType m_scriptType;
|
|
|
|
QString m_script;
|
|
|
|
};
|
|
|
|
|
|
|
|
ScriptAction::ScriptAction(enum ScriptType type, const QString &script)
|
|
|
|
: Action(*new ScriptActionPrivate(type, script))
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
ScriptAction::~ScriptAction()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Action::ActionType ScriptAction::actionType() const
|
|
|
|
{
|
|
|
|
return Script;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString ScriptAction::actionTip() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::ScriptAction);
|
|
|
|
switch (d->m_scriptType) {
|
|
|
|
case JavaScript:
|
|
|
|
return i18n("JavaScript Script");
|
|
|
|
}
|
|
|
|
|
|
|
|
return QString();
|
|
|
|
}
|
|
|
|
|
|
|
|
ScriptType ScriptAction::scriptType() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::ScriptAction);
|
|
|
|
return d->m_scriptType;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString ScriptAction::script() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::ScriptAction);
|
|
|
|
return d->m_script;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
// MovieAction
|
2007-05-02 21:59:44 +00:00
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
class Okular::MovieActionPrivate : public Okular::ActionPrivate
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
2007-05-02 21:59:44 +00:00
|
|
|
public:
|
2021-08-21 23:14:34 +00:00
|
|
|
explicit MovieActionPrivate(MovieAction::OperationType operation)
|
2017-09-05 21:27:18 +00:00
|
|
|
: ActionPrivate()
|
|
|
|
, m_operation(operation)
|
|
|
|
, m_annotation(nullptr)
|
2007-05-02 21:59:44 +00:00
|
|
|
{
|
|
|
|
}
|
2012-04-03 12:18:10 +00:00
|
|
|
|
|
|
|
MovieAction::OperationType m_operation;
|
|
|
|
MovieAnnotation *m_annotation;
|
2007-01-03 14:30:48 +00:00
|
|
|
};
|
|
|
|
|
2012-04-03 12:18:10 +00:00
|
|
|
MovieAction::MovieAction(OperationType operation)
|
|
|
|
: Action(*new MovieActionPrivate(operation))
|
2007-01-03 14:30:48 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
MovieAction::~MovieAction()
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
Action::ActionType MovieAction::actionType() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
return Movie;
|
|
|
|
}
|
|
|
|
|
2007-05-02 22:50:27 +00:00
|
|
|
QString MovieAction::actionTip() const
|
2006-12-04 09:31:53 +00:00
|
|
|
{
|
|
|
|
return i18n("Play movie...");
|
- Page/Link: tooltips for links backported
- Page: rotation does not switch height and width
- Document/Part/Generator:
1. Add API for attaching stuff to the interface: ActionCollection and the Navigation Panel
also add possibility to merge an XML .rc file with menu layout. Relevant functions are:
QString Generator::getXMLFile(), returns a QString with your .rc file name.
void Generator::setupGUI (KActionCollection* , QToolbox* ), add your components to the user interface
2. Supporting backend settings:
If during startup, backends which provide a configuration ([X-KDE-oKularHasInternalSettings]
set to true) are found, a menu item: configure backends is created, clicking on it results in
loading all the generators that have settings, but not those that dont. the Generator::addPages(KConfigDialog *dlg)
function should be overloaded by a generator and dlg->addPage should be used to add pages.
If a user opens a file that needs an already loaded generator, the already loaded one is used instead of loading another.
3. Error/Warning/Notice sending support, to send a notice/error/warning, add a relevant notice/error/warning(QString& txt ,int duration)
to the generator class, and sending a message to the user is as simple as emitting a signal!
4. Intercepting of events generated by the PageView is done by Generator::handleEvent(QEvent*), subclass it, do a switch on QEvent::type(), handle your
event and return true if pageview is to proceed with its handling or false if not.
5. Support configuring the KPrinter on the generator side, use Generator::canConfigurePrinter(), return true there, and you get a nonconfigured KPrinter in your
Generator::print()
6. PixmapRequest handling update:
a.) Generator::canGeneratePixmap is now Generator::canGeneratePixmap(bool async)
b.) Document::sendGeneratorRequests is a slot now
c.) Old way of sending pixmaps (Document::requestPixmaps(QValueList<PixmapRequest*> checking if we can generate pixmap if not, waiting for receiving)
is replaced with: requestPixmaps only queues the pixmap all checking if w can generate is done in sendGeneratorReqest, the sendGeneratorRequest is
run in three places:
1. in requestPixmaps when we receive a request
2. in requestDone if pixmapStack is not empty
3. sendGeneratorRequest, apart from removing invalid requests, takes the current request and if generator canGeratePixmap(request->async)
it removes the pixmap from stack and sends to generator if not, QTimer::singleshots to itself after 20ms, it ends when stack has no valid pixmap request
7. Added a commented out zoom field to PixmapGenerator, mightcome in handy sometime
- TextPage: add instructions that handle simplyfing the RegularAreaRect, no more double painted borders in selection rectangles, this rocks.
svn path=/trunk/playground/graphics/oKular/kpdf/; revision=445196
2005-08-10 16:14:39 +00:00
|
|
|
}
|
2012-04-03 12:18:10 +00:00
|
|
|
|
|
|
|
MovieAction::OperationType MovieAction::operation() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::MovieAction);
|
|
|
|
return d->m_operation;
|
|
|
|
}
|
|
|
|
|
|
|
|
void MovieAction::setAnnotation(MovieAnnotation *annotation)
|
|
|
|
{
|
|
|
|
Q_D(Okular::MovieAction);
|
|
|
|
d->m_annotation = annotation;
|
|
|
|
}
|
|
|
|
|
|
|
|
MovieAnnotation *MovieAction::annotation() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::MovieAction);
|
|
|
|
return d->m_annotation;
|
|
|
|
}
|
2012-09-27 10:42:17 +00:00
|
|
|
|
|
|
|
// RenditionAction
|
|
|
|
|
|
|
|
class Okular::RenditionActionPrivate : public Okular::ActionPrivate
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
RenditionActionPrivate(RenditionAction::OperationType operation, Okular::Movie *movie, enum ScriptType scriptType, const QString &script)
|
|
|
|
: ActionPrivate()
|
|
|
|
, m_operation(operation)
|
|
|
|
, m_movie(movie)
|
|
|
|
, m_scriptType(scriptType)
|
2017-09-05 21:27:18 +00:00
|
|
|
, m_script(script)
|
|
|
|
, m_annotation(nullptr)
|
2012-09-27 10:42:17 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
RenditionAction::OperationType m_operation;
|
|
|
|
Okular::Movie *m_movie;
|
|
|
|
ScriptType m_scriptType;
|
|
|
|
QString m_script;
|
|
|
|
ScreenAnnotation *m_annotation;
|
|
|
|
};
|
|
|
|
|
|
|
|
RenditionAction::RenditionAction(OperationType operation, Okular::Movie *movie, enum ScriptType scriptType, const QString &script)
|
|
|
|
: Action(*new RenditionActionPrivate(operation, movie, scriptType, script))
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
RenditionAction::~RenditionAction()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Action::ActionType RenditionAction::actionType() const
|
|
|
|
{
|
|
|
|
return Rendition;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString RenditionAction::actionTip() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::RenditionAction);
|
|
|
|
|
|
|
|
switch (d->m_operation) {
|
|
|
|
default:
|
|
|
|
case None:
|
|
|
|
switch (d->m_scriptType) {
|
|
|
|
case JavaScript:
|
|
|
|
return i18n("JavaScript Script");
|
|
|
|
default:
|
|
|
|
return QString();
|
|
|
|
}
|
|
|
|
case Play:
|
|
|
|
return i18n("Play movie");
|
|
|
|
case Stop:
|
|
|
|
return i18n("Stop movie");
|
|
|
|
case Pause:
|
|
|
|
return i18n("Pause movie");
|
|
|
|
case Resume:
|
|
|
|
return i18n("Resume movie");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
RenditionAction::OperationType RenditionAction::operation() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::RenditionAction);
|
|
|
|
return d->m_operation;
|
|
|
|
}
|
|
|
|
|
|
|
|
Okular::Movie *RenditionAction::movie() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::RenditionAction);
|
|
|
|
return d->m_movie;
|
|
|
|
}
|
|
|
|
|
|
|
|
ScriptType RenditionAction::scriptType() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::RenditionAction);
|
|
|
|
return d->m_scriptType;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString RenditionAction::script() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::RenditionAction);
|
|
|
|
return d->m_script;
|
|
|
|
}
|
|
|
|
|
|
|
|
void RenditionAction::setAnnotation(ScreenAnnotation *annotation)
|
|
|
|
{
|
|
|
|
Q_D(Okular::RenditionAction);
|
|
|
|
d->m_annotation = annotation;
|
|
|
|
}
|
|
|
|
|
|
|
|
ScreenAnnotation *RenditionAction::annotation() const
|
|
|
|
{
|
|
|
|
Q_D(const Okular::RenditionAction);
|
|
|
|
return d->m_annotation;
|
|
|
|
}
|
2016-11-26 15:00:02 +00:00
|
|
|
|
|
|
|
BackendOpaqueAction::BackendOpaqueAction()
|
|
|
|
: Action(*new ActionPrivate())
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Action::ActionType BackendOpaqueAction::actionType() const
|
|
|
|
{
|
|
|
|
return BackendOpaque;
|
|
|
|
}
|