From 9f81583a1b683eb7a1a6f2e3a6d8fada8eaa7ad2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Tue, 4 Nov 2014 20:01:48 +0100 Subject: [PATCH] first version of native NSToolbar working, it still needs some work for adding the adjust to width slider in YACReder and the search edit in YACReaderLibrary --- YACReader/main_window_viewer.cpp | 14 ++++++++++++-- custom_widgets/yacreader_macosx_toolbar.mm | 7 ++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index fa979022..d753705c 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -123,7 +123,7 @@ void MainWindowViewer::setupUI() { setWindowIcon(QIcon(":/images/icon.png")); - setUnifiedTitleAndToolBarOnMac(true); + //setUnifiedTitleAndToolBarOnMac(true); viewer = new Viewer(this); connect(viewer,SIGNAL(reset()),this,SLOT(processReset())); @@ -427,6 +427,10 @@ void MainWindowViewer::createToolBars() comicToolBar->setStyleSheet("QToolBar{border:none;}"); #endif +#ifdef Q_OS_MAC + comicToolBar->addAction(openAction); + comicToolBar->addAction(openFolderAction); +#else QToolButton * tb = new QToolButton(); tb->addAction(openAction); tb->addAction(openFolderAction); @@ -434,6 +438,7 @@ void MainWindowViewer::createToolBars() tb->setDefaultAction(openAction); comicToolBar->addWidget(tb); +#endif comicToolBar->addAction(saveImageAction); comicToolBar->addAction(openPreviousComicAction); comicToolBar->addAction(openNextComicAction); @@ -471,8 +476,11 @@ void MainWindowViewer::createToolBars() //comicToolBar->addAction(adjustWidth); - +#ifdef Q_OS_MAC + comicToolBar->addAction(adjustWidthAction); + +#else QMenu * menu = new QMenu(); sliderAction = new YACReaderSliderAction(this); menu->setAutoFillBackground(false); @@ -491,6 +499,8 @@ void MainWindowViewer::createToolBars() tb2->setPopupMode(QToolButton::MenuButtonPopup); tb2->setDefaultAction(adjustWidthAction); comicToolBar->addWidget(tb2); +#endif + comicToolBar->addAction(adjustHeightAction); comicToolBar->addAction(adjustToFullSizeAction); comicToolBar->addAction(leftRotationAction); diff --git a/custom_widgets/yacreader_macosx_toolbar.mm b/custom_widgets/yacreader_macosx_toolbar.mm index 337c42b7..e490e57c 100644 --- a/custom_widgets/yacreader_macosx_toolbar.mm +++ b/custom_widgets/yacreader_macosx_toolbar.mm @@ -91,7 +91,10 @@ - (IBAction)itemClicked:(id)sender { NSToolbarItem *item = reinterpret_cast(sender); - //toolbarPrivate->itemClicked(item); + + QString identifier = QString::fromNSString([item itemIdentifier]); + QMacToolBarItem *toolButton = reinterpret_cast(identifier.toULongLong()); + Q_EMIT toolButton->activated(); } - (NSToolbarItem *) toolbar: (NSToolbar *)toolbar itemForItemIdentifier: (NSString *) itemIdentifier willBeInsertedIntoToolbar:(BOOL) willBeInserted @@ -100,8 +103,6 @@ Q_UNUSED(willBeInserted); QList items = mytoolbar->items(); - int i = [itemIdentifier intValue]; - foreach (const QMacToolBarItem * item, items) { NSToolbarItem *toolbarItem = item->nativeToolBarItem(); if([toolbarItem.itemIdentifier isEqual:itemIdentifier])