@@ -65,6 +65,7 @@ class CommandLineParserInternal
6565 (" threadMode" , po::value<std::string>(), " network execution threading mode--DEVELOPER USE ONLY" )
6666 (" reexecuteMode" , po::value<std::string>(), " network reexecution mode--DEVELOPER USE ONLY" )
6767 (" frameInitLimit" , po::value<int >(), " ViewScene frame init limit--increase if renderer fails" )
68+ (" guiExpandFactor" , po::value<double >(), " Expansion factor for high resolution displays" )
6869 (" list-modules" , " print list of available modules" )
6970 ;
7071
@@ -105,6 +106,44 @@ class CommandLineParserInternal
105106namespace
106107{
107108
109+ class DeveloperParametersImpl : public DeveloperParameters
110+ {
111+ public:
112+ DeveloperParametersImpl (
113+ const boost::optional<std::string>& threadMode,
114+ const boost::optional<std::string>& reexecuteMode,
115+ const boost::optional<int >& frameInitLimit,
116+ const boost::optional<int >& regressionTimeout,
117+ const boost::optional<double >& guiExpandFactor
118+ ) : threadMode_(threadMode), reexecuteMode_(reexecuteMode), frameInitLimit_(frameInitLimit),
119+ regressionTimeout_ (regressionTimeout), guiExpandFactor_(guiExpandFactor)
120+ {}
121+ virtual boost::optional<int > regressionTimeoutSeconds () const override
122+ {
123+ return regressionTimeout_;
124+ }
125+ virtual boost::optional<std::string> threadMode () const override
126+ {
127+ return threadMode_;
128+ }
129+ virtual boost::optional<std::string> reexecuteMode () const override
130+ {
131+ return reexecuteMode_;
132+ }
133+ virtual boost::optional<int > frameInitLimit () const override
134+ {
135+ return frameInitLimit_;
136+ }
137+ virtual boost::optional<double > guiExpandFactor () const override
138+ {
139+ return guiExpandFactor_;
140+ }
141+ private:
142+ boost::optional<std::string> threadMode_, reexecuteMode_;
143+ boost::optional<int > frameInitLimit_, regressionTimeout_;
144+ boost::optional<double > guiExpandFactor_;
145+ };
146+
108147class ApplicationParametersImpl : public ApplicationParameters
109148{
110149public:
@@ -122,7 +161,7 @@ class ApplicationParametersImpl : public ApplicationParameters
122161 bool isVerboseMode,
123162 bool printModules) : help_(help), version_(version), executeNetwork_(executeNetwork),
124163 executeNetworkAndQuit_ (executeNetworkAndQuit), disableGui_(disableGui),
125- disableSplash_(disableSplash), isRegressionMode_(isRegressionMode),
164+ disableSplash_(disableSplash), isRegressionMode_(isRegressionMode),
126165 interactiveMode_(interactiveMode),
127166 loadMostRecentFile_(loadMostRecentFile),
128167 isVerboseMode_(isVerboseMode),
@@ -135,15 +174,11 @@ class ApplicationParametersImpl : public ApplicationParameters
135174 std::vector<std::string>&& inputFiles,
136175 const boost::optional<boost::filesystem::path>& pythonScriptFile,
137176 const boost::optional<boost::filesystem::path>& dataDirectory,
138- const boost::optional<std::string>& threadMode,
139- const boost::optional<std::string>& reexecuteMode,
140- const boost::optional<int >& frameInitLimit,
141- const boost::optional<int >& regressionTimeout,
177+ DeveloperParametersPtr devParams,
142178 const Flags& flags
143179 ) : entireCommandLine_(entireCommandLine),
144180 inputFiles_(inputFiles), pythonScriptFile_(pythonScriptFile), dataDirectory_(dataDirectory),
145- threadMode_(threadMode), reexecuteMode_(reexecuteMode), frameInitLimit_(frameInitLimit),
146- regressionTimeout_(regressionTimeout),
181+ devParams_(devParams),
147182 flags_(flags)
148183 {}
149184
@@ -207,31 +242,16 @@ class ApplicationParametersImpl : public ApplicationParameters
207242 return flags_.loadMostRecentFile_ ;
208243 }
209244
210- virtual boost::optional< int > regressionTimeoutSeconds () const override
245+ virtual DeveloperParametersPtr developerParameters () const override
211246 {
212- return regressionTimeout_ ;
247+ return devParams_ ;
213248 }
214249
215250 virtual bool verboseMode () const override
216251 {
217252 return flags_.isVerboseMode_ ;
218253 }
219254
220- virtual boost::optional<std::string> threadMode () const override
221- {
222- return threadMode_;
223- }
224-
225- virtual boost::optional<std::string> reexecuteMode () const override
226- {
227- return reexecuteMode_;
228- }
229-
230- virtual boost::optional<int > frameInitLimit () const override
231- {
232- return frameInitLimit_;
233- }
234-
235255 virtual bool printModuleList () const override
236256 {
237257 return flags_.printModules_ ;
@@ -247,8 +267,7 @@ class ApplicationParametersImpl : public ApplicationParameters
247267 std::vector<std::string> inputFiles_;
248268 boost::optional<boost::filesystem::path> pythonScriptFile_;
249269 boost::optional<boost::filesystem::path> dataDirectory_;
250- boost::optional<std::string> threadMode_, reexecuteMode_;
251- boost::optional<int > frameInitLimit_, regressionTimeout_;
270+ DeveloperParametersPtr devParams_;
252271 Flags flags_;
253272};
254273
@@ -263,6 +282,15 @@ std::string CommandLineParser::describe() const
263282 return impl_->describe ();
264283}
265284
285+ namespace
286+ {
287+ template <typename T>
288+ boost::optional<T> parseOptionalArg (const po::variables_map& parsed, const std::string& label)
289+ {
290+ return parsed.count (label) != 0 ? parsed[label].as <T>() : boost::optional<T>();
291+ }
292+ }
293+
266294ApplicationParametersHandle CommandLineParser::parse (int argc, const char * argv[]) const
267295{
268296 try
@@ -280,19 +308,19 @@ ApplicationParametersHandle CommandLineParser::parse(int argc, const char* argv[
280308 {
281309 dataDirectory = boost::filesystem::path (parsed[" datadir" ].as <std::string>());
282310 }
283- auto threadMode = parsed.count (" threadMode" ) != 0 ? parsed[" threadMode" ].as <std::string>() : boost::optional<std::string>();
284- auto reexecuteMode = parsed.count (" reexecuteMode" ) != 0 ? parsed[" reexecuteMode" ].as <std::string>() : boost::optional<std::string>();
285- auto frameInitLimit = parsed.count (" frameInitLimit" ) != 0 ? parsed[" frameInitLimit" ].as <int >() : boost::optional<int >();
286- auto regressionTimeout = parsed.count (" regression" ) != 0 ? parsed[" regression" ].as <int >() : boost::optional<int >();
311+
287312 return boost::make_shared<ApplicationParametersImpl>
288313 (boost::algorithm::join (cmdline, " " ),
289314 std::move (inputFiles),
290315 pythonScriptFile,
291316 dataDirectory,
292- threadMode,
293- reexecuteMode,
294- frameInitLimit,
295- regressionTimeout,
317+ boost::make_shared<DeveloperParametersImpl>(
318+ parseOptionalArg<std::string>(parsed, " threadMode" ),
319+ parseOptionalArg<std::string>(parsed, " reexecuteMode" ),
320+ parseOptionalArg<int >(parsed, " frameInitLimit" ),
321+ parseOptionalArg<int >(parsed, " regression" ),
322+ parseOptionalArg<double >(parsed, " guiExpandFactor" )
323+ ),
296324 ApplicationParametersImpl::Flags (
297325 parsed.count (" help" ) != 0 ,
298326 parsed.count (" version" ) != 0 ,
0 commit comments