90eb9ea881
Allow the user to start the presentation at a specific slide using command-line parameters. This patch depends on the previous variable renaming patch. Change-Id: I87797cbccb463904e5d2fe9b078e3921be27c91a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167066 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
189 lines
7.8 KiB
C++
189 lines
7.8 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <sal/config.h>
|
|
|
|
#include <vector>
|
|
|
|
#include <rtl/ustring.hxx>
|
|
#include <optional>
|
|
|
|
namespace desktop
|
|
{
|
|
|
|
class CommandLineArgs
|
|
{
|
|
public:
|
|
struct Supplier
|
|
{
|
|
// Thrown from constructors and next:
|
|
class Exception final
|
|
{
|
|
public:
|
|
Exception();
|
|
Exception(Exception const &);
|
|
Exception & operator =(Exception const &);
|
|
};
|
|
|
|
virtual ~Supplier();
|
|
virtual std::optional< OUString > getCwdUrl() = 0;
|
|
virtual bool next(OUString& argument) = 0;
|
|
};
|
|
|
|
CommandLineArgs();
|
|
explicit CommandLineArgs( Supplier& supplier );
|
|
|
|
CommandLineArgs(const CommandLineArgs&) = delete;
|
|
const CommandLineArgs& operator=(const CommandLineArgs&) = delete;
|
|
|
|
const std::optional< OUString >& getCwdUrl() const { return m_cwdUrl; }
|
|
|
|
// Access to bool parameters
|
|
bool IsMinimized() const { return m_minimized;}
|
|
bool IsInvisible() const
|
|
{
|
|
return m_invisible || m_headless;
|
|
}
|
|
bool IsNoRestore() const { return m_norestore;}
|
|
bool IsNoDefault() const { return m_nodefault;}
|
|
bool IsHeadless() const { return m_headless;}
|
|
bool IsQuickstart() const { return m_quickstart;}
|
|
bool IsNoQuickstart() const { return m_noquickstart;}
|
|
bool IsTerminateAfterInit() const { return m_terminateafterinit;}
|
|
bool IsNoLogo() const { return m_nologo;}
|
|
bool IsNoLockcheck() const { return m_nolockcheck;}
|
|
bool IsHelp() const { return m_help;}
|
|
bool IsHelpWriter() const { return m_helpwriter;}
|
|
bool IsHelpCalc() const { return m_helpcalc;}
|
|
bool IsHelpDraw() const { return m_helpdraw;}
|
|
bool IsHelpImpress() const { return m_helpimpress;}
|
|
bool IsHelpBase() const { return m_helpbase;}
|
|
bool IsHelpMath() const { return m_helpmath;}
|
|
bool IsHelpBasic() const { return m_helpbasic;}
|
|
bool IsWriter() const { return m_writer;}
|
|
bool IsCalc() const { return m_calc;}
|
|
bool IsDraw() const { return m_draw;}
|
|
bool IsImpress() const { return m_impress;}
|
|
bool IsBase() const { return m_base;}
|
|
bool IsGlobal() const { return m_global;}
|
|
bool IsMath() const { return m_math;}
|
|
bool IsWeb() const { return m_web;}
|
|
bool IsVersion() const { return m_version;}
|
|
bool HasModuleParam() const;
|
|
bool WantsToLoadDocument() const { return m_bDocumentArgs;}
|
|
bool IsTextCat() const { return m_textcat;}
|
|
bool IsScriptCat() const { return m_scriptcat;}
|
|
bool IsSafeMode() const { return m_safemode; }
|
|
|
|
const OUString& GetUnknown() const { return m_unknown;}
|
|
|
|
// Access to string parameters
|
|
bool HasSplashPipe() const { return m_splashpipe;}
|
|
std::vector< OUString > const & GetAccept() const { return m_accept;}
|
|
std::vector< OUString > const & GetUnaccept() const { return m_unaccept;}
|
|
void RemoveFilesFromOpenListEndingWith(const OUString& rExt);
|
|
std::vector< OUString > GetOpenList() const;
|
|
std::vector< OUString > GetViewList() const;
|
|
std::vector< OUString > GetStartList() const;
|
|
std::vector< OUString > GetForceOpenList() const;
|
|
std::vector< OUString > GetForceNewList() const;
|
|
std::vector< OUString > GetPrintList() const;
|
|
std::vector< OUString > GetPrintToList() const;
|
|
const OUString& GetPrinterName() const { return m_printername;}
|
|
const OUString& GetLanguage() const { return m_language;}
|
|
std::vector< OUString > const & GetInFilter() const { return m_infilter;}
|
|
std::vector< OUString > GetConversionList() const;
|
|
const OUString& GetConversionParams() const { return m_conversionparams;}
|
|
OUString GetConversionOut() const;
|
|
OUString const & GetImageConversionType() const { return m_convertimages; }
|
|
const OUString& GetStartListParams() const { return m_startListParams; }
|
|
const OUString& GetPidfileName() const { return m_pidfile;}
|
|
|
|
// Special analyzed states (does not match directly to a command line parameter!)
|
|
bool IsEmpty() const { return m_bEmpty;}
|
|
|
|
void setHeadless() { m_headless = true; }
|
|
|
|
private:
|
|
void ParseCommandLine_Impl( Supplier& supplier );
|
|
void InitParamValues();
|
|
|
|
std::optional< OUString > m_cwdUrl;
|
|
|
|
bool m_minimized;
|
|
bool m_invisible;
|
|
bool m_norestore;
|
|
bool m_headless;
|
|
bool m_quickstart;
|
|
bool m_noquickstart;
|
|
bool m_terminateafterinit;
|
|
bool m_nologo;
|
|
bool m_nolockcheck;
|
|
bool m_nodefault;
|
|
bool m_help;
|
|
bool m_writer;
|
|
bool m_calc;
|
|
bool m_draw;
|
|
bool m_impress;
|
|
bool m_global;
|
|
bool m_math;
|
|
bool m_web;
|
|
bool m_base;
|
|
bool m_helpwriter;
|
|
bool m_helpcalc;
|
|
bool m_helpdraw;
|
|
bool m_helpbasic;
|
|
bool m_helpmath;
|
|
bool m_helpimpress;
|
|
bool m_helpbase;
|
|
bool m_version;
|
|
bool m_splashpipe;
|
|
bool m_textcat;
|
|
bool m_scriptcat;
|
|
bool m_safemode;
|
|
|
|
OUString m_unknown;
|
|
|
|
bool m_bEmpty; // No Args at all
|
|
bool m_bDocumentArgs; // A document creation/open/load arg is used
|
|
std::vector< OUString > m_accept;
|
|
std::vector< OUString > m_unaccept;
|
|
std::vector< OUString > m_openlist; // contains external URIs
|
|
std::vector< OUString > m_viewlist; // contains external URIs
|
|
std::vector< OUString > m_startlist; // contains external URIs
|
|
std::vector< OUString > m_forceopenlist; // contains external URIs
|
|
std::vector< OUString > m_forcenewlist; // contains external URIs
|
|
std::vector< OUString > m_printlist; // contains external URIs
|
|
std::vector< OUString > m_printtolist; // contains external URIs
|
|
OUString m_printername;
|
|
std::vector< OUString > m_conversionlist; // contains external URIs
|
|
OUString m_conversionparams;
|
|
OUString m_conversionout; // contains external URIs
|
|
OUString m_convertimages; // The format in which images should be converted
|
|
OUString m_startListParams;
|
|
std::vector< OUString > m_infilter;
|
|
OUString m_language;
|
|
OUString m_pidfile;
|
|
};
|
|
|
|
}
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|