summaryrefslogtreecommitdiffstats
path: root/scribus/editor.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/editor.cpp
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/editor.cpp')
-rw-r--r--scribus/editor.cpp140
1 files changed, 140 insertions, 0 deletions
diff --git a/scribus/editor.cpp b/scribus/editor.cpp
new file mode 100644
index 0000000..9107ae3
--- /dev/null
+++ b/scribus/editor.cpp
@@ -0,0 +1,140 @@
+/*
+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 "editor.h"
+#include "selfield.h"
+#include "prefsmanager.h"
+#include "prefsfile.h"
+#include "prefscontext.h"
+#include "scribusview.h"
+
+#include <QFile>
+#include <QTextStream>
+#include <QTextEdit>
+#include <QTextCursor>
+#include <QFileDialog>
+#include <QPixmap>
+#include <QVBoxLayout>
+#include <QMenu>
+#include <QMenuBar>
+#include <QAction>
+
+#include "util_icon.h"
+
+Editor::Editor( QWidget* parent, QString daten, ScribusView* vie) : QDialog( parent )
+{
+ setModal(true);
+ setWindowTitle( tr( "Editor" ) );
+ setWindowIcon(loadIcon("AppIcon.png"));
+ view = vie;
+ dirs = PrefsManager::instance()->prefsFile->getContext("dirs");
+ EditorLayout = new QVBoxLayout(this);
+ EditTex = new QTextEdit(this);
+ newAct = new QAction(QIcon(loadIcon("16/document-new.png")), tr("&New"), this);
+ newAct->setShortcut(tr("Ctrl+N"));
+ connect(newAct, SIGNAL(triggered()), EditTex, SLOT(clear()));
+ openAct = new QAction(QIcon(loadIcon("16/document-open.png")), tr("&Open..."), this);
+ connect(openAct, SIGNAL(triggered()), this, SLOT(OpenScript()));
+ saveAsAct = new QAction( tr("Save &As..."), this);
+ connect(saveAsAct, SIGNAL(triggered()), this, SLOT(SaveAs()));
+ saveExitAct = new QAction( tr("&Save and Exit"), this);
+ connect(saveExitAct, SIGNAL(triggered()), this, SLOT(accept()));
+ exitAct = new QAction( tr("&Exit without Saving"), this);
+ connect(exitAct, SIGNAL(triggered()), this, SLOT(reject()));
+ undoAct = new QAction(QIcon(loadIcon("16/edit-undo.png")), tr("&Undo"), this);
+ undoAct->setShortcut(tr("Ctrl+Z"));
+ connect(undoAct, SIGNAL(triggered()), EditTex, SLOT(undo()));
+ redoAct = new QAction(QIcon(loadIcon("16/edit-redo.png")), tr("&Redo"), this);
+ connect(redoAct, SIGNAL(triggered()), EditTex, SLOT(redo()));
+ cutAct = new QAction(QIcon(loadIcon("16/edit-cut.png")), tr("Cu&t"), this);
+ cutAct->setShortcut(tr("Ctrl+X"));
+ connect(cutAct, SIGNAL(triggered()), EditTex, SLOT(cut()));
+ copyAct = new QAction(QIcon(loadIcon("16/edit-copy.png")), tr("&Copy"), this);
+ copyAct->setShortcut(tr("Ctrl+C"));
+ connect(copyAct, SIGNAL(triggered()), EditTex, SLOT(copy()));
+ pasteAct = new QAction(QIcon(loadIcon("16/edit-paste.png")), tr("&Paste"), this);
+ pasteAct->setShortcut(tr("Ctrl-V"));
+ connect(pasteAct, SIGNAL(triggered()), EditTex, SLOT(paste()));
+ clearAct = new QAction(QIcon(loadIcon("16/edit-delete.png")), tr("C&lear"), this);
+ connect(clearAct, SIGNAL(triggered()), this, SLOT(del()));
+ getFieldAct = new QAction( tr("&Get Field Names"), this);
+ connect(getFieldAct, SIGNAL(triggered()), this, SLOT(GetFieldN()));
+ fmenu = new QMenu( tr("&File"));
+ fmenu->addAction(newAct);
+ fmenu->addAction(openAct);
+ fmenu->addAction(saveAsAct);
+ fmenu->addSeparator();
+ fmenu->addAction(saveExitAct);
+ fmenu->addAction(exitAct);
+ emenu = new QMenu( tr("&Edit"));
+ emenu->addAction(undoAct);
+ emenu->addAction(redoAct);
+ emenu->addSeparator();
+ emenu->addAction(cutAct);
+ emenu->addAction(copyAct);
+ emenu->addAction(pasteAct);
+ emenu->addAction(clearAct);
+ emenu->addSeparator();
+ emenu->addAction(getFieldAct);
+ menuBar = new QMenuBar(this);
+ menuBar->addMenu(fmenu);
+ menuBar->addMenu(emenu);
+ EditorLayout->setMenuBar( menuBar );
+ EditTex->setMinimumSize( QSize( 400, 400 ) );
+ EditTex->setPlainText(daten);
+ EditorLayout->addWidget( EditTex );
+}
+
+void Editor::del()
+{
+ QTextCursor curs = EditTex->textCursor();
+ curs.deleteChar();
+ EditTex->setTextCursor(curs);
+}
+
+void Editor::GetFieldN()
+{
+ if (view != 0)
+ {
+ SelectFields* dia = new SelectFields(this, "", "", view->Doc, 0);
+ if (dia->exec())
+ EditTex->insertPlainText(dia->S_Fields);
+ delete dia;
+ }
+}
+
+void Editor::OpenScript()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, dirs->get("editor_open", "."), tr("JavaScripts (*.js);;All Files (*)"));
+ if (!fileName.isEmpty())
+ {
+ dirs->set("editor_open", fileName.left(fileName.lastIndexOf("/")));
+ QFile file( fileName );
+ if ( file.open( QIODevice::ReadOnly ) )
+ {
+ QTextStream ts( &file );
+ EditTex->setPlainText( ts.readAll() );
+ file.close();
+ }
+ }
+}
+
+void Editor::SaveAs()
+{
+ QString fn = QFileDialog::getSaveFileName(this, dirs->get("editor_save", "."), tr("JavaScripts (*.js);;All Files (*)"));
+ if (!fn.isEmpty())
+ {
+ dirs->set("editor_save", fn.left(fn.lastIndexOf("/")));
+ QFile file( fn );
+ if ( file.open( QIODevice::WriteOnly ) )
+ {
+ QTextStream ts( &file );
+ ts << EditTex->toPlainText();
+ EditTex->document()->setModified(false);
+ file.close();
+ }
+ }
+}