Subversion Repositories Scribus

Compare Revisions

Ignore whitespace Rev 19603 → Rev 19604

/trunk/Scribus/scribus/main_nix.cpp
78,13 → 78,11
#endif // QT_VERSION == 0x040400
#endif // Q_OS_UNIX
app.parseCommandLine();
int appRetVal=app.init();
if (appRetVal==EXIT_FAILURE)
return(EXIT_FAILURE);
if (app.useGUI)
{
int appRetVal=app.init();
if (appRetVal==EXIT_FAILURE)
return(EXIT_FAILURE);
return app.exec();
}
return EXIT_SUCCESS;
}
 
/trunk/Scribus/scribus/main_win32.cpp
114,10 → 114,10
{
#endif
app.parseCommandLine();
if (app.useGUI)
appRetVal = app.init();
if (appRetVal != EXIT_FAILURE)
{
appRetVal = app.init();
if (appRetVal != EXIT_FAILURE)
if (app.useGUI)
appRetVal = app.exec();
}
#ifndef _DEBUG
/trunk/Scribus/scribus/plugins/scriptplugin/scriptercore.cpp
36,6 → 36,7
#include "prefscontext.h"
#include "prefstable.h"
#include "prefsmanager.h"
#include "scribusapp.h" // need it to acces ScQApp->pythonScript
 
ScripterCore::ScripterCore(QWidget* parent)
{
66,6 → 67,9
 
QObject::connect(pcon, SIGNAL(runCommand()), this, SLOT(slotExecute()));
QObject::connect(pcon, SIGNAL(paletteShown(bool)), this, SLOT(slotInteractiveScript(bool)));
 
QObject::connect(ScQApp, SIGNAL(appStarted()) , this, SLOT(runStartupScript()) );
QObject::connect(ScQApp, SIGNAL(appStarted()) , this, SLOT(slotRunPythonScript()) );
}
 
ScripterCore::~ScripterCore()
177,7 → 181,6
void ScripterCore::runScriptDialog()
{
QString fileName;
QString curDirPath = QDir::currentPath();
RunScriptDialog dia( ScCore->primaryMainWindow(), m_enableExtPython );
if (dia.exec())
{
193,7 → 196,6
}
rebuildRecentScriptsMenu();
}
QDir::setCurrent(curDirPath);
FinishScriptRun();
}
 
246,8 → 248,6
//stateo = PyEval_SaveThread();
global_state = PyThreadState_Get();
state = Py_NewInterpreter();
// Chdir to the dir the script is in
QDir::setCurrent(fi.absolutePath());
// Init the scripter module in the sub-interpreter
initscribus(ScCore->primaryMainWindow());
}
292,11 → 292,9
// into a StringIO buffer for later extraction.
cm += QString("except:\n");
cm += QString(" import traceback\n");
cm += QString(" import scribus\n"); // we stash our working vars here
cm += QString(" scribus._f=cStringIO.StringIO()\n");
cm += QString(" traceback.print_exc(file=scribus._f)\n");
cm += QString(" _errorMsg = scribus._f.getvalue()\n");
cm += QString(" del(scribus._f)\n");
cm += QString(" _errorMsg = traceback.format_exc()\n");
if (!ScCore->usingGUI())
cm += QString(" traceback.print_exc()\n");
// We re-raise the exception so the return value of PyRun_StringFlags reflects
// the fact that an exception has ocurred.
cm += QString(" raise\n");
321,7 → 319,7
qDebug("Exception was:");
PyErr_Print();
}
else
else if (ScCore->usingGUI())
{
QString errorMsg = PyString_AsString(errorMsgPyStr);
// Display a dialog to the user with the exception
353,6 → 351,16
enableMainWindowMenu();
}
 
// needed for running script from CLI
void ScripterCore::slotRunPythonScript()
{
if (!ScQApp->pythonScript.isNull())
{
slotRunScriptFile(ScQApp->pythonScript, true);
FinishScriptRun();
}
}
 
void ScripterCore::slotRunScript(const QString Script)
{
// Prevent two scripts to be run concurrently or face crash!
/trunk/Scribus/scribus/plugins/scriptplugin/scriptercore.h
39,6 → 39,7
void StdScript(QString filebasename);
void RecentScript(QString fn);
void slotRunScriptFile(QString fileName, bool inMainInterpreter = false);
void slotRunPythonScript(); // needed for running python script from CLI
void slotRunScript(const QString Script);
void slotInteractiveScript(bool);
void slotExecute();
/trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
185,7 → 185,6
#endif
scripterCore->setupMainInterpreter();
scripterCore->initExtensionScripts();
scripterCore->runStartupScript();
return true;
}
 
734,7 → 733,7
 
