Index: kate/view/kateview.cpp
===================================================================
--- kate/view/kateview.cpp	(revision 946924)
+++ kate/view/kateview.cpp	(working copy)
@@ -652,13 +652,13 @@
 
   a = ac->addAction("select_char_left");
   a->setText(i18n("Select Character Left"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Left));
+  a->setShortcut(KStandardShortcut::selectCharBack());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftCursorLeft()));
   m_editActions << a;
 
   a = ac->addAction("select_word_left");
   a->setText(i18n("Select Word Left"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::CTRL + Qt::Key_Left));
+  a->setShortcut(KStandardShortcut::selectWordBack());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftWordLeft()));
   m_editActions << a;
 
@@ -671,13 +671,13 @@
 
   a = ac->addAction("select_char_right");
   a->setText(i18n("Select Character Right"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Right));
+  a->setShortcut(KStandardShortcut::selectCharForward());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftCursorRight()));
   m_editActions << a;
 
   a = ac->addAction("select_word_right");
   a->setText(i18n("Select Word Right"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::CTRL + Qt::Key_Right));
+  a->setShortcut(KStandardShortcut::selectWordForward());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftWordRight()));
   m_editActions << a;
 
@@ -696,7 +696,7 @@
 
   a = ac->addAction("select_beginning_of_line");
   a->setText(i18n("Select to Beginning of Line"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Home));
+  a->setShortcut(KStandardShortcut::selectToBeginOfLine());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftHome()));
   m_editActions << a;
 
@@ -721,7 +721,7 @@
 
   a = ac->addAction("select_end_of_line");
   a->setText(i18n("Select to End of Line"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_End));
+  a->setShortcut(KStandardShortcut::selectToEndOfLine());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftEnd()));
   m_editActions << a;
 
@@ -734,7 +734,7 @@
 
   a = ac->addAction("select_line_up");
   a->setText(i18n("Select to Previous Line"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Up));
+  a->setShortcut(KStandardShortcut::selectLineBack());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftUp()));
   m_editActions << a;
 
@@ -747,35 +747,35 @@
 
   a = ac->addAction("move_line_down");
   a->setText(i18n("Move to Next Line"));
-  a->setShortcut(QKeySequence(Qt::Key_Down));
+  a->setShortcut(KStandardShortcut::forwardLine());
   connect(a, SIGNAL(triggered(bool)), SLOT(down()));
   m_editActions << a;
 
 
   a = ac->addAction("move_line_up");
   a->setText(i18n("Move to Previous Line"));
-  a->setShortcut(QKeySequence(Qt::Key_Up));
+  a->setShortcut(KStandardShortcut::backwardLine());
   connect(a, SIGNAL(triggered(bool)), SLOT(up()));
   m_editActions << a;
 
 
   a = ac->addAction("move_cursor_right");
   a->setText(i18n("Move Character Right"));
-  a->setShortcut(QKeySequence(Qt::Key_Right));
+  a->setShortcut(KStandardShortcut::forwardChar());
   connect(a, SIGNAL(triggered(bool)), SLOT(cursorRight()));
   m_editActions << a;
 
 
   a = ac->addAction("move_cusor_left");
   a->setText(i18n("Move Character Left"));
-  a->setShortcut(QKeySequence(Qt::Key_Left));
+  a->setShortcut(KStandardShortcut::backwardChar());
   connect(a, SIGNAL(triggered(bool)), SLOT(cursorLeft()));
   m_editActions << a;
 
 
   a = ac->addAction("select_line_down");
   a->setText(i18n("Select to Next Line"));
-  a->setShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Down));
+  a->setShortcut(KStandardShortcut::selectLineForward());
   connect(a, SIGNAL(triggered(bool)), SLOT(shiftDown()));
   m_editActions << a;
 
@@ -857,9 +857,15 @@
     connect(a, SIGNAL(triggered(bool)), SLOT(transpose()));
     m_editActions << a;
 
+    a = ac->addAction("cut_end_of_line");
+    a->setText(i18n("Cut to End of Line"));
+    a->setShortcut(KStandardShortcut::cutToEndOfLine());
+    connect(a, SIGNAL(triggered(bool)), SLOT(cutEndLine()));
+    m_editActions << a;
+
     a = ac->addAction("delete_line");
     a->setText(i18n("Delete Line"));
-    a->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));
+    a->setShortcut(KStandardShortcut::deleteLine());
     connect(a, SIGNAL(triggered(bool)), SLOT(killLine()));
     m_editActions << a;
 
@@ -876,24 +882,21 @@
     m_editActions << a;
 
     a = ac->addAction("delete_next_character");
-    a->setText(i18n("Delete Next Character"));
-    a->setShortcut(QKeySequence(Qt::Key_Delete));
+    a->setText(i18n("Delete Character Right"));
+    a->setShortcut(KStandardShortcut::deleteCharForward());
     connect(a, SIGNAL(triggered(bool)), SLOT(keyDelete()));
     m_editActions << a;
 
