Changeset 88522 in vbox for trunk/src/VBox
- Timestamp:
- Apr 15, 2021 11:24:13 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143789
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp
r88496 r88522 183 183 184 184 void sigSourceChanged(const QUrl &url); 185 void sigCopyAvailableChanged(bool fAvailable); 185 186 void sigTitleUpdate(const QString &strTitle); 186 187 void sigOpenLinkInNewTab(const QUrl &url, bool fBackground); … … 188 189 void sigLinkHighlighted(const QString &strLink); 189 190 void sigZoomPercentageChanged(int iPercentage); 191 void sigFindInPageWidgetVisibilityChanged(bool fVisible); 190 192 191 193 public: … … 203 205 void setZoomPercentage(int iZoomPercentage); 204 206 void setHelpFileList(const QList<QUrl> &helpFileList); 207 void copySelectedText() const; 208 bool hasSelectedText() const; 209 bool isFindInPageWidgetVisible() const; 210 211 public slots: 212 213 void sltHandleFindInPageAction(bool fToggled); 205 214 206 215 private slots: … … 209 218 void sltHandleForwardAction(); 210 219 void sltHandleBackwardAction(); 211 void sltHandleFindInPageAction(bool fToggled);212 220 void sltHandleHistoryChanged(); 213 221 void sltHandleAddressBarIndexChanged(int index); 214 222 void sltHandleAddBookmarkAction(); 215 223 void sltAnchorClicked(const QUrl &link); 216 void slt CloseFindInPageWidget();224 void sltFindInPageWidgetVisibilityChanged(bool fVisible); 217 225 218 226 private: … … 255 263 void sigLinkHighlighted(const QString &strLink); 256 264 void sigZoomPercentageChanged(int iPercentage); 265 void sigCopyAvailableChanged(bool fAvailable); 266 void sigFindInPageWidgetVisibilityChanged(bool fVisible); 257 267 258 268 public: … … 277 287 void setZoomPercentage(int iZoomPercentage); 278 288 void setHelpFileList(const QList<QUrl> &helpFileList); 289 void copySelectedText() const; 290 bool hasCurrentTabSelectedText() const; 291 bool isFindInPageWidgetVisible() const; 292 void toggleFindInPage(bool fTrigger); 279 293 280 294 public slots: … … 293 307 void sltShowTabBarContextMenu(const QPoint &pos); 294 308 void sltHandleCloseOtherTabsContextMenuAction(); 309 void sltCopyAvailableChanged(bool fAvailable); 295 310 296 311 private: … … 599 614 } 600 615 616 void UIHelpBrowserTab::copySelectedText() const 617 { 618 if (m_pContentViewer && m_pContentViewer->hasSelectedText()) 619 m_pContentViewer->copy(); 620 } 621 622 bool UIHelpBrowserTab::hasSelectedText() const 623 { 624 if (m_pContentViewer) 625 return m_pContentViewer->textCursor().hasSelection(); 626 return false; 627 } 628 629 bool UIHelpBrowserTab::isFindInPageWidgetVisible() const 630 { 631 if (m_pContentViewer) 632 return m_pContentViewer->isFindInPageWidgetVisible(); 633 return false; 634 } 635 601 636 int UIHelpBrowserTab::zoomPercentage() const 602 637 { … … 632 667 connect(m_pContentViewer, &UIHelpViewer::sigOpenLinkInNewTab, 633 668 this, &UIHelpBrowserTab::sigOpenLinkInNewTab); 634 connect(m_pContentViewer, &UIHelpViewer::sigCloseFindInPageWidget,635 this, &UIHelpBrowserTab::sltCloseFindInPageWidget);636 669 connect(m_pContentViewer, &UIHelpViewer::sigGoBackward, 637 670 this, &UIHelpBrowserTab::sltHandleBackwardAction); … … 646 679 connect(m_pContentViewer, &UIHelpViewer::sigZoomPercentageChanged, 647 680 this, &UIHelpBrowserTab::sigZoomPercentageChanged); 681 connect(m_pContentViewer, &UIHelpViewer::copyAvailable, 682 this, &UIHelpBrowserTab::sigCopyAvailableChanged); 683 connect(m_pContentViewer, &UIHelpViewer::sigFindInPageWidgetToogle, 684 this, &UIHelpBrowserTab::sltFindInPageWidgetVisibilityChanged); 648 685 649 686 m_pContentViewer->setSource(initialUrl); … … 737 774 { 738 775 if (m_pContentViewer) 739 m_pContentViewer-> sltToggleFindInPageWidget(fToggled);776 m_pContentViewer->toggleFindInPageWidget(fToggled); 740 777 } 741 778 … … 795 832 } 796 833 797 void UIHelpBrowserTab::slt CloseFindInPageWidget()834 void UIHelpBrowserTab::sltFindInPageWidgetVisibilityChanged(bool fVisible) 798 835 { 799 836 if (m_pFindInPageAction) 800 m_pFindInPageAction->setChecked(false); 801 } 802 837 { 838 m_pFindInPageAction->blockSignals(true); 839 m_pFindInPageAction->setChecked(fVisible); 840 m_pFindInPageAction->blockSignals(false); 841 } 842 emit sigFindInPageWidgetVisibilityChanged(fVisible); 843 } 803 844 804 845 /********************************************************************************************************************************* … … 845 886 connect(pTabWidget, &UIHelpBrowserTab::sigLinkHighlighted, 846 887 this, &UIHelpBrowserTabManager::sigLinkHighlighted); 888 connect(pTabWidget, &UIHelpBrowserTab::sigCopyAvailableChanged, 889 this, &UIHelpBrowserTabManager::sltCopyAvailableChanged); 890 connect(pTabWidget, &UIHelpBrowserTab::sigFindInPageWidgetVisibilityChanged, 891 this, &UIHelpBrowserTabManager::sigFindInPageWidgetVisibilityChanged); 847 892 848 893 pTabWidget->setZoomPercentage(zoomPercentage()); … … 1008 1053 } 1009 1054 1055 void UIHelpBrowserTabManager::copySelectedText() const 1056 { 1057 UIHelpBrowserTab *pTab = qobject_cast<UIHelpBrowserTab*>(currentWidget()); 1058 if (!pTab) 1059 return; 1060 return pTab->copySelectedText(); 1061 } 1062 1063 bool UIHelpBrowserTabManager::hasCurrentTabSelectedText() const 1064 { 1065 UIHelpBrowserTab *pTab = qobject_cast<UIHelpBrowserTab*>(currentWidget()); 1066 if (!pTab) 1067 return false; 1068 return pTab->hasSelectedText(); 1069 } 1070 1071 bool UIHelpBrowserTabManager::isFindInPageWidgetVisible() const 1072 { 1073 UIHelpBrowserTab *pTab = qobject_cast<UIHelpBrowserTab*>(currentWidget()); 1074 if (!pTab) 1075 return false; 1076 return pTab->isFindInPageWidgetVisible(); 1077 } 1078 1079 void UIHelpBrowserTabManager::toggleFindInPage(bool fTrigger) 1080 { 1081 UIHelpBrowserTab *pTab = qobject_cast<UIHelpBrowserTab*>(currentWidget()); 1082 if (pTab) 1083 pTab->sltHandleFindInPageAction(fTrigger); 1084 } 1085 1010 1086 void UIHelpBrowserTabManager::sltHandletabTitleChange(const QString &strTitle) 1011 1087 { … … 1027 1103 addNewTab(url, fBackground); 1028 1104 updateTabUrlTitleList(); 1105 } 1106 1107 void UIHelpBrowserTabManager::sltCopyAvailableChanged(bool fAvailable) 1108 { 1109 UIHelpBrowserTab *pTab = qobject_cast<UIHelpBrowserTab*>(currentWidget()); 1110 /* Emit coresponding signal only if sender is the current tab: */ 1111 if (pTab && sender() == pTab) 1112 emit sigCopyAvailableChanged(fAvailable); 1029 1113 } 1030 1114 … … 1147 1231 , m_pSplitter(0) 1148 1232 , m_pFileMenu(0) 1233 , m_pEditMenu(0) 1149 1234 , m_pViewMenu(0) 1150 1235 , m_pTabsMenu(0) … … 1162 1247 , m_pShowHideToolBarAction(0) 1163 1248 , m_pShowHideStatusBarAction(0) 1249 , m_pCopySelectedTextAction(0) 1250 , m_pFindInPageAction(0) 1164 1251 , m_pZoomMenuAction(0) 1165 1252 , m_fModelContentCreated(false) … … 1181 1268 menuList 1182 1269 << m_pFileMenu 1270 << m_pEditMenu 1183 1271 << m_pViewMenu 1184 1272 << m_pTabsMenu; … … 1237 1325 this, &UIHelpBrowserWidget::sltHandleWidgetVisibilityToggle); 1238 1326 1327 m_pCopySelectedTextAction = new QAction(this); 1328 connect(m_pCopySelectedTextAction, &QAction::triggered, 1329 this, &UIHelpBrowserWidget::sltCopySelectedText); 1330 m_pCopySelectedTextAction->setShortcut(QString("Ctrl+C")); 1331 1332 m_pFindInPageAction = new QAction(this); 1333 m_pFindInPageAction->setCheckable(true); 1334 m_pFindInPageAction->setChecked(false); 1335 connect(m_pFindInPageAction, &QAction::triggered, 1336 this, &UIHelpBrowserWidget::sltFindInPage); 1337 m_pFindInPageAction->setShortcut(QString("Ctrl+F")); 1239 1338 1240 1339 m_pPrintAction = new QAction(this); … … 1289 1388 1290 1389 connect(m_pTabManager, &UIHelpBrowserTabManager::sigSourceChanged, 1291 this, &UIHelpBrowserWidget::slt HandleHelpBrowserViewerSourceChange);1390 this, &UIHelpBrowserWidget::sltViewerSourceChange); 1292 1391 connect(m_pTabManager, &UIHelpBrowserTabManager::sigAddBookmark, 1293 1392 this, &UIHelpBrowserWidget::sltAddNewBookmark); … … 1300 1399 connect(m_pTabManager, &UIHelpBrowserTabManager::sigZoomPercentageChanged, 1301 1400 this, &UIHelpBrowserWidget::sltZoomPercentageChanged); 1401 connect(m_pTabManager, &UIHelpBrowserTabManager::sigCopyAvailableChanged, 1402 this, &UIHelpBrowserWidget::sltCopyAvailableChanged); 1403 connect(m_pTabManager, &UIHelpBrowserTabManager::sigFindInPageWidgetVisibilityChanged, 1404 this, &UIHelpBrowserWidget::sltFindInPageWidgetVisibilityChanged); 1302 1405 1303 1406 connect(m_pHelpEngine, &QHelpEngine::setupFinished, … … 1386 1489 { 1387 1490 m_pFileMenu = new QMenu(tr("&File"), this); 1491 m_pEditMenu = new QMenu(tr("&Edit"), this); 1388 1492 m_pViewMenu = new QMenu(tr("&View"), this); 1389 1493 m_pTabsMenu = new QMenu(tr("&Tabs"), this); … … 1395 1499 if (m_pQuitAction) 1396 1500 m_pFileMenu->addAction(m_pQuitAction); 1501 1502 if (m_pCopySelectedTextAction) 1503 m_pEditMenu->addAction(m_pCopySelectedTextAction); 1504 if(m_pFindInPageAction) 1505 m_pEditMenu->addAction(m_pFindInPageAction); 1397 1506 1398 1507 if (m_pZoomMenuAction) … … 1531 1640 if (m_pQuitAction) 1532 1641 m_pQuitAction->setText(tr("&Quit")); 1642 1643 if (m_pCopySelectedTextAction) 1644 m_pCopySelectedTextAction->setText(tr("&Copy Selected Text")); 1645 if (m_pFindInPageAction) 1646 m_pFindInPageAction->setText(tr("&Find in Page")); 1533 1647 } 1534 1648 … … 1572 1686 else if (sender() == m_pShowHideStatusBarAction) 1573 1687 emit sigStatusBarVisible(fToggled); 1688 } 1689 1690 void UIHelpBrowserWidget::sltCopySelectedText() 1691 { 1692 if (m_pTabManager) 1693 m_pTabManager->copySelectedText(); 1694 } 1695 1696 void UIHelpBrowserWidget::sltFindInPage(bool fChecked) 1697 { 1698 if (m_pTabManager) 1699 m_pTabManager->toggleFindInPage(fChecked); 1700 } 1701 1702 void UIHelpBrowserWidget::sltCopyAvailableChanged(bool fAvailable) 1703 { 1704 if (m_pCopySelectedTextAction) 1705 m_pCopySelectedTextAction->setEnabled(fAvailable); 1706 } 1707 1708 void UIHelpBrowserWidget::sltFindInPageWidgetVisibilityChanged(bool fVisible) 1709 { 1710 if (m_pFindInPageAction) 1711 { 1712 m_pFindInPageAction->blockSignals(true); 1713 m_pFindInPageAction->setChecked(fVisible); 1714 m_pFindInPageAction->blockSignals(false); 1715 } 1574 1716 } 1575 1717 … … 1605 1747 } 1606 1748 1607 void UIHelpBrowserWidget::slt HandleHelpBrowserViewerSourceChange(const QUrl &source)1749 void UIHelpBrowserWidget::sltViewerSourceChange(const QUrl &source) 1608 1750 { 1609 1751 if (m_fModelContentCreated && m_pContentWidget && source.isValid() && m_pContentModel) … … 1626 1768 m_fModelContentCreated = true; 1627 1769 if (m_pTabManager) 1628 slt HandleHelpBrowserViewerSourceChange(m_pTabManager->currentSource());1770 sltViewerSourceChange(m_pTabManager->currentSource()); 1629 1771 } 1630 1772 … … 1834 1976 return; 1835 1977 list[iIndex+3]->setIcon(UIIconPool::iconSet(":/help_browser_star_16px.png")); 1978 1979 if (m_pTabManager) 1980 { 1981 if (m_pCopySelectedTextAction) 1982 m_pCopySelectedTextAction->setEnabled(m_pTabManager->hasCurrentTabSelectedText()); 1983 if (m_pFindInPageAction) 1984 m_pFindInPageAction->setChecked(m_pTabManager->isFindInPageWidgetVisible()); 1985 } 1836 1986 } 1837 1987 -
trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.h
r88470 r88522 85 85 void sltHandleSearchingStarted(); 86 86 void sltHandleSearchStart(); 87 void slt HandleHelpBrowserViewerSourceChange(const QUrl &source);87 void sltViewerSourceChange(const QUrl &source); 88 88 void sltOpenLinkWithUrl(const QUrl &url); 89 89 void sltShowLinksContextMenu(const QPoint &pos); … … 97 97 void sltHandleCurrentTabChanged(int iIndex); 98 98 void sltZoomPercentageChanged(int iPercentage); 99 void sltCopySelectedText(); 100 void sltCopyAvailableChanged(bool fAvailable); 101 void sltFindInPage(bool fChecked); 102 void sltFindInPageWidgetVisibilityChanged(bool fVisible); 99 103 100 104 private: … … 152 156 QSplitter *m_pSplitter; 153 157 QMenu *m_pFileMenu; 158 QMenu *m_pEditMenu; 154 159 QMenu *m_pViewMenu; 155 160 QMenu *m_pTabsMenu; … … 168 173 QAction *m_pShowHideToolBarAction; 169 174 QAction *m_pShowHideStatusBarAction; 175 QAction *m_pCopySelectedTextAction; 176 QAction *m_pFindInPageAction; 170 177 UIZoomMenuAction *m_pZoomMenuAction; 171 178 -
trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.cpp
r88517 r88522 354 354 this, &UIHelpViewer::sltSelectNextMatch); 355 355 connect(m_pFindInPageWidget, &UIFindInPageWidget::sigClose, 356 this, &UIHelpViewer::s igCloseFindInPageWidget);356 this, &UIHelpViewer::sltCloseFindInPageWidget); 357 357 358 358 m_defaultCursor = cursor(); … … 408 408 } 409 409 410 void UIHelpViewer:: sltToggleFindInPageWidget(bool fVisible)410 void UIHelpViewer::toggleFindInPageWidget(bool fVisible) 411 411 { 412 412 if (!m_pFindInPageWidget) 413 413 return; 414 414 415 /* Closing the find in page widget causes QTextBrowser to jump to the top of the document. This hack puts it back into position: */ 415 416 int iPosition = verticalScrollBar()->value(); … … 432 433 else 433 434 m_pFindInPageWidget->setFocus(); 435 emit sigFindInPageWidgetToogle(fVisible); 436 } 437 438 void UIHelpViewer::sltToggleFindInPageWidget(bool fVisible) 439 { 440 clearOverlay(); 441 toggleFindInPageWidget(fVisible); 442 } 443 444 void UIHelpViewer::sltCloseFindInPageWidget() 445 { 446 sltToggleFindInPageWidget(false); 434 447 } 435 448 … … 494 507 } 495 508 496 bool UIHelpViewer:: isInOverlayMode() const497 { 498 return m_fOverlayMode;509 bool UIHelpViewer::hasSelectedText() const 510 { 511 return textCursor().hasSelection(); 499 512 } 500 513 … … 993 1006 viewport()->setCursor(m_defaultCursor); 994 1007 emit sigOverlayModeChanged(true); 1008 toggleFindInPageWidget(false); 995 1009 } 996 1010 } 997 1011 } 998 1012 1013 999 1014 #include "UIHelpViewer.moc" 1000 1015 -
trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpViewer.h
r88496 r88522 44 44 45 45 void sigOpenLinkInNewTab(const QUrl &url, bool fBackground); 46 void sig CloseFindInPageWidget();46 void sigFindInPageWidgetToogle(bool fVisible); 47 47 void sigFontPointSizeChanged(int iFontPointSize); 48 48 void sigGoBackward(); … … 73 73 void setZoomPercentage(int iZoomPercentage); 74 74 void setHelpFileList(const QList<QUrl> &helpFileList); 75 bool isInOverlayMode() const; 76 75 bool hasSelectedText() const; 77 76 static const QPair<int, int> zoomPercentageMinMax; 78 79 public slots: 80 81 void sltToggleFindInPageWidget(bool fVisible); 77 void toggleFindInPageWidget(bool fVisible); 82 78 83 79 protected: … … 103 99 void sltSelectPreviousMatch(); 104 100 void sltSelectNextMatch(); 101 void sltToggleFindInPageWidget(bool fVisible); 102 void sltCloseFindInPageWidget(); 105 103 106 104 private: … … 110 108 qreal m_fInitialWidth; 111 109 qreal m_fScaledWidth; 112 //int m_iPosition;113 110 QTextCursor m_textCursor; 114 111 QPixmap m_pixmap;
Note:
See TracChangeset
for help on using the changeset viewer.