diff --git a/part/CMakeLists.txt b/part/CMakeLists.txt index f786fda..39b3f76 100644 --- a/part/CMakeLists.txt +++ b/part/CMakeLists.txt @@ -217,6 +217,9 @@ endif(KDE4_ENABLE_FINAL) # install kate part interfaces install (TARGETS katepartinterfaces EXPORT kdelibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS}) +# install files +install (FILES utils/kate_real_programmers.png DESTINATION ${DATA_INSTALL_DIR}) + # kate part itself just is interfaces + the factory kde4_add_plugin (katepart utils/katefactory.cpp) diff --git a/part/utils/katecmds.cpp b/part/utils/katecmds.cpp index 6b41e79..5c261cc 100644 --- a/part/utils/katecmds.cpp +++ b/part/utils/katecmds.cpp @@ -37,8 +37,12 @@ #include #include #include +#include #include +#include +#include +#include //BEGIN CoreCommands // syncs a config flag in the document with a boolean value @@ -780,4 +784,21 @@ bool KateCommands::Date::exec (KTextEditor::View *view, const QString &cmd, QStr //END Date +//BEGIN Butterfly +bool KateCommands::Butterfly::exec (KTextEditor::View *view, const QString &, QString &) +{ + QDialog dialog( view ); + dialog.setModal( true ); + dialog.setWindowTitle( "Real Programmers - http://xkcd.com/378" ); + QLabel label( &dialog ); + label.setPixmap( QPixmap( KGlobal::dirs()->findResource( "data", "kate_real_programmers.png" ) ) ); + label.setToolTip( QString::fromUtf8("I love butterflies, I love *nixkcd, I love KDE, I love Free Software, I love Schrdinger's cat, I love your sister, I love programming!\nScrew EMacs, real programmers use Bleeding-Edge-KatePart!\nBoom de Yada, Boom de Yada!") ); + QHBoxLayout layout( &dialog ); + layout.addWidget( &label ); + dialog.setLayout( &layout ); + dialog.exec(); + return true; +} +//END Butterfly + // kate: space-indent on; indent-width 2; replace-tabs on; diff --git a/part/utils/katecmds.h b/part/utils/katecmds.h index f285e16..317047b 100644 --- a/part/utils/katecmds.h +++ b/part/utils/katecmds.h @@ -258,6 +258,27 @@ class Date : public KTextEditor::Command const QStringList &cmds () { static QStringList test("date"); return test; } }; +class Butterfly : public KTextEditor::Command +{ + public: + /** + * execute command + * @param view view to use for execution + * @param cmd cmd string + * @param errorMsg error to return if no success + * @return success + */ + bool exec (class KTextEditor::View *view, const QString &cmd, QString &errorMsg); + + /** This command does not have help. @see KTextEditor::Command::help */ + bool help (class KTextEditor::View *, const QString &, QString &) { return false; } + + /** + * supported commands as prefixes + * @return prefix list + */ + const QStringList &cmds () { static QStringList test("butterfly"); return test; } +}; } // namespace KateCommands #endif diff --git a/part/utils/kateglobal.cpp b/part/utils/kateglobal.cpp index eeb7aaf..901bf4c 100644 --- a/part/utils/kateglobal.cpp +++ b/part/utils/kateglobal.cpp @@ -171,11 +171,12 @@ KateGlobal::KateGlobal () // // init the cmds // - m_cmds.push_back (new KateCommands::CoreCommands()); - m_cmds.push_back (new KateCommands::ViCommands()); + m_cmds.push_back (new KateCommands::CoreCommands ()); + m_cmds.push_back (new KateCommands::ViCommands ()); m_cmds.push_back (new KateCommands::SedReplace ()); m_cmds.push_back (new KateCommands::Character ()); m_cmds.push_back (new KateCommands::Date ()); + m_cmds.push_back (new KateCommands::Butterfly ()); for ( QList::iterator it = m_cmds.begin(); it != m_cmds.end(); ++it ) m_cmdManager->registerCommand (*it); diff --git a/part/vimode/kateviinsertmode.cpp b/part/vimode/kateviinsertmode.cpp index e89fd6a..5ee277a 100644 --- a/part/vimode/kateviinsertmode.cpp +++ b/part/vimode/kateviinsertmode.cpp @@ -194,7 +194,6 @@ bool KateViInsertMode::handleKeypress( const QKeyEvent *e ) case Qt::Key_Escape: startNormalMode(); return true; - break; case Qt::Key_Left: m_view->cursorLeft(); return true;