-    a = ac->addAction("backspace");
-    a->setText(i18n("Backspace"));
-    QList<QKeySequence> scuts;
-    scuts << QKeySequence(Qt::Key_Backspace)
-          << QKeySequence(Qt::SHIFT + Qt::Key_Backspace);
-    a->setShortcuts(scuts);
+    a = ac->addAction("delete_previous_character");
+    a->setText(i18n("Delete Character Left"));
+    a->setShortcut(KStandardShortcut::deleteCharBack());
     connect(a, SIGNAL(triggered(bool)), SLOT(backspace()));
     m_editActions << a;
 
     a = ac->addAction("smart_newline");
     a->setText(i18n("Insert Smart Newline"));
     a->setWhatsThis(i18n("Insert newline including leading characters of the current line which are not letters or numbers."));
-    scuts.clear();
+    QList<QKeySequence> scuts;
     scuts << QKeySequence(Qt::SHIFT + Qt::Key_Return)
           << QKeySequence(Qt::SHIFT + Qt::Key_Enter);
     a->setShortcuts(scuts);
@@ -2426,6 +2429,16 @@
   m_doc->removeLine( cursorPosition().line() );
 }
 
+void KateView::cutEndLine()
+{
+  shiftEnd();
+  if (!selection())
+    return;
+
+  copy();
+  removeSelectedText();
+}
+
 void KateView::lowercase( )
 {
   m_doc->transform( this, m_viewInternal->m_cursor, KateDocument::Lowercase );
Index: kate/view/kateview.h
===================================================================
--- kate/view/kateview.h	(revision 946924)
+++ kate/view/kateview.h	(working copy)
@@ -438,7 +438,8 @@
     void comment();
     void uncomment();
     void killLine();
-
+    void cutEndLine();
+    
     /**
       Uppercases selected text, or an alphabetic character next to the cursor.
     */
Index: kdoctools/genshortcutents.cpp
===================================================================
--- kdoctools/genshortcutents.cpp	(revision 946924)
+++ kdoctools/genshortcutents.cpp	(working copy)
@@ -300,6 +300,54 @@
 		case KStandardShortcut::AboutKDE:
 			markup += "AboutKDE";
 			break;
+                case KStandardShortcut::BackwardChar:
+			markup += "BackwardChar";
+			break;
+                case KStandardShortcut::ForwardChar:
+			markup += "ForwardChar";
+			break;
+                case KStandardShortcut::BackwardLine:
+			markup += "BackwardLine";
+			break;
+                case KStandardShortcut::ForwardLine:
+			markup += "ForwardLine";
+			break;
+                case KStandardShortcut::DeleteCharBack:
+			markup += "DeleteCharBack";
+			break;
+                case KStandardShortcut::DeleteCharForward:
+			markup += "DeleteCharForward";
+			break;
+                case KStandardShortcut::DeleteLine:
+                        markup += "DeleteLine";
+                        break;
+                case KStandardShortcut::SelectCharBack:
+                        markup += "SelectCharBack";
+                        break;
+                case KStandardShortcut::SelectCharForward:
+                        markup += "SelectCharForward";
+                        break;
+                case KStandardShortcut::SelectWordBack:
+                        markup += "SelectWordBack";
+                        break;
+                case KStandardShortcut::SelectWordForward:
+                        markup += "SelectWordForward";
+                        break;
+                case KStandardShortcut::SelectLineBack:
+                        markup += "SelectLineBack";
+                        break;
+                case KStandardShortcut::SelectLineForward:
+                        markup += "SelectLineForward";
+                        break;
+                case KStandardShortcut::SelectToBeginOfLine:
+                        markup += "SelectToBeginOfLine";
+                        break;
+                case KStandardShortcut::SelectToEndOfLine:
+                        markup += "SelectToEndOfLine";
+                        break;
+                case KStandardShortcut::CutToEndOfLine:
+                        markup += "CutToEndOfLine";
+                        break;
 		case KStandardShortcut::StandardShortcutCount:
 			break;
 	}
Index: kdeui/shortcuts/kstandardshortcut.cpp
===================================================================
--- kdeui/shortcuts/kstandardshortcut.cpp	(revision 946924)
+++ kdeui/shortcuts/kstandardshortcut.cpp	(working copy)
@@ -99,8 +99,8 @@
 
     { SelectAll        , "SelectAll"        , I18N_NOOP2("@action", "Select All")           , CTRL(A)          , 0            , KShortcut(), false },
     { Deselect         , "Deselect"         , I18N_NOOP2("@action", "Deselect")             , CTRLSHIFT(A)     , 0            , KShortcut(), false },
-    { DeleteWordBack   , "DeleteWordBack"   , I18N_NOOP2("@action", "Delete Word Backwards"), CTRL(Backspace)  , 0            , KShortcut(), false },
-    { DeleteWordForward, "DeleteWordForward", I18N_NOOP2("@action", "Delete Word Forward")  , CTRL(Delete)     , 0            , KShortcut(), false },
+    { DeleteWordBack   , "DeleteWordBack"   , I18N_NOOP2("@action", "Delete Word Left"), CTRL(Backspace)  , 0            , KShortcut(), false },
+    { DeleteWordForward, "DeleteWordForward", I18N_NOOP2("@action", "Delete Word Right")  , CTRL(Delete)     , 0            , KShortcut(), false },
 
     { Find             , "Find"             , I18N_NOOP2("@action", "Find")                 , CTRL(F)          , 0            , KShortcut(), false },
     { FindNext         , "FindNext"         , I18N_NOOP2("@action", "Find Next")            , Qt::Key_F3       , 0            , KShortcut(), false },
@@ -139,45 +139,63 @@
     { WhatsThis      , "WhatsThis"            , I18N_NOOP2("@action"                      , "What's This")          , SHIFT(F1)       , 0                 , KShortcut(), false },
 
 //Group TextCompletion
-    { TextCompletion           , "TextCompletion"           , I18N_NOOP2("@action", "Text Completion")          , CTRL(E)     , 0, KShortcut(), false },
-    { PrevCompletion           , "PrevCompletion"           , I18N_NOOP2("@action", "Previous Completion Match"), CTRL(Up)    , 0, KShortcut(), false },
-    { NextCompletion           , "NextCompletion"           , I18N_NOOP2("@action", "Next Completion Match")    , CTRL(Down)  , 0, KShortcut(), false },
-    { SubstringCompletion      , "SubstringCompletion"      , I18N_NOOP2("@action", "Substring Completion")     , CTRL(T)     , 0, KShortcut(), false },
+    { TextCompletion           , "TextCompletion"           , I18N_NOOP2("@action", "Text Completion")            , CTRL(E)           , 0, KShortcut(), false },
+    { PrevCompletion           , "PrevCompletion"           , I18N_NOOP2("@action", "Previous Completion Match")  , CTRL(Up)          , 0, KShortcut(), false },
+    { NextCompletion           , "NextCompletion"           , I18N_NOOP2("@action", "Next Completion Match")      , CTRL(Down)        , 0, KShortcut(), false },
+    { SubstringCompletion      , "SubstringCompletion"      , I18N_NOOP2("@action", "Substring Completion")       , CTRL(T)           , 0, KShortcut(), false },
 
-    { RotateUp                 , "RotateUp"                 , I18N_NOOP2("@action", "Previous Item in List")    , Qt::Key_Up  , 0, KShortcut(), false },
-    { RotateDown               , "RotateDown"               , I18N_NOOP2("@action", "Next Item in List")        , Qt::Key_Down, 0, KShortcut(), false },
+    { RotateUp                 , "RotateUp"                 , I18N_NOOP2("@action", "Previous Item in List")      , Qt::Key_Up        , 0, KShortcut(), false },
+    { RotateDown               , "RotateDown"               , I18N_NOOP2("@action", "Next Item in List")          , Qt::Key_Down      , 0, KShortcut(), false },
+    
+    { OpenRecent               , "OpenRecent"               , I18N_NOOP2("@action", "Open Recent")                , 0                 , 0, KShortcut(), false },
+    { SaveAs                   , "SaveAs"                   , I18N_NOOP2("@action", "Save As")                    , 0                 , 0, KShortcut(), false },
+    { Revert                   , "Revert"                   , I18N_NOOP2("@action", "Revert")                     , 0                 , 0, KShortcut(), false },
+    { PrintPreview             , "PrintPreview"             , I18N_NOOP2("@action", "Print Preview")              , 0                 , 0, KShortcut(), false },
+    { Mail                     , "Mail"                     , I18N_NOOP2("@action", "Mail")                       , 0                 , 0, KShortcut(), false },
+    { Clear                    , "Clear"                    , I18N_NOOP2("@action", "Clear")                      , 0                 , 0, KShortcut(), false },
+    { ActualSize               , "ActualSize"               , I18N_NOOP2("@action", "Actual Size")                , 0                 , 0, KShortcut(), false },
+    { FitToPage                , "FitToPage"                , I18N_NOOP2("@action", "Fit To Page")                , 0                 , 0, KShortcut(), false },
+    { FitToWidth               , "FitToWidth"               , I18N_NOOP2("@action", "Fit To Width")               , 0                 , 0, KShortcut(), false },
+    { FitToHeight              , "FitToHeight"              , I18N_NOOP2("@action", "Fit To Height")              , 0                 , 0, KShortcut(), false },
+    { Zoom                     , "Zoom"                     , I18N_NOOP2("@action", "Zoom")                       , 0                 , 0, KShortcut(), false },
+    { Goto                     , "Goto"                     , I18N_NOOP2("@action", "Goto")                       , 0                 , 0, KShortcut(), false },
+    { GotoPage                 , "GotoPage"                 , I18N_NOOP2("@action", "Goto Page")                  , 0                 , 0, KShortcut(), false },
+    { DocumentBack             , "DocumentBack"             , I18N_NOOP2("@action", "Document Back")              , 0                 , 0, KShortcut(), false },
+    { DocumentForward          , "DocumentForward"          , I18N_NOOP2("@action", "Document Forward")           , 0                 , 0, KShortcut(), false },
+    { EditBookmarks            , "EditBookmarks"            , I18N_NOOP2("@action", "Edit Bookmarks")             , 0                 , 0, KShortcut(), false },
+    { Spelling                 , "Spelling"                 , I18N_NOOP2("@action", "Spelling")                   , 0                 , 0, KShortcut(), false },
+    { ShowToolbar              , "ShowToolbar"              , I18N_NOOP2("@action", "Show Toolbar")               , 0                 , 0, KShortcut(), false },
+    { ShowStatusbar            , "ShowStatusbar"            , I18N_NOOP2("@action", "Show Statusbar")             , 0                 , 0, KShortcut(), false },
+    { SaveOptions              , "SaveOptions"              , I18N_NOOP2("@action", "Save Options")               , 0                 , 0, KShortcut(), false },
+    { KeyBindings              , "KeyBindings"              , I18N_NOOP2("@action", "Key Bindings")               , 0                 , 0, KShortcut(), false },
+    { Preferences              , "Preferences"              , I18N_NOOP2("@action", "Preferences")                , 0                 , 0, KShortcut(), false },
+    { ConfigureToolbars        , "ConfigureToolbars"        , I18N_NOOP2("@action", "Configure Toolbars")         , 0                 , 0, KShortcut(), false },
+    { ConfigureNotifications   , "ConfigureNotifications"   , I18N_NOOP2("@action", "Configure Notifications")    , 0                 , 0, KShortcut(), false },
+    { TipofDay                 , "TipofDay"                 , I18N_NOOP2("@action", "Tip Of Day")                 , 0                 , 0, KShortcut(), false },
+    { ReportBug                , "ReportBug"                , I18N_NOOP2("@action", "Report Bug")                 , 0                 , 0, KShortcut(), false },
+    { SwitchApplicationLanguage, "SwitchApplicationLanguage", I18N_NOOP2("@action", "Switch Application Language"), 0                 , 0, KShortcut(), false },
+    { AboutApp                 , "AboutApp"                 , I18N_NOOP2("@action", "About Application")          , 0                 , 0, KShortcut(), false },
+    { AboutKDE                 , "AboutKDE"                 , I18N_NOOP2("@action", "About KDE")                  , 0                 , 0, KShortcut(), false },
 
-    { OpenRecent               , "OpenRecent"               , I18N_NOOP2("@action", "Open Recent")               , 0           , 0, KShortcut(), false },
-    { SaveAs                   , "SaveAs"                   , I18N_NOOP2("@action", "Save As")                   , 0           , 0, KShortcut(), false },
-    { Revert                   , "Revert"                   , I18N_NOOP2("@action", "Revert")                   , 0           , 0, KShortcut(), false },
-    { PrintPreview             , "PrintPreview"             , I18N_NOOP2("@action", "Print Preview")             , 0           , 0, KShortcut(), false },
-    { Mail                     , "Mail"                     , I18N_NOOP2("@action", "Mail")                     , 0           , 0, KShortcut(), false },
-    { Clear                    , "Clear"                    , I18N_NOOP2("@action", "Clear")                    , 0           , 0, KShortcut(), false },
-    { ActualSize               , "ActualSize"               , I18N_NOOP2("@action", "Actual Size")               , 0           , 0, KShortcut(), false },
-    { FitToPage                , "FitToPage"                , I18N_NOOP2("@action", "Fit To Page")                , 0           , 0, KShortcut(), false },
-    { FitToWidth               , "FitToWidth"               , I18N_NOOP2("@action", "Fit To Width")               , 0           , 0, KShortcut(), false },
-    { FitToHeight              , "FitToHeight"              , I18N_NOOP2("@action", "Fit To Height")              , 0           , 0, KShortcut(), false },
-    { Zoom                     , "Zoom"                     , I18N_NOOP2("@action", "Zoom")                     , 0           , 0, KShortcut(), false },
-    { Goto                     , "Goto"                     , I18N_NOOP2("@action", "Goto")                     , 0           , 0, KShortcut(), false },
-    { GotoPage                 , "GotoPage"                 , I18N_NOOP2("@action", "Goto Page")                 , 0           , 0, KShortcut(), false },
-    { DocumentBack             , "DocumentBack"             , I18N_NOOP2("@action", "Document Back")             , 0           , 0, KShortcut(), false },
-    { DocumentForward          , "DocumentForward"          , I18N_NOOP2("@action", "Document Forward")          , 0           , 0, KShortcut(), false },
-    { EditBookmarks            , "EditBookmarks"            , I18N_NOOP2("@action", "Edit Bookmarks")            , 0           , 0, KShortcut(), false },
-    { Spelling                 , "Spelling"                 , I18N_NOOP2("@action", "Spelling")                 , 0           , 0, KShortcut(), false },
-    { ShowToolbar              , "ShowToolbar"              , I18N_NOOP2("@action", "Show Toolbar")              , 0           , 0, KShortcut(), false },
-    { ShowStatusbar            , "ShowStatusbar"            , I18N_NOOP2("@action", "Show Statusbar")            , 0           , 0, KShortcut(), false },
-    { SaveOptions              , "SaveOptions"              , I18N_NOOP2("@action", "Save Options")              , 0           , 0, KShortcut(), false },
-    { KeyBindings              , "KeyBindings"              , I18N_NOOP2("@action", "Key Bindings")              , 0           , 0, KShortcut(), false },
-    { Preferences              , "Preferences"              , I18N_NOOP2("@action", "Preferences")              , 0           , 0, KShortcut(), false },
-    { ConfigureToolbars        , "ConfigureToolbars"        , I18N_NOOP2("@action", "Configure Toolbars")        , 0           , 0, KShortcut(), false },
-    { ConfigureNotifications   , "ConfigureNotifications"   , I18N_NOOP2("@action", "Configure Notifications")   , 0           , 0, KShortcut(), false },
-    { TipofDay                 , "TipofDay"                 , I18N_NOOP2("@action", "Tip Of Day")                 , 0           , 0, KShortcut(), false },
-    { ReportBug                , "ReportBug"                , I18N_NOOP2("@action", "Report Bug")                , 0           , 0, KShortcut(), false },
-    { SwitchApplicationLanguage, "SwitchApplicationLanguage", I18N_NOOP2("@action", "Switch Application Language"), 0           , 0, KShortcut(), false },
-    { AboutApp                 , "AboutApp"                 , I18N_NOOP2("@action", "About Application")                 , 0           , 0, KShortcut(), false },
-    { AboutKDE                 , "AboutKDE"                 , I18N_NOOP2("@action", "About KDE")                 , 0           , 0, KShortcut(), false },
-
+    { BackwardChar             , "BackwardChar"             , I18N_NOOP2("@action", "Move to Previous Char")      , 0                 , 0, KShortcut(), false },
+    { ForwardChar              , "ForwardChar"              , I18N_NOOP2("@action", "Move to Next Char")          , 0                 , 0, KShortcut(), false },
+    { BackwardLine             , "BackwardLine"             , I18N_NOOP2("@action", "Move to Previous Line")      , 0                 , 0, KShortcut(), false },
+    { ForwardLine              , "ForwardLine"              , I18N_NOOP2("@action", "Move to Next Line")          , 0                 , 0, KShortcut(), false },
+    { DeleteCharBack           , "DeleteCharBack"           , I18N_NOOP2("@action", "Delete Previous Char")   , 0                 , 0, KShortcut(), false },
+    { DeleteCharForward        , "DeleteCharForward"        , I18N_NOOP2("@action", "Delete Next Char")       , 0                 , 0, KShortcut(), false },
+    { DeleteLine               , "DeleteLine"               , I18N_NOOP2("@action", "Delete Line")                , 0                 , 0, KShortcut(), false },
+    { SelectCharBack           , "SelectCharBack"           , I18N_NOOP2("@action", "Select Character Left")      , 0                 , 0, KShortcut(), false },
+    { SelectCharForward        , "SelectCharForward"        , I18N_NOOP2("@action", "Select Character Right")     , 0                 , 0, KShortcut(), false },
+    { SelectWordBack           , "SelectWordBack"           , I18N_NOOP2("@action", "Select Word Left")           , 0                 , 0, KShortcut(), false },
+    { SelectWordForward        , "SelectWordForward"        , I18N_NOOP2("@action", "Select Word Right")          , 0                 , 0, KShortcut(), false },
+    { SelectLineBack           , "SelectLineBack"           , I18N_NOOP2("@action", "Select to Previous Line")    , 0                 , 0, KShortcut(), false },
+    { SelectLineForward        , "SelectLineForward"        , I18N_NOOP2("@action", "Select to Next Line")        , 0                 , 0, KShortcut(), false },
+    { SelectToBeginOfLine      , "SelectToBeginOfLine"      , I18N_NOOP2("@action", "Select to Beginning of Line"), 0                 , 0, KShortcut(), false },
+    { SelectToEndOfLine        , "SelectToEndOfLine"        , I18N_NOOP2("@action", "Select to End of Line")      , 0                 , 0, KShortcut(), false },
+    { CutToEndOfLine           , "CutToEndOfLine"           , I18N_NOOP2("@action", "Cut to End of Line")         , 0                 , 0, KShortcut(), false },
+    
     //dummy entry to catch simple off-by-one errors. Insert new entries before this line.
