Commit 250951d5 authored by shibakaneki's avatar shibakaneki

Merge branch 'develop' into shiba-dev

parents 3fb1e75c 1b3a3a61
No preview for this file type
...@@ -11,7 +11,7 @@ CONFIG += debug_and_release \ ...@@ -11,7 +11,7 @@ CONFIG += debug_and_release \
VERSION_MAJ = 2 VERSION_MAJ = 2
VERSION_MIN = 00 VERSION_MIN = 00
VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error
VERSION_PATCH = 04 VERSION_PATCH = 05
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
VERSION = $$replace(VERSION, "\\.r", "") VERSION = $$replace(VERSION, "\\.r", "")
......
...@@ -214,7 +214,7 @@ UBBoardView::keyPressEvent (QKeyEvent *event) ...@@ -214,7 +214,7 @@ UBBoardView::keyPressEvent (QKeyEvent *event)
case Qt::Key_Control: case Qt::Key_Control:
case Qt::Key_Shift: case Qt::Key_Shift:
{ {
mMultipleSelectionIsEnabled = true; setMultiselection(true);
}break; }break;
} }
...@@ -274,6 +274,10 @@ UBBoardView::keyPressEvent (QKeyEvent *event) ...@@ -274,6 +274,10 @@ UBBoardView::keyPressEvent (QKeyEvent *event)
} }
} }
} }
// if ctrl of shift was pressed combined with other keys - we need to disable multiple selection.
if (event->isAccepted())
setMultiselection(false);
} }
...@@ -284,7 +288,7 @@ void UBBoardView::keyReleaseEvent(QKeyEvent *event) ...@@ -284,7 +288,7 @@ void UBBoardView::keyReleaseEvent(QKeyEvent *event)
if (Qt::Key_Shift == event->key() if (Qt::Key_Shift == event->key()
||Qt::Key_Control == event->key()) ||Qt::Key_Control == event->key())
{ {
mMultipleSelectionIsEnabled = false; setMultiselection(false);
} }
} }
...@@ -439,27 +443,27 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item) ...@@ -439,27 +443,27 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
// //
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later. // item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
if (item) if (item)
{ {
// item has group as first parent - it is any item or UBGraphicsStrokesGroup. // item has group as first parent - it is any item or UBGraphicsStrokesGroup.
if(item->parentItem() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type()) if(item->parentItem() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type())
return; return;
// delegate buttons shouldn't selected // delegate buttons shouldn't selected
if (DelegateButton::Type == item->type()) if (DelegateButton::Type == item->type())
return; return;
// click on svg items (images on Frame) shouldn't change selection. // click on svg items (images on Frame) shouldn't change selection.
if (QGraphicsSvgItem::Type == item->type()) if (QGraphicsSvgItem::Type == item->type())
return; return;
// Delegate frame shouldn't selected // Delegate frame shouldn't selected
if (UBGraphicsDelegateFrame::Type == item->type()) if (UBGraphicsDelegateFrame::Type == item->type())
return; return;
// if we need to uwe multiple selection - we shouldn't deselect other items. // if we need to uwe multiple selection - we shouldn't deselect other items.
if (!mMultipleSelectionIsEnabled) if (!isMultipleSelectionEnabled())
{ {
// here we need to determine what item is pressed. We should work // here we need to determine what item is pressed. We should work
// only with UB items. // only with UB items.
...@@ -520,14 +524,13 @@ Here we determines cases when items should to get mouse press event at pressing ...@@ -520,14 +524,13 @@ Here we determines cases when items should to get mouse press event at pressing
break; break;
// Groups shouldn't reacts on any presses and moves for Play tool. // Groups shouldn't reacts on any presses and moves for Play tool.
case UBGraphicsStrokesGroup::Type:
case UBGraphicsGroupContainerItem::Type: case UBGraphicsGroupContainerItem::Type:
if(currentTool == UBStylusTool::Play) if(currentTool == UBStylusTool::Play)
{ {
movingItem = NULL; movingItem = NULL;
return false;
} }
else return false;
return true;
break; break;
case QGraphicsWebView::Type: case QGraphicsWebView::Type:
...@@ -570,10 +573,8 @@ bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item) ...@@ -570,10 +573,8 @@ bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item)
return true; return true;
} }
if (!dynamic_cast<UBGraphicsItem*>(item)) return false;
return true;
else
return false;
} }
bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item) bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
...@@ -590,9 +591,9 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item) ...@@ -590,9 +591,9 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
if (movingItem->data(UBGraphicsItemData::ItemLocked).toBool()) if (movingItem->data(UBGraphicsItemData::ItemLocked).toBool())
return false; return false;
if (movingItem->parentItem() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type() && !movingItem->isSelected() && movingItem->parentItem()->isSelected()) if (movingItem->parentItem() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type() && !movingItem->isSelected() && movingItem->parentItem()->isSelected())
return false; return false;
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
switch(item->type()) switch(item->type())
...@@ -616,7 +617,7 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item) ...@@ -616,7 +617,7 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
case UBGraphicsTextItem::Type: case UBGraphicsTextItem::Type:
return !item->isSelected(); return !item->isSelected();
} }
return false; return false;
} }
...@@ -624,18 +625,21 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item) ...@@ -624,18 +625,21 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item) QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item)
{ {
if(item) if(item)
{ {
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
// groups should should be moved instead of strokes groups // groups should should be moved instead of strokes groups
if (item->parentItem() && UBGraphicsStrokesGroup::Type == item->type()) if (item->parentItem() && UBGraphicsStrokesGroup::Type == item->type())
return item->parentItem(); return item->parentItem();
// if item is on group and froup is not selected - group should take press. // if item is on group and group is not selected - group should take press.
if (UBStylusTool::Selector == currentTool && item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type() && !item->parentItem()->isSelected()) if (UBStylusTool::Selector == currentTool
&& item->parentItem()
&& UBGraphicsGroupContainerItem::Type == item->parentItem()->type()
&& !item->parentItem()->isSelected())
return item->parentItem(); return item->parentItem();
// items like polygons placed in two groups nested, so we need to recursive call. // items like polygons placed in two groups nested, so we need to recursive call.
if(item->parentItem() && UBGraphicsStrokesGroup::Type == item->parentItem()->type()) if(item->parentItem() && UBGraphicsStrokesGroup::Type == item->parentItem()->type())
return determineItemToPress(item->parentItem()); return determineItemToPress(item->parentItem());
} }
...@@ -649,33 +653,33 @@ QGraphicsItem* UBBoardView::determineItemToMove(QGraphicsItem *item) ...@@ -649,33 +653,33 @@ QGraphicsItem* UBBoardView::determineItemToMove(QGraphicsItem *item)
if(item) if(item)
{ {
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
//W3C widgets should take mouse move events from play tool. //W3C widgets should take mouse move events from play tool.
if ((UBStylusTool::Play == currentTool) && (UBGraphicsW3CWidgetItem::Type == item->type())) if ((UBStylusTool::Play == currentTool) && (UBGraphicsW3CWidgetItem::Type == item->type()))
return item; return item;
// if item is in group // if item is in group
if(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type()) if(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type())
{ {
// play tool should move groups by any element // play tool should move groups by any element
if (UBStylusTool::Play == currentTool && item->parentItem()->isSelected()) if (UBStylusTool::Play == currentTool && item->parentItem()->isSelected())
return item->parentItem(); return item->parentItem();
// groups should should be moved instead of strokes groups // groups should should be moved instead of strokes groups
if (UBGraphicsStrokesGroup::Type == item->type()) if (UBGraphicsStrokesGroup::Type == item->type())
return item->parentItem(); return item->parentItem();
// selected groups should be moved by moving any element // selected groups should be moved by moving any element
if (item->parentItem()->isSelected()) if (item->parentItem()->isSelected())
return item; return item;
if (item->isSelected()) if (item->isSelected())
return NULL; return NULL;
return item->parentItem(); return item->parentItem();
} }
// items like polygons placed in two groups nested, so we need to recursive call. // items like polygons placed in two groups nested, so we need to recursive call.
if(item->parentItem() && UBGraphicsStrokesGroup::Type == item->parentItem()->type()) if(item->parentItem() && UBGraphicsStrokesGroup::Type == item->parentItem()->type())
return determineItemToMove(item->parentItem()); return determineItemToMove(item->parentItem());
} }
...@@ -687,14 +691,13 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) ...@@ -687,14 +691,13 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
{ {
mLastPressedMousePos = mapToScene(event->pos()); mLastPressedMousePos = mapToScene(event->pos());
// Determining item who will take mouse press event // Determining item who will take mouse press event
//all other items will be deselected and if all item will be deselected, then //all other items will be deselected and if all item will be deselected, then
// wrong item can catch mouse press. because selected items placed on the top // wrong item can catch mouse press. because selected items placed on the top
QGraphicsItem *pressedItem = determineItemToPress(movingItem); movingItem = determineItemToPress(movingItem);
handleItemsSelection(movingItem);
handleItemsSelection(movingItem);
if (mMultipleSelectionIsEnabled) if (isMultipleSelectionEnabled())
return; return;
if (itemShouldReceiveMousePressEvent(movingItem)) if (itemShouldReceiveMousePressEvent(movingItem))
...@@ -721,10 +724,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) ...@@ -721,10 +724,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
void UBBoardView::handleItemMouseMove(QMouseEvent *event) void UBBoardView::handleItemMouseMove(QMouseEvent *event)
{ {
// determine item to move (maybee we need to move group of item or his parent. // determine item to move (maybee we need to move group of item or his parent.
movingItem = determineItemToMove(movingItem); movingItem = determineItemToMove(movingItem);
// items should be moved not every mouse move. // items should be moved not every mouse move.
if (movingItem && itemShouldBeMoved(movingItem) && (mMouseButtonIsPressed || mTabletStylusIsPressed)) if (movingItem && itemShouldBeMoved(movingItem) && (mMouseButtonIsPressed || mTabletStylusIsPressed))
{ {
QPointF scenePos = mapToScene(event->pos()); QPointF scenePos = mapToScene(event->pos());
...@@ -750,8 +753,8 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event) ...@@ -750,8 +753,8 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event)
mWidgetMoved = ((posAfterMove-posBeforeMove).manhattanLength() != 0); mWidgetMoved = ((posAfterMove-posBeforeMove).manhattanLength() != 0);
// a cludge for terminate moving of w3c widgets. // a cludge for terminate moving of w3c widgets.
// in some cases w3c widgets catches mouse move and doesn't sends that events to web page, // in some cases w3c widgets catches mouse move and doesn't sends that events to web page,
// at simple - in google map widget - mouse move events doesn't comes to web page from rectangle of wearch bar on bottom right corner of widget. // at simple - in google map widget - mouse move events doesn't comes to web page from rectangle of wearch bar on bottom right corner of widget.
if (mWidgetMoved && UBGraphicsW3CWidgetItem::Type == movingItem->type()) if (mWidgetMoved && UBGraphicsW3CWidgetItem::Type == movingItem->type())
movingItem->setPos(posBeforeMove); movingItem->setPos(posBeforeMove);
...@@ -792,6 +795,11 @@ void UBBoardView::moveRubberedItems(QPointF movingVector) ...@@ -792,6 +795,11 @@ void UBBoardView::moveRubberedItems(QPointF movingVector)
scene()->invalidate(invalidateRect); scene()->invalidate(invalidateRect);
} }
void UBBoardView::setMultiselection(bool enable)
{
mMultipleSelectionIsEnabled = enable;
}
void UBBoardView::longPressEvent() void UBBoardView::longPressEvent()
{ {
UBDrawingController *drawingController = UBDrawingController::drawingController(); UBDrawingController *drawingController = UBDrawingController::drawingController();
...@@ -1085,14 +1093,17 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) ...@@ -1085,14 +1093,17 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
{ {
if (QGraphicsSvgItem::Type != movingItem->type() && if (QGraphicsSvgItem::Type != movingItem->type() &&
UBGraphicsDelegateFrame::Type != movingItem->type() && UBGraphicsDelegateFrame::Type != movingItem->type() &&
UBToolWidget::Type != movingItem->type() && UBToolWidget::Type != movingItem->type() &&
QGraphicsWebView::Type != movingItem->type() && // for W3C widgets as Tools. QGraphicsWebView::Type != movingItem->type() && // for W3C widgets as Tools.
!(movingItem->parentItem() && UBGraphicsW3CWidgetItem::Type == movingItem->type() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type())) !(!isMultipleSelectionEnabled() && movingItem->parentItem() && UBGraphicsWidgetItem::Type == movingItem->type() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type()))
{ {
bReleaseIsNeed = false; bReleaseIsNeed = false;
if (movingItem->isSelected() && mMultipleSelectionIsEnabled) if (movingItem->isSelected() && isMultipleSelectionEnabled())
movingItem->setSelected(false); movingItem->setSelected(false);
else else
if (movingItem->parentItem() && movingItem->parentItem()->isSelected() && isMultipleSelectionEnabled())
movingItem->parentItem()->setSelected(false);
else
{ {
if (movingItem->isSelected()) if (movingItem->isSelected())
bReleaseIsNeed = true; bReleaseIsNeed = true;
...@@ -1308,14 +1319,20 @@ void UBBoardView::dragMoveEvent(QDragMoveEvent *event) ...@@ -1308,14 +1319,20 @@ void UBBoardView::dragMoveEvent(QDragMoveEvent *event)
void UBBoardView::dropEvent (QDropEvent *event) void UBBoardView::dropEvent (QDropEvent *event)
{ {
if (!itemAt(event->pos().x(),event->pos().y())) { QGraphicsItem *onItem = itemAt(event->pos().x(),event->pos().y());
if (!event->source() || dynamic_cast<UBThumbnailWidget *>(event->source()) || dynamic_cast<QWebView*>(event->source()) || dynamic_cast<UBTGMediaWidget*>(event->source()) || dynamic_cast<QListView *>(event->source()) || dynamic_cast<UBTGDraggableTreeItem*>(event->source())) { if (onItem && onItem->type() == UBGraphicsWidgetItem::Type) {
mController->processMimeData (event->mimeData (), mapToScene (event->pos ())); QGraphicsView::dropEvent(event);
event->acceptProposedAction(); } else {
if (!event->source()
|| qobject_cast<UBThumbnailWidget *>(event->source())
|| qobject_cast<QWebView*>(event->source())
|| qobject_cast<UBTGMediaWidget*>(event->source())
|| qobject_cast<QListView *>(event->source())
|| qobject_cast<UBTGDraggableTreeItem*>(event->source())) {
mController->processMimeData (event->mimeData (), mapToScene (event->pos ()));
event->acceptProposedAction();
}
} }
}
else
QGraphicsView::dropEvent(event);
} }
void void
...@@ -1504,11 +1521,11 @@ UBBoardView::setToolCursor (int tool) ...@@ -1504,11 +1521,11 @@ UBBoardView::setToolCursor (int tool)
} }
bool UBBoardView::hasSelectedParents(QGraphicsItem * item) bool UBBoardView::hasSelectedParents(QGraphicsItem * item)
{ {
if (item->isSelected()) if (item->isSelected())
return true; return true;
if (item->parentItem()==NULL) if (item->parentItem()==NULL)
return false; return false;
return hasSelectedParents(item->parentItem()); return hasSelectedParents(item->parentItem());
} }
...@@ -44,6 +44,9 @@ class UBBoardView : public QGraphicsView ...@@ -44,6 +44,9 @@ class UBBoardView : public QGraphicsView
void rubberItems(); void rubberItems();
void moveRubberedItems(QPointF movingVector); void moveRubberedItems(QPointF movingVector);
void setMultiselection(bool enable);
bool isMultipleSelectionEnabled() { return mMultipleSelectionIsEnabled; }
signals: signals:
void resized(QResizeEvent* event); void resized(QResizeEvent* event);
......
...@@ -582,6 +582,12 @@ bool UBApplication::eventFilter(QObject *obj, QEvent *event) ...@@ -582,6 +582,12 @@ bool UBApplication::eventFilter(QObject *obj, QEvent *event)
boardController->controlView()->forcedTabletRelease(); boardController->controlView()->forcedTabletRelease();
} }
if (event->type() == QEvent::ApplicationActivate)
{
boardController->controlView()->setMultiselection(false);
}
#ifdef Q_WS_MAC #ifdef Q_WS_MAC
if (bIsMinimized && event->type() == QEvent::ApplicationActivate){ if (bIsMinimized && event->type() == QEvent::ApplicationActivate){
if (mainWindow->isHidden()) mainWindow->show(); if (mainWindow->isHidden()) mainWindow->show();
......
...@@ -66,7 +66,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) ...@@ -66,7 +66,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
, mDesktopStylusTool(UBDrawingController::drawingController()->stylusTool()) , mDesktopStylusTool(UBDrawingController::drawingController()->stylusTool())
{ {
mTransparentDrawingView = new UBBoardView(UBApplication::boardController, 0); // deleted in UBDesktopAnnotationController::destructor mTransparentDrawingView = new UBBoardView(UBApplication::boardController, NULL, true); // deleted in UBDesktopAnnotationController::destructor
mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true); mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true);
#ifdef Q_WS_MAC #ifdef Q_WS_MAC
......
...@@ -249,6 +249,11 @@ itemLayerType::Enum UBZLayerController::typeForData(QGraphicsItem *item) const ...@@ -249,6 +249,11 @@ itemLayerType::Enum UBZLayerController::typeForData(QGraphicsItem *item) const
return result; return result;
} }
void UBZLayerController::setLayerType(QGraphicsItem *pItem, itemLayerType::Enum pNewType)
{
pItem->setData(UBGraphicsItemData::itemLayerType, QVariant(pNewType));
}
UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent)
: UBCoreGraphicsScene(parent) : UBCoreGraphicsScene(parent)
, mEraser(0) , mEraser(0)
...@@ -1637,8 +1642,6 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool ...@@ -1637,8 +1642,6 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool
item->setAcceptedMouseButtons(Qt::NoButton); item->setAcceptedMouseButtons(Qt::NoButton);
item->setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::FixedBackground); item->setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::FixedBackground);
UBGraphicsItem::assignZValue(item, mZLayerController->generateZLevel(itemLayerType::BackgroundItem));
if (pAdaptTransformation) if (pAdaptTransformation)
{ {
item = scaleToFitDocumentSize(item, true, 0, pExpand); item = scaleToFitDocumentSize(item, true, 0, pExpand);
...@@ -1647,6 +1650,9 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool ...@@ -1647,6 +1650,9 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool
if (item->scene() != this) if (item->scene() != this)
addItem(item); addItem(item);
mZLayerController->setLayerType(item, itemLayerType::BackgroundItem);
UBGraphicsItem::assignZValue(item, mZLayerController->generateZLevel(item));
mBackgroundObject = item; mBackgroundObject = item;
} }
......
...@@ -87,6 +87,7 @@ public: ...@@ -87,6 +87,7 @@ public:
qreal changeZLevelTo(QGraphicsItem *item, moveDestination dest); qreal changeZLevelTo(QGraphicsItem *item, moveDestination dest);
itemLayerType::Enum typeForData(QGraphicsItem *item) const; itemLayerType::Enum typeForData(QGraphicsItem *item) const;
void setLayerType(QGraphicsItem *pItem, itemLayerType::Enum pNewType);
private: private:
ScopeMap scopeMap; ScopeMap scopeMap;
......
...@@ -64,6 +64,11 @@ UBWebController::UBWebController(UBMainWindow* mainWindow) ...@@ -64,6 +64,11 @@ UBWebController::UBWebController(UBMainWindow* mainWindow)
{ {
connect(mMainWindow->actionWebTools, SIGNAL(toggled(bool)), this, SLOT(toggleWebToolsPalette(bool))); connect(mMainWindow->actionWebTools, SIGNAL(toggled(bool)), this, SLOT(toggleWebToolsPalette(bool)));
mStackedWidget = new QStackedWidget();
mStackedWidget->addWidget(new QWidget(mStackedWidget));
mStackedWidget->addWidget(new QWidget(mStackedWidget));
mStackedWidget->addWidget(new QWidget(mStackedWidget));
mMainWindow->addWebWidget(mStackedWidget); mMainWindow->addWebWidget(mStackedWidget);
for (int i = 0; i < TotalNumberOfWebInstances; i += 1){ for (int i = 0; i < TotalNumberOfWebInstances; i += 1){
...@@ -76,13 +81,15 @@ UBWebController::UBWebController(UBMainWindow* mainWindow) ...@@ -76,13 +81,15 @@ UBWebController::UBWebController(UBMainWindow* mainWindow)
// TODO : Comment the next line to continue the Youtube button bugfix // TODO : Comment the next line to continue the Youtube button bugfix
initialiazemOEmbedProviders(); initialiazemOEmbedProviders();
} }
UBWebController::~UBWebController() UBWebController::~UBWebController()
{ {
// NOOP // NOOP
if (mStackedWidget) {
delete mStackedWidget;
}
} }
void UBWebController::initialiazemOEmbedProviders() void UBWebController::initialiazemOEmbedProviders()
...@@ -119,6 +126,7 @@ void UBWebController::webBrowserInstance() ...@@ -119,6 +126,7 @@ void UBWebController::webBrowserInstance()
mCurrentWebBrowser = &mWebBrowserList[WebBrowser]; mCurrentWebBrowser = &mWebBrowserList[WebBrowser];
mToolsCurrentPalette = &mToolsPaletteList[WebBrowser]; mToolsCurrentPalette = &mToolsPaletteList[WebBrowser];
mToolsPalettePositionned = mToolsPalettePositionnedList[WebBrowser]; mToolsPalettePositionned = mToolsPalettePositionnedList[WebBrowser];
if (!(*mCurrentWebBrowser)) if (!(*mCurrentWebBrowser))
{ {
(*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow); (*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow);
...@@ -134,6 +142,10 @@ void UBWebController::webBrowserInstance() ...@@ -134,6 +142,10 @@ void UBWebController::webBrowserInstance()
mMainWindow->actionBookmarks->setVisible(showAddBookmarkButtons); mMainWindow->actionBookmarks->setVisible(showAddBookmarkButtons);
mMainWindow->actionAddBookmark->setVisible(showAddBookmarkButtons); mMainWindow->actionAddBookmark->setVisible(showAddBookmarkButtons);
mStackedWidget->setCurrentIndex(WebBrowser);
if (mStackedWidget->currentWidget()) {
mStackedWidget->removeWidget(mStackedWidget->currentWidget());
}
mStackedWidget->insertWidget(WebBrowser, (*mCurrentWebBrowser)); mStackedWidget->insertWidget(WebBrowser, (*mCurrentWebBrowser));
showTabAtTop(UBSettings::settings()->appToolBarPositionedAtTop->get().toBool()); showTabAtTop(UBSettings::settings()->appToolBarPositionedAtTop->get().toBool());
...@@ -150,9 +162,8 @@ void UBWebController::webBrowserInstance() ...@@ -150,9 +162,8 @@ void UBWebController::webBrowserInstance()
(*mCurrentWebBrowser)->tabWidget()->lineEdits()->show(); (*mCurrentWebBrowser)->tabWidget()->lineEdits()->show();
} }
UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget());
mStackedWidget->setCurrentIndex(WebBrowser); mStackedWidget->setCurrentIndex(WebBrowser);
UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget());
mMainWindow->switchToWebWidget(); mMainWindow->switchToWebWidget();
setupPalettes(); setupPalettes();
...@@ -165,7 +176,6 @@ void UBWebController::webBrowserInstance() ...@@ -165,7 +176,6 @@ void UBWebController::webBrowserInstance()
if (mDownloadViewIsVisible) if (mDownloadViewIsVisible)
WBBrowserWindow::downloadManager()->show(); WBBrowserWindow::downloadManager()->show();
} }
void UBWebController::tutorialWebInstance() void UBWebController::tutorialWebInstance()
...@@ -191,13 +201,17 @@ void UBWebController::tutorialWebInstance() ...@@ -191,13 +201,17 @@ void UBWebController::tutorialWebInstance()
{ {
mCurrentWebBrowser = &mWebBrowserList[Tutorial]; mCurrentWebBrowser = &mWebBrowserList[Tutorial];
mToolsPalettePositionned = &mToolsPalettePositionnedList[Tutorial]; mToolsPalettePositionned = &mToolsPalettePositionnedList[Tutorial];
if (!(*mCurrentWebBrowser)) if (!(*mCurrentWebBrowser))
{ {
(*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow, true); (*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow, true);
connect((*mCurrentWebBrowser), SIGNAL(activeViewChange(QWidget*)), this, SLOT(setSourceWidget(QWidget*))); connect((*mCurrentWebBrowser), SIGNAL(activeViewChange(QWidget*)), this, SLOT(setSourceWidget(QWidget*)));
mStackedWidget->setCurrentIndex(Tutorial);
if (mStackedWidget->currentWidget()) {
mStackedWidget->removeWidget(mStackedWidget->currentWidget());
}
mStackedWidget->insertWidget(Tutorial, (*mCurrentWebBrowser)); mStackedWidget->insertWidget(Tutorial, (*mCurrentWebBrowser));
adaptToolBar(); adaptToolBar();
mTrapFlashController = new UBTrapFlashController((*mCurrentWebBrowser)); mTrapFlashController = new UBTrapFlashController((*mCurrentWebBrowser));
...@@ -212,12 +226,9 @@ void UBWebController::tutorialWebInstance() ...@@ -212,12 +226,9 @@ void UBWebController::tutorialWebInstance()
else else
(*mCurrentWebBrowser)->loadUrl(currentUrl); (*mCurrentWebBrowser)->loadUrl(currentUrl);
UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget());
mStackedWidget->setCurrentIndex(Tutorial); mStackedWidget->setCurrentIndex(Tutorial);
UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget());
mMainWindow->switchToWebWidget(); mMainWindow->switchToWebWidget();
screenLayoutChanged(); screenLayoutChanged();
bool mirroring = UBSettings::settings()->webShowPageImmediatelyOnMirroredScreen->get().toBool(); bool mirroring = UBSettings::settings()->webShowPageImmediatelyOnMirroredScreen->get().toBool();
...@@ -246,6 +257,7 @@ void UBWebController::paraschoolWebInstance() ...@@ -246,6 +257,7 @@ void UBWebController::paraschoolWebInstance()
if (UBSettings::settings()->webUseExternalBrowser->get().toBool()){ if (UBSettings::settings()->webUseExternalBrowser->get().toBool()){
QDesktopServices::openUrl(currentUrl); QDesktopServices::openUrl(currentUrl);
} }
else { else {
mCurrentWebBrowser = &mWebBrowserList[Paraschool]; mCurrentWebBrowser = &mWebBrowserList[Paraschool];
mToolsCurrentPalette = &mToolsPaletteList[Paraschool]; mToolsCurrentPalette = &mToolsPaletteList[Paraschool];
...@@ -254,6 +266,10 @@ void UBWebController::paraschoolWebInstance() ...@@ -254,6 +266,10 @@ void UBWebController::paraschoolWebInstance()
(*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow, true); (*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow, true);
connect((*mCurrentWebBrowser), SIGNAL(activeViewChange(QWidget*)), this, SLOT(setSourceWidget(QWidget*))); connect((*mCurrentWebBrowser), SIGNAL(activeViewChange(QWidget*)), this, SLOT(setSourceWidget(QWidget*)));
mStackedWidget->setCurrentIndex(Paraschool);
if (mStackedWidget->currentWidget()) {
mStackedWidget->removeWidget(mStackedWidget->currentWidget());
}
mStackedWidget->insertWidget(Paraschool, (*mCurrentWebBrowser)); mStackedWidget->insertWidget(Paraschool, (*mCurrentWebBrowser));
adaptToolBar(); adaptToolBar();
...@@ -267,11 +283,9 @@ void UBWebController::paraschoolWebInstance() ...@@ -267,11 +283,9 @@ void UBWebController::paraschoolWebInstance()
} }
UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget());
mStackedWidget->setCurrentIndex(Paraschool); mStackedWidget->setCurrentIndex(Paraschool);
UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget());
mMainWindow->switchToWebWidget(); mMainWindow->switchToWebWidget();
screenLayoutChanged(); screenLayoutChanged();
bool mirroring = UBSettings::settings()->webShowPageImmediatelyOnMirroredScreen->get().toBool(); bool mirroring = UBSettings::settings()->webShowPageImmediatelyOnMirroredScreen->get().toBool();
......
...@@ -104,7 +104,7 @@ class UBWebController : public QObject ...@@ -104,7 +104,7 @@ class UBWebController : public QObject
void lookForEmbedContent(QString* pHtml, QString tag, QString attribute, QList<QUrl>* pList); void lookForEmbedContent(QString* pHtml, QString tag, QString attribute, QList<QUrl>* pList);
void checkForOEmbed(QString* pHtml); void checkForOEmbed(QString* pHtml);
QStackedWidget mStackedWidget[TotalNumberOfWebInstances]; QStackedWidget *mStackedWidget;
UBMainWindow *mMainWindow; UBMainWindow *mMainWindow;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment