Adds option editor-cmd to the commandline

Adds the option "editor-cmd" for the [feature request](https://bugs.kde.org/show_bug.cgi?id=263732) .

BUG: 263732
remotes/origin/work/fhek/foreground_background_text
Andreas Naumann 4 years ago committed by Albert Astals Cid
parent a3fde02232
commit 147a638619
  1. 6
      autotests/annotationtoolbartest.cpp
  2. 32
      autotests/mainshelltest.cpp
  3. 25
      core/document.cpp
  4. 15
      core/document.h
  5. 3
      core/document_p.h
  6. 11
      part/part.cpp
  7. 1
      part/part.h
  8. 16
      part/preferencesdialog.cpp
  9. 2
      part/preferencesdialog.h
  10. 1
      shell/main.cpp
  11. 17
      shell/okular_main.cpp
  12. 7
      shell/shell.cpp
  13. 39
      shell/shellutils.cpp
  14. 4
      shell/shellutils.h

@ -129,7 +129,7 @@ void AnnotationToolBarTest::testAnnotationToolBar()
Okular::Settings::self()->setShellOpenFileInTabs(true);
const QStringList paths = {QStringLiteral(KDESRCDIR "data/file1.pdf"), QStringLiteral(KDESRCDIR "data/file2.pdf")};
QString serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
QString serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
Okular::Status status = Okular::main(paths, serializedOptions);
QCOMPARE(status, Okular::Success);
@ -255,7 +255,7 @@ void AnnotationToolBarTest::testAnnotationToolBarActionsEnabledState()
QFETCH(QString, document);
const QStringList paths = {document};
QString serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
QString serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
Okular::Status status = Okular::main(paths, serializedOptions);
QCOMPARE(status, Okular::Success);
@ -345,7 +345,7 @@ void AnnotationToolBarTest::testAnnotationToolBarActionsEnabledState_data()
void AnnotationToolBarTest::testAnnotationToolBarConfigActionsEnabledState()
{
const QStringList paths = {QStringLiteral(KDESRCDIR "data/file1.pdf")};
QString serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
QString serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
Okular::Status status = Okular::main(paths, serializedOptions);
QCOMPARE(status, Okular::Success);

@ -199,11 +199,11 @@ void MainShellTest::testShell_data()
file1AndToc << QStringLiteral(KDESRCDIR "data/tocreload.pdf");
const QString tocReload = QStringLiteral(KDESRCDIR "data/tocreload.pdf");
const QString optionsPage2 = ShellUtils::serializeOptions(false, false, false, false, false, QStringLiteral("2"), QString());
const QString optionsPage2Presentation = ShellUtils::serializeOptions(true, false, false, false, false, QStringLiteral("2"), QString());
const QString optionsPrint = ShellUtils::serializeOptions(false, true, false, false, false, QString(), QString());
const QString optionsUnique = ShellUtils::serializeOptions(false, false, false, true, false, QString(), QString());
const QString optionsFind = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QStringLiteral("si:next-testing parameters!"));
const QString optionsPage2 = ShellUtils::serializeOptions(false, false, false, false, false, QStringLiteral("2"), QString(), QString());
const QString optionsPage2Presentation = ShellUtils::serializeOptions(true, false, false, false, false, QStringLiteral("2"), QString(), QString());
const QString optionsPrint = ShellUtils::serializeOptions(false, true, false, false, false, QString(), QString(), QString());
const QString optionsUnique = ShellUtils::serializeOptions(false, false, false, true, false, QString(), QString(), QString());
const QString optionsFind = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QStringLiteral("si:next-testing parameters!"), QString());
QTest::newRow("just show shell") << QStringList() << QString() << false << QString() << 0u << false << false << false << 0u << false << false << QString();
QTest::newRow("open file") << file1 << QString() << false << QString() << 0u << false << false << false << 0u << false << false << QString();
@ -410,9 +410,9 @@ void MainShellTest::testFileRemembersPagePosition()
const QStringList paths = QStringList(QStringLiteral(KDESRCDIR "data/contents.epub"));
QString serializedOptions;
if (mode == 1 || mode == 3)
serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
else
serializedOptions = ShellUtils::serializeOptions(false, false, false, true, false, QString(), QString());
serializedOptions = ShellUtils::serializeOptions(false, false, false, true, false, QString(), QString(), QString());
Okular::Settings::self()->setShellOpenFileInTabs(mode == 3);
@ -460,11 +460,11 @@ void MainShellTest::test2FilesError_data()
{
QTest::addColumn<QString>("serializedOptions");
QTest::newRow("startInPresentation") << ShellUtils::serializeOptions(true, false, false, false, false, QString(), QString());
QTest::newRow("showPrintDialog") << ShellUtils::serializeOptions(false, true, false, false, false, QString(), QString());
QTest::newRow("unique") << ShellUtils::serializeOptions(false, false, false, true, false, QString(), QString());
QTest::newRow("pageNumber") << ShellUtils::serializeOptions(false, false, false, false, false, QStringLiteral("3"), QString());
QTest::newRow("find") << ShellUtils::serializeOptions(false, false, false, false, false, QString(), QStringLiteral("silly"));
QTest::newRow("startInPresentation") << ShellUtils::serializeOptions(true, false, false, false, false, QString(), QString(), QString());
QTest::newRow("showPrintDialog") << ShellUtils::serializeOptions(false, true, false, false, false, QString(), QString(), QString());
QTest::newRow("unique") << ShellUtils::serializeOptions(false, false, false, true, false, QString(), QString(), QString());
QTest::newRow("pageNumber") << ShellUtils::serializeOptions(false, false, false, false, false, QStringLiteral("3"), QString(), QString());
QTest::newRow("find") << ShellUtils::serializeOptions(false, false, false, false, false, QString(), QStringLiteral("silly"), QString());
}
void MainShellTest::test2FilesError()
@ -491,7 +491,7 @@ void MainShellTest::testSessionRestore_data()
QStringList twoDocPaths(oneDocPaths);
twoDocPaths << QStringLiteral(KDESRCDIR "data/formSamples.pdf");
const QString options = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
const QString options = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
QTest::newRow("1 doc, 1 window, tabs") << oneDocPaths << options << true << true;
QTest::newRow("2 docs, 1 window, tabs") << twoDocPaths << options << true << true;
@ -584,7 +584,7 @@ void MainShellTest::testOpenInvalidFiles_data()
QTest::addColumn<QList<QUrl>>("files");
QTest::addColumn<QString>("options");
QString options = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
QString options = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
QUrl validFile1 = ShellUtils::urlFromArg(QStringLiteral(KDESRCDIR "data/file1.pdf"), ShellUtils::qfileExistFunc(), QString());
QUrl validFile2 = ShellUtils::urlFromArg(QStringLiteral(KDESRCDIR "data/file2.pdf"), ShellUtils::qfileExistFunc(), QString());
QUrl invalidFile = ShellUtils::urlFromArg(QStringLiteral(KDESRCDIR "data/non-existing-doc.pdf"), ShellUtils::qfileExistFunc(), QString());
@ -640,7 +640,7 @@ void MainShellTest::testOpenInvalidFiles()
void MainShellTest::testOpenTheSameFileSeveralTimes()
{
QString options = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
QString options = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
Okular::Settings::self()->setShellOpenFileInTabs(true);
Okular::Status status = Okular::main(QStringList(), options);
@ -679,7 +679,7 @@ void MainShellTest::testMiddleButtonCloseUndo()
{
const QStringList paths = {QStringLiteral(KDESRCDIR "data/file1.pdf"), QStringLiteral(KDESRCDIR "data/file2.pdf")};
QString serializedOptions;
serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString());
serializedOptions = ShellUtils::serializeOptions(false, false, false, false, false, QString(), QString(), QString());
Okular::Settings::self()->setShellOpenFileInTabs(true);
Okular::Status status = Okular::main(paths, serializedOptions);

@ -2743,6 +2743,16 @@ Okular::CertificateStore *Document::certificateStore() const
return d->m_generator ? d->m_generator->certificateStore() : nullptr;
}
void Document::setEditorCommandOverride(const QString &editCmd)
{
d->editorCommandOverride = editCmd;
}
QString Document::editorCommandOverride() const
{
return d->editorCommandOverride;
}
DocumentInfo Document::documentInfo() const
{
QSet<DocumentInfo::Key> keys;
@ -4215,12 +4225,15 @@ void Document::processSourceReference(const SourceReference *ref)
editors = buildEditorsMap();
}
QHash<int, QString>::const_iterator it = editors.constFind(SettingsCore::externalEditor());
QString p;
if (it != editors.constEnd())
p = *it;
else
p = SettingsCore::externalEditorCommand();
// prefer the editor from the command line
QString p = d->editorCommandOverride;
if (p.isEmpty()) {
QHash<int, QString>::const_iterator it = editors.constFind(SettingsCore::externalEditor());
if (it != editors.constEnd())
p = *it;
else
p = SettingsCore::externalEditorCommand();
}
// custom editor not yet configured
if (p.isEmpty())
return;

@ -1016,6 +1016,21 @@ public:
*/
CertificateStore *certificateStore() const;
/** sets the editor command to the command \p editCmd, as
* given at the commandline.
*
* @since 22.04
*/
void setEditorCommandOverride(const QString &editCmd);
/** returns the overriding editor command.
*
* If the editor command was not overriden, the string is empty.
*
* @since 22.04
*/
QString editorCommandOverride() const;
public Q_SLOTS:
/**
* This slot is called whenever the user changes the @p rotation of

@ -345,6 +345,9 @@ public:
static QVector<KPluginMetaData> availableGenerators();
static QVector<KPluginMetaData> configurableGenerators();
static KPluginMetaData generatorForMimeType(const QMimeType &type, QWidget *widget, const QVector<KPluginMetaData> &triedOffers = QVector<KPluginMetaData>());
// overrides the editor command (for example with a command from the command line)
QString editorCommandOverride;
};
class DocumentInfoPrivate

@ -2831,7 +2831,7 @@ void Part::checkNativeSaveDataLoss(bool *out_wontSaveForms, bool *out_wontSaveAn
void Part::slotPreferences()
{
// Create dialog
PreferencesDialog *dialog = new PreferencesDialog(m_pageView, Okular::Settings::self(), m_embedMode);
PreferencesDialog *dialog = new PreferencesDialog(m_pageView, Okular::Settings::self(), m_embedMode, m_document->editorCommandOverride());
dialog->setAttribute(Qt::WA_DeleteOnClose);
// Show it
@ -2852,7 +2852,7 @@ void Part::slotSetChangeColors(bool active)
void Part::slotAccessibilityPreferences()
{
// Create dialog
PreferencesDialog *dialog = new PreferencesDialog(m_pageView, Okular::Settings::self(), m_embedMode);
PreferencesDialog *dialog = new PreferencesDialog(m_pageView, Okular::Settings::self(), m_embedMode, m_document->editorCommandOverride());
dialog->setAttribute(Qt::WA_DeleteOnClose);
// Show it
@ -2863,7 +2863,7 @@ void Part::slotAccessibilityPreferences()
void Part::slotAnnotationPreferences()
{
// Create dialog
PreferencesDialog *dialog = new PreferencesDialog(m_pageView, Okular::Settings::self(), m_embedMode);
PreferencesDialog *dialog = new PreferencesDialog(m_pageView, Okular::Settings::self(), m_embedMode, m_document->editorCommandOverride());
dialog->setAttribute(Qt::WA_DeleteOnClose);
// Show it
@ -3672,6 +3672,11 @@ void Part::enableStartWithFind(const QString &text)
m_textToFindOnOpen = QString(text);
}
void Part::setEditorCmd(const QString &editorCmd)
{
m_document->setEditorCommandOverride(editorCmd);
}
void Part::slotOpenContainingFolder()
{
KIO::highlightInFileManager({QUrl(localFilePath())});

@ -170,6 +170,7 @@ public Q_SLOTS: // dbus
Q_SCRIPTABLE Q_NOREPLY void enableStartWithPrint();
Q_SCRIPTABLE Q_NOREPLY void enableExitAfterPrint();
Q_SCRIPTABLE Q_NOREPLY void enableStartWithFind(const QString &text);
Q_SCRIPTABLE Q_NOREPLY void setEditorCmd(const QString &editorCmd);
Q_SCRIPTABLE void slotOpenContainingFolder();
Q_SIGNALS:

@ -18,7 +18,9 @@
#include "dlgperformance.h"
#include "dlgpresentation.h"
PreferencesDialog::PreferencesDialog(QWidget *parent, KConfigSkeleton *skeleton, Okular::EmbedMode embedMode)
#include <QLabel>
PreferencesDialog::PreferencesDialog(QWidget *parent, KConfigSkeleton *skeleton, Okular::EmbedMode embedMode, const QString &editCmd)
: KConfigDialog(parent, QStringLiteral("preferences"), skeleton)
{
setWindowModality(Qt::ApplicationModal);
@ -44,10 +46,18 @@ PreferencesDialog::PreferencesDialog(QWidget *parent, KConfigSkeleton *skeleton,
} else {
m_presentation = new DlgPresentation(this);
m_annotations = new DlgAnnotations(this);
m_editor = new DlgEditor(this);
addPage(m_presentation, i18n("Presentation"), QStringLiteral("view-presentation"), i18n("Options for Presentation Mode"));
m_annotationsPage = addPage(m_annotations, i18n("Annotations"), QStringLiteral("draw-freehand"), i18n("Annotation Options"));
addPage(m_editor, i18n("Editor"), QStringLiteral("accessories-text-editor"), i18n("Editor Options"));
if (editCmd.isEmpty()) {
m_editor = new DlgEditor(this);
addPage(m_editor, i18n("Editor"), QStringLiteral("accessories-text-editor"), i18n("Editor Options"));
} else {
QString editStr = i18nc("Give the user a hint, that it enabled the option --editor-cmd together with the current value of the option.",
"The editor was set by the command line to \n %1 \nIf you want to use the setting, start okular without the option --editor-cmd",
editCmd);
auto m_editor = new QLabel(editStr, this);
addPage(m_editor, i18n("Editor"), QStringLiteral("accessories-text-editor"), i18n("Editor Options"));
}
}
#ifdef OKULAR_DEBUG_CONFIGPAGE
addPage(m_debug, "Debug", "system-run", "Debug options");

@ -28,7 +28,7 @@ class PreferencesDialog : public KConfigDialog
Q_OBJECT
public:
PreferencesDialog(QWidget *parent, KConfigSkeleton *skeleton, Okular::EmbedMode embedMode);
PreferencesDialog(QWidget *parent, KConfigSkeleton *skeleton, Okular::EmbedMode embedMode, const QString &editCmd);
void switchToAccessibilityPage();
void switchToAnnotationsPage();

@ -75,6 +75,7 @@ int main(int argc, char **argv)
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("unique"), i18n("\"Unique instance\" control")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("noraise"), i18n("Not raise window")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("find"), i18n("Find a string on the text"), QStringLiteral("string")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("editor-cmd"), i18n("sets the external editor command"), QStringLiteral("string")));
parser.addPositionalArgument(QStringLiteral("urls"), i18n("Documents to open. Specify '-' to read from stdin."));
parser.process(app);

@ -19,6 +19,8 @@
#include <QDBusInterface>
#include <QTextStream>
#include <iostream>
static bool attachUniqueInstance(const QStringList &paths, const QString &serializedOptions)
{
if (!ShellUtils::unique(serializedOptions) || paths.count() != 1)
@ -28,6 +30,13 @@ static bool attachUniqueInstance(const QStringList &paths, const QString &serial
if (!iface.isValid())
return false;
if (!ShellUtils::editorCmd(serializedOptions).isEmpty()) {
QString message =
i18n("You cannot set the editor command in an already running okular instance. Please disable the tabs and try again. Please note, that unique is also not supported when setting the editor command at the commandline.\n");
std::cerr << message.toStdString();
exit(1);
}
const QString page = ShellUtils::page(serializedOptions);
iface.call(QStringLiteral("openDocument"), ShellUtils::urlFromArg(paths[0], ShellUtils::qfileExistFunc(), page).url(), serializedOptions);
if (!ShellUtils::noRaise(serializedOptions)) {
@ -111,6 +120,13 @@ static bool attachExistingInstance(const QStringList &paths, const QString &seri
return false;
}
if (!ShellUtils::editorCmd(serializedOptions).isEmpty()) {
QString message(
i18n("You cannot set the editor command in an already running okular instance. Please disable the tabs and try again. Please note, that unique is also not supported when setting the editor command at the commandline.\n"));
std::cerr << message.toStdString();
exit(1);
}
bestService->call(QStringLiteral("tryRaise"));
return true;
@ -149,6 +165,7 @@ Status main(const QStringList &paths, const QString &serializedOptions)
stream << i18n("Error: Can't open more than one document with the --find switch") << endl;
return Error;
}
// try to attach to existing session, unique or not
if (attachUniqueInstance(paths, serializedOptions) || attachExistingInstance(paths, serializedOptions)) {
return AttachedOtherProcess;

@ -138,6 +138,13 @@ Shell::Shell(const QString &serializedOptions)
setAttribute(Qt::WA_ShowWithoutActivating);
}
{
const QString editorCmd = ShellUtils::editorCmd(serializedOptions);
if (!editorCmd.isEmpty()) {
QMetaObject::invokeMethod(firstPart, "setEditorCmd", Q_ARG(QString, editorCmd));
}
}
QDBusConnection::sessionBus().registerObject(QStringLiteral("/okularshell"), this, QDBusConnection::ExportScriptableSlots);
} else {
m_isValid = false;

@ -58,20 +58,27 @@ QString serializeOptions(const QCommandLineParser &args)
const bool noRaise = args.isSet(QStringLiteral("noraise"));
const QString page = args.value(QStringLiteral("page"));
const QString find = args.value(QStringLiteral("find"));
const QString editorCmd = args.value(QStringLiteral("editor-cmd"));
return serializeOptions(startInPresentation, showPrintDialog, showPrintDialogAndExit, unique, noRaise, page, find);
return serializeOptions(startInPresentation, showPrintDialog, showPrintDialogAndExit, unique, noRaise, page, find, editorCmd);
}
QString serializeOptions(bool startInPresentation, bool showPrintDialog, bool showPrintDialogAndExit, bool unique, bool noRaise, const QString &page, const QString &find)
QString serializeOptions(bool startInPresentation, bool showPrintDialog, bool showPrintDialogAndExit, bool unique, bool noRaise, const QString &page, const QString &find, const QString &editorCmd)
{
return QStringLiteral("%1:%2:%3:%4:%5:%6:%7").arg(startInPresentation).arg(showPrintDialog).arg(showPrintDialogAndExit).arg(unique).arg(noRaise).arg(page, QString::fromLatin1(find.toUtf8().toBase64()));
return QStringLiteral("%1:%2:%3:%4:%5:%6:%7:%8")
.arg(startInPresentation)
.arg(showPrintDialog)
.arg(showPrintDialogAndExit)
.arg(unique)
.arg(noRaise)
.arg(page, QString::fromLatin1(find.toUtf8().toBase64()), QString::fromLatin1(editorCmd.toUtf8().toBase64()));
}
bool unserializeOptions(const QString &serializedOptions, bool *presentation, bool *print, bool *print_and_exit, bool *unique, bool *noraise, QString *page, QString *find)
static bool unserializeOptions(const QString &serializedOptions, bool *presentation, bool *print, bool *print_and_exit, bool *unique, bool *noraise, QString *page, QString *find, QString *editorCmd)
{
const QStringList args = serializedOptions.split(QStringLiteral(":"));
if (args.count() == 7) {
if (args.count() >= 8) {
*presentation = args[0] == QLatin1String("1");
*print = args[1] == QLatin1String("1");
*print_and_exit = args[2] == QLatin1String("1");
@ -79,6 +86,7 @@ bool unserializeOptions(const QString &serializedOptions, bool *presentation, bo
*noraise = args[4] == QLatin1String("1");
*page = args[5];
*find = args[6];
*editorCmd = args[7];
return true;
}
return false;
@ -88,42 +96,42 @@ bool startInPresentation(const QString &serializedOptions)
{
bool result, dummy;
QString dummyString;
return unserializeOptions(serializedOptions, &result, &dummy, &dummy, &dummy, &dummy, &dummyString, &dummyString) && result;
return unserializeOptions(serializedOptions, &result, &dummy, &dummy, &dummy, &dummy, &dummyString, &dummyString, &dummyString) && result;
}
bool showPrintDialog(const QString &serializedOptions)
{
bool result, dummy;
QString dummyString;
return unserializeOptions(serializedOptions, &dummy, &result, &dummy, &dummy, &dummy, &dummyString, &dummyString) && result;
return unserializeOptions(serializedOptions, &dummy, &result, &dummy, &dummy, &dummy, &dummyString, &dummyString, &dummyString) && result;
}
bool showPrintDialogAndExit(const QString &serializedOptions)
{
bool result, dummy;
QString dummyString;
return unserializeOptions(serializedOptions, &dummy, &dummy, &result, &dummy, &dummy, &dummyString, &dummyString) && result;
return unserializeOptions(serializedOptions, &dummy, &dummy, &result, &dummy, &dummy, &dummyString, &dummyString, &dummyString) && result;
}
bool unique(const QString &serializedOptions)
{
bool result, dummy;
QString dummyString;
return unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &result, &dummy, &dummyString, &dummyString) && result;
return unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &result, &dummy, &dummyString, &dummyString, &dummyString) && result;
}
bool noRaise(const QString &serializedOptions)
{
bool result, dummy;
QString dummyString;
return unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &result, &dummyString, &dummyString) && result;
return unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &result, &dummyString, &dummyString, &dummyString) && result;
}
QString page(const QString &serializedOptions)
{
QString result, dummyString;
bool dummy;
unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &dummy, &result, &dummyString);
unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &dummy, &result, &dummyString, &dummyString);
return result;
}
@ -131,8 +139,15 @@ QString find(const QString &serializedOptions)
{
QString result, dummyString;
bool dummy;
unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &dummy, &dummyString, &result);
unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &dummy, &dummyString, &result, &dummyString);
return QString::fromUtf8(QByteArray::fromBase64(result.toLatin1()));
}
QString editorCmd(const QString &serializedOptions)
{
QString result, dummyString;
bool dummy;
unserializeOptions(serializedOptions, &dummy, &dummy, &dummy, &dummy, &dummy, &dummyString, &dummyString, &result);
return QString::fromUtf8(QByteArray::fromBase64(result.toLatin1()));
}
}

@ -20,8 +20,7 @@ typedef bool (*FileExistFunc)(const QString &fileName);
FileExistFunc qfileExistFunc();
QUrl urlFromArg(const QString &_arg, FileExistFunc exist_func, const QString &pageArg = QString());
QString serializeOptions(const QCommandLineParser &args);
QString serializeOptions(bool startInPresentation, bool showPrintDialog, bool showPrintDialogAndExit, bool unique, bool noRaise, const QString &page, const QString &find);
bool unserializeOptions(const QString &serializedOptions, bool *presentation, bool *print, bool *print_and_exit, bool *unique, bool *noraise, QString *page);
QString serializeOptions(bool startInPresentation, bool showPrintDialog, bool showPrintDialogAndExit, bool unique, bool noRaise, const QString &page, const QString &find, const QString &editorCmd);
bool unique(const QString &serializedOptions);
bool noRaise(const QString &serializedOptions);
bool startInPresentation(const QString &serializedOptions);
@ -29,6 +28,7 @@ bool showPrintDialog(const QString &serializedOptions);
bool showPrintDialogAndExit(const QString &serializedOptions);
QString page(const QString &serializedOptions);
QString find(const QString &serializedOptions);
QString editorCmd(const QString &serializedOptions);
}

Loading…
Cancel
Save