+    
     { AccelNone                , 0                          , 0                   , 0                           , 0, 0, KShortcut(), false }
 };
 
@@ -372,5 +390,20 @@
 const KShortcut& back()                  { return shortcut( Back ); }
 const KShortcut& forward()               { return shortcut( Forward ); }
 const KShortcut& showMenubar()           { return shortcut( ShowMenubar ); }
-
+const KShortcut& backwardChar()          { return shortcut( BackwardChar ); }
+const KShortcut& forwardChar()           { return shortcut( ForwardChar ); }
+const KShortcut& backwardLine()          { return shortcut( BackwardLine ); }
+const KShortcut& forwardLine()           { return shortcut( ForwardLine ); }
+const KShortcut& deleteCharBack()        { return shortcut( DeleteCharBack ); }
+const KShortcut& deleteCharForward()     { return shortcut( DeleteCharForward ); }
+const KShortcut& deleteLine()            { return shortcut( DeleteLine ); }
+const KShortcut& selectCharBack()        { return shortcut( SelectCharBack  ); }
+const KShortcut& selectCharForward()     { return shortcut( SelectCharForward ); }
+const KShortcut& selectWordBack()        { return shortcut( SelectWordBack  ); }
+const KShortcut& selectWordForward()     { return shortcut( SelectWordForward ); }
+const KShortcut& selectLineBack()        { return shortcut( SelectLineBack  ); }
+const KShortcut& selectLineForward()     { return shortcut( SelectLineForward ); }
+const KShortcut& selectToBeginOfLine()   { return shortcut( SelectToBeginOfLine ); }
+const KShortcut& selectToEndOfLine()     { return shortcut( SelectToEndOfLine ); }
+const KShortcut& cutToEndOfLine()        { return shortcut( CutToEndOfLine ); }
 }
