📄 jsediting.cpp
字号:
bool execPaste(KHTMLPart *part, bool userInterface, const DOMString &value){ part->pasteFromPasteboard(); return true;}#endifbool execPrint(KHTMLPart *part, bool userInterface, const DOMString &value){ part->print(); return true;}bool execRedo(KHTMLPart *part, bool userInterface, const DOMString &value){ part->redo(); return true;}bool execSelectAll(KHTMLPart *part, bool userInterface, const DOMString &value){ part->selectAll(); return true;}bool execSubscript(KHTMLPart *part, bool userInterface, const DOMString &value){ return execStyleChange(part, CSS_PROP_VERTICAL_ALIGN, "sub");}bool execSuperscript(KHTMLPart *part, bool userInterface, const DOMString &value){ return execStyleChange(part, CSS_PROP_VERTICAL_ALIGN, "super");}bool execUndo(KHTMLPart *part, bool userInterface, const DOMString &value){ part->undo(); return true;}bool execUnselect(KHTMLPart *part, bool userInterface, const DOMString &value){ part->clearSelection(); return true;}// =============================================================================================//// queryCommandEnabled implementations//// It's a bit difficult to get a clear notion of the difference between// "supported" and "enabled" from reading the Microsoft documentation, but// what little I could glean from that seems to make some sense.// Supported = The command is supported by this object.// Enabled = The command is available and enabled.bool enabled(KHTMLPart *part){ return true;}bool enabledAnySelection(KHTMLPart *part){ return part->selection().notEmpty();}#if SUPPORT_PASTEbool enabledPaste(KHTMLPart *part){ return part->canPaste();}#endifbool enabledRangeSelection(KHTMLPart *part){ return part->selection().state() == Selection::RANGE;}bool enabledRedo(KHTMLPart *part){ return part->canRedo();}bool enabledUndo(KHTMLPart *part){ return part->canUndo();}// =============================================================================================//// queryCommandIndeterm/State implementations//// It's a bit difficult to get a clear notion of what these methods are supposed// to do from reading the Microsoft documentation, but my current guess is this://// queryCommandState and queryCommandIndeterm work in concert to return// the two bits of information that are needed to tell, for instance,// if the text of a selection is bold. The answer can be "yes", "no", or// "partially".//// If this is so, then queryCommandState should return "yes" in the case where// all the text is bold and "no" for non-bold or partially-bold text.// Then, queryCommandIndeterm should return "no" in the case where// all the text is either all bold or not-bold and and "yes" for partially-bold text.KHTMLPart::TriState stateNone(KHTMLPart *part){ return KHTMLPart::falseTriState;}KHTMLPart::TriState stateBold(KHTMLPart *part){ return stateStyle(part, CSS_PROP_FONT_WEIGHT, "bold");}KHTMLPart::TriState stateItalic(KHTMLPart *part){ return stateStyle(part, CSS_PROP_FONT_STYLE, "italic");}KHTMLPart::TriState stateSubscript(KHTMLPart *part){ return stateStyle(part, CSS_PROP_VERTICAL_ALIGN, "sub");}KHTMLPart::TriState stateSuperscript(KHTMLPart *part){ return stateStyle(part, CSS_PROP_VERTICAL_ALIGN, "super");}// =============================================================================================//// queryCommandValue implementations//DOMString valueNull(KHTMLPart *part){ return DOMString();}DOMString valueBackColor(KHTMLPart *part){ return valueStyle(part, CSS_PROP_BACKGROUND_COLOR);}DOMString valueFontName(KHTMLPart *part){ return valueStyle(part, CSS_PROP_FONT_FAMILY);}DOMString valueFontSize(KHTMLPart *part){ return valueStyle(part, CSS_PROP_FONT_SIZE);}DOMString valueForeColor(KHTMLPart *part){ return valueStyle(part, CSS_PROP_COLOR);}// =============================================================================================QDict<CommandImp> createCommandDictionary(){ struct EditorCommand { const char *name; CommandImp imp; }; static const EditorCommand commands[] = { { "backColor", { execBackColor, enabled, stateNone, valueBackColor } }, { "bold", { execBold, enabledAnySelection, stateBold, valueNull } }, { "copy", { execCopy, enabledRangeSelection, stateNone, valueNull } }, { "cut", { execCut, enabledRangeSelection, stateNone, valueNull } }, { "delete", { execDelete, enabledAnySelection, stateNone, valueNull } }, { "fontName", { execFontName, enabledAnySelection, stateNone, valueFontName } }, { "fontSize", { execFontSize, enabledAnySelection, stateNone, valueFontSize } }, { "foreColor", { execForeColor, enabledAnySelection, stateNone, valueForeColor } }, { "indent", { execIndent, enabledAnySelection, stateNone, valueNull } }, { "insertNewline", { execInsertNewline, enabledAnySelection, stateNone, valueNull } }, { "insertParagraph", { execInsertParagraph, enabledAnySelection, stateNone, valueNull } }, { "insertText", { execInsertText, enabledAnySelection, stateNone, valueNull } }, { "italic", { execItalic, enabledAnySelection, stateItalic, valueNull } }, { "justifyCenter", { execJustifyCenter, enabledAnySelection, stateNone, valueNull } }, { "justifyFull", { execJustifyFull, enabledAnySelection, stateNone, valueNull } }, { "justifyLeft", { execJustifyLeft, enabledAnySelection, stateNone, valueNull } }, { "justifyNone", { execJustifyLeft, enabledAnySelection, stateNone, valueNull } }, { "justifyRight", { execJustifyRight, enabledAnySelection, stateNone, valueNull } }, { "outdent", { execOutdent, enabledAnySelection, stateNone, valueNull } },#if SUPPORT_PASTE { "paste", { execPaste, enabledPaste, stateNone, valueNull } },#endif { "print", { execPrint, enabled, stateNone, valueNull } }, { "redo", { execRedo, enabledRedo, stateNone, valueNull } }, { "selectAll", { execSelectAll, enabled, stateNone, valueNull } }, { "subscript", { execSubscript, enabledAnySelection, stateSubscript, valueNull } }, { "superscript", { execSuperscript, enabledAnySelection, stateSuperscript, valueNull } }, { "undo", { execUndo, enabledUndo, stateNone, valueNull } }, { "unselect", { execUnselect, enabledAnySelection, stateNone, valueNull } } // // The "unsupported" commands are listed here since they appear in the Microsoft // documentation used as the basis for the list. // // 2d-position (not supported) // absolutePosition (not supported) // blockDirLTR (not supported) // blockDirRTL (not supported) // browseMode (not supported) // clearAuthenticationCache (not supported) // createBookmark (not supported) // createLink (not supported) // dirLTR (not supported) // dirRTL (not supported) // editMode (not supported) // formatBlock (not supported) // inlineDirLTR (not supported) // inlineDirRTL (not supported) // insertButton (not supported) // insertFieldSet (not supported) // insertHorizontalRule (not supported) // insertIFrame (not supported) // insertImage (not supported) // insertInputButton (not supported) // insertInputCheckbox (not supported) // insertInputFileUpload (not supported) // insertInputHidden (not supported) // insertInputImage (not supported) // insertInputPassword (not supported) // insertInputRadio (not supported) // insertInputReset (not supported) // insertInputSubmit (not supported) // insertInputText (not supported) // insertMarquee (not supported) // insertOrderedList (not supported) // insertSelectDropDown (not supported) // insertSelectListBox (not supported) // insertTextArea (not supported) // insertUnorderedList (not supported) // liveResize (not supported) // multipleSelection (not supported) // open (not supported) // overwrite (not supported) // playImage (not supported) // refresh (not supported) // removeFormat (not supported) // removeParaFormat (not supported) // saveAs (not supported) // sizeToControl (not supported) // sizeToControlHeight (not supported) // sizeToControlWidth (not supported) // stop (not supported) // stopimage (not supported) // strikethrough (not supported) // unbookmark (not supported) // underline (not supported) // unlink (not supported) }; const int numCommands = sizeof(commands) / sizeof(commands[0]); QDict<CommandImp> commandDictionary(numCommands, false); // case-insensitive dictionary for (int i = 0; i < numCommands; ++i) { commandDictionary.insert(commands[i].name, &commands[i].imp); } return commandDictionary;}} // anonymous namespace} // namespace DOM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -