|
16 | 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | */ |
18 | 18 |
|
| 19 | +#include <functional> |
19 | 20 | #include <cstdio> |
20 | 21 | #include <cstdlib> |
21 | 22 | #include <cstring> |
|
71 | 72 |
|
72 | 73 | class QCloseEvent; |
73 | 74 |
|
| 75 | +#include <browser-types.hpp> |
74 | 76 | #include <ebook.h> |
75 | 77 |
|
76 | 78 | #include "config.h" |
@@ -136,7 +138,7 @@ MainWindow::MainWindow( const QStringList& arguments ) |
136 | 138 | connect(m_viewWindowMgr, &ViewWindowMgr::urlChanged, |
137 | 139 | this, &MainWindow::onUrlChanged); |
138 | 140 | connect(m_viewWindowMgr, &ViewWindowMgr::linkClicked, |
139 | | - this, &MainWindow::activateUrl); |
| 141 | + this, &MainWindow::onLinkClicked); |
140 | 142 |
|
141 | 143 | // Add navigation dock |
142 | 144 | m_navPanel->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea ); |
@@ -424,19 +426,19 @@ void MainWindow::activateUrl( const QUrl& link ) |
424 | 426 | Qt::KeyboardModifiers mods = QApplication::keyboardModifiers(); |
425 | 427 |
|
426 | 428 | if ( mods & Qt::ShiftModifier ) |
427 | | - openPage( link, OPF_NEW_TAB | OPF_CONTENT_TREE ); |
| 429 | + openPage( link, UBrowser::OPEN_IN_NEW ); |
428 | 430 | else if ( mods & Qt::ControlModifier ) |
429 | | - openPage( link, OPF_NEW_TAB | OPF_BACKGROUND ); |
| 431 | + openPage( link, UBrowser::OPEN_IN_BACKGROUND ); |
430 | 432 | else |
431 | | - openPage( link, OPF_CONTENT_TREE ); |
| 433 | + openPage( link, UBrowser::OPEN_IN_CURRENT ); |
432 | 434 | } |
433 | 435 |
|
434 | | -bool MainWindow::openPage( const QUrl& url, unsigned int flags ) |
| 436 | +bool MainWindow::openPage(const QUrl& url, UBrowser::OpenMode mode ) |
435 | 437 | { |
436 | | - return onLinkClicked( currentBrowser(), url, flags ); |
| 438 | + return onLinkClicked( currentBrowser(), url, mode ); |
437 | 439 | } |
438 | 440 |
|
439 | | -bool MainWindow::onLinkClicked( ViewWindow* browser, const QUrl& url, unsigned int flags ) |
| 441 | +bool MainWindow::onLinkClicked( ViewWindow* browser, const QUrl& url, UBrowser::OpenMode mode ) |
440 | 442 | { |
441 | 443 | QString otherlink; |
442 | 444 |
|
@@ -470,22 +472,23 @@ bool MainWindow::onLinkClicked( ViewWindow* browser, const QUrl& url, unsigned i |
470 | 472 | return false; // do not change the current page. |
471 | 473 | } |
472 | 474 |
|
473 | | - if ( flags & OPF_NEW_TAB ) |
| 475 | + |
| 476 | + if ( mode == UBrowser::OPEN_IN_NEW || mode == UBrowser::OPEN_IN_BACKGROUND ) |
474 | 477 | { |
475 | 478 | qreal zoom = currentBrowser()->zoomFactor(); |
476 | | - browser = m_viewWindowMgr->addNewTab( !(flags & OPF_BACKGROUND) ); |
| 479 | + browser = m_viewWindowMgr->addNewTab( mode != UBrowser::OPEN_IN_BACKGROUND ); |
477 | 480 | browser->setZoomFactor( zoom ); |
478 | 481 | } |
479 | 482 |
|
480 | 483 | browser->load( url ); |
481 | 484 |
|
482 | | - // Open all the tree items to show current item (if needed) |
483 | | - if ( (flags & OPF_CONTENT_TREE) != 0 ) |
| 485 | + if ( mode != UBrowser::OPEN_IN_BACKGROUND ) |
| 486 | + { |
| 487 | + // Open all the tree items to show current item (if needed) |
484 | 488 | m_navPanel->findUrlInContents( url ); |
485 | | - |
486 | | - // Focus on the view window so keyboard scroll works; do not do it for the background tabs |
487 | | - if ( (flags & OPF_BACKGROUND) == 0 ) |
| 489 | + // Focus on the view window so keyboard scroll works; do not do it for the background tabs |
488 | 490 | browser->setFocus( Qt::OtherFocusReason ); |
| 491 | + } |
489 | 492 |
|
490 | 493 | return true; |
491 | 494 | } |
@@ -729,12 +732,12 @@ QUrl MainWindow::getNewTabLink() const |
729 | 732 |
|
730 | 733 | void MainWindow::onOpenPageInNewTab( ) |
731 | 734 | { |
732 | | - openPage( getNewTabLink(), OPF_NEW_TAB | OPF_CONTENT_TREE ); |
| 735 | + openPage( getNewTabLink(), UBrowser::OPEN_IN_NEW ); |
733 | 736 | } |
734 | 737 |
|
735 | 738 | void MainWindow::onOpenPageInNewBackgroundTab( ) |
736 | 739 | { |
737 | | - openPage( getNewTabLink(), OPF_NEW_TAB | OPF_BACKGROUND ); |
| 740 | + openPage( getNewTabLink(), UBrowser::OPEN_IN_BACKGROUND ); |
738 | 741 | } |
739 | 742 |
|
740 | 743 | void MainWindow::browserChanged(ViewWindow* browser) |
|
0 commit comments