Index: kdeui/shortcuts/kstandardshortcut.h
===================================================================
--- kdeui/shortcuts/kstandardshortcut.h	(revision 946924)
+++ kdeui/shortcuts/kstandardshortcut.h	(working copy)
@@ -113,6 +113,22 @@
     AboutApp,
     AboutKDE,
 
+    // Text Navigation
+    BackwardChar, ForwardChar,
+    BackwardLine, ForwardLine,
+
+    // Text Edition
+    DeleteCharBack, DeleteCharForward,
+    DeleteLine,
+
+    // Text Selection
+    SelectCharBack, SelectCharForward,
+    SelectWordBack, SelectWordForward,
+    SelectLineBack, SelectLineForward,
+    SelectToBeginOfLine, SelectToEndOfLine,
+
+    CutToEndOfLine,
+    
     // Insert new items here!
 
     StandardShortcutCount // number of standard shortcuts
@@ -476,7 +492,103 @@
    * @return the shortcut of the standard accelerator
    */
   KDEUI_EXPORT const KShortcut &showMenubar();
+  
+  /**
+   * Move to the previous char.  Default: Left
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &backwardChar();
+      
+  /**
+   * Move to the next char.  Default: Right
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &forwardChar();
 
+  /**
+   * Move to the previous line.  Default: Up
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &backwardLine();
+      
+  /**
+   * Move to the next line.  Default: Down
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &forwardLine();  
+  
+  /**
+   * Delete the previous char.  Default: Backspace 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &deleteCharBack();
+  
+  /**
+   * Delete the next char.  Default: Delete 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &deleteCharForward();
+
+  /**
+   * Delete current line.  Default: Ctrl+K 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &deleteLine();
+
+  /**
+   * Select previous char.  Default: Shift+Left
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectCharBack();
+
+  /**
+   * Select next char.  Default: Shift+Right
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectCharForward();
+
+  /**
+   * Select previous word.  Default: Ctrl+Shift+Left 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectWordBack();
+
+  /**
+   * Select next word.  Default: Ctrl+Shift+Right 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT  const KShortcut &selectWordForward();
+
+  /**
+   * Select to previous line.  Default: Ctrl+Up 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectLineBack();
+
+  /**
+   * Select to next line.  Default: Ctrl+Down 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectLineForward();
+
+  /**
+   * Select to beginning of line.  Default: Ctrl+Home 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectToBeginOfLine(); 
+
+  /** 
+   * Select to end of line.  Default: Ctrl+End 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &selectToEndOfLine();   
+  
+  /** 
+   * Cut to end of line.  Default: None 
+   * @return the shortcut of the standard accelerator
+   */
+  KDEUI_EXPORT const KShortcut &cutToEndOfLine();   
+  
 }
 
 #endif // KSTANDARDSHORTCUT_H
Index: kdeui/actions/kstandardaction.h
===================================================================
--- kdeui/actions/kstandardaction.h	(revision 946924)
+++ kdeui/actions/kstandardaction.h	(working copy)
@@ -160,7 +160,23 @@
     FullScreen,
     Clear,
     PasteText,