// Measurement units understood by Scribus's units.cpp functions are exported as constant conversion
// factors to be used from Python.
for (int i = 0; i <= unitGetMaxIndex(); ++i)
for (int i = 0; i <= unitGetMaxIndex()-2; ++i)
{
PyObject* value = PyFloat_FromDouble(unitGetRatioFromIndex(i));
if (!value)
744,10 → 743,10
}
// `in' is a reserved word in Python so we must replace it
PyObject* name;
if (unitGetStrFromIndex(i) == "in")
if (unitGetUntranslatedStrFromIndex(i) == "in")
name = PyString_FromString("inch");
else
name = PyString_FromString(unitGetStrFromIndex(i).toLatin1().constData());
name = PyString_FromString(unitGetUntranslatedStrFromIndex(i).toLatin1().constData());
if (!name)
{
initscribus_failed(__FILE__, __LINE__);
/trunk/Scribus/scribus/scribusapp.cpp
66,6 → 66,7
#define ARG_PREFS "--prefs"
#define ARG_UPGRADECHECK "--upgradecheck"
#define ARG_TESTS "--tests"
#define ARG_PYTHONSCRIPT "--python-script"
 
#define ARG_VERSION_SHORT "-v"
#define ARG_HELP_SHORT "-h"
81,6 → 82,7
#define ARG_PREFS_SHORT "-pr"
#define ARG_UPGRADECHECK_SHORT "-u"
#define ARG_TESTS_SHORT "-T"
#define ARG_PYTHONSCRIPT_SHORT "-py"
 
// Qt wants -display not --display or -d
#define ARG_DISPLAY_QT "-display"
204,10 → 206,9
uc.fetch();
}
//Dont run the GUI init process called from main.cpp, and return
if (!header)
useGUI=true;
else
return;
if (header)
std::exit(EXIT_SUCCESS);
useGUI = true;
//We are going to run something other than command line help
for(int i = 1; i < argsc; i++) {
arg = args[i];
244,8 → 245,7
std::cout << tr("File %1 does not exist, aborting.").arg(prefsUserFile).toLocal8Bit().data() << std::endl;
}
showUsage();
useGUI=false;
return;
std::exit(EXIT_FAILURE);
} else {
++i;
}
252,6 → 252,20
} else if (strncmp(arg.toLocal8Bit().data(),"-psn_",4) == 0)
{
// Andreas Vox: Qt/Mac has -psn_blah flags that must be accepted.
} else if (arg == ARG_PYTHONSCRIPT || arg == ARG_PYTHONSCRIPT_SHORT) {
pythonScript = QFile::decodeName(args[i + 1].toLocal8Bit());
if (!QFileInfo(pythonScript).exists()) {
showHeader();
if (pythonScript.left(1) == "-" || pythonScript.left(2) == "--") {
std::cout << tr("Invalid argument: ").toLocal8Bit().data() << pythonScript.toLocal8Bit().data() << std::endl;
} else {
std::cout << tr("File %1 does not exist, aborting.").arg(pythonScript).toLocal8Bit().data() << std::endl;
}
showUsage();
std::exit(EXIT_FAILURE);
} else {
++i;
}
} else {
fileName = QFile::decodeName(args[i].toLocal8Bit());
if (!QFileInfo(fileName).exists()) {
262,8 → 276,7
std::cout << tr("File %1 does not exist, aborting.").arg(fileName).toLocal8Bit().data() << std::endl;
}
showUsage();
useGUI=false;
return;
std::exit(EXIT_FAILURE);
}
else
{
283,8 → 296,20
processEvents();
ScCore->init(useGUI, swapDialogButtonOrder, filesToLoad);
int retVal=EXIT_SUCCESS;
if (useGUI)
/* TODO:
* When Scribus is truly able to run without GUI
* we should uncomment if (useGUI)
* and delete if (true)
*/
// if (useGUI)
if (true)
retVal=ScCore->startGUI(showSplash, showFontInfo, showProfileInfo, lang, prefsUserFile);
 
// A hook for plugins and scripts to trigger on. Some plugins and scripts
// require the app to be fully set up (in particular, the main window to be
// built and shown) before running their setup.
emit appStarted();
 
return retVal;
}
 
464,8 → 489,9
printArgLine(ts, ARG_SWAPDIABUTTONS_SHORT, ARG_SWAPDIABUTTONS, tr("Use right to left dialog button ordering (eg. Cancel/No/Yes instead of Yes/No/Cancel)") );
printArgLine(ts, ARG_UPGRADECHECK_SHORT, ARG_UPGRADECHECK, tr("Download a file from the Scribus website and show the latest available version.") );
printArgLine(ts, ARG_VERSION_SHORT, ARG_VERSION, tr("Output version information and exit") );
printArgLine(ts, ARG_PYTHONSCRIPT_SHORT, QString(QString(ARG_PYTHONSCRIPT) + QString(" ") + tr("filename")).toLocal8Bit().constData(), tr("Run filename in Python scripter") );
printArgLine(ts, ARG_NOGUI_SHORT, ARG_NOGUI, tr("Do not start GUI") );
#if defined(_WIN32) && !defined(_CONSOLE)
printArgLine(ts, ARG_CONSOLE_SHORT, ARG_CONSOLE, tr("Display a console window") );
#endif
/trunk/Scribus/scribus/scribusapp.h
69,6 → 69,7
bool neverSplashExists();
const QString& currGUILanguage() { return GUILang; }
ScDLManager* dlManager() { return m_scDLMgr; }
QString pythonScript; // script to be run in python from CLI
 
private:
ScribusCore* m_ScCore;
105,6 → 106,9
 
protected slots:
void downloadComplete(const QString& t);
 
signals:
void appStarted();
};
 
#endif
/trunk/Scribus/scribus/scribuscore.cpp
141,11 → 141,6
scribus->slotRaiseOnlineHelp();
}
 
// A hook for plugins and scripts to trigger on. Some plugins and scripts
// require the app to be fully set up (in particular, the main window to be
// built and shown) before running their setup.
emit appStarted();
return EXIT_SUCCESS;
}
 
/trunk/Scribus/scribus/scribuscore.h
142,11 → 142,6
bool m_HaveGS;
bool m_HavePngAlpha;
bool m_HaveTiffSep;
signals:
void appStarted();
 
};
 
/*