diff options
Diffstat (limited to 'scribus/plugins/scriptplugin/svgimport.cpp')
| -rw-r--r-- | scribus/plugins/scriptplugin/svgimport.cpp | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/scribus/plugins/scriptplugin/svgimport.cpp b/scribus/plugins/scriptplugin/svgimport.cpp new file mode 100644 index 0000000..4c5b3d1 --- /dev/null +++ b/scribus/plugins/scriptplugin/svgimport.cpp @@ -0,0 +1,172 @@ +/* +For general Scribus (>=1.3.2) copyright and licensing information please refer +to the COPYING file provided with the program. Following this notice may exist +a copyright and/or license notice that predates the release of Scribus 1.3.2 +for which a new license (GPL+exception) is in place. +*/ +#include "svgimport.h" +#include "cmdvar.h" +#include "cmdutil.h" + +// We need svgpluginid.h for the SVG format ID, and +// loadsaveplugin.h for the FileFormat interface. +#include "../formatidlist.h" +#include "loadsaveplugin.h" +#include "scribuscore.h" +#include "selection.h" +#include "propertiespalette.h" + +#include <QString> + +PyObject *scribus_placesvg(PyObject* /* self */, PyObject* args) +{ + char *Image; + double x = 0.0; + double y = 0.0; + if (!PyArg_ParseTuple(args, "es|dd", "utf-8", &Image, &x, &y)) + return NULL; + if(!checkHaveDocument()) + return NULL; + const FileFormat * fmt = LoadSavePlugin::getFormatById(FORMATID_SVGIMPORT); + if( fmt ) + { + fmt->loadFile(QString::fromUtf8(Image), LoadSavePlugin::lfUseCurrentPage|LoadSavePlugin::lfInteractive|LoadSavePlugin::lfScripted); + if (ScCore->primaryMainWindow()->doc->m_Selection->count() > 1) + { + double x2, y2, w, h; + ScCore->primaryMainWindow()->doc->m_Selection->getGroupRect(&x2, &y2, &w, &h); + ScCore->primaryMainWindow()->view->startGroupTransaction(); + ScCore->primaryMainWindow()->doc->moveGroup(pageUnitXToDocX(x) - x2, pageUnitYToDocY(y) - y2); + ScCore->primaryMainWindow()->view->endGroupTransaction(); + ScCore->primaryMainWindow()->propertiesPalette->updateColorList(); + ScCore->primaryMainWindow()->propertiesPalette->paraStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->charStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->SetLineFormats(ScCore->primaryMainWindow()->doc); + } + } + else + { + PyErr_SetString(PyExc_Exception, "SVG Import plugin not available"); + return NULL; + } +// Py_INCREF(Py_None); +// return Py_None; + Py_RETURN_NONE; +} + +PyObject *scribus_placeeps(PyObject* /* self */, PyObject* args) +{ + char *Image; + double x = 0.0; + double y = 0.0; + if (!PyArg_ParseTuple(args, "es|dd", "utf-8", &Image, &x, &y)) + return NULL; + if(!checkHaveDocument()) + return NULL; + const FileFormat * fmt = LoadSavePlugin::getFormatById(FORMATID_PSIMPORT); + if( fmt ) + { + fmt->loadFile(QString::fromUtf8(Image), LoadSavePlugin::lfUseCurrentPage|LoadSavePlugin::lfInteractive|LoadSavePlugin::lfScripted); + if (ScCore->primaryMainWindow()->doc->m_Selection->count() > 1) + { + double x2, y2, w, h; + ScCore->primaryMainWindow()->doc->m_Selection->getGroupRect(&x2, &y2, &w, &h); + ScCore->primaryMainWindow()->view->startGroupTransaction(); + ScCore->primaryMainWindow()->doc->moveGroup(pageUnitXToDocX(x) - x2, pageUnitYToDocY(y) - y2); + ScCore->primaryMainWindow()->view->endGroupTransaction(); + ScCore->primaryMainWindow()->propertiesPalette->updateColorList(); + ScCore->primaryMainWindow()->propertiesPalette->paraStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->charStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->SetLineFormats(ScCore->primaryMainWindow()->doc); + } + } + else + { + PyErr_SetString(PyExc_Exception, "EPS Import plugin not available"); + return NULL; + } +// Py_INCREF(Py_None); +// return Py_None; + Py_RETURN_NONE; +} + +PyObject *scribus_placesxd(PyObject* /* self */, PyObject* args) +{ + char *Image; + double x = 0.0; + double y = 0.0; + if (!PyArg_ParseTuple(args, "es|dd", "utf-8", &Image, &x, &y)) + return NULL; + if(!checkHaveDocument()) + return NULL; + const FileFormat * fmt = LoadSavePlugin::getFormatById(FORMATID_SXDIMPORT); + if( fmt ) + { + fmt->loadFile(QString::fromUtf8(Image), LoadSavePlugin::lfUseCurrentPage|LoadSavePlugin::lfInteractive|LoadSavePlugin::lfScripted); + if (ScCore->primaryMainWindow()->doc->m_Selection->count() > 1) + { + double x2, y2, w, h; + ScCore->primaryMainWindow()->doc->m_Selection->getGroupRect(&x2, &y2, &w, &h); + ScCore->primaryMainWindow()->view->startGroupTransaction(); + ScCore->primaryMainWindow()->doc->moveGroup(pageUnitXToDocX(x) - x2, pageUnitYToDocY(y) - y2); + ScCore->primaryMainWindow()->view->endGroupTransaction(); + ScCore->primaryMainWindow()->propertiesPalette->updateColorList(); + ScCore->primaryMainWindow()->propertiesPalette->paraStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->charStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->SetLineFormats(ScCore->primaryMainWindow()->doc); + } + } + else + { + PyErr_SetString(PyExc_Exception, "OpenOffice Import plugin not available"); + return NULL; + } +// Py_INCREF(Py_None); +// return Py_None; + Py_RETURN_NONE; +} + +PyObject *scribus_placeodg(PyObject* /* self */, PyObject* args) +{ + char *Image; + double x = 0.0; + double y = 0.0; + if (!PyArg_ParseTuple(args, "es|dd", "utf-8", &Image, &x, &y)) + return NULL; + if(!checkHaveDocument()) + return NULL; + const FileFormat * fmt = LoadSavePlugin::getFormatById(FORMATID_ODGIMPORT); + if( fmt ) + { + fmt->loadFile(QString::fromUtf8(Image), LoadSavePlugin::lfUseCurrentPage|LoadSavePlugin::lfInteractive|LoadSavePlugin::lfScripted); + if (ScCore->primaryMainWindow()->doc->m_Selection->count() > 1) + { + double x2, y2, w, h; + ScCore->primaryMainWindow()->doc->m_Selection->getGroupRect(&x2, &y2, &w, &h); + ScCore->primaryMainWindow()->view->startGroupTransaction(); + ScCore->primaryMainWindow()->doc->moveGroup(pageUnitXToDocX(x) - x2, pageUnitYToDocY(y) - y2); + ScCore->primaryMainWindow()->view->endGroupTransaction(); + ScCore->primaryMainWindow()->propertiesPalette->updateColorList(); + ScCore->primaryMainWindow()->propertiesPalette->paraStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->charStyleCombo->updateFormatList(); + ScCore->primaryMainWindow()->propertiesPalette->SetLineFormats(ScCore->primaryMainWindow()->doc); + } + } + else + { + PyErr_SetString(PyExc_Exception, "OpenOffice Import plugin not available"); + return NULL; + } +// Py_INCREF(Py_None); +// return Py_None; + Py_RETURN_NONE; +} + +/*! HACK: this removes "warning: 'blah' defined but not used" compiler warnings +with header files structure untouched (docstrings are kept near declarations) +PV */ +void svgimportdocwarnings() +{ + QStringList s; + s << scribus_placesvg__doc__ << scribus_placeeps__doc__ << scribus_placesxd__doc__ << scribus_placeodg__doc__; +} |