-    SwitchApplicationLanguage
+    SwitchApplicationLanguage,
+
+    // Text Navigation
+    BackwardChar, ForwardChar,
+    BackwardWord, ForwardWord,
+    BackwardLine, ForwardLine,
+    BeginningOfLine, EndOfLine,
+    DeleteCharBack, DeleteCharForward,
+    DeleteWordBack, DeleteWordForward,
+    DeleteLine,
+    SelectCharBack, SelectCharForward,
+    SelectWordBack, SelectWordForward,
+    SelectLineBack, SelectLineForward,
+    SelectToBeginOfLine, SelectToEndOfLine,
+
+    CutToEndOfLine
+    
   };
 
   /**
@@ -578,6 +594,118 @@
    * Display the About KDE dialog.
    */
   KDEUI_EXPORT KAction *aboutKDE(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the previous char.
+   */
+  KDEUI_EXPORT KAction *backwardChar(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the next char.
+   */
+  KDEUI_EXPORT KAction *forwardChar(const QObject *recvr, const char *slot, QObject *parent);
+  
+  /**
+   * Move to the previous word.
+   */
+  KDEUI_EXPORT KAction *backwardWord(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the next word.
+   */
+  KDEUI_EXPORT KAction *forwardWord(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the previous line.
+   */
+  KDEUI_EXPORT KAction *backwardLine(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the next line.
+   */
+  KDEUI_EXPORT KAction *forwardLine(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the beginning of line.
+   */
+  KDEUI_EXPORT KAction *beginningOfLine(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Move to the end of line.
+   */
+  KDEUI_EXPORT KAction *endOfLine(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Delete the previous char.
+   */
+  KDEUI_EXPORT KAction *deleteCharBack(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Delete the next char.
+   */
+  KDEUI_EXPORT KAction *deleteCharForward(const QObject *recvr, const char *slot, QObject *parent);
+  
+  /**
+   * Delete the previous word.
+   */
+  KDEUI_EXPORT KAction *deleteWordBack(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Delete the next word.
+   */
+  KDEUI_EXPORT KAction *deleteWordForward(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Delete the current line.
+   */
+  KDEUI_EXPORT KAction *deleteLine(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select character left.
+   */
+  KDEUI_EXPORT KAction *selectCharBack(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select character right.
+   */
+  KDEUI_EXPORT KAction *selectCharForward(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select word left.
+   */
+  KDEUI_EXPORT KAction *selectWordBack(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select word right.
+   */
+  KDEUI_EXPORT KAction *selectWordForward(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select to previous line.
+   */
+  KDEUI_EXPORT KAction *selectLineBack(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select to next line.
+   */
+  KDEUI_EXPORT KAction *selectLineForward(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select to beginning of line.
+   */
+  KDEUI_EXPORT KAction *selectToBeginOfLine(const QObject *recvr, const char *slot, QObject *parent);
+
+  /**
+   * Select to end of line.
+   */
+  KDEUI_EXPORT KAction *selectToEndOfLine(const QObject *recvr, const char *slot, QObject *parent);
+
+
+  /**
+   * Cut to end of line.
+   */
+  KDEUI_EXPORT KAction *cutToEndOfLine(const QObject *recvr, const char *slot, QObject *parent);
+
 }
 
 #endif // KSTDACTION_H
Index: kdeui/actions/kstandardaction.cpp
===================================================================
--- kdeui/actions/kstandardaction.cpp	(revision 946924)
+++ kdeui/actions/kstandardaction.cpp	(working copy)
@@ -624,5 +624,116 @@
   return KStandardAction::create( AboutKDE, recvr, slot, parent );
 }
 
+KAction *backwardChar(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( BackwardChar, recvr, slot, parent );
 }
 
+KAction *forwardChar(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( ForwardChar, recvr, slot, parent );
+}
+ 
+KAction *backwardWord(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( BackwardWord, recvr, slot, parent );
+}
+
+KAction *forwardWord(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( ForwardWord, recvr, slot, parent );
+}
+
+KAction *backwardLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( BackwardLine, recvr, slot, parent );
+}
+
+KAction *forwardLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( ForwardLine, recvr, slot, parent );
+}
+
+KAction *beginningOfLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( BeginningOfLine, recvr, slot, parent );
+}
+
+KAction *endOfLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( EndOfLine, recvr, slot, parent );
+}
+
+KAction *deleteCharBack(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( DeleteCharBack, recvr, slot, parent );
+}
+
+KAction *deleteForward(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( DeleteCharForward, recvr, slot, parent );
+}
+
+KAction *deleteWordBack(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( DeleteWordBack, recvr, slot, parent );
+}
+
+KAction *deleteWordForward(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( DeleteWordForward, recvr, slot, parent );
+}
+
+KAction *deleteLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( DeleteLine, recvr, slot, parent );
+}
+
+KAction *selectCharBack(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectCharBack, recvr, slot, parent );
+}
+
+KAction *selectCharForward(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectCharForward, recvr, slot, parent );
+}
+
+KAction *selectWordBack(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectWordBack, recvr, slot, parent );
+}
+
+KAction *selectWordForward(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectWordForward, recvr, slot, parent );
+}
+
+KAction *selectLineBack(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectLineBack, recvr, slot, parent );
+}
+
+KAction *selectLineForward(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectLineForward, recvr, slot, parent );
+}
+
+KAction *selectToBeginOfLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectToBeginOfLine, recvr, slot, parent );
+}
+
+KAction *selectToEndOfLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( SelectToEndOfLine, recvr, slot, parent );
+}
+
+KAction *cutToEndOfLine(const QObject *recvr, const char *slot, QObject *parent)
+{
+  return KStandardAction::create( CutToEndOfLine, recvr, slot, parent );
+}
+  
+}
+
+
Index: kdeui/actions/kstandardaction_p.h
===================================================================
--- kdeui/actions/kstandardaction_p.h	(revision 946924)
+++ kdeui/actions/kstandardaction_p.h	(working copy)
@@ -115,6 +115,30 @@
   { SwitchApplicationLanguage, KStandardShortcut::SwitchApplicationLanguage, "switch_application_language", I18N_NOOP("Switch Application &Language..."), 0, 0 },
   { AboutApp,      KStandardShortcut::AccelNone, "help_about_app", I18N_NOOP("&About %1"), 0, 0 },
   { AboutKDE,      KStandardShortcut::AccelNone, "help_about_kde", I18N_NOOP("About &KDE"), 0, "kde" },
+
+  { BackwardChar,      KStandardShortcut::BackwardChar, "move_cursor_left", I18N_NOOP("Move Character Left"), 0, 0 },
+  { ForwardChar,       KStandardShortcut::ForwardChar, "move_cursor_right", I18N_NOOP("Move Character Right"), 0, 0 },
+  { BackwardWord,      KStandardShortcut::BackwardWord, "word_left", I18N_NOOP("Move Word Left"), 0, 0 },
+  { ForwardWord,       KStandardShortcut::ForwardWord, "word_right", I18N_NOOP("Move Word Right"), 0, 0 },
+  { BackwardLine,      KStandardShortcut::BackwardLine, "move_line_up", I18N_NOOP("Move to Previous Line"), 0, 0 },
+  { ForwardLine,       KStandardShortcut::ForwardLine, "move_line_down", I18N_NOOP("Move to Next Line"), 0, 0 },
+  { BeginningOfLine,   KStandardShortcut::BeginningOfLine, "beginning_of_line", I18N_NOOP("Move to Beginning of Line"), 0, 0 },
+  { EndOfLine,         KStandardShortcut::EndOfLine, "end_of_line", I18N_NOOP("Move to End of Line"), 0, 0 },
+  { DeleteCharBack,    KStandardShortcut::DeleteCharBack, "delete_previous_character", I18N_NOOP("Delete Previous Character"), 0, 0 },
+  { DeleteCharForward, KStandardShortcut::DeleteCharForward, "delete_next_character", I18N_NOOP("Delete Next Character"), 0, 0 },
+  { DeleteWordBack,    KStandardShortcut::DeleteWordBack, "delete_word_left", I18N_NOOP("Delete Word Left"), 0, 0 },  
+  { DeleteWordForward, KStandardShortcut::DeleteWordForward, "delete_word_right", I18N_NOOP("Delete Word Right"), 0, 0 },
+  { DeleteLine,        KStandardShortcut::DeleteLine, "delete_line", I18N_NOOP("Delete Line"), 0, 0 },
+  { SelectCharBack,    KStandardShortcut::SelectCharBack, "select_char_left", I18N_NOOP("Select Character Left"), 0, 0 },
+  { SelectCharForward, KStandardShortcut::SelectCharForward, "select_char_right", I18N_NOOP("Select Character Right"), 0, 0 },
+  { SelectWordBack,    KStandardShortcut::SelectWordBack, "select_word_left", I18N_NOOP("Select Word Left"), 0, 0 },
+  { SelectWordForward, KStandardShortcut::SelectWordForward, "select_word_right", I18N_NOOP("Select Word Right"), 0, 0 },
+  { SelectLineBack,    KStandardShortcut::SelectLineBack, "select_line_up", I18N_NOOP("Select to Previous Line"), 0, 0 },
+  { SelectLineForward, KStandardShortcut::SelectLineForward, "select_line_down", I18N_NOOP("Select to Next Line"), 0, 0 },
+  { SelectToBeginOfLine, KStandardShortcut::SelectToBeginOfLine, "select_beginning_of_line", I18N_NOOP("Select to Beginning of Line"), 0, 0 },
+  { SelectToEndOfLine, KStandardShortcut::SelectToEndOfLine, "select_end_of_line", I18N_NOOP("Select to End of Line"), 0, 0 },
+  { CutToEndOfLine,    KStandardShortcut::CutToEndOfLine, "cut_end_of_line", I18N_NOOP("Cut to End of Line"), 0, 0 },
+
   { ActionNone,    KStandardShortcut::AccelNone, 0, 0, 0, 0 }
 };
 
