]> git.sven.stormbind.net Git - sven/vym.git/blobdiff - texteditor.cpp
New upstream version 2.9.22
[sven/vym.git] / texteditor.cpp
diff --git a/texteditor.cpp b/texteditor.cpp
deleted file mode 100644 (file)
index 03e7d4a..0000000
+++ /dev/null
@@ -1,1207 +0,0 @@
-#include "texteditor.h"
-
-#include <QAction>
-#include <QActionGroup>
-#include <QApplication>
-#include <QColorDialog>
-#include <QComboBox>
-#include <QFileDialog>
-#include <QFontDialog>
-#include <QMenuBar>
-#include <QMessageBox>
-#include <QPrintDialog>
-#include <QPrinter>
-#include <QStatusBar>
-#include <QTextEdit>
-#include <QToolBar>
-
-#include <typeinfo>
-
-#include "settings.h"
-#include "shortcuts.h"
-
-extern int statusbarTime;
-extern Settings settings;
-
-extern QAction *actionViewToggleNoteEditor;
-
-extern QString vymName;
-
-extern Switchboard switchboard;
-
-extern QPrinter *printer;
-extern bool debug;
-
-///////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////
-
-TextEditor::TextEditor()
-{
-    statusBar()->hide();    // Hide sizeGrip on default, which comes with statusBar
-
-    e = new QTextEdit( this);
-    e->setFocus();
-    e->setTabStopWidth (20);           // unit is pixel
-    e->setAutoFillBackground (true);
-    e->installEventFilter(this);
-    connect (e, SIGNAL( textChanged() ), this, SLOT( editorChanged() ) );
-    setCentralWidget( e );
-    statusBar()->showMessage( tr("Ready","Statusbar message"), statusbarTime);
-
-    connect(e, SIGNAL(currentCharFormatChanged(const QTextCharFormat &)),
-            this, SLOT(formatChanged(const QTextCharFormat &)));
-
-    // Don't show menubar per default
-    menuBar()->hide();
-
-    // Toolbars
-    setupFileActions();
-    setupEditActions();
-    setupFormatActions();
-    setupSettingsActions();
-    
-    // Various states
-    blockChangedSignal=false;
-    setInactive();
-
-    editorName = "Text editor";
-    setEditorTitle("");
-}
-
-
-TextEditor::~TextEditor()
-{
-    // Save Settings
-    QString n = QString("/satellite/%1/").arg(shortcutScope);
-    settings.setValue( n + "geometry/size", size() );
-    settings.setValue( n + "geometry/pos", pos() );
-    settings.setValue( n + "state",saveState(0));
-
-    QString s;
-    if (actionSettingsFonthintDefault->isChecked() )
-       s = "fixed";
-    else    
-       s = "variable";
-    settings.setValue(n + "fonts/fonthintDefault",s );
-    settings.setValue(n + "fonts/varFont", varFont.toString() );
-    settings.setValue(n + "fonts/fixedFont", fixedFont.toString() );
-
-    settings.setValue(n + "colors/emptyEditor", colorEmptyEditor.name());
-    settings.setValue(n + "colors/filledEditor", colorFilledEditor.name());
-    settings.setValue(n + "colors/inactiveEditor", colorInactiveEditor.name());
-    settings.setValue(n + "colors/font", colorFont.name());
-}
-
-void TextEditor::init (const QString &scope) 
-{   
-    shortcutScope = scope;
-    QString n = QString("/satellite/%1/").arg(shortcutScope);
-    restoreState (settings.value(n + "state", 0).toByteArray());
-    filenameHint="";
-    fixedFont.fromString (settings.value(
-        n + "fonts/fixedFont", "Courier,12,-1,5,48,0,0,0,1,0").toString()
-                          );
-    varFont.fromString( settings.value(
-        n + "fonts/varFont", "DejaVu Sans Mono,12,-1,0,50,0,0,0,0,0").toString()
-                        );
-    QString s = settings.value (n + "fonts/fonthintDefault", "variable").toString();
-    if (s == "fixed")
-    {
-        actionSettingsFonthintDefault->setChecked (true);
-        e->setCurrentFont (fixedFont);
-    } else
-    {
-        actionSettingsFonthintDefault->setChecked (false);
-        e->setCurrentFont (varFont);
-    }
-    
-    // Default colors
-    QPixmap pix( 16, 16 );
-    colorEmptyEditor.setNamedColor(   settings.value(n + "colors/emptyEditor", "#969696").toString() );
-    pix.fill( colorEmptyEditor );
-    actionEmptyEditorColor->setIcon(pix);
-
-    colorFilledEditor.setNamedColor(  settings.value(n + "colors/filledEditor","#ffffff").toString() );
-    pix.fill( colorFilledEditor );
-    actionFilledEditorColor->setIcon(pix);
-
-    colorInactiveEditor.setNamedColor(settings.value(n + "colors/inactiveEditor","#000000").toString() );
-    pix.fill( colorInactiveEditor );
-    actionInactiveEditorColor->setIcon(pix);
-
-    colorFont.setNamedColor(          settings.value(n + "colors/font","#000000").toString() );
-    e->setTextColor( colorFont );
-    pix.fill( colorFont );
-    actionFontColor->setIcon(pix);
-}
-
-bool TextEditor::isEmpty()
-{
-    if (e->toPlainText().length()>0)
-       return false;
-    else
-       return true;
-}
-
-
-void TextEditor::setEditorTitle(const QString &s)
-{
-    QString h;
-    s.isEmpty() ? h = editorName : h = editorName + ": " + s;
-    editorTitle = h;
-    setWindowTitle (editorTitle);
-}
-
-QString TextEditor::getEditorTitle()
-{
-    return editorTitle;
-}
-
-void TextEditor::setEditorName( const QString &s)
-{
-    editorName = s;
-}
-
-void TextEditor::setFont (const QFont &font)
-{
-    blockChangedSignal = true;
-
-    QTextCursor tc=e->textCursor();
-    QTextCharFormat format=tc.charFormat();
-
-    tc.select(QTextCursor::Document);
-    format.setFont (font);
-    tc.setCharFormat (format);
-    tc.clearSelection();
-    fontChanged(fixedFont);
-
-    blockChangedSignal = false;
-}
-
-void TextEditor::setFontHint (const QString &fh)
-{
-    if (fh=="fixed")
-    {
-        actionFormatUseFixedFont->setChecked (true);
-        e->setCurrentFont (fixedFont);
-        setFont (fixedFont);
-    }
-    else
-    {
-        actionFormatUseFixedFont->setChecked (false);
-        e->setCurrentFont (varFont);
-        setFont (varFont);
-    }
-}
-
-QString TextEditor::getFontHint()
-{
-    if (actionFormatUseFixedFont->isChecked())
-        return "fixed";
-    else
-        return "var";
-}
-
-QString TextEditor::getFontHintDefault()
-{
-    if (actionSettingsFonthintDefault->isChecked())
-        return "fixed";
-    else
-        return "var";
-}
-
-void TextEditor::setFilename(const QString &fn)
-{
-    if (state==filledEditor)
-    {
-        if (fn.isEmpty() )
-        {
-            filename="";
-            statusBar()->showMessage( tr("No filename available for this note.","Statusbar message"), statusbarTime );
-        }
-        else
-        {
-            filename=fn;
-            statusBar()->showMessage( tr(QString( "Current filename is %1" ).arg( filename ).toUtf8(),"Statusbar message"), statusbarTime );
-        }
-    }
-}
-
-QString TextEditor::getFilename()
-{
-    return filename;
-}
-
-void TextEditor::setFilenameHint(const QString &fnh)
-{
-    filenameHint=fnh;
-}
-
-QString TextEditor::getFilenameHint()
-{
-    return filenameHint;
-}
-
-QString TextEditor::getText()
-{
-    if (e->toPlainText().isEmpty()) return QString();
-
-    if (actionFormatRichText->isChecked())
-        return e->toHtml();
-    else
-        return e->toPlainText();
-}
-
-VymText TextEditor::getVymText()
-{
-    VymText vt;
-
-    if (actionFormatRichText->isChecked())
-        vt.setRichText(e->toHtml());
-    else
-        vt.setPlainText(e->toPlainText());
-
-    if (actionFormatUseFixedFont->isChecked() )
-        vt.setFontHint(getFontHint());
-
-    return vt;
-}
-
-bool TextEditor::findText(const QString &t, const QTextDocument::FindFlags &flags)
-{
-    if (e->find (t,flags))
-        return true;
-    else
-        return false;
-}
-
-bool TextEditor::findText(const QString &t, const QTextDocument::FindFlags &flags, int i)
-{
-    // Position at beginning
-    QTextCursor c=e->textCursor();
-    c.setPosition (0,QTextCursor::MoveAnchor);
-    e->setTextCursor (c);
-
-    // Search for t
-    int j=0;
-    while (j<=i)
-    {
-        if (!e->find (t,flags)) return false;
-        j++;
-    }
-    return true;
-
-}
-
-void TextEditor::setTextCursor (const QTextCursor &cursor)
-{
-    e->setTextCursor (cursor);
-}
-
-QTextCursor TextEditor::getTextCursor()
-{
-    return e->textCursor();
-}
-
-void TextEditor::setFocus()
-{
-    e->setFocus();
-}
-
-void TextEditor::setupFileActions()
-{
-    QToolBar *tb = addToolBar ( tr("Note Actions") );
-    tb->setObjectName ("noteEditorFileActions");
-    QMenu *fileMenu = menuBar()->addMenu( tr( "&Note","Menubar" ));
-
-    QString tag = tr ("Texteditor","Shortcuts");
-    QAction *a;
-    a = new QAction( QPixmap( ":/fileopen.png"), tr( "&Import..." ),this);
-    a->setShortcut( Qt::CTRL + Qt::Key_O );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textLoad", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textLoad() ) );
-    tb->addAction (a);
-    fileMenu->addAction (a);
-    actionFileLoad=a;
-
-    fileMenu->addSeparator();
-    a = new QAction( QPixmap(":/filesave.png" ), tr( "&Export..." ), this);
-    a->setShortcut( Qt::CTRL + Qt::Key_S );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textSave", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textSave() ) );
-    tb->addAction (a);
-    fileMenu->addAction (a);
-    addAction (a);
-    actionFileSave=a;
-    
-    a = new QAction(  tr( "Export &As... (HTML)" ), this);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textSaveAs() ) );
-    fileMenu->addAction (a);
-    actionFileSaveAs=a;
-
-    a = new QAction( tr( "Export &As...(ASCII)" ), this);
-    a->setShortcut(Qt::ALT + Qt::Key_X );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textExportAsASCII", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textExportAsASCII() ) );
-    fileMenu->addAction (a);
-    addAction (a);
-    actionFileSaveAs=a;
-
-    fileMenu->addSeparator();
-    a = new QAction( QPixmap(":/fileprint.png" ), tr( "&Print..." ),this);
-    a->setShortcut (Qt::CTRL + Qt::Key_P);
-    switchboard.addSwitch( "textPrint", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textPrint() ) );
-    tb->addAction (a);
-    fileMenu->addAction (a);
-    actionFilePrint=a;
-    
-    a = new QAction( QPixmap( ":/edittrash.png"), tr( "&Delete All" ), this);
-    connect( a, SIGNAL( triggered() ), this, SLOT( reset() ) );
-    fileMenu->addAction (a);
-    tb->addAction (a);
-    actionFileDeleteAll=a;
-}
-
-void TextEditor::setupEditActions()
-{
-    QString tag = tr ("Texteditor","Shortcuts");
-    QToolBar *editToolBar = addToolBar ( tr( "Edit Actions" ));
-    editToolBar->setObjectName ("noteEditorEditActions");
-    editToolBar->hide();
-    QMenu *editMenu = menuBar()->addMenu ( tr( "Edi&t" ));
-
-    QAction *a;
-    a = new QAction(QPixmap(":/undo.png"), tr( "&Undo" ), this );
-    a->setShortcut(Qt::CTRL + Qt::Key_Z );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textUndo", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), e, SLOT( undo() ) );
-    editMenu->addAction (a);
-    editToolBar->addAction (a);
-    actionEditUndo=a;
-    
-    a = new QAction(QPixmap(":/redo.png" ), tr( "&Redo" ),this);
-    a->setShortcut( Qt::CTRL + Qt::Key_Y );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textRedo", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), e, SLOT( redo() ) );
-    editMenu->addAction (a);
-    editToolBar->addAction (a);
-    actionEditRedo=a;
-
-    editMenu->addSeparator();
-    a = new QAction(QPixmap(), tr( "Select and copy &all" ),this);
-    a->setShortcutContext (Qt::WidgetShortcut);
-    a->setShortcut( Qt::CTRL + Qt::Key_A );
-    switchboard.addSwitch( "textCopyAll", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( editCopyAll() ) );
-    editMenu->addAction (a);
-
-    editMenu->addSeparator();
-    a = new QAction(QPixmap(":/editcopy.png" ), tr( "&Copy" ),this);
-    a->setShortcut( Qt::CTRL + Qt::Key_C );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textCopy", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), e, SLOT( copy() ) );
-    editMenu->addAction (a);
-    editToolBar->addAction (a);
-    actionEditCopy=a;
-    
-    a = new QAction(QPixmap(":/editcut.png" ), tr( "Cu&t" ),this);
-    a->setShortcut( Qt::CTRL + Qt::Key_X );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textCut", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), e, SLOT( cut() ) );
-    editMenu->addAction (a);
-    editToolBar->addAction (a);
-    actionEditCut=a;
-
-    a = new QAction(QPixmap(":/editpaste.png" ), tr( "&Paste" ),this);
-    a->setShortcut( Qt::CTRL + Qt::Key_V );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textPaste", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), e, SLOT( paste() ) );
-    editMenu->addAction (a);
-    editToolBar->addAction (a);
-    actionEditPaste=a;
-}
-
-void TextEditor::setupFormatActions()
-{
-    QString tag = tr ("Texteditor","Shortcuts");
-    QToolBar *fontHintsToolBar = addToolBar ( tr("Font hints","toolbar in texteditor" ));
-    fontHintsToolBar->setObjectName ("noteEditorFontToolBar");
-    QMenu *formatMenu = menuBar()->addMenu ( tr( "F&ormat" ));
-
-    QAction *a;
-
-    a = new QAction( QPixmap(":/formatfixedfont.png"), tr( "&Font hint" ), this );
-    a->setShortcut(Qt::CTRL + Qt::Key_H);
-    a->setCheckable (true);
-    a->setChecked (settings.value("/noteeditor/fonts/useFixedByDefault",false).toBool() );
-    switchboard.addSwitch( "textToggleFonthint", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( toggleFonthint() ) );
-    formatMenu->addAction (a);
-    fontHintsToolBar->addAction (a);
-    actionFormatUseFixedFont=a;
-
-    // Original icon: ./share/icons/oxygen/22x22/actions/format-text-color.png
-    a = new QAction( QPixmap(":/formatrichtext.png"), tr( "&Richtext" ), this);
-    a->setShortcut ( Qt::CTRL + Qt::Key_R);
-//    a->setShortcutContext (Qt::WidgetShortcut);
-    a->setCheckable (true);
-    switchboard.addSwitch( "textToggleRichText", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( toggleRichText() ) );
-    formatMenu->addAction (a);
-    fontHintsToolBar->addAction (a);
-    actionFormatRichText=a;
-
-    QToolBar *fontToolBar = addToolBar ( tr("Fonts","toolbar in texteditor" ));
-    fontToolBar->setObjectName ("noteEditorFontToolBar");
-
-    comboFont = new QComboBox;
-    fontToolBar->addWidget (comboFont);
-    QFontDatabase fontDB;
-    comboFont->insertItems ( 0,fontDB.families() );
-    connect( comboFont, SIGNAL( activated( const QString & ) ),
-             this, SLOT( textFamily( const QString & ) ) );
-
-    comboSize = new QComboBox;
-    fontToolBar->addWidget (comboSize);
-    QList<int> sizes=fontDB.standardSizes();
-    QList<int>::iterator it = sizes.begin();
-    int i=0;
-    while (it != sizes.end())
-    {
-        i++;
-        ++it; // increment i before using it
-        comboSize->insertItem ( i, QString::number(*it));
-    }
-    connect( comboSize, SIGNAL( activated( const QString & ) ),
-             this, SLOT( textSize( const QString & ) ) );
-
-    formatMenu->addSeparator();
-
-    QToolBar *formatToolBar = addToolBar ( tr("Format","toolbar in texteditor" ));
-    formatToolBar->setObjectName ("noteEditorFormatToolBar");
-
-    QPixmap pix( 16, 16 );
-    pix.fill( e->textColor());
-    a = new QAction( pix, tr( "&Color..." ), this);
-    formatMenu->addAction (a);
-    formatToolBar->addAction (a);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textColor() ) );
-    actionTextColor=a;
-
-    a = new QAction( QPixmap (":/text_bold.png"), tr( "&Bold" ), this);
-    a->setShortcut(Qt::CTRL + Qt::Key_B );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textToggleBold", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textBold() ) );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    a->setCheckable( true );
-    actionTextBold=a;
-    
-    a = new QAction( QPixmap(":/text_italic.png"), tr( "&Italic" ),  this);
-    a->setShortcut(Qt::CTRL + Qt::Key_I);
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textToggleItalic", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textItalic() ) );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    a->setCheckable( true );
-    actionTextItalic=a;
-    
-    a = new QAction( QPixmap (":/text_under.png"), tr( "&Underline" ), this);
-    a->setShortcut(Qt::CTRL + Qt::Key_U );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    switchboard.addSwitch( "textToggleUnderline", shortcutScope, a, tag);
-    connect( a, SIGNAL( triggered() ), this, SLOT( textUnderline() ) );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    a->setCheckable( true );
-    //richTextWidgets.append((QWidget*)a);
-    actionTextUnderline=a;
-    formatMenu->addSeparator();
-
-    QActionGroup * actGrp2 = new QActionGroup( this );
-    actGrp2->setExclusive(true);
-    a = new QAction( QPixmap (":/text_sub.png"), tr( "Subs&cript" ),actGrp2 );
-    a->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_B );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    a->setCheckable( true );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    switchboard.addSwitch( "textToggleSub", shortcutScope, a, tag);
-    connect(a, SIGNAL(triggered()), this, SLOT(textVAlign()));
-    actionAlignSubScript=a;
-
-    a = new QAction( QPixmap (":/text_super.png"), tr( "Su&perscript" ),actGrp2  );
-    a->setShortcut( Qt::CTRL + Qt::SHIFT + Qt::Key_P );
-    a->setShortcutContext (Qt::WidgetWithChildrenShortcut);
-    a->setCheckable( true );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    switchboard.addSwitch( "textToggleSuper", shortcutScope, a, tag);
-    connect(a, SIGNAL(triggered()), this, SLOT(textVAlign()));
-    actionAlignSuperScript=a;
-    QActionGroup *grp = new QActionGroup( this );
-    connect( grp, SIGNAL( triggered( QAction* ) ), this, SLOT( textAlign( QAction* ) ) );
-
-    formatMenu->addSeparator();
-
-    a = new QAction( QPixmap (":/text_left.png"), tr( "&Left" ),grp );
-    //a->setShortcut( Qt::CTRL+Qt::Key_L );
-    a->setCheckable( true );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    actionAlignLeft=a;
-    a = new QAction( QPixmap (":/text_center.png"), tr( "C&enter" ),grp);
-    //a->setShortcut(  Qt::CTRL + Qt::Key_E);
-    a->setCheckable( true );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    actionAlignCenter=a;
-    a = new QAction( QPixmap (":/text_right.png" ), tr( "&Right" ), grp);
-    //a->setShortcut(Qt::CTRL + Qt::Key_R );
-    a->setCheckable( true );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    actionAlignRight=a;
-    a = new QAction( QPixmap ( ":/text_block.png"), tr( "&Justify" ), grp );
-    //a->setShortcut(Qt::CTRL + Qt::Key_J );
-    a->setCheckable( true );
-    formatToolBar->addAction (a);
-    formatMenu->addAction (a);
-    actionAlignJustify=a;
-}
-
-void TextEditor::setupSettingsActions()
-{
-    QMenu *settingsMenu = menuBar()->addMenu ( tr( "&Settings" ));
-
-    QAction *a;
-    a = new QAction(tr( "Set &fixed font" ), this);
-    connect( a, SIGNAL( triggered() ), this, SLOT( setFixedFont() ) );
-    settingsMenu->addAction (a);
-    actionSettingsFixedFont=a;
-
-    a = new QAction(tr( "Set &variable font" ), this);
-    connect( a, SIGNAL( triggered() ), this, SLOT( setVarFont() ) );
-    settingsMenu->addAction (a);
-    actionSettingsVarFont=a;
-
-    a = new QAction(tr( "&fixed font is default" ),  this);
-    a->setCheckable (true);
-    // set state later in constructor...
-    settingsMenu->addAction (a);
-    actionSettingsFonthintDefault=a;
-
-    settingsMenu->addSeparator();
-
-    a = new QAction( tr( "Set empty editor background color", "TextEditor") + "...", this  );
-    settingsMenu->addAction (a);
-    connect( a, SIGNAL( triggered() ), this, SLOT( setEmptyEditorColor() ) );
-    actionEmptyEditorColor = a;
-
-    a = new QAction( tr( "Set filled editor background color", "TextEditor") + "...", this  );
-    settingsMenu->addAction (a);
-    connect( a, SIGNAL( triggered() ), this, SLOT( setFilledEditorColor() ) );
-    actionFilledEditorColor = a;
-
-    a = new QAction( tr( "Set inactive editor background color", "TextEditor") + "...", this  );
-    settingsMenu->addAction (a);
-    connect( a, SIGNAL( triggered() ), this, SLOT( setInactiveEditorColor() ) );
-    actionInactiveEditorColor = a;
-
-    a = new QAction( tr( "Set default font color", "TextEditor") + "...", this  );
-    settingsMenu->addAction (a);
-    connect( a, SIGNAL( triggered() ), this, SLOT( setFontColor() ) );
-    actionFontColor = a;
-}
-
-void TextEditor::textLoad()
-{
-    if (state!=inactiveEditor)
-    {
-        if (!isEmpty())
-        {
-            QMessageBox mb( vymName + " - " +tr("Note Editor"),
-                            "Loading will overwrite the existing note",
-                            QMessageBox::Warning,
-                            QMessageBox::Yes | QMessageBox::Default,
-                            QMessageBox::Cancel,
-                            0 );
-            mb.setButtonText( QMessageBox::Yes, "Load note" );
-            switch( mb.exec() ) {
-            case QMessageBox::Cancel:
-                return;
-                break;
-            }
-        }
-        // Load note
-        QFileDialog *fd=new QFileDialog( this);
-        QStringList types;
-        types<< "Text (*.txt *.html)"<<
-                "VYM notes and HTML (*.html)" <<
-                "ASCII texts (*.txt)" <<
-                "All files (*)";
-        fd->setNameFilters (types);
-        fd->setDirectory (QDir().current());
-        fd->show();
-        QString fn;
-        if ( fd->exec() == QDialog::Accepted &&!fd->selectedFiles().isEmpty() )
-            fn = fd->selectedFiles().first();
-
-        if ( !fn.isEmpty() )
-        {
-            QFile f( fn );
-            if ( !f.open( QIODevice::ReadOnly ) )
-                return;
-
-            QTextStream ts( &f );
-            setTextAuto ( ts.readAll() );
-            editorChanged();
-        }
-    }
-}
-
-void TextEditor::closeEvent( QCloseEvent* ce )
-{
-    ce->accept();   // TextEditor can be reopened with show()
-    hide();
-    emit (windowClosed() );
-    return;
-}
-
-bool TextEditor::eventFilter( QObject *obj, QEvent *ev)
-{
-    if (obj == e ) {
-        if (ev->type() == QEvent::KeyPress) {
-            QKeyEvent *keyEvent = static_cast<QKeyEvent*>(ev);
-            if(keyEvent == QKeySequence::Paste) 
-            {
-                // switch editor mode to match clipboard content before pasting
-                const QClipboard *clipboard = QApplication::clipboard();
-                const QMimeData *mimeData = clipboard->mimeData();
-
-                if (mimeData->hasHtml()) setRichTextMode(true);
-            } 
-        }
-    }
-    // pass the event on to the parent class
-    return QMainWindow::eventFilter(obj, ev);
-}
-
-void TextEditor::editorChanged()
-{
-    if (isEmpty())
-        state=emptyEditor;
-    else
-        state=filledEditor;
-
-    if (state==emptyEditor)
-        setState (emptyEditor);
-    else
-        setState (filledEditor);
-    if (!blockChangedSignal) emit (textHasChanged() );
-}
-
-void TextEditor::setRichText(const QString &t)
-{
-    blockChangedSignal=true;
-    e->setReadOnly(false);
-    reset();
-
-    e->setHtml(t);
-    actionFormatRichText->setChecked (true);
-
-    updateActions();
-    blockChangedSignal=false;
-}
-
-void TextEditor::setPlainText(const QString &t)
-{
-    blockChangedSignal=true;
-    e->setReadOnly(false);
-    reset();
-
-    e->setPlainText(t);
-    actionFormatRichText->setChecked (false);
-
-    updateActions();
-    blockChangedSignal=false;
-}
-
-
-void TextEditor::setTextAuto(const QString &t)
-{
-    if (Qt::mightBeRichText (t))
-        setRichText( t);
-    else
-        setPlainText( t );
-}
-
-void TextEditor::setVymText( const VymText &vt)
-{
-    if (vt.isRichText())
-        setRichText(vt.getText());
-    else
-        setPlainText(vt.getText());
-}
-
-void TextEditor::setInactive()
-{
-    state=inactiveEditor;
-    e->setPlainText("");
-    setState (inactiveEditor);
-    e->setReadOnly (true);
-
-    updateActions();
-}
-
-void TextEditor::editCopyAll()
-{
-    e->selectAll();
-    e->copy();
-}
-
-void TextEditor::reset()
-{
-    e->selectAll();
-    e->textCursor().deleteChar();
-    e->setTextColor( colorFont );
-}
-
-void TextEditor::textSaveAs()  
-{
-    QString caption=tr ("Export Note to single file");
-    QString fn = QFileDialog::getSaveFileName(
-                this,
-                caption,
-                QString::null,
-                "VYM Note (HTML) (*.html);;All files (*)",
-                0,
-                QFileDialog::DontConfirmOverwrite );
-
-    if ( !fn.isEmpty() )
-    {
-        QFile file (fn);
-        if (file.exists())
-        {
-            QMessageBox mb( vymName,
-                            tr("The file %1\nexists already.\nDo you want to overwrite it?","dialog 'save note as'").arg(fn),
-                            QMessageBox::Warning,
-                            QMessageBox::Yes | QMessageBox::Default,
-                            QMessageBox::Cancel | QMessageBox::Escape,
-                            Qt::NoButton );
-            mb.setButtonText( QMessageBox::Yes, tr("Overwrite") );
-            mb.setButtonText( QMessageBox::No, tr("Cancel"));
-            switch( mb.exec() ) {
-            case QMessageBox::Yes:
-                // save
-                filename = fn;
-                textSave();
-                return;
-            case QMessageBox::Cancel:
-                // do nothing
-                break;
-            }
-        } else
-        {
-            filename = fn;
-            textSave();
-            return;
-        }
-    }
-    statusBar()->showMessage(tr( "Couldn't export note ","dialog 'save note as'") + fn, statusbarTime );
-}
-
-
-void TextEditor::textSave()
-{
-    if ( filename.isEmpty() )
-    {
-        textSaveAs();
-        return;
-    }
-
-    QString text = e->toHtml(); //FIXME-4 or plaintext? check...
-    QFile f( filename );
-    if ( !f.open( QIODevice::WriteOnly ) )
-    {
-        statusBar()->showMessage( QString("Could not write to %1").arg(filename),
-                                  statusbarTime );
-        return;
-    }
-
-    QTextStream t( &f );
-    t.setCodec("UTF-8");
-    t << text;
-    f.close();
-
-    e->document()->setModified( false );
-
-    statusBar()->showMessage( QString( "Note exported as %1" ).arg( filename ), statusbarTime );
-}
-
-void TextEditor::textExportAsASCII()
-{
-    QString fn,s;
-    if (!filenameHint.isEmpty())
-    {
-        if (!filenameHint.contains (".txt"))
-            s = filenameHint+".txt";
-        else
-            s = filenameHint;
-    } else
-        s = QString::null;
-    QString caption = tr("Export Note to single file (ASCII)");
-    fn = QFileDialog::getSaveFileName(this, caption, s, "VYM Note (ASCII) (*.txt);;All files (*)" );
-    int ret = -1;
-
-    if ( !fn.isEmpty() )
-    {
-        QFile file (fn);
-        if (file.exists())
-        {
-            QMessageBox mb( vymName,
-                            tr("The file %1\nexists already.\nDo you want to overwrite it?","dialog 'save note as'").arg(fn),
-                            QMessageBox::Warning,
-                            QMessageBox::Yes | QMessageBox::Default,
-                            QMessageBox::Cancel | QMessageBox::Escape,
-                            Qt::NoButton );
-            mb.setButtonText( QMessageBox::Yes, tr("Overwrite") );
-            mb.setButtonText( QMessageBox::No, tr("Cancel"));
-            ret=mb.exec();
-        }
-        if (ret==QMessageBox::Cancel)
-            return;
-
-        // save
-        if ( !file.open( QIODevice::WriteOnly ) )
-            statusBar()->showMessage( QString("Could not write to %1").arg(filename),
-                                      statusbarTime );
-        else
-        {
-            QTextStream t( &file );
-            t << getVymText().getTextASCII();
-            file.close();
-
-            statusBar()->showMessage( QString( "Note exported as %1" ).arg( fn ), statusbarTime );
-        }
-    }
-}
-
-
-void TextEditor::textPrint()
-{
-    QTextDocument *document = e->document();
-
-    QPrintDialog dialog (printer, this);
-    dialog.setWindowTitle(tr("Print","TextEditor"));
-    if (dialog.exec() != QDialog::Accepted)
-        return;
-
-    document->print(printer);
-}
-
-void TextEditor::textEditUndo()
-{
-}
-
-void TextEditor::toggleFonthint()
-{
-    if (!actionFormatUseFixedFont->isChecked() )
-    {
-        e->setCurrentFont (varFont);
-        setFont (varFont);
-    }
-    else
-    {
-        e->setCurrentFont (fixedFont);
-        setFont (fixedFont);
-    }
-    emit( textHasChanged() );
-}
-
-void TextEditor::setRichTextMode(bool b)
-{
-    if (b)
-    {
-        e->setHtml (e->toHtml());
-        actionFormatUseFixedFont->setEnabled(false);
-        actionFormatRichText->setChecked(true);
-    } else
-    {
-        e->setPlainText (e->toPlainText());
-        actionFormatUseFixedFont->setEnabled(true);
-        actionFormatRichText->setChecked(false);
-    }
-    updateActions();
-    emit( textHasChanged() );
-}
-
-void TextEditor::toggleRichText()
-{
-    if (actionFormatRichText->isChecked() )
-        setRichTextMode( true );
-    else
-        setRichTextMode( false );
-}
-
-void TextEditor::setFixedFont()
-{
-    bool ok;
-    QFont font =QFontDialog::getFont( &ok, fixedFont, this );
-    if ( ok ) fixedFont=font;
-}
-
-void TextEditor::setVarFont()
-{
-    bool ok;
-    QFont font =QFontDialog::getFont( &ok, varFont, this );
-    if ( ok ) varFont=font;
-}
-
-void TextEditor::textBold()
-{
-    if ( actionTextBold->isChecked())
-        e->setFontWeight( QFont::Bold );
-    else
-        e->setFontWeight( QFont::Normal);
-}
-
-void TextEditor::textUnderline()
-{
-    e->setFontUnderline( actionTextUnderline->isChecked() );
-}
-
-void TextEditor::textItalic()
-{
-    e->setFontItalic( actionTextItalic->isChecked() );
-}
-
-void TextEditor::textFamily( const QString &f )
-{
-    e->setFontFamily( f );
-}
-
-void TextEditor::textSize( const QString &p )
-{
-    e->setFontPointSize( p.toInt() );
-}
-
-
-void TextEditor::textColor()
-{
-    QColor col = QColorDialog::getColor( e->textColor(), this );
-    if ( !col.isValid() ) return;
-    e->setTextColor( col );
-    /*
-    QPixmap pix( 16, 16 );
-    pix.fill( col );
-    actionTextColor->setIcon( pix );
-    */
-}
-
-void TextEditor::textAlign( QAction *a ) 
-{
-    QTextCursor c = e->textCursor();
-
-    if ( a == actionAlignLeft )
-        e->setAlignment( Qt::AlignLeft );
-    else if ( a == actionAlignCenter )
-        e->setAlignment( Qt::AlignHCenter );
-    else if ( a == actionAlignRight )
-        e->setAlignment( Qt::AlignRight );
-    else if ( a == actionAlignJustify )
-        e->setAlignment( Qt::AlignJustify );
-}
-
-void TextEditor::textVAlign()
-{
-    QTextCharFormat format;
-
-    if ( sender() == actionAlignSuperScript && actionAlignSuperScript->isChecked()) {
-        format.setVerticalAlignment(QTextCharFormat::AlignSuperScript);
-    } else if (sender() == actionAlignSubScript && actionAlignSubScript->isChecked()) {
-        format.setVerticalAlignment(QTextCharFormat::AlignSubScript);
-    } else {
-        format.setVerticalAlignment(QTextCharFormat::AlignNormal);
-    }
-    e->mergeCurrentCharFormat(format);
-}
-
-
-void TextEditor::fontChanged( const QFont &f )
-{
-    int i=comboFont->findText(f.family());
-    if (i>=0) comboFont->setCurrentIndex (i);
-    i=comboSize->findText(QString::number(f.pointSize()));
-    if (i>=0) comboSize->setCurrentIndex(i);
-    actionTextBold->setChecked( f.bold() );
-    actionTextItalic->setChecked( f.italic() );
-    actionTextUnderline->setChecked( f.underline() );
-}
-
-void TextEditor::colorChanged( const QColor &c )
-{
-    QPixmap pix( 16, 16 );
-    pix.fill( c );
-    actionTextColor->setIcon( pix );
-}
-
-void TextEditor::formatChanged( const QTextCharFormat &f )
-{
-    if (!actionFormatRichText->isChecked() ) return;
-    fontChanged(f.font());
-    colorChanged(f.foreground().color());
-    alignmentChanged(e->alignment());
-    verticalAlignmentChanged (f.verticalAlignment());
-}
-
-void TextEditor::alignmentChanged( int a )
-{
-    if ( ( a == Qt::AlignLeft ) || ( a & Qt::AlignLeft ))
-        actionAlignLeft->setChecked( true );
-    else if ( ( a & Qt::AlignHCenter ) )
-        actionAlignCenter->setChecked( true );
-    else if ( ( a & Qt::AlignRight ) )
-        actionAlignRight->setChecked( true );
-    else if ( ( a & Qt::AlignJustify ) )
-        actionAlignJustify->setChecked( true );
-}
-
-void TextEditor::verticalAlignmentChanged(QTextCharFormat::VerticalAlignment a)
-{
-    actionAlignSubScript->setChecked (false);
-    actionAlignSuperScript->setChecked (false);
-    switch (a)
-    {
-    case QTextCharFormat::AlignSuperScript:
-        actionAlignSuperScript->setChecked (true);
-        break;
-    case QTextCharFormat::AlignSubScript:
-        actionAlignSubScript->setChecked (true);
-        break;
-    default: ;
-    }
-}
-
-void TextEditor::updateActions()
-{
-    bool b;
-    if (state==inactiveEditor)
-        b=false;
-    else
-        b=true;
-    actionFileLoad->setEnabled(b);
-    actionFileSave->setEnabled(b);
-    actionFileSaveAs->setEnabled(b);
-    actionFilePrint->setEnabled(b);
-    actionFileDeleteAll->setEnabled(b);
-    actionEditUndo->setEnabled(b);
-    actionEditRedo->setEnabled(b);
-    actionEditCopy->setEnabled(b);
-    actionEditCut->setEnabled(b);
-    actionEditPaste->setEnabled(b);
-    actionFormatUseFixedFont->setEnabled(b);
-    actionFormatRichText->setEnabled(b);
-    
-    if (!actionFormatRichText->isChecked() || !b)
-    {
-        comboFont->setEnabled (false);
-        comboSize->setEnabled (false);
-        actionTextColor->setEnabled (false);
-        actionTextBold->setEnabled (false);
-        actionTextUnderline->setEnabled(false);
-        actionTextItalic->setEnabled(false);
-        actionTextColor->setEnabled(false);
-        actionAlignSubScript->setEnabled(false);
-        actionAlignSuperScript->setEnabled(false);
-        actionAlignLeft->setEnabled(false);
-        actionAlignCenter->setEnabled(false);
-        actionAlignRight->setEnabled(false);
-        actionAlignJustify->setEnabled(false);
-    }
-    else
-    {
-        comboFont->setEnabled (true);
-        comboSize->setEnabled (true);
-        actionTextColor->setEnabled (true);
-        actionTextBold->setEnabled (true);
-        actionTextUnderline->setEnabled(true);
-        actionTextItalic->setEnabled(true);
-        actionTextColor->setEnabled(true);
-        actionAlignSubScript->setEnabled(true);
-        actionAlignSuperScript->setEnabled(true);
-        actionAlignLeft->setEnabled(true);
-        actionAlignCenter->setEnabled(true);
-        actionAlignRight->setEnabled(true);
-        actionAlignJustify->setEnabled(true);
-        actionFormatUseFixedFont->setEnabled(false);
-    }
-}
-
-void TextEditor::setState (EditorState s)
-{
-    
-    QPalette p = palette();
-    QColor c;
-    switch (s)
-    {
-        case emptyEditor:    c = colorEmptyEditor; break;
-        case filledEditor:   c = colorFilledEditor; break; 
-        case inactiveEditor: c = colorInactiveEditor;
-    }
-    p.setColor(QPalette::Active, static_cast<QPalette::ColorRole>(9), c);
-    p.setColor(QPalette::Inactive, static_cast<QPalette::ColorRole>(9), c);
-    e->setPalette(p);
-}
-
-void TextEditor::setEmptyEditorColor()
-{
-    QColor col = QColorDialog::getColor( colorEmptyEditor, NULL);
-    if ( !col.isValid() ) return;
-    colorEmptyEditor = col;
-    QPixmap pix( 16, 16 );
-    pix.fill( colorEmptyEditor );
-    actionEmptyEditorColor->setIcon(pix);
-}
-
-void TextEditor::setInactiveEditorColor()
-{
-    QColor col = QColorDialog::getColor( colorInactiveEditor, NULL);
-    if ( !col.isValid() ) return;
-    colorInactiveEditor = col;
-    QPixmap pix( 16, 16 );
-    pix.fill( colorInactiveEditor );
-    actionInactiveEditorColor->setIcon(pix);
-}
-
-void TextEditor::setFilledEditorColor()
-{
-    QColor col = QColorDialog::getColor( colorFilledEditor, NULL);
-    if ( !col.isValid() ) return;
-    colorFilledEditor = col;
-    QPixmap pix( 16, 16 );
-    pix.fill( colorFilledEditor );
-    actionFilledEditorColor->setIcon(pix);
-}
-
-void TextEditor::setFontColor()
-{
-    QColor col = QColorDialog::getColor( colorFont, NULL);
-    if ( !col.isValid() ) return;
-    colorFont = col;
-    QPixmap pix( 16, 16 );
-    pix.fill( colorFont );
-    actionFontColor->setIcon(pix);
-}
-