diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2010-07-26 19:07:25 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2010-07-26 19:07:25 +0200 |
commit | 96807aee813280c195224455c85d6c3e6d180c4e (patch) | |
tree | 2b5a10a23034ced528bd5c580b8cf722cb06bf8d | |
parent | SVN_SILENT made messages (.desktop file) (diff) | |
download | rekonq-96807aee813280c195224455c85d6c3e6d180c4e.tar.xz |
Back to XMLGUI.
This means configurable toolbars and the old problems
with our no menubar choice.
We'll see what will happen this time...
Yoann: can you pls check my port of the bookmarks toolbar?
-rw-r--r-- | src/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/bookmarks/bookmarksmanager.cpp | 10 | ||||
-rw-r--r-- | src/bookmarks/bookmarksmanager.h | 1 | ||||
-rw-r--r-- | src/mainwindow.cpp | 122 | ||||
-rw-r--r-- | src/mainwindow.h | 11 | ||||
-rw-r--r-- | src/rekonqui.rc | 100 |
6 files changed, 167 insertions, 79 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d0e5721c..9d691d36 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -120,4 +120,6 @@ TARGET_LINK_LIBRARIES ( kdeinit_rekonq INSTALL( TARGETS rekonq ${INSTALL_TARGETS_DEFAULT_ARGS} ) INSTALL( TARGETS kdeinit_rekonq ${INSTALL_TARGETS_DEFAULT_ARGS} ) + INSTALL( FILES rekonq.kcfg DESTINATION ${KCFG_INSTALL_DIR} ) +INSTALL( FILES rekonqui.rc DESTINATION ${DATA_INSTALL_DIR}/rekonq ) diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index d0062ae1..7f07cf48 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -366,6 +366,16 @@ KActionMenu* BookmarkProvider::bookmarkActionMenu(QWidget *parent) } +KAction* BookmarkProvider::bookmarkToolBarAction(KToolBar *t) +{ + KAction *bookmarkToolBarAction = new KAction(this); + bookmarkToolBarAction->setDefaultWidget(t); // The ownership is transferred to action + bookmarkToolBarAction->setText(i18n("Bookmarks Bar")); + bookmarkToolBarAction->setShortcutConfigurable(false); + return bookmarkToolBarAction; +} + + void BookmarkProvider::triggerBookmarkMenu() { kDebug() << "triggering Bookmarks Menu..."; diff --git a/src/bookmarks/bookmarksmanager.h b/src/bookmarks/bookmarksmanager.h index 64945eab..fd2cfcdc 100644 --- a/src/bookmarks/bookmarksmanager.h +++ b/src/bookmarks/bookmarksmanager.h @@ -200,6 +200,7 @@ public: */ KActionMenu *bookmarkActionMenu(QWidget *parent); + KAction *bookmarkToolBarAction(KToolBar *t); /** * @short set the Bookmarks Toolbar Action diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 55cc7a69..8d0f28a7 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -94,7 +94,7 @@ MainWindow::MainWindow() - : KMainWindow() + : KXmlGuiWindow() , m_view(new MainView(this)) , m_findBar(new FindBar(this)) , m_historyPanel(0) @@ -103,16 +103,11 @@ MainWindow::MainWindow() , m_analyzerPanel(0) , m_historyBackMenu(0) , m_encodingMenu(new KMenu(this)) - , m_mainBar(new KToolBar(QString("MainToolBar"), this, Qt::TopToolBarArea, true, true, true)) - , m_bmBar(new KToolBar(QString("BookmarkToolBar"), this, Qt::TopToolBarArea, true, false, true)) +// , m_mainBar(new KToolBar(QString("MainToolBar"), this, Qt::TopToolBarArea, true, true, true)) +// , m_bmBar(new KToolBar(QString("BookmarkToolBar"), this, Qt::TopToolBarArea, true, false, true)) , m_popup(new KPassivePopup(this)) , m_hidePopup(new QTimer(this)) - , m_ac(new KActionCollection(this)) { - kDebug() << "MainWindow ctor..."; - // enable window size "auto-save" - setAutoSaveSettings(); - // creating a centralWidget containing panel, m_view and the hidden findbar QWidget *centralWidget = new QWidget; centralWidget->setContentsMargins(0, 0, 0, 0); @@ -142,9 +137,33 @@ MainWindow::MainWindow() // setting up rekonq toolbar(s) setupToolbars(); + // a call to KXmlGuiWindow::setupGUI() populates the GUI + // with actions, using KXMLGUI. + // It also applies the saved mainwindow settings, if any, and ask the + // mainwindow to automatically save settings if changed: window size, + // toolbar position, icon size, etc. + setupGUI(); + + // no menu bar in rekonq: we have other plans.. + menuBar()->setVisible(false); + // no more status bar.. setStatusBar(0); + KToolBar *mainBar = toolBar("mainToolBar"); + + QToolButton *bookmarksButton = qobject_cast<QToolButton*>(mainBar->widgetForAction(actionByName( QL1S("bookmarksActionMenu") ))); + if(bookmarksButton) + { + connect(actionByName(QL1S("bookmarksActionMenu")), SIGNAL(triggered()), bookmarksButton, SLOT(showMenu())); + } + + QToolButton *toolsButton = qobject_cast<QToolButton*>(mainBar->widgetForAction(actionByName( QL1S("rekonq_tools") ))); + if(toolsButton) + { + connect(actionByName(QL1S("rekonq_tools")), SIGNAL(triggered()), toolsButton, SLOT(showMenu())); + } + // setting popup notification m_popup->setAutoDelete(false); connect(Application::instance(), SIGNAL(focusChanged(QWidget*, QWidget*)), m_popup, SLOT(hide())); @@ -160,7 +179,8 @@ MainWindow::MainWindow() MainWindow::~MainWindow() { - Application::bookmarkProvider()->removeToolBar(m_bmBar); + KToolBar *bookBar = toolBar("bookmarksToolBar"); + Application::bookmarkProvider()->removeToolBar(bookBar); Application::bookmarkProvider()->removeBookmarkPanel(m_bookmarksPanel); Application::instance()->removeMainWindow(this); @@ -175,15 +195,10 @@ MainWindow::~MainWindow() delete m_historyBackMenu; delete m_encodingMenu; - delete m_mainBar; - delete m_bmBar; - delete m_zoomSlider; delete m_popup; delete m_hidePopup; - - delete m_ac; } @@ -191,52 +206,31 @@ void MainWindow::setupToolbars() { kDebug() << "setup toolbars..."; - // ============ Main ToolBar ================================ - m_mainBar->addAction(actionByName(KStandardAction::name(KStandardAction::Back))); - m_mainBar->addAction(actionByName(KStandardAction::name(KStandardAction::Forward))); - m_mainBar->addSeparator(); - m_mainBar->addAction(actionByName( QL1S("stop_reload") )); -// m_mainBar->addAction(actionByName(KStandardAction::name(KStandardAction::Home))); + KAction *a; // location bar - KAction *urlBarAction = new KAction(this); - urlBarAction->setDefaultWidget(m_view->widgetBar()); - m_mainBar->addAction(urlBarAction); + a = new KAction(i18n("Location Bar"), this); + a->setShortcut(KShortcut(Qt::Key_F6)); + a->setDefaultWidget(m_view->widgetBar()); + actionCollection()->addAction( QL1S("url_bar"), a); -// m_mainBar->addAction(actionByName( QL1S("bookmarksActionMenu") )); - connect(actionByName(QL1S("bookmarksActionMenu")), SIGNAL(triggered()), - qobject_cast<QToolButton*>(m_mainBar->widgetForAction(actionByName(QL1S("bookmarksActionMenu")))), SLOT(showMenu())); - - m_mainBar->addAction(actionByName( QL1S("rekonq_tools") )); - connect(actionByName(QL1S("rekonq_tools")), SIGNAL(triggered()), - qobject_cast<QToolButton*>(m_mainBar->widgetForAction(actionByName(QL1S("rekonq_tools")))), SLOT(showMenu())); + KToolBar *mainBar = toolBar("mainToolBar"); + KToolBar *bookBar = toolBar("bookmarksToolBar"); + + // bookmarks bar + KAction *bookmarkBarAction = Application::bookmarkProvider()->bookmarkToolBarAction(bookBar); + a = actionCollection()->addAction( QL1S("bookmarks_bar"), bookmarkBarAction); - m_mainBar->show(); // this just to fix reopening rekonq after fullscreen close + mainBar->show(); // this just to fix reopening rekonq after fullscreen close // =========== Bookmarks ToolBar ================================ - m_bmBar->setAcceptDrops(true); - Application::bookmarkProvider()->setupBookmarkBar(m_bmBar); - - if (ReKonfig::firstExecution()) - { - m_mainBar->setToolButtonStyle(Qt::ToolButtonIconOnly); - - m_bmBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - m_bmBar->setIconDimensions(16); - - KToolBar::setToolBarsEditable(false); - KToolBar::setToolBarsLocked(true); - - ReKonfig::setFirstExecution(false); - } + bookBar->setAcceptDrops(true); + Application::bookmarkProvider()->setupBookmarkBar(bookBar); } void MainWindow::postLaunch() { - // KActionCollection read settings - m_ac->readSettings(); - // notification system connect(m_view, SIGNAL(showStatusBarMessage(const QString&, Rekonq::Notify)), this, SLOT(notifyMessage(const QString&, Rekonq::Notify))); connect(m_view, SIGNAL(linkHovered(const QString&)), this, SLOT(notifyMessage(const QString&))); @@ -411,7 +405,6 @@ void MainWindow::setupActions() connect(a, SIGNAL(triggered(bool)), m_view, SLOT(switchToTab())); } - // ============================== Indexed Tab Actions ==================================== a = new KAction(KIcon("tab-close"), i18n("&Close Tab"), this); a->setShortcuts( KStandardShortcut::close() ); @@ -434,20 +427,6 @@ void MainWindow::setupActions() actionCollection()->addAction(QL1S("detach_tab"), a); connect(a, SIGNAL(triggered(bool)), m_view->tabBar(), SLOT(detachTab())); - - // ----------------------- Bookmarks ToolBar Action -------------------------------------- - QAction *qa; - - qa = m_mainBar->toggleViewAction(); - qa->setText(i18n("Main Toolbar")); - qa->setIcon(KIcon("bookmark-toolbar")); - actionCollection()->addAction(QL1S("main_bar"), qa); - - qa = m_bmBar->toggleViewAction(); - qa->setText(i18n("Bookmarks Toolbar")); - qa->setIcon(KIcon("bookmark-toolbar")); - actionCollection()->addAction(QL1S("bm_bar"), qa); - // Bookmark Menu KActionMenu *bmMenu = Application::bookmarkProvider()->bookmarkActionMenu(this); bmMenu->setIcon(KIcon("bookmarks")); @@ -456,7 +435,6 @@ void MainWindow::setupActions() bmMenu->setShortcut( KShortcut(Qt::ALT + Qt::Key_B) ); actionCollection()->addAction(QL1S("bookmarksActionMenu"), bmMenu); - // ---------------- Encodings ----------------------------------- a = new KAction(KIcon("character-set"), i18n("Set Encoding"), this); actionCollection()->addAction(QL1S("encodings"), a); @@ -530,7 +508,6 @@ void MainWindow::setupTools() toolsMenu->addSeparator(); - toolsMenu->addAction(actionByName(QL1S("bm_bar"))); toolsMenu->addAction(actionByName(QL1S("show_history_panel"))); toolsMenu->addAction(actionByName(QL1S("show_bookmarks_panel"))); toolsMenu->addAction(actionByName(KStandardAction::name(KStandardAction::FullScreen))); @@ -915,33 +892,36 @@ void MainWindow::setWidgetsVisible(bool makeVisible) static bool historyPanelFlag; static bool bookmarksPanelFlag; + KToolBar *mainBar = toolBar("mainToolBar"); + KToolBar *bookBar = toolBar("bookmarksToolBar"); + if (!makeVisible) { // save current state, if in windowed mode if (!isFullScreen()) { - bookmarksToolBarFlag = m_bmBar->isHidden(); + bookmarksToolBarFlag = bookBar->isHidden(); historyPanelFlag = m_historyPanel->isHidden(); bookmarksPanelFlag = m_bookmarksPanel->isHidden(); } - m_bmBar->hide(); + bookBar->hide(); m_view->setTabBarHidden(true); m_historyPanel->hide(); m_bookmarksPanel->hide(); // hide main toolbar - m_mainBar->hide(); + mainBar->hide(); } else { // show main toolbar - m_mainBar->show(); + mainBar->show(); m_view->setTabBarHidden(false); // restore state of windowed mode if (!bookmarksToolBarFlag) - m_bmBar->show(); + bookBar->show(); if (!historyPanelFlag) m_historyPanel->show(); if (!bookmarksPanelFlag) diff --git a/src/mainwindow.h b/src/mainwindow.h index 286290c0..1ec79a4b 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -35,7 +35,7 @@ #include "rekonq_defines.h" // KDE Includes -#include <KMainWindow> +#include <KXmlGuiWindow> #include <KActionCollection> #include <KToolBar> #include <KUrl> @@ -61,7 +61,7 @@ class QSlider; * It handles the menus, toolbars, and status bars. * */ -class REKONQ_TESTS_EXPORT MainWindow : public KMainWindow +class REKONQ_TESTS_EXPORT MainWindow : public KXmlGuiWindow { Q_OBJECT @@ -70,7 +70,6 @@ public: ~MainWindow(); inline MainView *mainView() const { return m_view; } - inline KActionCollection *actionCollection() const { return m_ac; } inline QAction *actionByName(const QString &name) { return actionCollection()->action(name); } WebTab *currentTab() const; @@ -178,17 +177,13 @@ private: KMenu *m_historyBackMenu; KMenu *m_encodingMenu; - KToolBar *m_mainBar; - KToolBar *m_bmBar; - QSlider *m_zoomSlider; QString m_lastSearch; KPassivePopup *m_popup; QTimer *m_hidePopup; - - KActionCollection *m_ac; }; #endif // MAINWINDOW_H +
\ No newline at end of file diff --git a/src/rekonqui.rc b/src/rekonqui.rc new file mode 100644 index 00000000..28baff5d --- /dev/null +++ b/src/rekonqui.rc @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<!DOCTYPE gui SYSTEM "kpartgui.dtd"> +<gui name="rekonq" version="51"> + +<MenuBar> + +<!-- ============ FILE menu =========== --> +<Menu name="file" noMerge="1"><text>&File</text> + <Action name="file_open" /> + <Action name="open_location" /> + <Separator/> + <Action name="new_tab" /> + <Action name="close_tab" /> + <Separator/> + <Action name="file_save_as" /> + <Separator/> + <Action name="file_print_preview" /> + <Action name="file_print" /> + <Separator/> + <Action name="file_quit" /> +</Menu> + +<!-- ============ EDIT menu =========== --> +<Menu name="edit" noMerge="1"><text>&Edit</text> + <Action name="edit_undo" /> + <Action name="edit_redo" /> + <Separator/> + <Action name="edit_cut" /> + <Action name="edit_copy" /> + <Action name="edit_paste" /> + <Separator/> + <Action name="edit_find" /> + <Action name="edit_find_next" /> + <Action name="edit_find_prev" /> +</Menu> + +<!-- ============ VIEW menu =========== --> +<Menu name="view" noMerge="1"><text>&View</text> + <Action name="view_redisplay" /> + <Action name="go_home" /> + <Separator/> + <Action name="bigger_font" /> + <Action name="normal_font" /> + <Action name="smaller_font" /> + <Separator/> + <Action name="page_source" /> +</Menu> + +<!-- ============ GO menu =========== --> +<Menu name="go" deleted="true"> +</Menu> + +<!-- ============ HISTORY menu =========== --> +<Action name="history" ><text>Hi&story</text> +</Action> + +<!-- ============ BOOKMARKS menu =========== --> +<Action name="bookmarksActionMenu" ><text>&Bookmarks</text> +</Action> + +<!-- ============ TOOLS menu =========== --> +<Menu name="tools" noMerge="1"><text>&Tools</text> + <Action name="web_inspector" /> + <Action name="private_browsing" /> + <Action name="clear_private_data" /> +</Menu> + +<!-- ============ SETTINGS menu =========== --> +<Menu name="settings" noMerge="1"><text>&Settings</text> + <Action name="options_show_menubar" /> + <Merge name="StandardToolBarMenuHandler" /> + <Merge/> + <Separator/> + <Action name="fullscreen" /> + <Separator/> + <Action name="options_configure_keybinding" /> + <Action name="options_configure_toolbars" /> + <Action name="options_configure" /> +</Menu> + +</MenuBar> + +<!-- ============ Main ToolBar =========== --> +<ToolBar name="mainToolBar" position="top" iconText="iconOnly" newline="true" noMerge="1"> +<text>Main Toolbar</text> + <Action name="go_back" /> + <Action name="go_forward" /> + <Separator /> + <Action name="stop_reload" /> + <Action name="url_bar" /> + <Action name="rekonq_tools" /> +</ToolBar> + +<!-- ============ Bookmarks ToolBar =========== --> +<ToolBar name="bookmarksToolBar" fullWidth="true" iconText="icontextright" iconSize="16" newline="true" hidden="true" noEdit="true"> + <text>Bookmark Toolbar</text> + <Action noEdit="true" name="bookmarks_bar" /> +</ToolBar> + +</gui> |