Index: kdeui/widgets/klineedit.cpp
===================================================================
--- kdeui/widgets/klineedit.cpp	(revision 946924)
+++ kdeui/widgets/klineedit.cpp	(working copy)
@@ -738,7 +738,90 @@
       e->accept();
       return;
     }
+    else if ( KStandardShortcut::backwardChar().contains( key ) )
+    {
+      cursorBackward(false, 1);
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::forwardChar().contains( key ) )
+    {
+      cursorForward(false, 1);
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::deleteCharBack().contains( key ) )
+    {
+      cursorBackward(true, 1);
+      if ( hasSelectedText() )
+        del();
+      e->accept();
 
+      return;
+    }
+    else if ( KStandardShortcut::deleteCharForward().contains( key ) )
+    {
+      cursorForward(true, 1);
+      if ( hasSelectedText() )
+        del();
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::deleteLine().contains( key ) )
+    {
+      clear();
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::selectAll().contains( key ) )
+    {
+      selectAll();
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::selectCharBack().contains( key ) )
+    {
+      cursorBackward(true, 1);
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::selectCharForward().contains( key ) )
+    {
+      cursorForward(true, 1);
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::selectWordBack().contains( key ) )
+    {
+      cursorWordBackward(true);
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::selectWordForward().contains( key ) )
+    {
+      cursorWordForward(true);
+      e->accept();
+      return;
+    }
+    else if ( KStandardShortcut::selectToBeginOfLine().contains( key ) )
+    {
+      home(true);
+      e->accept();
+      return;
+    } 
+    else if ( KStandardShortcut::selectToEndOfLine().contains( key ) )
+    {
+      end(true);
+      e->accept();
+      return;
+    }    
+    else if ( KStandardShortcut::cutToEndOfLine().contains( key ) )
+    {
+      end(true);
+      cut();
+      e->accept();
+      return;
+    }    
 
     // Filter key-events if EchoMode is normal and
     // completion mode is not set to CompletionNone
@@ -1441,12 +1524,12 @@
         return true;
     else if (KStandardShortcut::endOfLine().contains( key ))
         return true;
-
+    else if (KStandardShortcut::selectAll().contains( key )) {
+        return true;
+    }
+    
     // Shortcut overrides for shortcuts that QLineEdit handles
     // but doesn't dare force as "stronger than kaction shortcuts"...
-    else if (e->matches(QKeySequence::SelectAll)) {
-        return true;
-    }
 #ifdef Q_WS_X11
     else if (key == Qt::CTRL + Qt::Key_E || key == Qt::CTRL + Qt::Key_U)
         return true;
