Changeset 35537 in webkit
- Timestamp:
- Aug 4, 2008 9:02:19 AM (16 years ago)
- Location:
- trunk/WebKit/qt
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/qt/Api/qwebpage.cpp
r35535 r35537 92 92 using namespace WebCore; 93 93 94 // Lookup table mapping QWebPage::WebActions to the associated Editor commands 95 static const char* editorCommandWebActions[] = 96 { 97 0, // OpenLink, 98 99 0, // OpenLinkInNewWindow, 100 0, // OpenFrameInNewWindow, 101 102 0, // DownloadLinkToDisk, 103 0, // CopyLinkToClipboard, 104 105 0, // OpenImageInNewWindow, 106 0, // DownloadImageToDisk, 107 0, // CopyImageToClipboard, 108 109 0, // Back, 110 0, // Forward, 111 0, // Stop, 112 0, // Reload, 113 114 "Cut", // Cut, 115 "Copy", // Copy, 116 "Paste", // Paste, 117 118 "Undo", // Undo, 119 "Redo", // Redo, 120 "MoveForward", // MoveToNextChar, 121 "MoveBackward", // MoveToPreviousChar, 122 "MoveWordForward", // MoveToNextWord, 123 "MoveWordBackward", // MoveToPreviousWord, 124 "MoveDown", // MoveToNextLine, 125 "MoveUp", // MoveToPreviousLine, 126 "MoveToBeginningOfLine", // MoveToStartOfLine, 127 "MoveToEndOfLine", // MoveToEndOfLine, 128 "MoveToBeginningOfParagraph", // MoveToStartOfBlock, 129 "MoveToEndOfParagraph", // MoveToEndOfBlock, 130 "MoveToBeginningOfDocument", // MoveToStartOfDocument, 131 "MoveToEndOfDocument", // MoveToEndOfDocument, 132 "MoveForwardAndModifySelection", // SelectNextChar, 133 "MoveBackwardAndModifySelection", // SelectPreviousChar, 134 "MoveWordForwardAndModifySelection", // SelectNextWord, 135 "MoveWordBackwardAndModifySelection", // SelectPreviousWord, 136 "MoveDownAndModifySelection", // SelectNextLine, 137 "MoveUpAndModifySelection", // SelectPreviousLine, 138 "MoveToBeginningOfLineAndModifySelection", // SelectStartOfLine, 139 "MoveToEndOfLineAndModifySelection", // SelectEndOfLine, 140 "MoveToBeginningOfParagraphAndModifySelection", // SelectStartOfBlock, 141 "MoveToEndOfParagraphAndModifySelection", // SelectEndOfBlock, 142 "MoveToBeginningOfDocumentAndModifySelection", //SelectStartOfDocument, 143 "MoveToEndOfDocumentAndModifySelection", // SelectEndOfDocument, 144 "DeleteWordBackward", // DeleteStartOfWord, 145 "DeleteWordForward", // DeleteEndOfWord, 146 147 0, // SetTextDirectionDefault, 148 0, // SetTextDirectionLeftToRight, 149 0, // SetTextDirectionRightToLeft, 150 151 "ToggleBold", // ToggleBold, 152 "ToggleItalic", // ToggleItalic, 153 "ToggleUnderline", // ToggleUnderline, 154 155 0, // InspectElement, 156 157 0 // WebActionCount 158 }; 159 160 // Lookup the appropriate editor command to use for WebAction \a action 161 static const char* editorCommandForWebActions(QWebPage::WebAction action) 162 { 163 if ((action > QWebPage::NoWebAction) && (action < int(sizeof(editorCommandWebActions) / sizeof(const char*)))) 164 return editorCommandWebActions[action]; 165 166 return 0; 167 } 168 94 169 #ifndef QT_NO_CURSOR 95 170 SetCursorEvent::SetCursorEvent(const QCursor& cursor) … … 326 401 327 402 bool enabled = a->isEnabled(); 403 bool checked = a->isChecked(); 328 404 329 405 switch (action) { … … 353 429 // those two are handled by QUndoStack 354 430 break; 431 case QWebPage::ToggleBold: 432 case QWebPage::ToggleItalic: 433 case QWebPage::ToggleUnderline: 434 enabled = editor->canEditRichly(); 435 if (enabled) 436 checked = editor->command(editorCommandForWebActions(action)).state() != FalseTriState; 437 else 438 checked = false; 439 break; 355 440 default: break; 356 441 } 357 442 358 443 a->setEnabled(enabled); 444 445 if (a->isCheckable()) 446 a->setChecked(checked); 359 447 } 360 448 … … 372 460 updateAction(QWebPage::Copy); 373 461 updateAction(QWebPage::Paste); 462 updateAction(QWebPage::ToggleBold); 463 updateAction(QWebPage::ToggleItalic); 464 updateAction(QWebPage::ToggleUnderline); 374 465 } 375 466 … … 1270 1361 mainFrame()->d->frame->loader()->reload(); 1271 1362 break; 1272 case Cut:1273 command = "Cut";1274 break;1275 case Copy:1276 command = "Copy";1277 break;1278 case Paste:1279 command = "Paste";1280 break;1281 1282 case Undo:1283 command = "Undo";1284 break;1285 case Redo:1286 command = "Redo";1287 break;1288 1289 case MoveToNextChar:1290 command = "MoveForward";1291 break;1292 case MoveToPreviousChar:1293 command = "MoveBackward";1294 break;1295 case MoveToNextWord:1296 command = "MoveWordForward";1297 break;1298 case MoveToPreviousWord:1299 command = "MoveWordBackward";1300 break;1301 case MoveToNextLine:1302 command = "MoveDown";1303 break;1304 case MoveToPreviousLine:1305 command = "MoveUp";1306 break;1307 case MoveToStartOfLine:1308 command = "MoveToBeginningOfLine";1309 break;1310 case MoveToEndOfLine:1311 command = "MoveToEndOfLine";1312 break;1313 case MoveToStartOfBlock:1314 command = "MoveToBeginningOfParagraph";1315 break;1316 case MoveToEndOfBlock:1317 command = "MoveToEndOfParagraph";1318 break;1319 case MoveToStartOfDocument:1320 command = "MoveToBeginningOfDocument";1321 break;1322 case MoveToEndOfDocument:1323 command = "MoveToEndOfDocument";1324 break;1325 case SelectNextChar:1326 command = "MoveForwardAndModifySelection";1327 break;1328 case SelectPreviousChar:1329 command = "MoveBackwardAndModifySelection";1330 break;1331 case SelectNextWord:1332 command = "MoveWordForwardAndModifySelection";1333 break;1334 case SelectPreviousWord:1335 command = "MoveWordBackwardAndModifySelection";1336 break;1337 case SelectNextLine:1338 command = "MoveDownAndModifySelection";1339 break;1340 case SelectPreviousLine:1341 command = "MoveUpAndModifySelection";1342 break;1343 case SelectStartOfLine:1344 command = "MoveToBeginningOfLineAndModifySelection";1345 break;1346 case SelectEndOfLine:1347 command = "MoveToEndOfLineAndModifySelection";1348 break;1349 case SelectStartOfBlock:1350 command = "MoveToBeginningOfParagraphAndModifySelection";1351 break;1352 case SelectEndOfBlock:1353 command = "MoveToEndOfParagraphAndModifySelection";1354 break;1355 case SelectStartOfDocument:1356 command = "MoveToBeginningOfDocumentAndModifySelection";1357 break;1358 case SelectEndOfDocument:1359 command = "MoveToEndOfDocumentAndModifySelection";1360 break;1361 case DeleteStartOfWord:1362 command = "DeleteWordBackward";1363 break;1364 case DeleteEndOfWord:1365 command = "DeleteWordForward";1366 break;1367 1368 1363 case SetTextDirectionDefault: 1369 1364 editor->setBaseWritingDirection(NaturalWritingDirection); … … 1375 1370 editor->setBaseWritingDirection(RightToLeftWritingDirection); 1376 1371 break; 1377 1378 case ToggleBold:1379 command = "ToggleBold";1380 break;1381 case ToggleItalic:1382 command = "ToggleItalic";1383 break;1384 case ToggleUnderline:1385 editor->toggleUnderline();1386 break;1387 1388 1372 case InspectElement: 1389 1373 d->page->inspectorController()->inspect(d->hitTestResult.d->innerNonSharedNode.get()); 1390 1374 break; 1391 1392 default: break; 1375 default: 1376 command = editorCommandForWebActions(action); 1377 break; 1393 1378 } 1394 1379 … … 1780 1765 } 1781 1766 } 1767 1768 d->updateEditorActions(); 1782 1769 } 1783 1770 } -
trunk/WebKit/qt/ChangeLog
r35536 r35537 1 2008-08-04 Erik Bunce <elbunce@thehive.com> 2 3 Reviewed by Simon. 4 5 https://bugs.webkit.org/show_bug.cgi?id=20221 6 7 Add updateAction() support to ToggleBold, ToggleItalic, and ToggleUnderline. 8 Add lookup table for mapping web actions to editor commands. 9 10 * Api/qwebpage.cpp: 11 (editorCommandForWebActions): 12 (QWebPagePrivate::updateAction): 13 (QWebPagePrivate::updateEditorActions): 14 (QWebPage::triggerAction): 15 (QWebPage::setEditable): 16 1 17 2008-08-03 Ariya Hidayat <ariya.hidayat@trolltech.com> 2 18
Note: See TracChangeset
for help on using the changeset viewer.