From a41462f34716ae3e14864f13bc8007f44f5227a8 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 28 Aug 2012 14:27:00 +0300 Subject: [PATCH 01/55] Fixed behavior for Tools and W3C_tools. Fixed creation of transparent drawing view. --- src/board/UBBoardView.cpp | 16 ++++++++++++++-- src/desktop/UBDesktopAnnotationController.cpp | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 483e955b..b90869eb 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -533,7 +533,12 @@ Here we determines cases when items should to get mouse press event at pressing return false; break; + case UBToolWidget::Type: + return true; + case QGraphicsWebView::Type: + return true; + case UBGraphicsWidgetItem::Type: if (currentTool == UBStylusTool::Selector && item->parentItem() && item->parentItem()->isSelected()) return true; @@ -541,10 +546,14 @@ Here we determines cases when items should to get mouse press event at pressing return true; if (currentTool == UBStylusTool::Play) return true; + return false; break; } - return false; + if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType)) + return true; + else + return false; } bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item) @@ -556,9 +565,11 @@ bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item) return false; UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); - + switch(item->type()) { + case QGraphicsWebView::Type: + return false; case UBGraphicsPixmapItem::Type: case UBGraphicsTextItem::Type: case UBGraphicsWidgetItem::Type: @@ -1094,6 +1105,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) if (QGraphicsSvgItem::Type != movingItem->type() && UBGraphicsDelegateFrame::Type != movingItem->type() && UBToolWidget::Type != movingItem->type() && + UBGraphicsCache::Type != movingItem->type() && QGraphicsWebView::Type != movingItem->type() && // for W3C widgets as Tools. !(!isMultipleSelectionEnabled() && movingItem->parentItem() && UBGraphicsWidgetItem::Type == movingItem->type() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type())) { diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 6aaa2812..16b1cf69 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -66,7 +66,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) , mDesktopStylusTool(UBDrawingController::drawingController()->stylusTool()) { - mTransparentDrawingView = new UBBoardView(UBApplication::boardController, NULL, true); // deleted in UBDesktopAnnotationController::destructor + mTransparentDrawingView = new UBBoardView(UBApplication::boardController, static_cast(NULL), true); // deleted in UBDesktopAnnotationController::destructor mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true); #ifdef Q_WS_MAC From af3e7ef5c3011a389298a8a7fb63c48b8857aa73 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Tue, 28 Aug 2012 13:46:22 +0200 Subject: [PATCH 02/55] Fixed issue 280 --- src/desktop/UBDesktopAnnotationController.cpp | 17 ++++++++++++++--- src/desktop/UBDesktopAnnotationController.h | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index ddfce593..28987757 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -102,9 +102,13 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) } connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard())); + connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(customClick()), this, SLOT(customCapture())); + connect(mDesktopPalette, SIGNAL(customClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(windowCapture())); + connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture())); + connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); @@ -382,6 +386,7 @@ void UBDesktopAnnotationController::hideWindow() void UBDesktopAnnotationController::goToUniboard() { + onToolClicked(); hideWindow(); UBPlatformUtils::setDesktopMode(false); @@ -397,6 +402,7 @@ void UBDesktopAnnotationController::goToUniboard() void UBDesktopAnnotationController::customCapture() { + onToolClicked(); mIsFullyTransparent = true; updateBackground(); @@ -424,6 +430,7 @@ void UBDesktopAnnotationController::customCapture() void UBDesktopAnnotationController::windowCapture() { + onToolClicked(); mIsFullyTransparent = true; updateBackground(); @@ -453,6 +460,7 @@ void UBDesktopAnnotationController::windowCapture() void UBDesktopAnnotationController::screenCapture() { + onToolClicked(); mIsFullyTransparent = true; updateBackground(); @@ -539,7 +547,6 @@ void UBDesktopAnnotationController::penActionPressed() */ void UBDesktopAnnotationController::penActionReleased() { - qDebug() << "penActionReleased()"; mHoldTimerPen.stop(); if(mPendingPenButtonPressed) { @@ -594,7 +601,6 @@ void UBDesktopAnnotationController::eraserActionPressed() */ void UBDesktopAnnotationController::eraserActionReleased() { - qDebug() << "eraserActionReleased()"; mHoldTimerEraser.stop(); if(mPendingEraserButtonPressed) { @@ -651,7 +657,6 @@ void UBDesktopAnnotationController::markerActionPressed() */ void UBDesktopAnnotationController::markerActionReleased() { - qDebug() << "markerActionReleased()"; mHoldTimerMarker.stop(); if(mPendingMarkerButtonPressed) { @@ -930,3 +935,9 @@ void UBDesktopAnnotationController::refreshMask() updateMask(true); } } + +void UBDesktopAnnotationController::onToolClicked(){ + mDesktopEraserPalette->hide(); + mDesktopMarkerPalette->hide(); + mDesktopPenPalette->hide(); +} diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h index 207db94b..c98b2466 100644 --- a/src/desktop/UBDesktopAnnotationController.h +++ b/src/desktop/UBDesktopAnnotationController.h @@ -111,6 +111,7 @@ class UBDesktopAnnotationController : public QObject void onDesktopPaletteMinimize(); void onTransparentWidgetResized(); void refreshMask(); + void onToolClicked(); private: void setAssociatedPalettePosition(UBActionPalette* palette, const QString& actionName); From a591d30cc6815bb746000c5cf61a5732d161926d Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Tue, 28 Aug 2012 14:45:55 +0200 Subject: [PATCH 03/55] Corrected a small issue --- src/desktop/UBDesktopAnnotationController.cpp | 1 + src/desktop/UBDesktopPalette.cpp | 2 ++ src/desktop/UBDesktopPalette.h | 1 + 3 files changed, 4 insertions(+) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 28987757..165e8fcb 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -109,6 +109,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(onToolClicked())); + connect(mDesktopPalette, SIGNAL(pointerClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp index 2b3902b2..558f70e1 100644 --- a/src/desktop/UBDesktopPalette.cpp +++ b/src/desktop/UBDesktopPalette.cpp @@ -39,6 +39,8 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent) actions << UBApplication::mainWindow->actionSelector; actions << UBApplication::mainWindow->actionPointer; + connect(UBApplication::mainWindow->actionPointer, SIGNAL(triggered()), this, SIGNAL(pointerClick())); + if (UBPlatformUtils::hasVirtualKeyboard()) actions << UBApplication::mainWindow->actionVirtualKeyboard; diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h index cd22d43e..359c43f1 100644 --- a/src/desktop/UBDesktopPalette.h +++ b/src/desktop/UBDesktopPalette.h @@ -33,6 +33,7 @@ class UBDesktopPalette : public UBActionPalette void customClick(); void windowClick(); void screenClick(); + void pointerClick(); #ifdef Q_WS_X11 void refreshMask(); From 3a2967924b7b713a60f778187e481d3128a9a4c3 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 28 Aug 2012 15:50:20 +0300 Subject: [PATCH 04/55] Fixed determining of supported file formats for CFF. --- plugins/cffadaptor/src/UBCFFAdaptor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp index 68ec3ff9..10a8aca5 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -858,7 +858,7 @@ bool UBCFFAdaptor::UBToCFFConverter::itIsSupportedFormat(const QString &format) QStringList tsl = format.split(".", QString::SkipEmptyParts); if (0 < tsl.count()) - bRet = cffSupportedFileFormats.contains(tsl.at(tsl.count()-1)); + bRet = cffSupportedFileFormats.contains(tsl.at(tsl.count()-1).toLower()); else bRet = false; From dae012bb38fb3af68eacb06440ed00c0811c5296 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Tue, 28 Aug 2012 14:58:11 +0200 Subject: [PATCH 05/55] Corrected another small issue --- src/desktop/UBDesktopAnnotationController.cpp | 1 + src/desktop/UBDesktopPalette.cpp | 1 + src/desktop/UBDesktopPalette.h | 1 + 3 files changed, 3 insertions(+) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 165e8fcb..f431f55e 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -110,6 +110,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(pointerClick()), this, SLOT(onToolClicked())); + connect(mDesktopPalette, SIGNAL(arrowClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp index 558f70e1..2ec3f3dc 100644 --- a/src/desktop/UBDesktopPalette.cpp +++ b/src/desktop/UBDesktopPalette.cpp @@ -40,6 +40,7 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent) actions << UBApplication::mainWindow->actionPointer; connect(UBApplication::mainWindow->actionPointer, SIGNAL(triggered()), this, SIGNAL(pointerClick())); + connect(UBApplication::mainWindow->actionSelector, SIGNAL(triggered()), this, SIGNAL(arrowClicked())); if (UBPlatformUtils::hasVirtualKeyboard()) actions << UBApplication::mainWindow->actionVirtualKeyboard; diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h index 359c43f1..79553087 100644 --- a/src/desktop/UBDesktopPalette.h +++ b/src/desktop/UBDesktopPalette.h @@ -34,6 +34,7 @@ class UBDesktopPalette : public UBActionPalette void windowClick(); void screenClick(); void pointerClick(); + void arrowClicked(); #ifdef Q_WS_X11 void refreshMask(); From 3ef2b22340eb536d343528e9e04660717869018e Mon Sep 17 00:00:00 2001 From: Didier Date: Tue, 28 Aug 2012 15:00:38 +0200 Subject: [PATCH 06/55] Fixed a signal issue --- src/desktop/UBDesktopAnnotationController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index f431f55e..db32c695 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -110,7 +110,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(pointerClick()), this, SLOT(onToolClicked())); - connect(mDesktopPalette, SIGNAL(arrowClick()), this, SLOT(onToolClicked())); + connect(mDesktopPalette, SIGNAL(arrowClicked()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); From 3fb1e75c6b448caa8eb4edeab24347f4eaebf51b Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Tue, 28 Aug 2012 15:09:43 +0200 Subject: [PATCH 07/55] Did a better implementation of this fix --- src/desktop/UBDesktopAnnotationController.cpp | 4 ++-- src/desktop/UBDesktopPalette.cpp | 3 --- src/desktop/UBDesktopPalette.h | 2 -- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index db32c695..9e5003c6 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -109,8 +109,8 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(onToolClicked())); - connect(mDesktopPalette, SIGNAL(pointerClick()), this, SLOT(onToolClicked())); - connect(mDesktopPalette, SIGNAL(arrowClicked()), this, SLOT(onToolClicked())); + connect(UBApplication::mainWindow->actionPointer, SIGNAL(triggered()), this, SLOT(onToolClicked())); + connect(UBApplication::mainWindow->actionSelector, SIGNAL(triggered()), this, SLOT(onToolClicked())); connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp index 2ec3f3dc..2b3902b2 100644 --- a/src/desktop/UBDesktopPalette.cpp +++ b/src/desktop/UBDesktopPalette.cpp @@ -39,9 +39,6 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent) actions << UBApplication::mainWindow->actionSelector; actions << UBApplication::mainWindow->actionPointer; - connect(UBApplication::mainWindow->actionPointer, SIGNAL(triggered()), this, SIGNAL(pointerClick())); - connect(UBApplication::mainWindow->actionSelector, SIGNAL(triggered()), this, SIGNAL(arrowClicked())); - if (UBPlatformUtils::hasVirtualKeyboard()) actions << UBApplication::mainWindow->actionVirtualKeyboard; diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h index 79553087..cd22d43e 100644 --- a/src/desktop/UBDesktopPalette.h +++ b/src/desktop/UBDesktopPalette.h @@ -33,8 +33,6 @@ class UBDesktopPalette : public UBActionPalette void customClick(); void windowClick(); void screenClick(); - void pointerClick(); - void arrowClicked(); #ifdef Q_WS_X11 void refreshMask(); From d9be3652f5b1eebb46a7c90590ecfa41bc027849 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Tue, 28 Aug 2012 17:08:18 +0300 Subject: [PATCH 08/55] SANKORE-985 shutdown after emptying the trashbin --- src/document/UBDocumentController.cpp | 91 ++++++++++++++++++--------- 1 file changed, 62 insertions(+), 29 deletions(-) diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index dbe0707b..4be9ee0f 100755 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -551,8 +551,11 @@ void UBDocumentController::deleteSelectedItem() { if(UBApplication::mainWindow->yesNoQuestion(tr("Remove Document"), tr("Are you sure you want to remove the document '%1'?").arg(proxyTi->proxy()->metaData(UBSettings::documentName).toString()))) { - if (proxyTi->parent() == mTrashTi) + if (proxyTi->parent() != mTrashTi) { + // We have to move document into Trash + // Select another document for processing + // This is for Board, where this document can be selected int index = proxyTi->parent()->indexOfChild(proxyTi); index --; @@ -560,7 +563,7 @@ void UBDocumentController::deleteSelectedItem() { if (proxyTi->proxy() == mBoardController->selectedDocument()) { - selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(index))->proxy()); + selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(index))->proxy(), true); } else proxyTi->parent()->child(index)->setSelected(true); @@ -569,7 +572,7 @@ void UBDocumentController::deleteSelectedItem() { if (proxyTi->proxy() == mBoardController->selectedDocument()) { - selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(1))->proxy()); + selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(1))->proxy(), true); } else proxyTi->parent()->child(1)->setSelected(true); @@ -578,30 +581,36 @@ void UBDocumentController::deleteSelectedItem() { if (proxyTi->proxy() == mBoardController->selectedDocument()) { + bool documentFound = false; for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) { QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); - if (groupItem != selectedDocumentGroupTreeItem() && groupItem->childCount() > 0) + if (!groupItem->isTrashFolder()) { - selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy()); - break; + for(int j=0; jchildCount(); j++) + { + if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument()) + { + selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true); + documentFound = true; + break; + } + } } + if (documentFound) + break; + } + if (!documentFound) + { + UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument(groupTi->groupName()); + selectDocument(document, true); } } else proxyTi->parent()->setSelected(true); } - proxyTi->parent()->removeChild(proxyTi); - - UBPersistenceManager::persistenceManager()->deleteDocument(proxyTi->proxy()); - - reloadThumbnails(); - } - else - { - // Move document to trash QString oldGroupName = proxyTi->proxy()->metaData(UBSettings::documentGroupName).toString(); proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName); UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy()); @@ -610,6 +619,14 @@ void UBDocumentController::deleteSelectedItem() mTrashTi->addChild(proxyTi); proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable); } + else + { + // We have to physical delete document + // No action with selection required - document from Trash cant be selected in Board + + proxyTi->parent()->removeChild(proxyTi); + UBPersistenceManager::persistenceManager()->deleteDocument(proxyTi->proxy()); + } } } else if (groupTi) @@ -661,20 +678,6 @@ void UBDocumentController::deleteSelectedItem() } } - if (changeCurrentDocument) - { - for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) - { - QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); - UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); - if (groupItem != groupTi && groupItem->childCount() > 0) - { - selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy()); - break; - } - } - } - QList toBeDeleted; for (int i = 0; i < groupTi->childCount(); i++) @@ -712,6 +715,36 @@ void UBDocumentController::deleteSelectedItem() } } + if (changeCurrentDocument) + { + bool documentFound = false; + for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) + { + QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); + UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); + if (!groupItem->isTrashFolder() && groupItem != groupTi) + { + for(int j=0; jchildCount(); j++) + { + if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument()) + { + selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true); + documentFound = true; + break; + } + } + } + if (documentFound) + break; + } + if (!documentFound) + { + UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument( UBSettings::defaultDocumentGroupName ); + selectDocument(document, true); + } + } + + reloadThumbnails(); QApplication::restoreOverrideCursor(); From 8f06cfd8a1c4e17248544174baf96f23fc99508f Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Tue, 28 Aug 2012 19:15:11 +0300 Subject: [PATCH 09/55] SANKORE-1026 Navigation palette: thumbnails isn't refeshed after application added to the page Improvement of scene update flag setting --- src/domain/UBGraphicsScene.cpp | 16 ++++------------ src/domain/UBGraphicsScene.h | 12 ------------ src/frameworks/UBCoreGraphicsScene.cpp | 4 ++++ src/frameworks/UBCoreGraphicsScene.h | 13 +++++++++++++ 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index b4cbfc4e..6d1f5459 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -263,7 +263,6 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) , mCrossedBackground(false) , mIsDesktopMode(false) , mZoomFactor(1) - , mIsModified(true) , mBackgroundObject(0) , mPreviousWidth(0) , mInputDeviceIsPressed(false) @@ -1564,7 +1563,6 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q void UBGraphicsScene::addItem(QGraphicsItem* item) { - setModified(true); UBCoreGraphicsScene::addItem(item); UBGraphicsItem::assignZValue(item, mZLayerController->generateZLevel(item)); @@ -1577,8 +1575,6 @@ void UBGraphicsScene::addItem(QGraphicsItem* item) void UBGraphicsScene::addItems(const QSet& items) { - setModified(true); - foreach(QGraphicsItem* item, items) { UBCoreGraphicsScene::addItem(item); UBGraphicsItem::assignZValue(item, mZLayerController->generateZLevel(item)); @@ -1591,7 +1587,6 @@ void UBGraphicsScene::addItems(const QSet& items) void UBGraphicsScene::removeItem(QGraphicsItem* item) { - setModified(true); UBCoreGraphicsScene::removeItem(item); UBApplication::boardController->freezeW3CWidget(item, true); @@ -1603,8 +1598,6 @@ void UBGraphicsScene::removeItem(QGraphicsItem* item) void UBGraphicsScene::removeItems(const QSet& items) { - setModified(true); - foreach(QGraphicsItem* item, items) UBCoreGraphicsScene::removeItem(item); @@ -1762,7 +1755,6 @@ void UBGraphicsScene::addRuler(QPointF center) addItem(ruler); ruler->setVisible(true); - setModified(true); } void UBGraphicsScene::addProtractor(QPointF center) @@ -1780,7 +1772,6 @@ void UBGraphicsScene::addProtractor(QPointF center) protractor->moveBy(center.x() - itemSceneCenter.x(), center.y() - itemSceneCenter.y()); protractor->setVisible(true); - setModified(true); } void UBGraphicsScene::addTriangle(QPointF center) @@ -1798,7 +1789,6 @@ void UBGraphicsScene::addTriangle(QPointF center) triangle->moveBy(center.x() - itemSceneCenter.x(), center.y() - itemSceneCenter.y()); triangle->setVisible(true); - setModified(true); } void UBGraphicsScene::addMagnifier(UBMagnifierParams params) @@ -1857,6 +1847,7 @@ void UBGraphicsScene::moveMagnifier() { QPoint magnifierPos = QPoint(magniferControlViewWidget->pos().x() + magniferControlViewWidget->size().width() / 2, magniferControlViewWidget->pos().y() + magniferControlViewWidget->size().height() / 2 ); moveMagnifier(magnifierPos, true); + setModified(true); } } @@ -1889,6 +1880,7 @@ void UBGraphicsScene::moveMagnifier(QPoint newPos, bool forceGrab) void UBGraphicsScene::closeMagnifier() { DisposeMagnifierQWidgets(); + setModified(true); } void UBGraphicsScene::zoomInMagnifier() @@ -1906,6 +1898,7 @@ void UBGraphicsScene::zoomOutMagnifier() { magniferControlViewWidget->setZoom(magniferControlViewWidget->params.zoom - 0.5); magniferDisplayViewWidget->setZoom(magniferDisplayViewWidget->params.zoom - 0.5); + setModified(true); } } @@ -1917,6 +1910,7 @@ void UBGraphicsScene::resizedMagnifier(qreal newPercent) magniferControlViewWidget->grabPoint(); magniferDisplayViewWidget->setSize(newPercent); magniferDisplayViewWidget->grabPoint(); + setModified(true); } } @@ -1932,7 +1926,6 @@ void UBGraphicsScene::addCompass(QPointF center) compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); compass->setVisible(true); - setModified(true); } void UBGraphicsScene::addCache() @@ -1962,7 +1955,6 @@ void UBGraphicsScene::addMask(const QPointF ¢er) curtain->setRect(rect); curtain->setVisible(true); curtain->setSelected(true); - setModified(true); } void UBGraphicsScene::setRenderingQuality(UBItem::RenderingQuality pRenderingQuality) diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index 738bd429..6f8c8def 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -179,16 +179,6 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem bool isEmpty() const; - bool isModified() const - { - return mIsModified; - } - - void setModified(bool pModified) - { - mIsModified = pModified; - } - void setDocument(UBDocumentProxy* pDocument); UBDocumentProxy* document() const @@ -380,8 +370,6 @@ public slots: bool mIsDesktopMode; qreal mZoomFactor; - bool mIsModified; - QGraphicsItem* mBackgroundObject; QPointF mPreviousPoint; diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index fd4948ec..7caec260 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -23,6 +23,7 @@ UBCoreGraphicsScene::UBCoreGraphicsScene(QObject * parent) : QGraphicsScene ( parent ) + , mIsModified(true) { //NOOP } @@ -51,6 +52,8 @@ void UBCoreGraphicsScene::addItem(QGraphicsItem* item) if (item->scene() != this) QGraphicsScene::addItem(item); + + setModified(true); } @@ -63,6 +66,7 @@ void UBCoreGraphicsScene::removeItem(QGraphicsItem* item, bool forceDelete) delete item; item = 0; } + setModified(true); } bool UBCoreGraphicsScene::deleteItem(QGraphicsItem* item) diff --git a/src/frameworks/UBCoreGraphicsScene.h b/src/frameworks/UBCoreGraphicsScene.h index d518db4c..19ed9da9 100644 --- a/src/frameworks/UBCoreGraphicsScene.h +++ b/src/frameworks/UBCoreGraphicsScene.h @@ -33,8 +33,21 @@ class UBCoreGraphicsScene : public QGraphicsScene void removeItemFromDeletion(QGraphicsItem* item); void addItemToDeletion(QGraphicsItem *item); + bool isModified() const + { + return mIsModified; + } + + void setModified(bool pModified) + { + mIsModified = pModified; + } + + private: QSet mItemsToDelete; + + bool mIsModified; }; #endif /* UBCOREGRAPHICSSCENE_H_ */ From 30b4a3f2db1ae588d5b9d02c2f1770d80e4fdffb Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Wed, 29 Aug 2012 09:38:41 +0300 Subject: [PATCH 10/55] Improved behavior of interacts with items on board. --- src/board/UBBoardView.cpp | 27 ++++++++++++++++++++++----- src/board/UBBoardView.h | 1 + 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index b90869eb..9dab0121 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -55,6 +55,8 @@ #include "document/UBDocumentProxy.h" +#include "tools/UBGraphicsRuler.h" +#include "tools/UBGraphicsCurtainItem.h" #include "tools/UBGraphicsCompass.h" #include "tools/UBGraphicsCache.h" #include "tools/UBGraphicsTriangle.h" @@ -433,6 +435,15 @@ bool UBBoardView::itemHaveParentWithType(QGraphicsItem *item, int type) return itemHaveParentWithType(item->parentItem(), type); } +bool UBBoardView::isUBItem(QGraphicsItem *item) +{ + if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType)) + return true; + else + { + return false; + } +} void UBBoardView::handleItemsSelection(QGraphicsItem *item) { @@ -504,6 +515,13 @@ Here we determines cases when items should to get mouse press event at pressing switch(item->type()) { + case UBGraphicsProtractor::Type: + case UBGraphicsRuler::Type: + case UBGraphicsTriangle::Type: + case UBGraphicsCompass::Type: + case UBGraphicsCache::Type: + return true; + case UBGraphicsDelegateFrame::Type: case QGraphicsSvgItem::Type: return true; @@ -550,10 +568,7 @@ Here we determines cases when items should to get mouse press event at pressing break; } - if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType)) - return true; - else - return false; + return !isUBItem(item); // standard behavior of QGraphicsScene for not UB items. UB items should be managed upper. } bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item) @@ -609,6 +624,7 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item) switch(item->type()) { + case UBGraphicsCurtainItem::Type: case UBGraphicsGroupContainerItem::Type: return true; @@ -1102,7 +1118,8 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) } else { - if (QGraphicsSvgItem::Type != movingItem->type() && + if (isUBItem(movingItem) && + QGraphicsSvgItem::Type != movingItem->type() && UBGraphicsDelegateFrame::Type != movingItem->type() && UBToolWidget::Type != movingItem->type() && UBGraphicsCache::Type != movingItem->type() && diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h index 1aae71ba..0794d76c 100644 --- a/src/board/UBBoardView.h +++ b/src/board/UBBoardView.h @@ -57,6 +57,7 @@ class UBBoardView : public QGraphicsView protected: bool itemIsLocked(QGraphicsItem *item); + bool isUBItem(QGraphicsItem *item); // we should to determine items who is not UB and use general scene behavior for them. void handleItemsSelection(QGraphicsItem *item); bool itemShouldReceiveMousePressEvent(QGraphicsItem *item); bool itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item); From 9ceff1205edb3ce70c66fe7f8b0c293a391b2ad3 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Wed, 29 Aug 2012 12:34:22 +0300 Subject: [PATCH 11/55] UBFeatures translations --- src/board/UBFeaturesController.cpp | 115 ++++++++++++++++++----------- src/board/UBFeaturesController.h | 32 +++++--- src/core/UBApplication.cpp | 2 +- src/gui/UBFeaturesWidget.cpp | 6 +- 4 files changed, 96 insertions(+), 59 deletions(-) diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index b13b7312..57019aac 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -20,6 +20,19 @@ #include "gui/UBFeaturesWidget.h" const QString UBFeaturesController::virtualRootName = "root"; +const QString UBFeaturesController::rootPath = "/" + virtualRootName; + +const QString UBFeaturesController::appPath = rootPath + "/Applications"; +const QString UBFeaturesController::audiosPath = rootPath + "/Audios"; +const QString UBFeaturesController::moviesPath = rootPath + "/Movies"; +const QString UBFeaturesController::picturesPath = rootPath + "/Pictures"; +const QString UBFeaturesController::flashPath = rootPath + "/Animations"; +const QString UBFeaturesController::interactPath = rootPath + "/Interactivities"; +const QString UBFeaturesController::shapesPath = rootPath + "/Shapes"; +const QString UBFeaturesController::trashPath = rootPath + "/Trash"; +const QString UBFeaturesController::favoritePath = rootPath + "/Favorites"; +const QString UBFeaturesController::webSearchPath = rootPath + "/Web search"; + void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & currVirtualPath, const QSet &pFavoriteSet) { @@ -43,7 +56,7 @@ void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & if ( fullFileName.contains(".thumbnail.")) continue; - UBFeature testFeature(currVirtualPath, icon, fileName, QUrl::fromLocalFile(fullFileName), featureType); + UBFeature testFeature(currVirtualPath + "/" + fileName, icon, fileName, QUrl::fromLocalFile(fullFileName), featureType); emit sendFeature(testFeature); emit featureSent(); @@ -51,7 +64,7 @@ void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & if ( pFavoriteSet.find(QUrl::fromLocalFile(fullFileName)) != pFavoriteSet.end()) { //TODO send favoritePath from the controller or make favoritePath public and static - emit sendFeature(UBFeature( "/root/Favorites", icon, fileName, QUrl::fromLocalFile(fullFileName), featureType)); + emit sendFeature(UBFeature( UBFeaturesController::favoritePath + "/" + fileName, icon, fileName, QUrl::fromLocalFile(fullFileName), featureType)); } if (featureType == FEATURE_FOLDER) { @@ -182,14 +195,42 @@ UBFeaturesComputingThread::~UBFeaturesComputingThread() } UBFeature::UBFeature(const QString &url, const QImage &icon, const QString &name, const QUrl &realPath, UBFeatureElementType type) -: virtualDir(url), mThumbnail(icon), mName(name), mPath(realPath), elementType(type) + : mThumbnail(icon), mDisplayName(name), mPath(realPath), elementType(type) { + mName = getNameFromVirtualPath(url); + virtualDir = getVirtualDirFromVirtualPath(url); } UBFeature::~UBFeature() { } +QString UBFeature::getNameFromVirtualPath(const QString &pVirtPath) +{ + QString result; + int slashPos = pVirtPath.lastIndexOf("/"); + if (slashPos != -1) { + result = pVirtPath.right(pVirtPath.count() - slashPos - 1); + } else { + qDebug() << "UBFeature: incorrect virtual path parameter specified"; + } + + return result; +} + +QString UBFeature::getVirtualDirFromVirtualPath(const QString &pVirtPath) +{ + QString result; + int slashPos = pVirtPath.lastIndexOf("/"); + if (slashPos != -1) { + result = pVirtPath.left(slashPos); + } else { + qDebug() << "UBFeature: incorrect virtual path parameter specified"; + } + + return result; +} + QString UBFeature::getUrl() const { if ( elementType == FEATURE_INTERNAL ) @@ -233,20 +274,6 @@ UBFeaturesController::UBFeaturesController(QWidget *pParentWidget) : ,featuresList(0) ,mLastItemOffsetIndex(0) { - //Initializing virtual structure of the list - rootPath = "/" + virtualRootName; - - appPath = rootPath + "/Applications"; - audiosPath = rootPath + "/Audios"; - moviesPath = rootPath + "/Movies"; - picturesPath = rootPath + "/Pictures"; - flashPath = rootPath + "/Animations"; - interactPath = rootPath + "/Interactivities"; - shapesPath = rootPath + "/Shapes"; - trashPath = rootPath + "/Trash"; - favoritePath = rootPath + "/Favorites"; - webSearchPath = rootPath + "/Web search"; - //Initializing physical directories from UBSettings mUserAudioDirectoryPath = QUrl::fromLocalFile(UBSettings::settings()->userAudioDirectory()); mUserVideoDirectoryPath = QUrl::fromLocalFile(UBSettings::settings()->userVideoDirectory()); @@ -264,18 +291,18 @@ UBFeaturesController::UBFeaturesController(QWidget *pParentWidget) : mLibSearchDirectoryPath =QUrl::fromLocalFile(UBSettings::settings()->userSearchDirectory()); trashDirectoryPath = QUrl::fromLocalFile(UBSettings::userTrashDirPath()); - rootElement = UBFeature(QString(), QImage( ":images/libpalette/home.png" ), "root", QUrl()); - audiosElement = UBFeature( rootPath, QImage(":images/libpalette/AudiosCategory.svg"), tr("Audios") , mUserAudioDirectoryPath, FEATURE_CATEGORY); - moviesElement = UBFeature( rootPath, QImage(":images/libpalette/MoviesCategory.svg"), tr("Movies") , mUserVideoDirectoryPath, FEATURE_CATEGORY); - picturesElement = UBFeature( rootPath, QImage(":images/libpalette/PicturesCategory.svg"), tr("Pictures") , mUserPicturesDirectoryPath, FEATURE_CATEGORY); - flashElement = UBFeature( rootPath, QImage(":images/libpalette/FlashCategory.svg"), tr("Animations") , mUserAnimationDirectoryPath, FEATURE_CATEGORY); - interactElement = UBFeature( rootPath, QImage(":images/libpalette/InteractivesCategory.svg"), tr("Interactivities") , mLibInteractiveDirectoryPath, FEATURE_CATEGORY); - applicationsElement = UBFeature( rootPath, QImage(":images/libpalette/ApplicationsCategory.svg"), tr("Applications") , mUserInteractiveDirectoryPath, FEATURE_CATEGORY); - shapesElement = UBFeature( rootPath, QImage(":images/libpalette/ShapesCategory.svg"), tr("Shapes") , mLibShapesDirectoryPath, FEATURE_CATEGORY ); - favoriteElement = UBFeature( rootPath, QImage(":images/libpalette/FavoritesCategory.svg"), tr("Favorites"), QUrl("favorites"), FEATURE_FAVORITE ); - webSearchElement = UBFeature( rootPath, QImage(":images/libpalette/WebSearchCategory.svg"), tr("Web search"), mLibSearchDirectoryPath, FEATURE_CATEGORY); + rootElement = UBFeature(rootPath, QImage( ":images/libpalette/home.png" ), "root", QUrl()); + audiosElement = UBFeature( audiosPath, QImage(":images/libpalette/AudiosCategory.svg"), tr("Audios") , mUserAudioDirectoryPath, FEATURE_CATEGORY); + moviesElement = UBFeature( moviesPath, QImage(":images/libpalette/MoviesCategory.svg"), tr("Movies") , mUserVideoDirectoryPath, FEATURE_CATEGORY); + picturesElement = UBFeature( picturesPath, QImage(":images/libpalette/PicturesCategory.svg"), tr("Pictures") , mUserPicturesDirectoryPath, FEATURE_CATEGORY); + flashElement = UBFeature( flashPath, QImage(":images/libpalette/FlashCategory.svg"), tr("Animations") , mUserAnimationDirectoryPath, FEATURE_CATEGORY); + interactElement = UBFeature( interactPath, QImage(":images/libpalette/InteractivesCategory.svg"), tr("Interactivities") , mLibInteractiveDirectoryPath, FEATURE_CATEGORY); + applicationsElement = UBFeature( appPath, QImage(":images/libpalette/ApplicationsCategory.svg"), tr("Applications") , mUserInteractiveDirectoryPath, FEATURE_CATEGORY); + shapesElement = UBFeature( shapesPath, QImage(":images/libpalette/ShapesCategory.svg"), tr("Shapes") , mLibShapesDirectoryPath, FEATURE_CATEGORY ); + favoriteElement = UBFeature( favoritePath, QImage(":images/libpalette/FavoritesCategory.svg"), tr("Favorites"), QUrl("favorites"), FEATURE_FAVORITE ); + webSearchElement = UBFeature( webSearchPath, QImage(":images/libpalette/WebSearchCategory.svg"), tr("Web search"), mLibSearchDirectoryPath, FEATURE_CATEGORY); - trashElement = UBFeature( rootPath, QImage(":images/libpalette/TrashCategory.svg"), tr("Trash"), trashDirectoryPath, FEATURE_TRASH ); + trashElement = UBFeature( trashPath, QImage(":images/libpalette/TrashCategory.svg"), tr("Trash"), trashDirectoryPath, FEATURE_TRASH); featuresList = new QList (); @@ -340,7 +367,7 @@ void UBFeaturesController::createNpApiFeature(const QString &str) QString widgetName = QFileInfo(str).fileName(); - featuresModel->addItem(UBFeature(QString(appPath+"/Web"), QImage(UBGraphicsWidgetItem::iconFilePath(QUrl::fromLocalFile(str))), widgetName, QUrl::fromLocalFile(str), FEATURE_INTERACTIVE)); + featuresModel->addItem(UBFeature(QString(appPath + "/Web/" + widgetName), QImage(UBGraphicsWidgetItem::iconFilePath(QUrl::fromLocalFile(str))), widgetName, QUrl::fromLocalFile(str), FEATURE_INTERACTIVE)); } void UBFeaturesController::scanFS() @@ -365,9 +392,9 @@ void UBFeaturesController::scanFS() QList tools = UBToolsManager::manager()->allTools(); foreach (UBToolsManager::UBToolDescriptor tool, tools) { - featuresList->append(UBFeature(appPath, tool.icon.toImage(), tool.label, QUrl(tool.id), FEATURE_INTERNAL)); + featuresList->append(UBFeature(appPath + "/" + tool.label, tool.icon.toImage(), tool.label, QUrl(tool.id), FEATURE_INTERNAL)); if (favoriteSet->find(QUrl(tool.id)) != favoriteSet->end()) { - featuresList->append(UBFeature(favoritePath, tool.icon.toImage(), tool.label, QUrl(tool.id), FEATURE_INTERNAL)); + featuresList->append(UBFeature(favoritePath + "/" + tool.label, tool.icon.toImage(), tool.label, QUrl(tool.id), FEATURE_INTERNAL)); } } } @@ -386,12 +413,12 @@ void UBFeaturesController::fileSystemScan(const QUrl & currentPath, const QStrin if ( fullFileName.contains(".thumbnail.")) continue; - UBFeature testFeature(currVirtualPath, icon, fileName, QUrl::fromLocalFile(fullFileName), featureType); + UBFeature testFeature(currVirtualPath + "/" + fileName, icon, fileName, QUrl::fromLocalFile(fullFileName), featureType); featuresList->append(testFeature); if ( favoriteSet->find( QUrl::fromLocalFile( fullFileName ) ) != favoriteSet->end() ) { - featuresList->append( UBFeature( favoritePath, icon, fileName, QUrl::fromLocalFile( fullFileName ), featureType ) ); + featuresList->append( UBFeature( favoritePath + "/" + fileName, icon, fileName, QUrl::fromLocalFile( fullFileName ), featureType ) ); } if (featureType == FEATURE_FOLDER) { @@ -466,7 +493,7 @@ void UBFeaturesController::addToFavorite( const QUrl &path ) QFileInfo fileInfo( filePath ); QString fileName = fileInfo.fileName(); UBFeatureElementType type = fileTypeFromUrl(fileInfo.absoluteFilePath()); - UBFeature elem(favoritePath, getIcon(filePath, type), fileName, path, fileTypeFromUrl(filePath) ); + UBFeature elem(favoritePath + "/" + fileName, getIcon(filePath, type), fileName, path, fileTypeFromUrl(filePath) ); favoriteSet->insert( path ); saveFavoriteList(); @@ -631,7 +658,7 @@ void UBFeaturesController::importImage( const QImage &image, const UBFeature &de image.save(filePath); QImage thumb = createThumbnail( filePath ); - UBFeature resultItem = UBFeature( dest.getFullVirtualPath(), thumb, mFileName, + UBFeature resultItem = UBFeature( dest.getFullVirtualPath() + "/" + mFileName, thumb, mFileName, QUrl::fromLocalFile( filePath ), FEATURE_ITEM ); featuresModel->addItem(resultItem); @@ -671,10 +698,10 @@ void UBFeaturesController::addNewFolder(QString name) if(!QFileInfo(path).exists()) { QDir().mkpath(path); } - UBFeature newFeatureFolder = UBFeature( currentElement.getFullVirtualPath(), QImage(":images/libpalette/folder.svg"), + UBFeature newFeatureFolder = UBFeature( currentElement.getFullVirtualPath() + "/" + name, QImage(":images/libpalette/folder.svg"), name, QUrl::fromLocalFile( path ), FEATURE_FOLDER ); - featuresModel->addItem( newFeatureFolder ); + featuresModel->addItem(newFeatureFolder); featuresProxyModel->invalidate(); } @@ -710,9 +737,9 @@ UBFeature UBFeaturesController::getDestinationFeatureForUrl( const QUrl &url ) void UBFeaturesController::addDownloadedFile(const QUrl &sourceUrl, const QByteArray &pData) { - UBFeature dest = getDestinationFeatureForUrl( sourceUrl ); + UBFeature dest = getDestinationFeatureForUrl(sourceUrl); - if ( dest == UBFeature() ) + if (dest == UBFeature()) return; QString fileName = QFileInfo( sourceUrl.toString() ).fileName(); @@ -724,7 +751,7 @@ void UBFeaturesController::addDownloadedFile(const QUrl &sourceUrl, const QByteA file.write(pData); file.close(); - UBFeature downloadedFeature = UBFeature( dest.getFullVirtualPath(), getIcon( filePath ), + UBFeature downloadedFeature = UBFeature(dest.getFullVirtualPath() + "/" + fileName, getIcon( filePath ), fileName, QUrl::fromLocalFile(filePath), FEATURE_ITEM); if (downloadedFeature != UBFeature()) { featuresModel->addItem(downloadedFeature); @@ -742,7 +769,7 @@ UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeatu Q_ASSERT( QFileInfo( sourcePath ).exists() ); - UBFeature possibleDest = getDestinationFeatureForUrl( url ); + UBFeature possibleDest = getDestinationFeatureForUrl(url); UBFeature dest = destination; @@ -767,7 +794,7 @@ UBFeature UBFeaturesController::moveItemToFolder( const QUrl &url, const UBFeatu UBFeatureElementType type = FEATURE_ITEM; if ( UBFileSystemUtils::mimeTypeFromFileName( newFullPath ).contains("application") ) type = FEATURE_INTERACTIVE; - UBFeature newElement( destVirtualPath, thumb, name, QUrl::fromLocalFile( newFullPath ), type ); + UBFeature newElement( destVirtualPath + "/" + name, thumb, name, QUrl::fromLocalFile( newFullPath ), type ); return newElement; } @@ -861,7 +888,7 @@ UBFeature UBFeaturesController::copyItemToFolder( const QUrl &url, const UBFeatu UBFeatureElementType type = FEATURE_ITEM; if (UBFileSystemUtils::mimeTypeFromFileName(newFullPath).contains("application")) type = FEATURE_INTERACTIVE; - UBFeature newElement( destVirtualPath, thumb, name, QUrl::fromLocalFile( newFullPath ), type ); + UBFeature newElement( destVirtualPath + "/" + name, thumb, name, QUrl::fromLocalFile( newFullPath ), type ); return newElement; } @@ -899,7 +926,7 @@ void UBFeaturesController::moveExternalData(const QUrl &url, const UBFeature &de Q_ASSERT(QFileInfo(newFullPath).exists()); QImage thumb = getIcon(newFullPath, type); - UBFeature newElement(destVirtualPath, thumb, name, QUrl::fromLocalFile(newFullPath), type); + UBFeature newElement(destVirtualPath + "/" + name, thumb, name, QUrl::fromLocalFile(newFullPath), type); featuresModel->addItem(newElement); } diff --git a/src/board/UBFeaturesController.h b/src/board/UBFeaturesController.h index 6d57e5d4..92c31224 100644 --- a/src/board/UBFeaturesController.h +++ b/src/board/UBFeaturesController.h @@ -94,6 +94,7 @@ public: // UBFeature(); virtual ~UBFeature(); QString getName() const { return mName; } + QString getDisplayName() const {return mDisplayName;} QImage getThumbnail() const {return mThumbnail;} QString getVirtualPath() const { return virtualDir; } //QString getPath() const { return mPath; }; @@ -112,11 +113,17 @@ public: const QMap & getMetadata() const { return metadata; } void setMetadata( const QMap &data ) { metadata = data; } + +private: + QString getNameFromVirtualPath(const QString &pVirtPath); + QString getVirtualDirFromVirtualPath(const QString &pVirtPath); + private: QString virtualDir; QString virtualPath; QImage mThumbnail; QString mName; + QString mDisplayName; QUrl mPath; UBFeatureElementType elementType; QMap metadata; @@ -182,6 +189,19 @@ public: void assignFeaturesListVeiw(UBFeaturesListView *pList); void assignPathListView(UBFeaturesListView *pList); +public: + static const QString rootPath; + static const QString audiosPath; + static const QString moviesPath; + static const QString picturesPath; + static const QString appPath; + static const QString flashPath; + static const QString shapesPath; + static const QString interactPath; + static const QString trashPath; + static const QString favoritePath; + static const QString webSearchPath; + signals: void maxFilesCountEvaluated(int pLimit); void scanStarted(); @@ -235,17 +255,7 @@ private: QUrl trashDirectoryPath; QUrl mLibSearchDirectoryPath; - QString rootPath; - QString audiosPath; - QString moviesPath; - QString picturesPath; - QString appPath; - QString flashPath; - QString shapesPath; - QString interactPath; - QString trashPath; - QString favoritePath; - QString webSearchPath; + int mLastItemOffsetIndex; UBFeature currentElement; diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index 75591e73..d3aed832 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -233,7 +233,7 @@ void UBApplication::setupTranslator(QString forcedLanguage) mApplicationTranslator = new QTranslator(this); mQtGuiTranslator = new QTranslator(this); - mApplicationTranslator->load(UBPlatformUtils::translationPath(QString("sankore_"),language)); + mApplicationTranslator->load(UBPlatformUtils::translationPath(QString("sankore_"),language)); installTranslator(mApplicationTranslator); diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index 78b4725e..78823404 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -259,7 +259,7 @@ void UBFeaturesWidget::onDisplayMetadata( QMap metadata ) }break; } - UBFeature feature( QString(), QImage(previewImageUrl), QString(), metadata["Url"], FEATURE_ITEM ); + UBFeature feature( "/root", QImage(previewImageUrl), QString(), metadata["Url"], FEATURE_ITEM ); feature.setMetadata( metadata ); centralWidget->showElement(feature, UBFeaturesCentralWidget::FeaturePropertiesList); @@ -1080,7 +1080,7 @@ QVariant UBFeaturesModel::data(const QModelIndex &index, int role) const return QVariant(); if (role == Qt::DisplayRole) { - return featuresList->at(index.row()).getName(); + return featuresList->at(index.row()).getDisplayName(); } else if (role == Qt::DecorationRole) { @@ -1311,7 +1311,7 @@ void UBFeaturesModel::moveData(const UBFeature &source, const UBFeature &destina } } - UBFeature newElement( destVirtualPath, sourceIcon, name, QUrl::fromLocalFile(destFullPath), sourceType ); + UBFeature newElement( destVirtualPath + "/" + name, sourceIcon, name, QUrl::fromLocalFile(destFullPath), sourceType ); addItem(newElement); if (deleteManualy) { From edba346ffec6f9b7e2435d0cd7f1465c06cb7120 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 29 Aug 2012 11:46:32 +0200 Subject: [PATCH 12/55] fixed issue with internal webbrowser --- src/web/UBWebController.cpp | 3 +-- src/web/browser/WBBrowserWindow.cpp | 24 +----------------------- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/src/web/UBWebController.cpp b/src/web/UBWebController.cpp index ee69e3d3..9ad0861e 100644 --- a/src/web/UBWebController.cpp +++ b/src/web/UBWebController.cpp @@ -733,6 +733,7 @@ bool UBWebController::isEduMedia(const QUrl& pUrl) void UBWebController::loadUrl(const QUrl& url) { + bool webBrowserAlreadyInstanciated = dynamic_cast(mStackedWidget->widget(WebBrowser)) != NULL; UBApplication::applicationController->showInternet(); if (UBSettings::settings()->webUseExternalBrowser->get().toBool()) { @@ -740,8 +741,6 @@ void UBWebController::loadUrl(const QUrl& url) } else { - bool webBrowserAlreadyInstanciated = mStackedWidget->widget(WebBrowser) != NULL; - if (!webBrowserAlreadyInstanciated) { (*mCurrentWebBrowser)->loadUrl(url); } diff --git a/src/web/browser/WBBrowserWindow.cpp b/src/web/browser/WBBrowserWindow.cpp index 83d41992..cb89dd09 100644 --- a/src/web/browser/WBBrowserWindow.cpp +++ b/src/web/browser/WBBrowserWindow.cpp @@ -270,28 +270,6 @@ void WBBrowserWindow::setupToolBarForTutorial() if (tb && tb->menu()) tb->setMenu(NULL); } -// mTabWidget->addWebAction(mUniboardMainWindow->actionWebReload, QWebPage::Reload); -// mTabWidget->addWebAction(mUniboardMainWindow->actionStopLoading, QWebPage::Stop); - -// mWebToolBar->insertWidget(mUniboardMainWindow->actionWebBigger, mTabWidget->lineEditStack()); - -// mSearchToolBar = new WBToolbarSearch(mWebToolBar); - -// mSearchAction = mWebToolBar->insertWidget(mUniboardMainWindow->actionWebBigger, mSearchToolBar); - -// connect(mSearchToolBar, SIGNAL(search(const QUrl&)), SLOT(loadUrl(const QUrl&))); - -// mChaseWidget = new WBChaseWidget(this); -// mWebToolBar->insertWidget(mUniboardMainWindow->actionWebBigger, mChaseWidget); - -// mWebToolBar->insertSeparator(mUniboardMainWindow->actionWebBigger); - -// connect(mUniboardMainWindow->actionHome, SIGNAL(triggered()), this , SLOT(slotHome())); - -// connect(mUniboardMainWindow->actionBookmarks, SIGNAL(triggered()), this , SLOT(bookmarks())); -// connect(mUniboardMainWindow->actionAddBookmark, SIGNAL(triggered()), this , SLOT(addBookmark())); -// connect(mUniboardMainWindow->actionWebBigger, SIGNAL(triggered()), this , SLOT(slotViewZoomIn())); -// connect(mUniboardMainWindow->actionWebSmaller, SIGNAL(triggered()), this , SLOT(slotViewZoomOut())); mWebToolBar->show(); } @@ -662,4 +640,4 @@ void WBBrowserWindow::openActionUrl(QAction *action) history->goToItem(history->backItems(-1*offset).first()); else if (offset > 0) history->goToItem(history->forwardItems(history->count() - offset + 1).back()); - } \ No newline at end of file + } From 4602732dcce18171c02bd0bc7aa6b1f302c975af Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Wed, 29 Aug 2012 15:11:46 +0300 Subject: [PATCH 13/55] Little cast fix to correct compiler interpretation --- src/desktop/UBDesktopAnnotationController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 6aaa2812..c9640223 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -66,7 +66,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) , mDesktopStylusTool(UBDrawingController::drawingController()->stylusTool()) { - mTransparentDrawingView = new UBBoardView(UBApplication::boardController, NULL, true); // deleted in UBDesktopAnnotationController::destructor + mTransparentDrawingView = new UBBoardView(UBApplication::boardController, static_cast(0), true); // deleted in UBDesktopAnnotationController::destructor mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true); #ifdef Q_WS_MAC From dc69855ea235314310d94881cd0d96d67c87a991 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 29 Aug 2012 14:25:18 +0200 Subject: [PATCH 14/55] upgraded version --- Sankore_3.1.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index c08d5dec..ce2ac094 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -11,7 +11,7 @@ CONFIG += debug_and_release \ VERSION_MAJ = 2 VERSION_MIN = 00 VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error -VERSION_PATCH = 05 +VERSION_PATCH = 06 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = $$replace(VERSION, "\\.r", "") From 38847278d43d46355ca0010cb965e304fe9665d0 Mon Sep 17 00:00:00 2001 From: maximXbs Date: Wed, 29 Aug 2012 15:17:04 +0200 Subject: [PATCH 15/55] Some display fixes in 'Sel video' widget --- resources/library/applications/Sel video.wgt/css/main.css | 4 +--- resources/library/applications/Sel video.wgt/index.html | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/resources/library/applications/Sel video.wgt/css/main.css b/resources/library/applications/Sel video.wgt/css/main.css index 63b2c7b5..43d6ee71 100644 --- a/resources/library/applications/Sel video.wgt/css/main.css +++ b/resources/library/applications/Sel video.wgt/css/main.css @@ -1,7 +1,6 @@ body{ - margin-top:10px; - margin-left:10px; + margin: 0; font-family:Arial, Sans-serif; font-size:15px; color:#444; @@ -104,7 +103,6 @@ body{ } #embeded-content{ - border:1px solid rgb(230,230,230); position:relative; z-index:3; float:left; diff --git a/resources/library/applications/Sel video.wgt/index.html b/resources/library/applications/Sel video.wgt/index.html index e7a51830..752b7f58 100644 --- a/resources/library/applications/Sel video.wgt/index.html +++ b/resources/library/applications/Sel video.wgt/index.html @@ -143,7 +143,7 @@ top:($("#embeded-content").children(":first").height()-35)/2 }); - adaptWidgetSize(5, 13); + adaptWidgetSize(3, 0); return false; }; From 96d2756370fdf13b250a1dc5c1b3575ddad28292 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 29 Aug 2012 14:41:09 +0200 Subject: [PATCH 16/55] updated --- JournalDesModifications.pdf | Bin 224641 -> 235519 bytes ReleaseNotes.pdf | Bin 212000 -> 223578 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/JournalDesModifications.pdf b/JournalDesModifications.pdf index 577818a4eaedc495e37d3d9de11a7b754b5ec7ab..79f01f9d0a63e089ab87b67f917884ecc8c44a77 100644 GIT binary patch delta 131492 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%0Aiyf=48}t zmpI5BkQ}?VQ2U5z1y(4%WY6GhV8U|| z?HS#KGoh@)5;d64v8Ll&NLnm;OGRrl$%UeK>WcRdsRk92Q{-3t&HQxbDMRKfQ#woJ zLe(ihgoQ{O3(@8REmQ3AE~oCV)pQT5PJ8I}H?D}ZxnWgI{je8xSD_Jm%ER-pNPn8f zae6ek4Ain%wxS;|4&C)|(2FZn%XwoAr0C$f*Z&xr{Qp+f3$cWVCCDV_lxi0 ztr2e$e8&Y6msMAU2V52B;NC$!MSt*jt*T2ymZ{(94{2r(io2*+d<1d(o?0e7EMy8X zzTwl#Kt*>BDfFF#xWCYh0`597JtwDTJcb-3KF7(t?mKIe400;#Flmu8A98$7=Qf+00i(j zU11Gc7b<5}rBC`VCy5JzuA?j$O`6IOrp|){%cH{nYkMiWMS+G4P6m5Qul?+QerpdO z8r#JQ>L*wW2rDrqdO8ATN-Qm$s=2~ouI42n@RAPsAAKy%hwN3OJA0pqfUo=hUq1q` zEt%cD4h}2ED*FC93}V%?A%B80xvOlrkS66Lku1q+JLXI8)t3`l3Fyk3HC>0A<{>*;wDw>NP7l)1a~XPGWD?x z>Pn9~q)>f%Q}Z@=o!a!WVb8lX@9&bEhmGFjK^p8fWSPgkBIIGgAenozo;o( zw7mXH{wa-3GhDRJx5jd-yZq(nf0v(r|MPtL{_o3=GR^)&%C+?G*MGdcf4;={YA)W! zG}Gr_FF)PWQ}yNZ@7GB!pZ|QheZKtY1}J4-tsJ4#qSA;zUG4i4!_}HaP5wHoMXB_4 zThy$t^ZTN7`rmy~Cf%abSNhQ|(O>oVC77$3(erw1r~b!jf;u6`;5eN0~y-tAQR&E4{3ZqA=@0dG#%(@)+ke!BX3acM+cyv_qc zy6W>MJPYoGiSU=W#B}HPB^tWwVNzS4!_zsJACR_@RvYMQmQWH6&s|0*0jUXZ^SaD# z#X8C+($z>0@}_JUo}vBXe^h>wC4u?0D6QN1l6p2Jlx1h8yr-nwehGj6{KFOs05-;+ zg-sptRM><98#{!}4J2aImm~SWZL>=cRpk<(BNVlTB*rpjr;jwkyp`!eooOmN)5J~} zSi&=tl9I^lyf9Ze71lb6j*L5 zGkKSxj-z2USpZ7Ro1O#)(E>!5;fOVhfb~T@Lu4p*78!NK7a+s^KOiG0R1^RM9g8ha zri^6;g2$+4T>M7DMRic*PiV(VlPAI(K9(e9#)X^kaqxFq7<-zem*9J>f}@tRP4Y`HZ|KxbG5Bd}!0LQxqxsAv)#V9A+`V^*=9C}0(Rpf^Az?Z!aRiwrb) z0VCcWmkSWjh|#?(eUT-h;&f3{$nrS={(3Xd5$h*H>< zK{QqZGKnR@Ftdb-Y`Qpn#g%ZVE{}G=9SG#1c#a{|ojD8j zI^qkUJ`UWO=vD4!2~b(B5YdRXRfQH*p^GN|1uiyCi)v6=(BQY$tgUrUKsA$S%a=gT zY|G|-$f{0He~JMChw1_bN@%T5(h_h;WU~or5o_TNZ+1v+_0>9Ykp5o)k`*pOV1@KlYgL&2uq)&ZarJs63?e~-2V=Bque?@{xuBc5u$rkHOW zn(qwk0%<2Wxp%ae5VpvP7O`AmERQWRh_i$axPrlyP=~w(v;z+Lz5EV7piTI|9#-*+ zgDl4@)?sWNxlR^mX^(*@mg+#ik_f`yvkL*sDp5%vKw&axp-@LW6$*2cxjO*`M=p$r z_MOxOe>~MWR0jx-BWWb{rvx=Juf1bD=O@@C&bj1FMV#3)3V-hmX`j6CNSxNklj0O3 zo+Zx6(wrM)~sE=K07e+PufT6T?B&;A4@=CR+v`NG_gIUglCsi1WGF7nA)oF*~HR`N*%{m1Cui{lDR2A_Sxf~Z5 z14ED8NfKnrhMcb)U*R2MnDCe|A((O($Lib`i+gal&um=-_ z7;6Elrl(3o6<#b=6Re=dwZc%w+_2X$REj#wtHg*eP|C1mtus%xC0%P;Dx&lgPz!zO zOSf&3d_lT6abP8sKBviyF$D! zOYGK{WRH8hH{EZ37AwPLj{U9)XL+U=@hsfM>UP^axu*g!b6=;IWg%!(Sa+m_b%5mT zn%TTJSljZVepy=pg`-O9;Hgd(nF=@6qRy4r6%a7=-jTmTh~=6J2bW!de@MrdR<7@5 z<%Ef_#mpzk%mY`Q#{|;2vjkF%_yT7&ZaTzLh}&e_&eVR+Cfi1DQJZIZRgmmpgTFJp zxFzIK`a@v0NMb`E?G1fHVguC!Xsquu(LI0%dm^9}buBv&6C2l>I_X**tC2Myyt$UK zdbb6Y#iqlsvc_g56m#pwf2jH6HSH^)_}Fil`xwIJEZ-C(o($pRGEu^?54E3V1p{|0 z25$EmcqjK`hr}^cHfgQi&rWv`l*OPyQdubPnbf6~gd^l}Ru^5(=Nf{+-Lb9>)e(;z z{neCr9CQ_!4^1&`UBFzo*_ukj)&ZQ~ko*{RmXV7QPfdQXW=X}Kf9)uIFAf#LoM@a` z3+_ReXW2LM65t-u?`{U64gc7=!KVBveb{c{lXBB>Goq?;6awm$s7fop%e8NS)1%~jiX*Wm+-muAH)F} zINM_dR~ahZo#pak#8Z_XkCmQBD?aV>A?$>RZ>^r}ogL`pRF8U=&+#l?s((D{&xe;@0defEYw-aHC^cs>%1 zxl4%$BzRC%4m&UaZ)B%REV`odRw20o2rmz;f2eVFmbr=%PbCYnWv-j8?OY>rippa? zlt@hJ&t`4;H<;(+QKHw2#X4@}bC@#We#8J(Jj>n0i07!ogF2=M3fFLyH<_N{BfjM- z=C5FwuIWFqf5FHjnKiYPiFB>3KAc(}pM!7G5HN0eICk^sc0D7(nd92a9@v@kXDO5z z@ifKOla=Fx?|8B@*Cg8RH5)+SA~l{*+;xB(2Ym+}OHh5y(l$^s_x%g5UdU6wZVj%D z&e>39^H~BUMm$YrqG=u)TkKE$e2^doyYUUX*?3nYe};ycI=-ngo`+p39CG8dBAB+0 zb(0Hg+btreTOayK#%!2N%T(^blj^fnMvQo>C*>2(qmsv zcKLI*e=l7_-Xwc(a4v3qiYcC@Q1QtO$~V2{Fgzkwdd*nLc-474yr?`hCb~Kn zhLj-U`DMv>E!n+HY`~}2-l;em+jafyRszl~S=+T_-{}R2CVn%uJZ{cy_G6W(v9Hf7 z2vb&TQ}$;4nx|T)^GQ~>hy_+BSdR;0wNaede_R(Pf;1O=jdK#_;#P0>3}4(k%S-*& z&{9qh2N-|keT}Mbwu_>aKv9$+sO9Nw{m6OsPHT-%PAZx0%LFg}eJ7??3{ zF8=$L6pKQ+s5(7WJm{`hnc8Cc;)@9N^r}w(efe>kPE-Eml6%#sXw_>x{r=CFzy9g; z+spUUk5icP7a`i$a8gq|Y5Dv|`6`diGn}+8ucrE{KmGjc%TIs)f7PBo{&V_Xr`cbm zKFj}p|M$!L=Sxbj<`i7YGkyN!^wTY`s!yN)I!|i;{N?5P`SN`+Kq>R;(HH%ubW~s%o+tSaGm6 z*fa?&pdJZvz)&`yfXoDf14JFx#hf$oHsZTstNSKtQK#gRil-#hgW2m287@jD$5`=qfOUy%U!1eLbyeE zT;|L}@@zxJdvjFrZN$SAZ#;)X+r>dA6u%{nDu-T&d5FfxRIEON=xCw+3G0?$?waRG04&8HBhmVEzgeoqu z0|1C9Y{)iZf{H?&22{2Lx3~Z+TwxMCsahKD+aVv46vqmflIh4Ev4fZ;q7H1;j&-e$ zf0Ar5;u*U3UuGtmm?px4AgBa5CkvcIIj38mLNz8M>nN~Cd~Y~g%M>;GZ4`{$t_Xvp zfF(>Jadcs8>?jYNtC=#uQM?oHAalUEeLV&MMrwc|?ZXZ2!=fEKi(MSaP%xC1J<9*Yh-XO445gJSDkHP);TOyQ6-!jxi8m!G-o25 z**2Urtz1Gl;5xOniog~;#+6bf+(C)-j)EIwBK#g{#HOQ!MvQodM%<&Z#d2L$w`3v< z&C%yOcw)oRkS<0%LqdKeAvcwAf1J9BXv#xQa1NaqGX>qBChZt$F#Ic1!VT+ zH|q>HOe(>Ntnh}k;|&esf-H&dS3Wjs#V%4dbESl&(Yw3l2p^>o@0TO2JsP~lh=*nj zktpGyERQQRn%z~71kr=&B=WEYL6SUdSv2m{!s1O@!0L7?x>c5Fio(Qwf1JQseUu%D z5fAm|)HUR`^EX`==o%w3>jjezRIq@4Q4+|%4D%FD*0sbg4N7a(@7CqO5sJDmt-`fY z;I%F5M^jPFU8&hf<#G1MJI-a&Q9dC?JVBe|J^|B-xIrhN4Yo|11f3vIrl8+SdO-+p z0qM+Z2DvYEA;Jzvk*K`je<-*kMuE740xn{7S;uD-!%kSCLIBy0*Igu7Otj`pL(>UI ziH{iZ1k)L|2VCJjw$?|~MtuYrVVrt!=&dR2RNG_^G!7WQhNW+)DbcCD38dhR8tZDC zIBupM`Af6W&qnmKx)QY!pd-^oFHQm0Tl$rKHxs}s)}%2_OIgV`f16Jdv=**$5fUi+ zq=p@pqqsjTaVr^IluyXj6eK&MwbGrL(J(bFtEG2I)h)j1N~f@yY(wn7JO1Ewxf!!I z?_z>Ohw$ZR?-0Bqv!$+syjAY`fAY_fHLj6wub^c6NX3>l#0`_^&|k%k0J1<$zc%6t zxM7DO2MfUHqKwz;`W>_U7=K%VZjnF*QG#c(wKj9lO)Ef`Ywd6ui+rbbkoMYA5JvO3 z7;%7^MApz(V_VF#nEC>ow4g&hq=t-i*48Hz?ewtI$L#p)7o4?)ur>|nIw9UmJB@Nj z?W~P>Xx@;vO38~-N$KrPx?LTEGFBi2lJ(D4ufV%d4Zt8PEzv{Oh=16^8}o`GHT9xY zxN$+pUPPO*zjoucuHBe7!Cz&3mA4eSp4TdqE|Sk8@6TK!$s|}(p7J_22A$MFV-O>r z06K99I!TC)?{(CRaeR@b3-FNDK-dVn1>iwnkMqUurXu*cH~sY#aoekRiiKBY@p zar08v2FKpJyRoxhc^jZ;U-MoheScW5TpRx0^$l^RNuEi# zoX9VcvQSq7Z{#L@ub7~%IcmywO@RN9DaYO!?_3zWBa+=Kb!55}e=5P@(p#Wb!}G>Ucq~SEO6T?fm71tffa-~x+wF0sU9)Pa4CJt*krb7} z-TszVN0S3F;(uW#)PeV)*lP`B2XO!Ag3tqX-R8bG2#jCJ>*cXi!e+l1_Z|!lq=={cAp^Xa`BFB=qn^`^ODRnN_1b>UkT@KSBlogX+1lv{Ji9$d3oxXz#M;W{r@i6PN6%r622DefPN;~0iN>$!1 z-zBXw6r{ml6A&O{TY(b#L>MKZg>He1zQULOOh(zGgjI}qC=68S;>((YRI2Nvh)PUf zY~A`pEq_RKB?XmD+2y_ZaeIwp>Gp-naRYBrr#x1!9k+U0li*I@cSK<5=;F?D_t!{X zfTNP#UtFEfC;uJ-A!!>~Y@YS@r z4dyzh{>l}i%`Sl4-K(}?a{0Ga$>(1_YU6ObL4Tc;QnXigRV`h0G(MJdiWwB0ws@-r zQ`M;yUV!`n(Mv!!Rn>KBJrobc3CzS4NL$^@D3X7ThoGhncns1&3C;NX9i}|2#9XSI zMyj*62)Jyx$tql*rP5{k#L3^H)1hQe3BBv)J&=2-jr(n2onliWvcRj!6iY2t?}^q% z8h=5|A&^n0-FR(`uI&&~g(Fo=dDdB-Co|dEoF_Ni^W^7m`DZBqkMp;1p3?kH(I@7g$f=3yTY0~_!sZ_g82=aLf5nzCZ}NZ&!i6yU;L;VOBG?!QdILH}m@wkr5dgQmIufTTMe%wWP>Y zo_L*zOmnfr|DL`NW-#z8lyGrF9_=L$fBgLP_rDGQdHObdACiF!DUX*lSd#~*?|;Wj zAPXZ5&f%k_J{pIA{r>dBkH3$9!|Q*CZ*`dWC#m<~?~h-fUf!Ncx%eT40wcZsd-&l7 zv%2B!m&w@q?YF1v+tas|fVKV-w1k6~0*QZ2;bks)3VyaGO{1Nyg|F*uM>mZxvvu&_ zZMGgBaqtBf!(7tjUgzv5pFk>3-qDwtQ=G!dnsEF&Cx-$sLGp7pcs*ns4zFM52-ioPn4fX@deP!I(a*`? zU3osmIT-vM9bS)lx|TYlpa1#x(-wS$w+~10?h>cr?K<9ddGFy3GXUPOybS2VQVoKb zD~MT8uh0Mx*1(Nd`0}WK2>@{8SyOd(t5YY1@{WeaI}PQkp;%?h`5LnJsD`@4X&SPi znm`&F*(2hnM*!g7H%McBmf?yDIzJbKKoNj+9d&c7&|SNRU;J@2eM3q@ybl?%L&D%Q^|H6N`(s*77xP$wtVT8PR9-V#LPcn*_qRentsu zW4E0ia_dk$qFcg$_F*_d=JR|0sB|K>6&JpVL*3P0cQnaSH5Xsqd)2COf zjWz5pFpTv+z55o%?aT7;6a!!qG$a2pzmG0JsyyQNO5z;97k!`sv59ikDnD^p=|FFuDg;{5pPz z=Uuggln$yzNt~t@*VU3AFcO>rJeoWmmQUV&pZ^*5rNzT|T<$>C^xDiJk8-Xh6yd!oJ`QGoGTrQ9Hs+&AT1lLPS!v96&m+KW6H>)U zgfVxcqg1FpB4o~o5;(#gO5I;{R1BQl@fQT3NBxxm33^{fF1FFjuU#6@2aDV2=$8@$aJg1H;f@hnRUW}qQCjepojU|?}K62i!EBTyUOV-F;6C0tH_i>f&y z1$tg_60y}*Ul_B>y0+UXwjyy60f!$8u9+VS3h=fsgH*A$Lmn_2=gmN>l%CgHuEtN`bU}!0G5O-H`N9!I-&-r?Tn0rq* zb>#u@CLRU8OMC+G|`5pT!i|hy2HI;<#}7Y z$lj=oEqhw2?Z2wj^wJtxAB~wdyMuP4Bu=v%-#4cBj}F`!jwdzwvDUhOIFZ994%`yI za!9vAi?oXZhPnWZd0eOIq?qA$M_QC8ylK_!fw^PY?keXtJ+~rggz>JKbnT}ez#Y1Y z1gW=dI~yTqD&!c7v^mJ+?wD~U3b1m&d|}SRwU5Hh(_Vxj8n6gimRT5E*0#EdiS&7U znXS@{RFgp+0?3Vr&`!yJ-j?C6v4^7!R7so~Br7zV{rMe&z#++LThDj4ozx-A^y3~#Vcs+M`GoFM)*k5dcC5@I;f3o z?<(qwgqpO}wMPGUs+0_iSg_uX)3mi^;hVCjd{<29+9W8uX?uvfreKd!SS9fZ{gkpB zB-&ZJq8KOo^0IoOib0G)Q__*_DAa>4H440F&b6t5B;{}FitFK6cb7x%dR^DB%al>f zavPE&fbXXe7PZcQ!rfIk;QW2#lu_dLd9tj^^(3kGc2}<77Ug=ZL{k><{!2ua>6`uG znx6Y=cIx=|xt%r3qjF*4B)WjsyQlrwoSv;6=GpUwe6*;@pHoxh57g6+Id+lbO8K3w zH`eE<4*{fl=EYG0R0j^2G_4fQC7&~m`mZ=Yo~3*4F;EhJQTDA~c}1->m&xk3PI(VD zq`Y^RJoIL6XpkFl{n<{&n{oD&3G+CaIDdi9g#YLHOPWlXzc{}4Tz|gsrLVJVcVFvg z9jlIX#b0y_%&-kwFIcE_Cu`>~ekok#p7G%u%i$*pW|_%4l=dhMV?_L47X5AbKONFL zN(yCeWOHjP<%t%S4X}PNzXw^uHTq3^sVo6PBbNcVokJEIT;8!T&Y){#n zb3Xn4_oqMq;q>pP@24N9G{KFO{W+b?luuSa|50y&ER1lnw!T{M)p+{#x2IqJ_?thy z{eS259f!F;2|j~=zyI^;<^8FYvpc0wV5IlIoqoB&toHQ&kIQ7{_kTTI-=DrO1dMU# zpd~CU3MBq=2`_WWm*8eIrHePSF>txg#@ma3nT>`2-Dcz96$=-*8Rn8M_HEAY;sQv; zi_3GtzbRhA+nn;nPP5PTrQquCkS{*fX@3%oF}X`LRUl0$9W%@cmp7OU9?_6AfP2Pa zZ~&GGb&}-kVDZ)j4US1q>bqsm_7dHkCLSr#urMVI5-(R!Y(d6z;i&Pt#AA#X$#@QpXLpTP>VJLM zd{FvIxYI1wByGb}kNQvclHwev`a9U+KFi|!U}4%oPJBPUqU})YZOqVQZ+QQTGm>R& zT_=naW#t~!VXZ&~jUnc{@vY><)=6wl0~TCZnFMsV0d!3{G1jNN{Q-vjoK$k<@r<1s zL}bxPluPp^Ljc7kFf!R$!ak6UIe!YIF7X&3!Ok2&2;9aZp7IJwQ4|y4rC`v@L1!uB z))7(cNN91!&vSh`cqZL<6<2)cD)w7g2z~<~V(vg`6Ce@{F18wtR9u(CL*CeSorgpy zFl}iQ6?d0N;LQ$bQ<;NT715n;+Q_sJm}t+|F{gvJRuT`hH8DP4$kuVw)_)F%W*%i^ zv%P%%59^zhn-rsTcZ~~o1vUBRazHS~OcF9+%w63@cT{&>qUjEp5Q2GKM`e|XeHkrC zR1pO!0x#2I8tgqI1a_C{js|rl@fZ_3vMt)nh26M7OzW#1j9eN6@}7IZZIqjqT2qeo zGZ!#Nkv4Tc+sxmR4X_1}UVKKWF$;<+-KG!?*p-ZxUVcwwt$^e?m#*eg$>Jr#OD zRlBP2M+1wJcxWb%{0VwVJ2AQEUsmN`-DMjdkcl#aWRcS@9p3_CgUmv|^;j)?4vMyj z&UV#mjs`*{@i4V|P=BZyi9T;e!fFDe>f3er-&RV@9dV`Q2>UV6m!mOINqj-=xL^1? zs(X-II2WdhCm_*{*>P5Ram2E&)z|>79Jok?-zju5tVsyRQ%)Vnygd(~=0Z#-_>HiY zEYYA;|9Zhu>e2I&(tkCH#LzL)r+BwQCPv$d z8M^1u3g9R;7^>+_5KT);R(35VaFUHIIsiIv*+p|Y8s?S6!-^V zE@|1h*r*$aijnM`dpb~;3@c|7^QBe2r5S>g!)49EWsn(2$3$*ek-dM$D*k9lR}v2` zE{P&t*-N*=gnum~VGk9V!cdGCWsA~lMbnGT*hr$;?Vd4$GR7zBzqGQ&*@T!QTy63J zE^VGl)qg z^&V@w+CDXE6!ep~ZMyH&08b@aHjr!F;y)=+Q&o5bmJ0rSx!^mFRK{Ll;BnMd|f3H6g0`ct$W_mIz6!uids-Sx?t8-o%Q@l= z{r#`-hPc~|fT3LyLwB9no+Rqyo486L8!~lzn6$km?Y<2?0}el`;Zc?-9{r>rwY<)- zVQ|f4WY91y40KduiXFX9d?JjFGx&kdm&f~SVxahCCW-OVrb|nS2JuGNt-V>I$`8vb zJ%79pF`MEch^hA<2C)=XW>8iY?-s-?LM%NTVnRACRN*;+lt@D#u^X~+7s_yI%#|PY zykM>E_3Mym6TIkjSHR~L_(Ch7u&`R6`!r7LCl;?<2nBVx(T=4zn7u6`8_Aof3&Zh8 z8dDUtT6L@=TM8@XMs@s3YtNW(=mS~H#(%9Hvp|h~i|`507+V*WqDqaqGDcr$+v~@t zliDP&>J1xfVoJ8y9mfb3!oddC>nJ?*$F z2sTMM(j0+n<5myp26ENAr?7idr+-kX*U{6xI=Xha?4A!#PIAVN`EY;#D|~qCq~c*d z%->M)7b%jC)tDSr>|KNRwcj6)>okGuQ`&~D6eU&}6;LEbEIVQPkiSh$X`eSke7gA_ zEf$H|s+t}PtkCs9b+l64N9r3Bw_S}V}N#zhE)qne60m-d1 z{?9A z%x0NKuDc)l>n7d(SQkzo2`^#je)Qw6+mJyobLY+Mc;V}xs`^a(j%ez=VO5lVq}#s( zKxd8tu)qHm0Nn4Ve=_pCa(`9VPtDcY(>7^Snd8i|r_QRrSLUoBA)zhWZs^dKy$*J3 z_WwUKll!MFshx_ysV_Uh?BPV82oD*#^zzi_RA~VCUKk%UZ~4-2c_^)q=;?c1 zT4gJC%OsiQB0ErL+3Q4_&cs_TzEj?r4ealicgB=e4}N*zpGdGhz%t3#> zTFZ(oM-JWhSLAx&w&VSPB%vQwVDBz8%wm|;jBPM@hU?Az{wO3xgd!^|yVEz@G*ne* zJX1Q7jufFD_4L1oZ0iG;{P5%NZhC+H@AMU?xxdJ_(&9r3@NJ^=@Z|#hnEv?n;rZ<$ z>L~{O=%%-SPd{8WtT?^>@{ievMVmMWzi1WaXqKGkXqOn~ke8I^aD@gvhYNlgwYW4} zz2q>POKG>R{I;r$;3tZoq)_^Mn8Phv>pA*52RySL=fL^G(-Ko@j=HQ`M!bLUXGmph zFn4rIuyuWdn}sE`4rMp^WtM-w{q%5od-#f?FfJ;TfzCxDAsOq1C~SK4D^WO@));(a z0~?8Q(^WopSOouQ&IB4$8uW&9`bis@bJlKo`)#YcR#EmhO&!lmPP4bLTAW>ZGx!48 zJ2Sgy)RcqmS?B_rweS$c7-xU;x+FW>Kw?QnUjDVnj^qW+O?KraVNO(QK$)X#NzKK!7E3Zp*tZAQN`?R9L6;oX?(r`H!FKn=3 zXOCrHc}Eu^#zVRg{m;<_ba$YONZ3r}r9mYzu~49wZz`dwqoUVUO9+1meN&7f!lzxb znu9LSK@7z(==rtGN(uvDCRI)A2^B$-ypV7;%^jAg(6CLxcgBV;T+{%I+bpr}&%;YN zhX^pFE>jg1i*QtF>c$>$UD{#99pa4K+BTxKs`#Nvc*6iNYlXd)rdTCVddFM1xFQg-8a`2!$Wm}nN# z2re0)+X8IXw`L!a>J(rQK6S)q)!^mX)`~s&J^-E+^rA+1n5utvbQgkowQ<;G`9xsR zxT0w#G+itl0-dRI_>R63?otP8=^ro{O6$U&0Wk|=SRt{R4!$BuX6NNnH385>S?p=a zRV1)XP+jIpIG!C0ntTj{z5h8FERTYKV!Dq(1267pugd5alB5qNbokMIbos8`B{-B= z24~Z;SYUBUgRg&0YbPrEhG%+q70xN68-eE8nTHczokg9xsM&4$&cet?lj)N^OVvyc3BN1Q}Cx#zZTyHRA7<(B{w`c3!zL z(6B|)=yVO$7lut+X5cDynHJgs76D=54Ub~)PxD_nUY8l1_$|XfX5k@;$gVp?!{|wN zkYJB-Nzwl_y(-je#?L)}no+tJ4AeEq{%J|egld0B-YxBE@}?Epr{5E}6J?E*_SBl~ z$V@qdpm-n#*Pwb8L6w#(K9S;fi_#l0*$eXV(ImWqjrGUc99ZiM6UL?p$vL7HK60Sb z)!C-7CMj8LCZs_`gLto%?S%17$?hAQCQ^IH0K9gOZUfT=cRMyez9|lTFlu&ZM1*KP}}>Tidy>t)EZo1?d0-iHFN}Xt6FyF zx=|{Sij>HXmcveQb2ZV4t13ig8EiFcT+{)L7nDMsa%EN|n2eiNtRP3Yqc@k2>84B_+d_DMM@*brgYUNU>S2uVqAYA5DKN zL=f3=nZiQYx`l>@9OGD-$eBUoeZZLp--g{-p+CJ|1|7mu<(0u&RFo#!=%f zlI^I%ALC@A|EVU9?AF@9D31>{JBO{LIG#GYddFeQc(=4V(*Inofi*n%3O^j!P&r95 z{2e`+V;oHMKkW{II5!D<=O#QgXKyiA_8~F8x+eg#vrhu*O|+d>z&zdDE}SSQQTl2% zy5_4>t+&_P!zb3Ek#^bzIselgHHmYYy9QF;=zot~3vG;=36xPGZ7?E#>&q<%3#-|%Li`uzoQ+%7`lZ7offs*Jo;P){!7sEL7qRbPQ& zz7-yBD@$?pnDOx-JgP!*lXVNheCHkMLxLA`YQe4_poFaeAWtCX8+#%^4 z(xt!|%Ia`^b+kZ)E3T?0n`alposoA+9NRjpY^4!3D);DU2I&yw!; z-i3);fsyW|p2qEH%^rWFNTUB~S~KW!nXT@XKYFD{--fXjp>)M1q!zEPY_F8XQZywY z@5n|Sqa~vM$yXcSJq9YHwGkH>kd;(Q-fmMgM!vok_I>Ad$&8ku@ok6mn2lQW#u%)|O+`>oj^B4f$hW2*-$r=zkU%a(7$xw%>MHjc-_YFsKjPCf%4pEZvAt=3_Cj zPEz`i^z5-%E&6|gDTTj0F=mmbF*e8(ieUCj3&60CNl>33H+7R>+%4bxbjH@Q(H-!GTN5WFh?l=x0n7p{U2l5x5AfkvjG&7 zi_{4NH#0Jmm()Rj?OI8T?8p(m_pi{|@M>~jKnQwK!T9!|!3X2hjBPNC&6|t={zOJZ zW`>qhwd`sbm`6iZbt-cGV)-Ic>Y|7LK7AY1px~F!{$hsY^d$|y{{87Me;WS%^mX_) zLLVfg8nryqX&#SL$N{~5mGFt;bcXYlvyKc8OS zpAw7^)bRfE@Wa&)+6?di7`2<;|MfJ#KYd*ZYZbe+fyIFIUq}Bkfa$b<8UuC=x^#?Y%61G9TRgW!%R@m+f)>{YpYs&31y&Cu(C<*62FK%+*|_O- zf<2iyIXwpG42zk$TfzwfP6^wB;WDl+Z$fWjC8bAk!uMzyeE+yfoQ%EH^EVAL56 z{5Iktr4xuZ=}$0i^WC&R4tSlkJWV{&0m#9f0l7+l0?76|$Z&))mu@gwncx+@H3A(B zujl}ON_U2NHR(@)(w&1+2`H0*G6^Wt21)|U{|=#qgNczB6nUEvenaU%VL99hwn3j^ zRZaR6p!AQl%G{uQ?EuAR(tzuNj^ygk8h)#mIahB8|6Ebyq*Cm3d!4L6JqpyLK)rF` z6>lQcy<&}_xfZBvGGJ0@{^Bj#%@z+ywa;gNxK@+?1o*>u_&*4LOSdwnTX7Sc$?>FS z|L9I={FayYRiA zpRuCfG+M-E!Gc1l>CydU$h$MFsYyQujR1tBP&lc6LmG*mR)8w_TPZWdYCB%Zf_ zjD@WJm1Bg^l{AH#E8u}FjMfX}7&FVn1wta*7q%=sVB9jZ3bj^x%&${)6>%JCQKq<( z$!{qE2K^8a{?Mazpd2SLkw}}FV>L!@F?9mTtg|?VUN||}Ppm4`L@CqCo$W|x=em!Y zGYciPBp~vfmzyPx51Y;Ql}e}xz!iHQgm2h z%SLDk^Kltjto9qx?Z-SYe{Y=P?9^ja>N6S2$3i} z((aT|_cC7;K6;UCbzO*ii;srA%_>w-CPTi#nH`t6lXI~byl&#gs$P*)Z;?uMF)k_( z-%jTMUm+RmS#6>oT+pO5y6Q}SQIoPnP+FafXHDqQ0u@1tuW2-nT-mBCfwMi$noL9= zb9Lv!C7#jmF8>()w#3T(BJ&QrY#^d~QEdUKPNYyHA{0A(B7${EEVV^Pm2!fH!GGV-``2k^o|cj~$-c?*IS+}?t*mrl#SIElH z8e+ZBEXvy`{3_{L@GQSEz&AX9_GGg-`t`7Wc@Iavc1adQ2woJ7WJq1~TNW;kli}lP z<-Lnt>(x1+yZl3ePWNwsoUI%RJ?OkiFmykENjGRD`;6nQ(mH8>4ejb|6$68)Ft`IF z-dsNH=d%UD8j0EYcbF^dOdI>W!;Gvc?|3Y^5g?MWK&_Qs5TTflG(y`;KBEy`{$WgB zi|gNA3V-W%VUg_w)L{wv#~c=j8#J6n+OuEB1w}BZ z0!Te{y|L)7?cg1Mf_1EthgmN!TbhdY`BG~j&93HrMx#xL7rWKyaysY&kQm_?@-aG( zVn#5LspKV)Qs_=r53uz143brvaV%$XOFF|w*7E-+?o`9FxKW!9-6jUHu)e@q-8L*3trJmWx%`iWe96z+q}^+oekr<2!HK>cD6u)^ zj?6=y(IQ8^8_NNv#&Y@0V(3AZyidO6ebVY+>%E+kZ%^EGSqpl-j1hNZ$DJ}YC}&9k zMJB}baZciY0$VVX>eQO-P4AgE_0x;?AriQImUN$Z(X5Cryc$UWyAQd;2E4j@a_CZyu zt5cO0;FmcQN_5Dz*w_n4Fsvaq2|=;ABVHs03p|^DqiCVMznqB|LjHphW832~R9oG@ z@&zBhUmG@C)pxa!wpXEUg@P5(wiQBJYSksm7EF&9jjE-<6{~JBm2fC&GR=aU$ zy<(+w_ubC*)`xpx)!Y>Lf;WoG99ZuhX;Hf0J4SI|c0OA4tDEL_T8gsoG3&}&hIF*D zdoK%rYOBv_eV2cz4zo{)J4zgcBgVlT8v24IG`>QWt6XD#qrswnE{X2#5u>hpOvf2b zhd9<2F6vjklJ9DQ%slgpeO}h^D42DXP8-G{?*gc5|I8U`t_xbdDHQ`>SL~D)1J?lM z&EqHP<8C2&+q^?KSD@g@;@BO{>l_cQG$`fpM## zBbOJ&I}=nMT4y=!F0a{?-;DwDR)>~GNE|h(H8}x2OsRkPihX6me;@KpVGZ)hDqx@G?t+-{rvUir{8_Gf79E4rq5-X{YA>P z^!Lj@UOs(!326qHr!RkFLYgugWf8{`qqI^745YtY+Uv>$I6P`p;MQX^G+L z%#to&ty+{yZ?{EReYKw!rPH_jqD&g1(_8w{Ezw`~+Y-#xxO5lfx0qgG@o;r-iw{>l zFE->s&g9Q7lu1;$f5NTY0X~m~*CpyJxcu4MJPOCcJS7Hm%{! z;%8bZ&E$2y565_uuLizq#eCfjY6+0{lwZvf%Q8x*FK=nLrhJ>r0Nf!z+5U|8GM8Um zdW}oad0v?FXRqlY(#XGj`TdrLvN{c%QD+_fRCU4w>WumKe@G@;52 z<;}|=z9W#ie*k27u%Q%?C#=sVFH|OUG&oj;;4e7IV4rNaxMP$>y7vIy8Pt!%yN-Su zyj23WN0jRcFRvut8Qz>K1~H_?zZQOTO{7IcFWl0^ROm!Jr-9)$~8 znMwL-H3FkLQ?yTH{^4Fi2L#5w>1fo@OJtm8bGe+?vx-RGb3U_polP{gnj$-cab z+jS^cT_ad}3^Y`<8pOP6qM_MVpr*}8aC%exf|r&T50D2ToIoCrej4(0LmnI<&&_2r zVwCFd!oX71|1_IKb#EAUlBs8s-qF^EKjTI7HbOzH_=RDUZ<}eW=}B*)qYqn5NNH2} zDj6Tze*~gFZJCJ=iUN77NT7k4{zgj1Sr3#9_KcG2=%;$mSiEOA^q#Ms0?;fnsRuFw zqIRjP$HNjB)CfgU==qSPtsY$~VhSo<`O5iC)#PuG>ppG-Zni~t5?N3{b8n7l2n(c= z8^MVgD*LJtS%k;Rthg_nF4kYzh38Q5RS-&Ce@qocXF!#VMz1=PW_&eDX>dejH6U$) z#a+y%vn!!kQ-lJ{`gtcQqN%=uB^?CExBaVPPBl1IJs@@r#A$u8E7a#1w{0XFls%JO z@aP|4Q1Q^9(gI3n`za(-y$Gcm&om%39k*#fl?_?j%!cg6*|0`CA$Z(L(V;FWqeHfn ze**$kXVM2A{TzJ(>Z_Pa3a^d{5V^*w{A_C0!drE$*Yc}dqbH67kVvGJ5>=qP$hJXO zIE$3=3rd{HV&KPQco==ByY?mS;+cq+M?X#CHpyCHcws57@S72Bnnj09E56W5k@<>O z*vH4>_5GIDPZ^pM8Jf{mD{8Tou{bP~e=`)@e9rY9>WsCidmZ=D`vwpW*2xz9s`YtUKoPY;~{-K@;}uHH2FJe>2{S z1r%nhV-xH0Nm)inTLWn26Ap4@wlP#an%UPB0fo_uIyJ#XH`yu%`Utc3OaRZLe*~L) z!fX%@3>dSoozV(S-KB%~&DeMI^o>|xmf7xD292;mn;f5x`?-A->enqN=cpqHAK1~@ zQMvVzyl<~|r#kYbn(HH;!LDl*e~(oI-8(f`r_ThrJo>3YlYS^@icoWkt4MB>O`4z z+g?y|5o<^yOc^*-H8Bjq2Kk3afVtm2gcjZILruf93<&G!}-# z4)_b6XMb@cq7A|}VcB$8HXB$D19duZdv%y@>q$^_l(`?U_xVZ!=sx!VZNXZh> zG8R=>7*?CK+jTL>OvuT*A#?ZD@%qY!p=Z+O4w#ZT7}=`!MM1C4XFO0nvo4;~M;rev zeMD3TqR5LX>F9q=2@@&Je~zL!Q^T>Lc(`pAwwCy75_)Uu;QTv;k-*j+nL;Cx>e4|3 zLi?FZSS0`lnlbL2X4?3tdMUK*`Or(Hp-KrhEM0`dC}gARg2l)rrC1fgzMjhin;uWL zfm`KoSNSz0X+<3L1wF3d0bFsb$GaBbbkBDeEa7W}(jvo>*0I}ce^0L|esQ`j-DA3XM~`Q6A$O%qK3z_x_KLw;a)d9vt=Eo{sz<~ zp5O~H{@tpun&ZW6-0__Zla%66g4rdTqvXrY`98MM%-GQ7olyivVb2eaUb<32i;y2{ zoxH;=USxHmxwC4)HA5R)0|nkxiGX_6W@5&~>Jm6v_u zyUVh?i|d(^WpeyDI(KgH!^BGsPX6L&aY>P{`_C~~&- zltGCPJq9?rv9SeLM-1WWy)uj(I2@a+l&D8iUF*n;>P~m=1E?kny0s@Aj81FE$%-(v zn{;J6ysZG$e?(Tb2kx@rS&8i;h9XmMnSbrINlJgDZh=U)sy=+}K7-J7^U1FiEOME4 zXx5A^)Qtj0Wr>3<&1iQSi(M?bR`|GeUR-V!bX)CstD6-+vZ_W9fPwObUR^f|>6~2<#62N8PFIq@4R@J_Ge`lP|xDCcJ}sw5~>Q?SNhAqQC7lzPiU5-zdYi($s^QR z%{(PmNYokRV|4`>$@Ve(veF_NrthA1cqD4wcFYs ze)}>{AM$@`eVv@UDE$1d>5uD&2Ah(z&F#N6cim+dw!}N4@5AMx04-9)e^fD#G&ELc zO1kqMuJb4@9IN^J@V`=hSX=UhsM`*_>q_E$CX%xlPCtF5ps$=Jq5HjfBY2A zR=0g`!!r_T?4qo!_&&(s2x4w$=M`aN!&2pa(n;<9A9jYG{?;j$gK&J8&DV8H$~XL~ zaJlYQi_++AT!Pb-R&dp=mB3*o|3}G#4U!!g8lx{^GXBy|&!ME}lmjm6I-5C}2=Zd>RWj&bCsEH`4e7Bk$9c7{GgI2x+=AN zF#XNtzK?nEo$kx8cw^v|l+JgXe0Q1y@^^md&(nVa>?YYpmvOTJ6bv^YFd%PYY6>$k zF*lRo=tF;7iz~SiexF~_&w=skeu1W8j>itk+errYA>=8$351-4voHJiQ&Q}Y2A{OoCowt2Pj33<=a(OUH~stN>-2rH3@%uw zPIltVO@e;^JzRphaED2VFx1DPX8PN=mmmJ{O-+CA|CzqV+iWiqzk|PD{_*nVE8XpUv>Voi4 zK$d^$*G8&8{r-hbui?pko3z1C|C;_h?$zjZx!)J%X2BNif=pV5&u~Sng=;<=5M7wr z>L8$jJu)^M7lk(Q8jiLi>;|q_7^@cN!bBhEg)3sQ`Mx;IT;eU#B~C6GyBK&qFHVFn z!e_r&Ftua8)osS`E8v`bBE4@MeJx@!R!^$v({DA zy2;uJd*L>yE$TuA?ZNX8y0|XRB%HwYpfHYuF5wG{&`1hB2aP2($i_#r6WR2#FdMphRw={eHJ5tUBSbutQFC08e)G3N2ZN4@Gh*<@TLrWNP4n-GFG1ys)-jhnFud~ zb{W{#ht-mGMz-aQBZu;|4H*>$dxh_%N(i&@ig#hdmWR(EJzNLrVGKTkMpmILi$Vsp zv6FE^Y9gx^0LfNXB_ed9=iq_QIp@eIylh~P%#Cya)%#7Dj6Y<=Ew4Tr@tO?aEi!au{N(vHF%O-2zw!VM%|SqQ6hI6@ z2Fh@SK5U8zU?{Lly({{R=<(BJ6D=!SZ)BK4G$qbJHYj%18*xJ-NE3M>n++DoVh4>} z9YbRse+-SoyhqT;OH65Z&=`N0yeGnN`*`H*(r>ty1d2rCQ5&GjLdXb;M7O9`Ufo23 z1`<1xu1TJ#zzVfW!Ih$uF&fnxxk_ZPBxF-~ZDT`wb_g3}{2^?N^FECY*#w_r8yvXi zJ>cN`;ip;`e~YXbI=XA(Brh6uV0^HWRg6YGjIlf`*>rSw8S)vR3iN-fE(5Rl{|dir zjYHBa&4?J@ln>GICKxRx*5+}9Xbi+vCi+rwhH?4f6#@=vTH?pLw#T&nggxOIpaY6~amn#Grz* z{x-~11Deg6_7Dzb^h(hK`9JA}hy0B@_mom_fOH0Y^8eB=Pz+vlTjF zBO1#t6oc#RXr1X}TCd}eX?>XYh}LT+w-+A8C7+PVt;)VtlVyvyF&APo6QQV;nTzYI zF^n*_i4_ekf~cz=#lY+|)|;p7LZuIkseF zM;D{yR3fUjli`%;*N(#UIJYget8$l^;g!8G?t4SJ+epyKSW}}}26YH`=%SZY1__(5 z;av0AdKDIeaARo!VyjMJjVTJ6oi#kw;5D+=C|UMV^EBr|SqV@0&yNfA|G2>KDr+iJ zfGYvcN*D3&8iE^J&`!V~u5=^JfilAd%e2x)$n)lo-O@_WjBF->@p73Q#8f&5E;2gG z@mk4LD@ROKi&%2Euvb1cB3V}#SxcHx{b2EMPM2Y3*r{>5&i!=q;YQr52IGECOaN@< z&;RNoUcaJ|$mw2_kWMNdv^Bpu4gD4Y>x~mti(Y5S$4V15F4Z`gkL@O@jLJ{{B(5u# zVN}9}Yajp6;Od*!UAVKeFeIn5r~i&Af@~p6MW^W3R?hG7C6eg`V~TMhbDva*w9a>d zj>0Y1V99lREvkunAX0~pAd>pGKr%pN+XvrMAJidM3KW8;G>c@&nQ|Htm*kxR0FnCB z_6k!`0+$IVM$tW08U!BG%wM>%7qg8!*ExaLkteb9>Ib9Tj`VwEWk`ySb{Vx1i(T(j zc3dZNoU~f0%{Iy^bG9h?RppLOi1+{jah>CO?nZHkOK^xZ_cve7c#nP(f~o~xz~gu@lX{#u=+bAN10=^dKB(M}c{m2UPJqnGt$)S< z&SG6_4QOGWgI9GsKM?dTgTQz^jV3yqU+)>`qaZ~iW^kR>ca%kjnGDgHD~TrCpi98p zY7J|mx3q8AVs+Dw-qYhuD+=9gey!l#-X=Ivy{-^ZZVYLg8=8*8-S`c7OS4_P9knq| zdoHt0)8113*@rg9vQHbF9$W*zsma|?o43x2$LclE*Q(XrGNH(0-OL!09kCi>!A4>U z^JDl!f(*Bv;_6QH4iaVr1~M+S|Dm!O*BzvYkB)nsXmaksrh{H#(XmMmXf456mjqvH zH7{_%Lf1}Env(vl?>+_~Wy*9s38+t>++2{o4c!UJ78F8V^`~i1p~(2){g&ryuods? ziPkc_B3w+k4OQTt_G;orY23^XfTeo{TdW!P9c*>_Q414djt@ctvbes+V1Ar=g3EiCO%?*wu&4&mU>RHfb4owS z%1~6U{1qG9e`1v+1+8Hs0g%|xFGDY~Zi z0*o+pO#6=*B88`uDGxo#+fh9zIWIyBp6+}%!_5pL!*Z8lm$w`&-cwgrEi0)TAB5V^97|g&UZY@xy4-%Zo{jZ|s5Q0ADvSW^dBVPt7Zaf?DEB|vScU~V zh0oqw3(G;{an#9(>%<&W6P`*B1q4%HFmTzj7xnOu10{bGG{ zx7|B@-s(|u&Q5X-FGGR_kV=X9>q!pmv8;*u97bpxj&aPQ?(t+>mxU!7R&7&`{bq1e z^fs=h21NjJHWMfkF+Mjnm5e!Klx?KFEt7Bo!#1-jNaO2IvGuHV)SVX^6%Rwa?n>oD z7vh&8jbD&|&ctPyuq{0?pjRv=M$}*Ijn^&`d4Z0&J`{d4%Dl7C(B`;YKcEaZ{}U|U z6ehJWR6V~k8+wtB-dq-#c2}uTG{T7Y!Nc}K3e5%R8e})vZVFDj=Dxm))Kneh|I=P5 z>jC}^opMHIDOnUg~GnU!v070(}0ew?Zv-{TdD-&-VoB6?`Q zb70-2-nBsLJy2T{ImI50&cU&pet)Fel6cV7%J7nL9IT#oIxeLXw8k_U;+1v-SbJDG z>sUfdxMei!z>QBrWKi?jFGDYPBqSpKK z-RhyI)fJk`-}@%4zDKt~EHA|X$IjHH0rF`SG6bJVD<(}YSlC0XT!{EKkTk|<(m%(& zz8|+|cef9y&*F5hBhiR_Hi-^OmM#3_ycbhnGz?WqZE#2}{buKbB}1~xOC&F`BhG)K z96i)nN^*jN80C#L`MC7fJqzm?n^joiTA92v)JUve5o&pw4N0ZH7J8aV->b=glOJ8HFeVxBx2gDYZCa9+wKU_l_f3$>`GKXOJ3JU-A2Uu>4b zy@x0pymrQ`6gs|m5vx19@o;U1Ik67HmVhYi4By;ih|^{OiU$+ID)33yG`yfA z0)~1uWvvL=w)J0@&nWVbV_+5CFI@(eA3u zJ%43siSdpX;n@ZOA#m%EMfJzO2{hk@{cPU1K>zxQ1n;l?JBTmo0*|$$$rH_e!{wnf zSLq{wQDlRryQ0Z}2Ew3C{3E0YS4|Vq1uoiPDm1}(iloOgp7ZCBpq`xxZ7OMsI4}eZ zJ2nl-j2K*iXnu)ko`mH!XdQ}8OX8S~A0ZCGQM0@(JxuxzP*f+9a2206geTGmRI7zI zXl)6At(EQdx|JHRfYQjiN9$WBGnPk7#F!X#iSN4W3GTXBpIHgyFW4C z*f-^D)vB2fpolW6bO;yU*{CKg@f4r?%^o-%5EA=hZj*LZ(SsY}nScE1*0WI0Sk5|R z*esAHf3U{YR1fh%w#Dd6eHDAFy>PAPD-5Id3f#Gu6g!8&dk*;~81EbAn=BDwNSx66 zE6;d(H{vXbIS8s(ZA3UmqK!pB$}?Z$s|Y(r{YhWS7h3Ge z?e?7)Q{wM}xmxZZuPbJWrOfmhOh?KvEts;(HIR%YXD=iufeW-k0v$Xd$Vh#5IghE+ z2Y*CU+)2utRJOcWGj(Xmk&RlRf44N0Rz=m&vnLdaexUIk{61_#_173`D~~>{t|)8e zsD{c0%;apyh-i<*9`+@y9UK?vBx(_`v&pq7CLG3!ZKWj3GxkX^LbVt&jf2EyR zcsVzMf?G)FF#s8WFSMAUllLvH<2srB>>i!1Cofp_37?u0O8mYh-E{zpx*PoNFZJiY zwQcKSdRxW<{AL2Zqkx!O{U|>>5a#G~Oic*@tVS3Si^Dc4#9%}Anp;tLvw=@uy{Z;z z{q;N2k}*$NRRt&rIHiOk24_C-KViSxx~TNqi{z)>?ku`kfa)FDb+)9LM+#}Nur<{a z?E~)YDd&)pXPyVPLwmge!%|#$PG0!509R_=y}6mL_=j>_P!ty4n9PJji6>sGkccWk zVV{EocqhfGX<1ngLncL?FoEW={ghP5R5X|p3pPi2@h_9@h$a5tMNxkqP6B1=cVnjJ zvuBL-3J50DQtu#{tGO@i@x?randr1U1{VmN*vhD@6WJs?WIFmF)cXu>8&2;A#%Qby zl624#>l!zZ4@!`nT$O@Wqoior#b+phP)!+Juh@4R)CCT5;3o)7P+AO=PRaI*t7M3i z4bETjP6zC2abVu7B`X1LWYG#<4ZIU0qy&boGGlcD8q8yu09x%FSw(!nxQ!~7 z)`_2*tsZ-5gGjocD<{OT5f#CliN-SdU;I!pcuwXLiDh|*?i+xq52cU6fbu$bC_#NXl{?Xktf<-!_9R|tmXSI-zUa1Bo^N1%0!#XgYI zNI?}NS`lkxG1u7@#^*#Q`i=!88MvAx_MbR`$e7*3Lu@i|1!KkQ2?5ZlRZ(o%9*I7N zBn!Qc7wE2oa6HpnP&sBS6KUj1U%Yydl7VO+Vm2MG7#v{$gq)iXeZxnczJuO>c|Jq6X7#F-M_{*-KWo zcr8(StM$tpqxrD=Y~4=)ToLTR1OQrR*F4WZh)nHA#h$+nN+~T!y_HNXP7cqd$Y;53 zhjW-Jx*ppf94Ts&-DZw~LhGMGIjXLnE#Z+>)Jc_H`sgC(vRV%*hudnb&Jt(tlD1J) zp(j9$3K7JP3u{#9Zev-KM>YDZ?#vv*a9&7THX!Jg@8;`F#(=>9RMssook=v*$<8`xaiH0(jJfML)XdBLglR9Pqk9QeLZW~>(s4Zfo_{5^K-WWTP5|ld}Y8N$9wiOb4EyP5|)5S^% z)E=pHo2G5qfS*Y7vGLR?ju|Ws>Y3|g*>I7C-2>4Db23-zRjVa-)JPC>$mnJ-n^3rTnKmzhsoXpH)&S&JVCA6Nw7XA%?{zR%l%7)4`0W92~s z-xE@JUf}xeqj5iLM7Xot|MRby*1SBKV&tCHmYvSrLD@NQ=~ZdSvB$IV#??!E9i;9) zWWo>h_&K&cYyWUq6>EeUjk@z@DE=Bq?D&o62pb- zZKyi}51~X}F{G!{9wYGM36`R!PhT)2%PyU;ckS&iM(J;x*cu=%3JMnWGZ7~#Z<$#yc!~sDY-hc zH-HPzOvmkUdx>HXL>+BHdnp&`LQOkGD4yuy?tE|mJSoXWQmIfd{j}rV6chULE7{TS zvqibf(yw(X)t)P zFp}PV^}<8aO|xsc=%s7~6kE4V3UPd;^1P+1D{31Ju!l z)9h|LCDB8%Rb?3dh{1SKQnkH{&q7;6yIi}4swML>dUVq|(+O1ux z4cf!J|8 zkm@ST%=}C&FQT`8_0Cn&Q~{H(fU0VT0!{d0l~T4xDT&FW;v%y)&E)HK*L$Qzz-|7?cqm#4 zrN|skvpUS)6wz z$CQli}~d<5?1f1?_MHT2Tx*Le(SGpLs;amT=Y+uH~v6f)A^sOSrl02|D~ES zvobR!2LcNLbR;W@J5jfH^!HryK3Nb9e*H5DHCY)8ZiUh`4TzIFZS?@~C&Yvl=9^UN z`p+7?t4We3KV&=gFqe&`=lJ@(`Vx`v`$|&JT$+IKW-ieGh!wrEmjZgdd42dT_vtK% zr{6@vIT^jbJ9`h`I>@sy?qzK)D&zpKPj?H~J>d(0QGlHOpz#wV^z-I_6GBg~Mw`ee zoIXFuZ$UPPg4^foQ)u|mo#7Pi0^5#QxDJ~(W6*G zA7Gc%S$iP{-WkUJa&g=7VYZIuK?TA& z60m>l_|}}U^pjT~nzF8In7M!J@UP~V8|nSZR$=pMQYT){**f)6Zi$BH zSE#m-ucBRZSts$wy^g(`KIJ#hvv#S25g_*2U6fVb0%Py|q|EsRPTd)&y({rl|9(q; zmFZi__ay8#Gt#wW7+am%UAlVZX8FMr&7NjATK;BaiO~Jxq}#7G3=-=mZwm(5agL>F z0^<%abnI-dtt&4*4~O|@f^F)vR6Ajn%mAvU?I|P)vi$-c*3YB-hh^Oc69#*g48Yu- zEPJUyOl{?efG@O2_*bHcbF;}zX}EV3ZjH(kcmde}&O|bG!z!tTSzI8q&pubDCPzV| zRlhpOk885fpOc#Y9_?UYBnZaSwAma^;{L%;2VMS{LBi4<6Cad*>;j5M2>sdhOwxa# z`yLJQDQ+nixKY=ojOf)`aKybUe;Qr=9@ggKs z7dsOoCHt7bv~OIE*U((25!XrDwU#uVRo5unVc0to^cofqC`fg7klliHrv0`&6`Q_34h+SIg~niG>20X%+OJ?8@4R$o~@0%jn? z=vK^4&U77F#PI@dm939iHF6V<6Cl~<2ZChggK=XB9e!~i~_!bg=hG2|UW(0B~w zqE~^`#=rmk5Wx&ggSXQ)wEUDX-z;pP=8K#DtZgrhf1&jWEd{Z(2zrD3GuuAfK9s_P zPEbIhk_h?^xx|kae%=J#R6sa)I|S|makZaABfA$5@VS*UWs{&C?HQPV@+@T={~gIV zrvI14nh4)&cnUCCy>cjwdt#PAfbT{Vi+=+&!JPI?tl0TWhzf{wxHG_D2xCNm4{BeQ zVqM_(GPZ%q4x*7--*BWGctHx0%Q^`!Y@w03qm+D+hC`X-1#4WGF)meh&yyk%-fdaY zd&YiHbV*Mj^0mmzTBLz;|44nN`BT8ZI}GdT7X3vZDgnUhA34;cseaW+qsofN>g|=+ zmibp*9lFX7FTPF_>MupRZV1L@4^{cKvplc%Y=S7>gz7uIaTG&mmiufA^}BU99@-IY zRijCfCrnj5=_{*i<5;Zcnok=>I9!rS0=~F*mt4h-gJlp0Yuf^9uD@lhV8mjHQXfPZ zcNeU?xWRx+0;(F>#gq3_RM%m^k9lS{o;=w!tp7F0@b44$ulFxL?{*#(=1G7=VijAE zVsa|5WOmY_aw9DJ?kkP;4^h)*#ObW+fwsN`7k=TxWvN)5;qc#IF}`SyMREejlheibhqHBsGH&WI5=?P zGQhuOPTf|fKd5d@q@-Q_6h=vRy>`rHZ#UYh|k-=@&fdFA=vt6o}-jDC5e}VmMyknk(mG=4W+o zd6S}x;fj%zB71NJ_^TbU7fx2&aiy0F+C9?)B-R0Y5kF#Gy2j^_Lmq6Z+^$d$hvH_) z$nDY*Q~r&48s3F^{pxd35Z-|myh%wThrP0{^7{5Fy(aO5eUH)s!%wK3U8>ajumFzB zb!*84tEOIov8S;#lMfn*mz*N*ES^8s*-n}hgUKHPblcnEOpaFvB(X45R=p-FZ@x2F zsJ=60eQ}T&$$Oj6QRA#0ufnMUGjl^z=lCHU`CHFrf@w zi(mLa))#*JnFUo#amv<388l}pXM$r1&aw?s@2q3zZ@9#oi4o`+cTi(kQ=i}Z4Ju{I z6QVVf2XZAM55H+NN*sZn#Un7p?Q|jrIHj1!tW+qOCy`72!KNRuBBb97!vHt~MbRR1 z#6;xEtNH+SEh*f_Jxo(uyTn z*i7W*32E&PEdGkRfBFs zb&)HdH=eTL_&fi}nrZ3LORXdiEndci3f3b?Ci?g*kjaHSiI2lDg;Q!;M0gL5pq>!> z%0WMB{|yYG?bmx>p4n8d=vAuU+_M)12JAV)*=BDrBmS-Z(Pl5}!P&K8px|+J!kwH> zey*2WwU5$313;~7)CD@3d;cYDMcxIGU8K!XWkU00zrf{16AvE|!}gCOt!n!!(v+|o z(ZvEZ(osfa*g8I1K|yg%vMhpwq>f^OdLDnY;ech-Y0H5`o)y)~tp`2wf%ZX={jhYP zh#x=G&1MDB$6K0pZ*8#D=un*{XmVr0@&MQXK(9{S1+bLXZ$xdFWj!erCYJ~gztXUs z5`n=s)j_WuI`CeJK0WHdD4T4NOXhxLZHH^sTf+I{0~so1vl$l!z>K&6_B)-qrkc z6G|TZJKTEOCsLTXL7~E_hIo`G(s90^3xZgu4QA8dSrbESa9ySx9uCzy`cK)pb5V-+ zTOT%W<6>MSQe#6;ES&iy_>T`=D6}DRxUmU#_iwqO5qc53eWAstVIQmS*0r8fnEDNL zG_mXMkX-xQ`S+3et=JpP9Ml}=$KKr(Wwx{YJrEbWtKj)7m|E^o-`bvA+Nb;6*}21b ziu>;N>#LmnkDb@z-kdL(P#77b|6}D>|RknwaK$i;D&~R zR#B~leP4D3<-_3f0ELZ>PM`Sbk%Yj6tx<9<#twuaX&#~-L*Ixru${TQn^=%fy=r)s zA1^oetxw?Hn3w?o-WKfXe)`WlzMdJeeFxXyt?8_q(Pw>qDZh+AKN9P3Ajs<4RL}!H zZ_h$^J^>W;x!+!|NTKQSNPzoq->;K}ixu(<@!5@|iyb=tu1c7L)Y|Vhrgp&R%EHyf zLTU-)hK%LZr;(8L<9ds)8nzSGdz<;(EsE5Pg9I}iIM44^X!^RwnOUkk$WWynVu5n~-2u(16?o>lnG7`b=y>Ayx!oNF%n=#w5wVzc?Tz8mx z1ibAuI_#yUtAh(?#dp)R@dJ$)E{OkZ65)J0{puDdoJGh}q_5}Dd;Z3Z{%Snf^FpA& z?*E-PIw;ap8%iR8-~|pfxm$$vYb!*<8z2wVj}Kv_@OcBzKh&?tgfrt9x5t{r;xlvb zOfwdp3i5qEWC0e(smAb+UGQQvr+5u6-3Ryr=y=pH`{&0l3l}&V8{k!+LFRoO`p;m? zR*^FYh6V*v(By!~H<^EI!ZV9l({9YL4~okoUw@Hu?7DlF9EvEYzs!NU*9KsL0muXl zuj*i2xP+0|#QSOo8Obpy87he6s1epo%?4X~zo-ouS<7<$df;Y9sUB{D-*iNB^>h4Wk>=dP+UyV@>lhOH`t8$LZmSw>o3d@4!vbxv z2WMNME(=hp56b4UM$U$$g$kN90m5Sa@;f(RBC`b*Y>U39jzDa9+TN^HW!;Q_xI`tj zw%9<_6!@b~FN-~eF$O-s4SlU5Gid2HjO8{8p!Xb9wsDY6jR z(rOg%@ETT=O-+Jpxzs6al$aEqiB7T>NW%RM zMn!I>DPSwmY9ijWn$ez=1iHxn<-hsDifJeQ*gOA02uqpA=aXS?zv_1G;c}QB7bVQ)TJDdu-BnFz zwEdET5}hzq_R*n=CVnzC-QL(RRN;CinED81J|yOiW`p|MbMt^B_347GU*}h(ocB|h zZ!^>Fa)xmy`{ZxLCIg6424XA>C2pt;n+(^S&VodtMf(026YfU{X<;V?^G5=~Rf zhX6I$SFciOC5jvo2JU!KS-n>Y5GxG@^OO>i%Z*^*tZ*bx+Ods_D zJaA4EKiEspjyO;)@$h&X;J|5UFzXqSe#KQ7qQ|r8Bg!M}lf`J8A1d}Gib@hvf)v~& z!MAGyChAm85(i_z$1&P4avTRG&(QH)$LYH-Ffa=OfoFXhFo&mN#EB4q7vWLr&9IN3 zT|MomkhwBsYrT))W424Oo8`@5^B|C<-7#;oW||zdNdP8`8re%4V1{T884je+hil^P zHI+mHF|hkgH%N1|l`kBiyN-{1S+gS!rj6R~3ez9s#7DGhN4x6X^>J-A=_lwV{~$MM zNC0DqZT{ysU|5mWDDm0&;>`0t&IXCgktGHHqR<~(D&6sr>$)?)<4hgeJKw>%KoBRt z2ZolB&^shvQ+i)zriZkAv@z>q=dyhx{G?_Kg62>Or;uOb-Pm#M@x3e*^Oc(r&4^O2 zfIq}K7s_;Bdne(w4h+pTt+{_8>6V3*elxcalQK>mz>mO{%EE+2{YE&E@B*dGoI1Aa z!iT2>!Az|c7AYZRtmYzzGYE?;@yqg44?%(L5hCbUDLYpoYC2Q{ah!h)!Xq7wm*XmY zO5Ht>%u6M-cgDEq*4Z@!KE1@80h$5A}g{i1<8YGM;bpxEAdPcmT}1d^oY@JbNn9E1B1fORfsLEi9yB4aj;!AH0#_^{M|ZG(Su z3g{jFLdb8$4mor-VAGRL*}u+XgK{NrkSUAC7+dz8n>FKtH9Dlyr5+9!0qZ^B2&U|^5K!fssQdZLrS1M@h6e||DR13ykIq#*(Y zu!n&frJV7*vAAM}+Sw1#wml#t3CHcPqB^VS$@oJOCDcK9YvFqy^X|VXAZooL*h4Dl zd*an_ScS?z0&mkX!~=YjL2q)(weH8rt@OoUsA57hDxuO{$x9epY10 z-D?>)>q|mNv+RAA7N#Ao%w4&_($4aZ1|uf6;YXYa`DI@rkmS~uM&fwE0<5mUHAY&g zAgwB>id<=_D^%BJrhm)gw%65(oz(rSa87u?n*wCTF&vw_NpwS&4{?C-?n#VOG{h5*7@u`0U~{k8O@F< zI>ys<21J%hD?mk@3og>bUqZQPdK&RRX2t>2UQrW4B|k-(Qvcv?6`25qd(a=g*wIxy&pSfA3o@y zla!t;*sdIRLLpD=#ZJ@RBb_%}ifu$S$5Iut{;+4|OuiJC40(XS z+j3%|arb~s6|1Gr>)i&FAx%nY=u$=dg(!6)J(3mpbCGZ=y-HFpW?()O@$$`$RVJa+ zj_H$-gCXk?U@fU8!yIIDQ%g++;rbU0@pNpcYWc9LD{bPoLqt>~P?oi|_2wVKmOs08>{r>fbc;z6577w2((*sfB>!A}6_x>cAVl{jT*P4W?|HTr zV4Dp378yZ2X5^bct;9H-o**(|m`RJ57GFqbw|l)0dE1C37IzX_?Y**%DbR;m3qw_f&b(@3-x!$=`Rk0+vK4mnUzc$_=H^A6L#Zz!c=S`{pWhY~k+2vY0$8 z=~kYw7hl%Q1aJYBb~X^r?u)w^qOhWD;4l~y#EUd7d=SPSc2a6v(qkde@{)hy)wYAn zn6iQ>!PQ4v_LQvuU2yjX#cj;D3wuZ$NE+AzhaZ?E1KLtOk1nC8{i|cMS-DexDL*IF z7!DxcsRp{x+dYRAPoxQD@Q6u7bxdu1;dss&RXPf-%?eoL9RC8}t)0ecc3sYEr=M3zTY;(bMOXAW z7Z-vd*%^Qf!EoYvgr5REsywecapwNL0V~sO<>`_AxG-9*9x_778k+1Hd`=}E{;M`q z>{hD1*Ws10cy)V|WS1CJ*mug|tQS;9A)rW&gZY#39%>_gggkrEkzz1IYa65UO@bR*?AU7(Kb%(`R#{I94~;dnraxyRcskcSH<(9r$^qjbB13{Ij~ zY&qFB87RJroNlkZnmo=q@Z^>!P})7>j&k({@TL1}BABE^v1B-^cHO2RZKQokg;`Wm zl}f&>3X$rYErD2T!m-?Rjob=`)H*!~;>(ofo0meL)NBOc!o-=n;I{Q;qDHsulu0o* zi5lSNsT*=(c=kZ3l5!j>u;#*j7BV>?9HX4$C}`I7lD-vGDyasYK=&Y@r=SiUi>R>h zafVefuI5daA|d!UiUxQax1{CJ4*a`~#`U%pQbN=N>sJYOJQONv_w=>G&OA{#aAp!U zW_`E4hd?5BdgXK^)pKb{AEzmu(@K2--x|$8*Eu>(R+O+ITqL zZV&n6usfZ{;v>Mevxlh#faG$rdi^82B>y=;?cBtHe30J?)%}UV^?{H7HgN=K#RW<0 z{x2~7Ke=Q!4vrMe|KQU9M|X99B?E^7@$9%FXqTPu!wbkt*aG@rx~qg*JWV)?ZA&n) z4ZA9d^uGG_d>u@#FW{B2KKxbRa~b`o29DnD?J6}j_nYDK`Do+8xM31Oqm=HyHE??0 zh#?<3y#pj71lhztWY^ozqf&k!^@aCuK#9FW`hn~|>-Tjl;713+-N6@pup|~B$G`P3 zH2iRTF|hP@d!2eQI?;;DXx^d#Gb59?tpB`-KJ{XAm-R|isR__-(rK@Y+^0_cy6A8u zMSDd3>UgDZwb<+Z$kWT#9eU@Q5Pc&wL$h4|L7JZjGnUrwG~QI$Z=w4h>ApLFKaZ*W zJ#}Z&?v6X;w!15UlHTQKE9cDXXVrGmI@Qj;#FV{O{5i9uO}Z5i7qfaJR!7GBieV!e zg2&$IZ`ze~+K}3j1qz&2-w!mibnBO(qo@dWE9W*v?9zU4>lMu)%RS}b%8?QI?)A1Z zC;x3z&+jZuZ5kc4N?F*-R)&25x+BpgPRm@pTdNlTt5oh49^-rz0hwYfp&9$dLfCC% z(r85P@U?(g1|$J8SOqB7kvY4De4ZjA3t6`R?~5wX&Ji@8m-{-NoS;S#`nCqTLrrtR(to}+s%hrC~>G`h%f{u ztD*r%YCJJnyhl?&S_Umfo=DLaUI|z zOytV8Eh~sHf-_%D@XHGPDk?qDpOu)QoHk~@JahA z<^tuz@4!h(QR24{Ou2GH3CN7vtwj2dd3OiCgkT0i0i`P?epB{j`jM6*@*#yVs6drr z&?KEEtX9yD0oLGVCm|`*3+`@Y??SYuxqh~l@t5(KovggL50-o(Jwp5;JyzR||Kh=) zC0usVpS_0!_kAD%lFe)Uf8qm{42REmp<8tHZnRv49Nh6HA#}iWA*ZAGXMO>(86Cm- zxF#@d)r}Pu6!m=r*Xr^ooC_* zn-uH|o3zwrF32f=hjN#RpdOT$o742msliGiUdv~9SHApWqU}Rvr}x!RuwXP zJw_Bd$QLU6u}i)Xxhfg*40i>-g{QyS`p!2<7LS9qcCLRTWPF;{yM}tBP4*uJULIvR zkKw^FFdpM{SHgqXe86!{tNA{;Y(;y5*xxR5`T>(yK!glckqhOcE4jKFGZ5^-R*6Z3 zYz5Z|FPFu#vH!1pd|@ZnYfYBQn?90@JWYO#vIkz#E8bzUXJN(KMAB(+dV#C`8SXuS zF1Np}TE8~46@oUWt%DBWRQK_OUFcwy`L5%P_uY>uU^o&{l=0TIe1hlXUnVu+)6<(E zT_VqQ0QJjr9^-loGzrY!8y2?cppEb?M;aI+r=xYcQ{0dn*(8iM9`G&NoA_tvK*^`D zB11)Krm4;z3^SF?K*kDSc2|5e*kHTSZ5WtxqTL&Cu(-l|}2vL%}6!FK*M%V;`j4%de~?0Pe(87A{$+t5y%)lU0PIR7_W(7vKtT z*0;;4Blc~RDe3+`8&;z56=`KjJdBi6~?KxyX?8_@oXjS4-HzstHl8Ivb~ zYztn8Z|k0<9P*Pw`ACt96szSloO*)YY%CYf2oX94r8xR$ga~nZFtnQ2P7mi=8g2lV5e48 zHxN^eM-Trz`bnsqd*q^_f)>n|Q}vlW2M2jkoh4};AP^^7DB>F< zn96+)Yw;T$$e|>7A=$NfNYb#^_}G-@K4t+xWJcM(s*kTpNO*uK24R!>}c%r zN$~jLdC#$F3fgMM!$hD_g4Wx+aeCZZv{;Z>( zeA$&V)k59RD_YH%SLu%O`om$Xs~!3v${vyA;0yd3!L$ zJWDn5`G711qp8E>TJpolNyOh$No=90=3Jw~s!LrauH;q7u6r$8y09f2zby1fCvjRb zz$<$IbX;We!|||ev)~KLZK#kODXVaG<9AaE&A1ta?jYVg>p;wEuMBU{)@PMGaq4J~ z|DlRoz`wc!V(`NnVAv8sZU0+*!tLoIRiW|_0mtY*sU(0l7{uPm(KOXeCzxH^GoIZB zm#y5zJrmBV`8D|oBd4#>*pFuQhCoDd}4Un0Fz-%57&v!Ow*GwZ=#% zkfrn-riF%5yBGze#LbO?=NyXaO5~o;T?GR{L#Ze%+v>Kfev8nfyd9gVmC(h2R!qlF zh8M!xA?Ni3aT#%|E71Bj?6G$PbJ^fSAb6h|4JQM*wk(KYs;QQ>KOXri?Qx0B_}^xW zMe~%wLZ9(=MOP=lRy$AI9${c{3QkA`MRvbs<*}b)#3~&v+#_@4}@U z&(Tsg#DzFtG1awU{<=i9Z2L3V1bI1?l)oW2r~Lfg_?Wa_F~f#M!Om{vB2!|4OOYWO z-GZ;BQYMd*|F{tNTZ;aRf!PL+bRvZcq?wbR$Kc|!$s7gXiaE2TSxrCQwG1GDwI+l8f3$Nk>we{ky2l`2aP8gcufo)Xh21x zm`oU)H@~jGbm_#PmK?t=@u@mQbQXmLnD!{{KsZ&a8Yl_#U~hndK3_?I{M!w=W;@;n zo?2{4j`RkwFm|A9&Zt<_!paOsxjL!|)Z#^IHa%xtJWniOdo_R~v2lm6vhI;Tudr!L zIV$E7Z#MYELgBbR>RWKtl(wb9SEa?vE|^c3J}kCWH8WBzyZxhEI4_um6TZpxh_Qbt z8NUJH&=APsA$7RC`#!gvTtF~(F_3Au+A%Sg#KI0>i|6UOGI&qHEN^rX-G#m%?> z<_cU&=M?!^sNV2#fG+M=SS#nYUB>xp`rt|!0y3}amlb>Co(0AB@AvoT_J*qxXDMEc z;Ds1qfb}`uVk#TGD%na_oWDa{sJZjJ{vFfiPArKM(j&zhtLv=aRn2@LX*@oE z0+s9jggyNZdJDt1bnP1nTItIe?N5K`Bl=$LulqZf*B*^y`u{ZZ*qfvc*#5?&d+qTJ z5)GSmj+ULeyKha+{b}Ywi~p?)=ovA5A`gH5*s1;Y_IUSp@C6%8nbA+lt?}G5di@wp zue`d~r%#>FzzX};-AW*v1@-`?Bj0%Vj28*YkaPSJ-a8a~tjl8>c3y>&;@ z8twLxY&So2wA^=dR!^Ge(UMKgI@wNw{~(#(f&i0!8`0nQ4PuPZ+f_d$5<_@uko{An zTTkBxZoTl6IkX!b?0eKZj1|_G;?795812=UHaZ_y>f=S7kB?SFc7X&ADySqZzMR8r zI)nCc$fVD1x)}>LDZzl0AF_>aj`SwjPGyws=PI4fF9gJ%0Ted5TRd(tU?1ZK`)W2R zClPGr3*+_Ghc`pppz2#G%%(Y+CdG_W3uF3c5$s^74g6NWQTmC%EX$K}zWPO*=yz}` zWV-xccT+FYwPmCXP^Y0zrpi9jnBvI{IZ;|RA5=`WoCWHZF(ZKA5K-q5tvl@0f0R^4 z5xzML)aHx61@ybc)=gZW%hVMr-j}GG`AYO;YsD8M%^w?(AMcR2)#$IX`&9a0B<_j~ zsHoB;f0cCGM2KUfE8^;?gf8V9!95|Xh}qHUL;3;L-Fv~TqCPR&b>q|7_-yLWa@A7R zU}}j^v1I<>E;4}a!|9KH+YJl@`dkG%d{hAHVOLu}D29U`xYRyu%o!tNg)7Q{+tV>5 znc)IzMN;02FWiR!9*p6Xz`J#08=4Nn2$jG=yNuY`JIn56^n^$hEkuS5FaJZH`Z~Jt zIrS|fFMOJbo*qVGzrOwYZi0;L6o*^iqT_{d$?}sY%Gm#q^^Vb%1?#$S$F^L*1*IZy^TVND8U}3FJ^M;sAKteBz_Bu!u+lOCqxI)Ig zZB*$49C8^T>5Y_y8AxRk>f3*?WHYW`_>xxR7WNBoZ^KuAvR@T^*;snwb+9A*#9zRE|G;vBr-js{glG#0wPbXI zCWAAJT<42LPncPUStVry3^7&}Sgz>3YKA7LcS|xNt`6rf7ZkzxGf_gUL4Nyluwq5% z$i%cWLF92m+pdX3N^cSHt%+Kv+ zT$x>${{zwwnY$|3blDDHMa71fiouE*=67*3>*Qo{j1V&bI=udcDzAfs;h?R7rnvn^ z0M^@r>_>zB#;ypJDDiJ&m66(tfAkV}HJ~h5e%TQb0tJmW5=tFY&#{!VuAT}KaOyA< zhZMMdNA`H}CJB0i!AS^9i+%!l!)B4f9Vv#nL_=zlM^fb?ReVD_E&Y2z)ToCSLI{Zr z7B^X;9VyNJD4lt}l;9B3EMT^)+eg4|znun!5IkXr8ZH z{T08|2e=%;bT1CX=x-p|Ix7`M3dm$i3`#iHmRP}xv0gZhgh5z?@gn5)BJDi5@0j-F zXN{)huJj9O$nrkZRc4@4<`fFnq7z;yJW@R#r}}i0fpvh?M23thx(jeQptS?^$X2x1 zXr2+)AVC>vMw~y{h*o_}Lso6Ht*<_EVZ*R{L>Z|(;v%V=szEvkSK=xaa^k3UB=17% zCZ*WNa1Mlr1#@&u6Q4>eM-%6(ikKDK+A#Gm_9GURS0fjhVSFv{=Wxuw@Gh{wffZp2 zQUpSg%kP+StUdTbP=-!}00X5DXqH`+1{p))oYjOg?`iqKzxT~y_m?%w#Oo-_;(APs zB%22P$gVU{Ww->%(>>Q#WkHbTZ)&9QKne8XoRP?dF#SX1;3E)$!M)df=;Fvh&I!yN zEhf*rN=IGRrS8tMrZ+Cdv0|G9ORKeeMFr3%t=qqK50mHatVlK}0Fr*7-U*jksfPQB z&X?rIK31a^isNjEQZ2RA=8{^>5(oD5BY_OS7=g1ajzkpJ%~{Kimg|2qJM{w3FNX3inFk-Y9rP8Df zlEI_(IThpe(18V-2{~Q!GHVzhU8gw#%kcwY+4uu<`Bgj`Kx}!qXyuozAveV$(@tVH zyRP>5K23r__)pfipw`0Ef{I80r}W()$xvMl|8Ss!Pl*-l!(BohkKOptfvANil%GMU z!$JBko7%z+!Z<)vvBb`jAyC^mmwTo1DoaD)FhA5`et7v%gw%ZKT(lY&~ zDNL^$e{|6WC=0o#N5*X!P!gkw>jZ8@6SFR7q-tgfP9_v;I8Jp^T6jQ<<`Mg-GG)nu zw!uyQ;#N+0))EBUKeyXeL}b3tj6TIs&ki6`B4IA>j$(H$$GFDx^bRyLzX)RLgqGtO z#4ocUoPIQ{tF?B4gJ`TWa-D$s*VkA@qeA8}(cGB~Xr|gykWh%==KO8zIhQ~SMjLCL zsRSd09&i9`qA^9)H^x#uctQXDX%VW5=|@RTbd3O{w|5H^*c#=?I3*jcY?i6@j7T{O zd`q^j^(xw^qFSFtWHlq6kVLSxK|HWxG4oY^$cMarRqb|S=H(G7OH39$f^=8R`n8gF zxTH%4m}KJ5QdmD5)RuBA6g}WB1yXRXp2t={CCnOD5`EQLFCG!sWh#oGlklEKm-;Yn zoqzV`z3sL~c5K|T%bT0pyJGd)l}vYvldR@J4=8Q4MxGUzG`N3_5e~-qE%s;0za$c` z@ndRWA%8IEA{DKJwlWL8DwDiv1!s>Dt+f*fP@&E|nR4xNeU(hU1_LuN502|2HIRyp zAUhW@Hz$;6t?`TMor5Y*36ftqEzcFt_9OmU+;bbEF+&5YF%j!m)h*Kh^V9cy z8sJi*68cQ9n<#(R<}nMQ-k_6{bqv4^EL!sJ9IPU=Dy}-QlB$=3n$|X3$pMudom4~l zjB!;hVlmd)7Of1FXPC%~!X`meSnVFkOTMfhf#n}cgIS&{LpwO0!P^cfji>Gcv}||r zRuxIB&38B{n@nYRVg)QbSPD|`ZsfDBOMKtoMw+UVmf>>r?W{l%vujsJ*vuc($-L}+kk7F$cxcGdszaoPG*^fl9{$_ zZTgZ+M=8yTR-Xati<=KpX#+QZ@SHfw@}wrh)JM@B02+wXau+T>EXQ4Zy=}GSG>v84g zKkg>3g$6(AV_ALXm}To|=vqnh^mjYvTr*diA)CKUWHkZJEOu~XjzrhcC*d%8RE?w z)ReT#l&{VS~YYO6vi;mEIk!0EL#}gmP6lmA4YRFJH3$Iuh@XzgOXR-;x2-FmRL0L&R~6q z%gzl}i|+m}v23orpPH2O)hjl(euMs7a4h}Yu;>|`h`m546wLQ&*uTzCgqgYQzW=0$ zaP0rJduL(eU``WY1QG(w{80QzJCJ(&^b^cQ)-3e%B|M~48tiQaejMMA;G(xmPniLG ziNesf8Iwxt@adtIUKv`%X!=(Pvh*&0kB>iu(f>p6W3XWg)SG^I+|&Q}lyxk?pr3Xd zMSc^={-+Q_YI<<;WABTMW38s1@g!`MQH2ih^}qbS5{at?j zXl(aJ<=zV64WZZFPv6uo{y)8uyi3(K?u|0Qot9f;a zb;;*d`83Bjm#sUrZiLReUgC>hlBgUP7G< zq<0r`B1y~ue@loj5&C?IrZ505d+1a<*LNR#Qv@Gls)LV(6ko<@CzIpUF%;7OVfZDG z@+LYhqqwR9_ij5QJE^*~TvYzG8dr@{&EO2{8*SMx^U`N~TuQ;2P#aqENT>NKgU(y= z=&@8RaLOufw^>)&`Sbw1!lvrjucC}@>*89fkFj#>Izq*Y zPyyCvQYQCOrt4^zJYESC2+{1ST(*3zQ1XWPI{sv!wgs3b5Q;~V2UsAhdA#DZyMFEn z65GI9cV3cbmrBMVtrZ_QG&|{&;sZ~|#t}YnT|Rgf&OVa)j4~a&>H#;Vu+*9z(Z=K^ zHJJfco1994hd2qwvD7IhH09sLQ{lwX3xzch)W(z%tXr@TJF-pvQwY6Z2}Q0hgI_sO z!G>FrL7_*lks#jcAdMg#6X#Rvjh2CK`NjxNeX;q*KFn4nyVF2+yYS`?eC6NqZ}(`< zpDNK@6VyT4@_DUY|A?lD@s&!dA=q^rml6XM;|6HUj%5On>#`-bnT67SYayax<>~t}W0N)FtA$>fvL36(5CwmD6IJS$zmk#$U8he%?xLeBJ4Xl%0p#9x*Nj}g`T^I zC!)hPvIswEH-~EpBcGFXGOJ9{DdSBp>F07Vd~Wi|x14@&v5kRfY2NLJ%ST4|^S(eq zh52~g-oHY}9+;BhJ7iyTUHkzZDkaA~qL&bn>KN!)9pUZJ^D8xpHqJ+CD!Qr zlJtn$pV|J6NG_yDk_lNQR%nun1f z>XWUQ9v&mXLdUNIC2z=Jh8LaYPtU@DkO^jlSU3<&UKKDpz#hpCzPfaTWk&(aj_;}1 z{q1puWrWd0hhoI2H@y;NzTiqICJRl8HYd=cfTBW4!D%V(Nd~yLK`28hb5&SEGh#Q^ zB`VV@jHN=uNztj>*3wk`GXT2muDs!`MZ6@wXyW&P8%)bxMQ3A4`OL?mx>6x9Eh~;X zW&+b0(QJ9AyvD1x*Id?4uiQWyA=LfN)4%FJWtp?H#CZpn9S<|az(VB7-%;Yp!M z*UE5Fe@f+ModoyKO)Gsf@LKp*h`d1uWpLkFGf`*C`LI?`jtv{h&TmXEOX@l z;LuRLP2VcahL)B?-^%|)c$NtdoT>C_f`~x5B!zyMA@rr0iR(U9I0#EanYyFAQ#nJd z+KJ{eL3_2(;r}K3guFi~*j}82Qp@Wn*WT$l2Z=E=$Oahq9LSA>Ov4`)-5S1)K!@{) zA{5uI>`d&vSgw~D5FiC!_lET)YtJlnVf(@e)eK=36IzP*8gfA=&+-!DLqu#=GRRYa zo*DAyBY#eyWl!=$VUdN*k&`MX9n9XLk%qYzgW=F z)*SA*%U-L$!1K{do%W}W%>~qCz1rl;;2(P$P61GuO|zQ6BRiP4xHL@>mCRb^X9OSh zjf6=YG*@iR<`01I@RMC=Ws?VF$WZS)ERMxeQx2=Sm|Af1;fKAJ{GTMDRfl{TPJjA`?^@@*^w9c#6rni)FXs87>r04v;{2hLcVj&LtW;x0qCM z8UY0Tb|jGH9S(Jv0uTXqyG;l9Z#W{b%`i|%F+^wkqHR&F=bwuL)o3>I64bqcRT}gv zfscd1;?Z~j1c?$NGwasb4w!m)T-%{X6(jplJ<$@CD(#LEz|jN6xzm+~F6SU$C~ z1va#Go{}r*tbby-G=%gRD;C*UsmZ>##cFfK%kLnC^=wiV-o0mw7xdiND(PvBF~Hc^ zflhQ@ptHbjaT^2pm*&s0;Pc5k`i{IQ+Fd-<2vDbDaKr%X=E$tO!F+bwbxE;*!XiB^ zymVXmN<^(#groF7GmshorM&4_of?pQv43D_$8OGRK|CgzRl_I%-gU&HAYXLqzdQYI zn6BObntylH#x2HyM`Jw}PnY@14Ny5CDvbTzqB2Tq+U1?cdTEVeYgK+vLO5@4oCy@S zk<4u@P&~aZSvifbhWn`&cc&5Uxh-&hum!ip=07li!sUGTL#`M|YBhP@&iZx4xN-c` z7L)adTYTLHfY+G47J?CJzV&vQ+*$nsza#&9c=meRlz`1WAco5~GU~R<0=suU$6B zrAqm=NDYAy&`alZXG8&E--YXgl`gq7s?kwM^~V^~Ce?#(xW%svz|$sVyDVhs2=!<} ze!N&OH2?a%<5buB__uSA0+no%Lp=#>vIlpf`0O310SIbod4>DnM)q`)JCZq`%`lmk ze66eg9)DWlOc%znpzNLmw*azY*rbUzo%SJqg87pfMdai_xw0_p#int%v~sMr@&~1m zNV7rgw@)&1WKGQuV4cAzweDTN`ulRK_&$yPwJY2{#U6PGHD@O7*N)NtNdU4*e1BDi zb6wSKn`M4w1Uu(|VaqeTOH=IoKrjWWWl9%O=B6@qlFha4;5%XO^~)}t<$$IKS#Ef; z?sx4Uspa?oVU%h1ozXO0Vxa$*P&WBLgtAp=HkzGJhW2Bhh-Qm+!HLS+&Ao7X?!>QETjX!weL)}nHwf^&J?H->Go1fbD`93~Ol#)(NoHDpoUurL zoU#75<+arNOAM%IUFav;4!{k}Zv2lLQ>O7KczW)wsXFh+j znW@vMS5adsAL|;y^yST7I_@J0f;!@x}t5CxBdNoDf}*N>)=QzP%yMJNl@KB!1jLMNe(VpeYjt*=CtTUx1XWnU23yuLZYk}I?{R`YjW+hB@w z5S>(!(Z?c9KhgzPcq6|^<52+vtHS#nS!;vut_OCD4Zx7{P#3rbss-*z)e?Z|z;#kB zlPN%n^~+YAECwR^m6A@|X@*jvX(@Q3lhXrV6*<(w+t54~rlHx^!Jr*?+tWtbMa8~` zR1>{qfE}-%uI7vBlKIJdxR-S3&m#C)yRqIwa@$W%%*LSIh(I3t!mBBe7h6Vb!;8te zSsmY+1EBbYhze&5L|KV4BBs%Zv_kBm(p-sBZbTUBIadni`Ye1W0RTAw7#2ySS|@-d z1VbCBHY94+%Grz!+quyr5N8TKwqExeUGood%O=n&skPWBvlI{P(@`kaOL)K3Z8Yjg zP8|xzqy30Y;4-4nf?NqH5pJ6#OR{$bp(xZf0+0eW9#|b)QJNJp_b|33Uz$CGt>%2z zk?P-4T8W#AD(Oc>Dkp!+#VZYaB$ZZzl6=g-O*K`Vr+g-YH%j^st&Y5lo3Exqf>HZ$V z(cQXcm3lx@sYUnGD>@DYMbd>sBbTJh0?6>cTJBLDcyc>(`nTbMH*J4$GYYzI$CHfS z5O1Oa@Ac@4uwJjM5#gzz%rgP~y~!(f9T+Hk7#)Q0AHdnvVW2P<<$}>vJYde8uq8D{ zZldbvn&6Y>bWS zn&zNq-3P#s)^%(=+rl$<%?4f%uI&4}q9>YMv&&*JJlK)R2H`0jv*j~qZE*9*i@l{OE+crG6Qp`B-8joD{QovpQ*{e5F zZ#GK#!Kj_6G}zGP9}`|p+!;oC1AZy7m%1_#x>m#!(*iYiTj#DG=Widcw~wZ*oCd`} zdlgjE_sK8o)=@kEjc4WUG*1U*gQOavkF9YJ!z8i>K#m#ri6@Cz6n?TtJ5G8V;JyrT zbkKjHM=$*i^I>I1@!`#EM-TsTuGL$JSnY-o-tIzQSdoY_&v+NAJ35s>05r1F4GI?e zKi~rOvPr*+EDNVqOPXRfo{@2OuHWGt!%18~QaJre{5e+=@L#>Kl41N-6x;(7c0r0a zTg%DpdMVy8(aZ$!3nWIwT-0?`ZIoK*2}>VRp&mw4-EIS&G~ZiXvX*fi5o829zdoYK=&qR33MUCjX0~eECO}4BQ;wPhY5Mx6xnj+v;9xnyr)qt zN;MWR0|HM$h6;NX7e9oMB96~}6(9)8U4LHl?6j+PyA`=oS=pTEXxp#bg(~f$5ON-Gbo*wnKd)#g0FP7GSxX4aB&! znCPhp){ee|R2u$yU0P2g72BxAf3DPd~JF53FU zb40uTbpr3y0D6;t(7=eN9@xe(y z&l0TIPdhb2eB<7ws2o=1@Gp07o#n(cG-rv*JF%Z+stY|$Jq(QT;y!r6f?g`?+&2UL z@+tu+Q;fkX}M+gNbp#K3eJF&S6>e{K`2cPw;@ z`KD0NE)FC7faKr1Zs3CqxEkt;W*a=Wk9R6CLtCURn_D+b4siEej#JNVZ$bUV8Aa&=oH+0wO(2ihrny*EID8OFaXuH%3V&R$7LS`Kp@W=}CIes*S( zx28VBQ9R|+YT~v>RTn7-ZWmrxW){xv1sjh7z*q?79g(ZvKYb5Y$dV}_jDvoa(TU`k zK8PXZr|5xpu<^{aho7!gzs<%^<8YTf)U!w?Px0uhD8tkM+`&+CTebr#$%r-iflcd}I*-j_OY!7JjUBZT zph})s__-0&aar3#m!(v@Ev9a!UHt+v6Q;k~^R?>NtRi{_`jTJvyt!V25F^TbS*eVi z>~U27*Br_w0{Od11>BB2{vA}8{w4&!HinFQef2gI?axlE=Y9HMPCXafm~|!3zM?vq ztK5ENj>ZnSA;ayuyoC8D1SK>Z!Q`wAuz1$sb>Oq%4U$c}hMB-C_%2KY`36$N(yU_6 zEX~7MSMqvk)E#vJ;o7Z=tD%p6D2;Z|)zhxD_>}DT+O$}|OeC*abFd;Jv4a5^wwSyt zD!lBTRZ(S9A^+9JCSPWPv%ZeAT%W&1f=l|~sBvg4(+Sf^@s1koP$?|yQf*uTRCN-x zK8rSSqRvb!uu4l*xH7@AT=(xfWY(9%RCA|kakyPUaEov!d#9wr(Fwe1FK5Y4UG7O) zy*ohK*ZghRGo$O`vzl{PI`OP6OMhgmXshAc1q<(d0ABG6^Ms;N958bVvb#yimN>ID z3ORg8yj0UNMj(5KPqwHbRG7~-+gTc%LClY7;)S7`uAUp5J)zzHg!}jY^vwu(G)FqM zkKFA!sk47N^Hn>(7XOzuHc6tp$l(LlsRTZQP@KM_Ir%s1hUe6;uHruBy`*oQX*r`< zs>k&L&ba;QyYuXJ>H8PhiDc3LME@L2|Be0`nc31z#D1dx5pC%>k~XB?OZ6wN{&63H zUj+dhSh5CttN8t4gcN=Lgjoi@_j?EgqKy)6%74nQ4S*!4%o0|r>vnOSN~Z|Q>R>d( zKgeo$n?@kL*r#s$vi&}{9`cq>k1q=&aOTCbpM@hdG5!9nAaH554GyN~Sq-VQd_EmN z&9vzcKfLb&j-55k07-Y#Umss>OJ%P~jx>~w-QV3lkK`DWsjvDBD%H2&+`4=6d07+5 zXUth#W}h~HD{_2OgSApDuQJ?KzS|{wm41W@YyTruDD@*$D1Q&IznRh@b=J32s1?&+ zzqI-r5|x7NdSLT)`r&T5LQ;P|0;Ch9_3{{tR5+}gp%4RpG7hclWY?$ z+TL}W$J8mFS~T}eYKzxLai4*KS?e@Q1xB7VgReW4*)240GNMv=UdxKP5{i?V9i^Mi zO*9mEsl-|linpyWIbC`3&%1RxUee-$40Ix))Kt7y*WE;=QD~8A%qQTE$hah%&rJXn zaZ&Lm3_RNL#}&6R@a`LMSJ3Bp)EdT_g7FX+-_pXF4{#$!Nzp(OdOd=$*wDq^tRzc@ zW-B}ctRUN2nOj2xHi2y!`(i;Np86=+LM*7gG%`+jUpGD?vV=wF%**a9w>vl z*o*;t%mDZSyqz$nY5T3h`VFR4i>O<^K4QjLBK9Jx{acwVFYw`RQx^s>b25rax~W!3gz}nR}hi`0(yy`dh=v>VJ<4YjLFxQX}$nZEUs26 zsGDWNm@lL4EBGwtR!SZnf-Jn% zkkBI{v`LJT3STW?lP6N`fbMzB(0n4qLhWjs!Gw+R(0rf;bJN zgGdI)Yzcy!7pHS1@G>L||1Pon<-0WmHiWG}Komis54GBJ+GsOc^9O8BaSzwq0eZrF zv}6Fu9L&Lb>tJzYiKGv5p}&4XFso26h4`)9m8n&(n_Ti0sF8>YR@^)# zQYqoxDrr&-B@hhrYZV}9Talr>#SD?e3(%@0p`gzG#T_dl44cuDKg;dCBkqZ*= z)uhaW>{*wnE|hAElwk@h=h5VZPARCx&>CW@sD>lS`wO2`1FtS|o7RmCZ|xgIfqO^Z z44Zd~h%-Q>Bef{7Lw*zmlkOENqd)DQsQ4G^*P^2?;ml;^V}Or(r9~9qmi{0`s&@{O_S-4+?eQkv3X)K91=YWvy6Yo0iV}+t1CB$4|L~u`^>6r%olySV9u%iv#$@*xxo3*3XSgDMc zU?oSAPU1x&DKY{jYW&smLSp^1da7xdY(ce-A~_VVVKly~pyzOy9G6FWS>eYrmx{8F zdUm+N$o45&G~`L&YnlWV^VXR=y-RBztY7UMSa=s|!T@A(V>bzfu4xBIDx&c933yRm zwJMdz?=8O5=(&T+>AWFT@mE8gj`Kp*32;5brY-bL*pJG^+!^*gZ=ovK@C9JQWu9{@C_hHn$vM0E}@ai##+aPG~Jph<%PhsEvK3_Rt!t4;))9-PVS>r|EyPH_HYuH_aKwzcw(=zuMB1~7e+ z6qy}W48D6yRD$AsDQe)Trfd<5*6g`VhCmq$9$<%r+xd`LZ2KyH*g5HzuckqWz{n6T z63AZlTk;eK8}=&8tfk!1T41yPlz5`rt-UBK%2dlJDY}KSXqEg*`0=Kf`Oh!Df*}5Y z+@FKThqprlg^knouYH5>ti#ZGFsJbsJJ`y+n1UO}ewXhd{yWI%FUb5^CM+%_lDW`fKo+#L{mLhvPCTrXBTaT@IG4`jwW(`}7Ki zvx?%kv%`0ASGFf7&KPpvq4{Kjc-t%Z03LogL7T$!==WYPf$vCMb1apVEw=CoEkZ;M zA`wTr?x=~=a6eKcRhY?f&=9MoF#r^T>*p9*pJeDyd|oA~s;D1vD%I97B_WlS8MxEa z;5xV9IC-r#C0h2syKglK{5SmRIKDbolH7M))g+k$rg+|+;x&haB@tP8PUfCTfLlHY zYoTi5S1J?-){4e3ayJ-74yQ&g4{LjVTT;dzr&Y%+)|B@ZJJqWuLwD9Hj~%h5U@FMr z)}hrBN{L64j8aaoDG zwk!_vawX?XwUaqZE%Dd#QaI!Sz|Y6Rah!Y)U`4!aIyX^cbXuxuHRk3Rep96d(4{TP zXIj`ZxzwJeQlNS^P+pn8>q)#4_Ti#SO(-g*R%5~cRFlJ}lfvhqe~I;GPEM+=a95BQ z6Oh8aDQV#$^Ix*%Fpn%{M4|& zPt*Q&eJ#b70!kPe645@26$S?y(dlULVr88ol zpTO5s%-iV`Ek86v!vKW$i|_=Y%iecFrUJS-qSn%UKv>}0^Yha|mpV=EKeRdCnP*Wz zJHj{rm#3Ep7g#n>vBzIopLWiIW{IFtOMIAU}~Fva04Pcd{aOw>>$?VN&k zz*(8}%SW=fq3USxm!Wkg*h)Riq7yY_{W6Jf?>fuSEzTE zb~wJ{J4?QH0fNd9A|xP3Ir){8Y;d$Rr&dW)6%^JJH2uRx7jj9dw3u&WA!hObngdcH z`sl@th*|x=NGciX2bTrug|kYoXR*E!`XJ(W+F}Glx55`y_fbP^(PFp#>-}klS4Z^G zLdel;+!&bJp^hQ>q9lhzd6-R6R@GxG7{F)_jvV0y0JPkRRY06!TnU5NcPdVq;JvbijYUo%9u)+bqn3QQ z<0#B3TeAiy;@gxfvPbBv^KUKp=8`3fnJL0Tf;^(bQLl^Co6Y>Y-F>(zf6IT!@X)%s z({$ZB1g1OiP)wc~XKP6GgrIv5-L0qa009zvH6oH<+XPWGLDn!ao-Mh^W zOpJK(oScdVz8k6}2gwz?0IRJ^?4_&TU>h|TX;9$6%I@1qGAKS>ZLFWgBexBE%wL&+9JJ~|oJ6n;d9vyY)byX^dOPi2zKb9p2 z>jzgo1N0&dOc3NoOht@!+zKtpZac}esR)ypUpW5?exn=xP9MoMtF~<6+gGL6g`{tm z3qyM9cIOvS=S%Sbw2R<-7mL*v#U+gOD#v6W%B&N`^%SV|63te#^@`<)h9ngATuMc! zCfmP#vGoa?{Vvz@R&~9ISgJk>V+*?M74qN_X`m8O^bKX6Mn>JCpyUZx6t7(5e#bOg z=20!NbPuI#$;vC&wo+anirHHIz_wE$(~oVPlIZDjTG-bHc$c=&zM?4H{ZT%vA@a@u z*mw5QtJBx64f$M4L(Nf{T0I*~Pzz7+z945ax^HyU%LuM@{07|#l#;zyMrI0$`SZvv zv*S>#P+f#D;6nARmi~|u@3>|t1=9;6!}0X*dqAaz0j9$;=kDeCY(=G+G_TTR@Y-zY zRHl2*`yFu`5Oi0K3)}PW5O_uF^nw?T%ThC9QSzV48cX%7R*a@> zXvhzcoBSAo6GSy9{cB`5>fq+du1|3T(X{T4# zx5VSK3{VkWNy|ib(irDoU$t3&=-)t;s_#kvxna@-G=QK;nb;W_p-t^f?2W9Tq1hP! z>-){i%OGQFXYOJ_$i~Q-QUHX}x(ifBg!$jTDkmGq|2v8+t?wJC0rfwFm7w|g|G)oZ zVr&Tp4gvyVN}Fs2qEBN72F~JT{Ew=N5;TK~y{et1vAu~YAsZ9p|9>R&|GobHpC@5r z`OlN2?gBvpSUA~O8GmMSc5yN_w1xJ_UheiZKovz7&{Oq&b(wqGHYaDvm_ADXMFe3; zm@alh0(u0?jC|A^>;MIgoGdLUs*BX!kE22=*zeFTX3~S?#y6n4u6wr`)7Uj$8K1FN zmFwTW_l5WUue7YIva0Svy>9oTTfNR}pgSZfArKpY81xj;L^1tE`n)3!S@4Q9*cuUq z9*qC~7^oaC5QM1DYkIT1QItpBOiXG8=@_GIPM4wdQMSiHT--{ivczcn5G=XlJxT{j z=GrcvW~p%Z`$7)r1!KtXrg;MfeQvyhCh%))KR2c6L?(N`wxbucAd5ffaLY_ygZEXh zBSREm!OJJ$G8Md$6xQo{Ww*W;t?(J=d^)XP4~15Wq$LoApT}eWusxQ>dl2*m2RUJ@ z5NcQ;0M^L6LjgN=A4oYtF3P6OS~YXy(7BCYH%BlIZ5B4jm9T9=%g~q4sJC2TT=r*{ zti<$Km%5X@)3xr(Q8#7x@m;Uy>=Pr80VU5lLVG}``#S1NG5ZaypOXi*Tp^%vM z*KQe%2uQb8X2oX#V@k`aoi{GCv@%rk~df8Fy(e+xl=o7Krn7O3pP}XFMjPO z^mo`c(3I1OY^(jdmkD_1wtPj*KmUJ$zU?Tr14R-*86vp`CqziO>sYCh7TogyZ3`6hUO0vk>$@)x82(WCeR~Oc=D=xE0mh|tuM^c5FOATq z$BnM`m2IzoS_kHg>We=X+fUJEgiaY%ug(>|vai0i64Uaz*hKV53!P6vdiF*lS63mu%H}+T%D7mH!Ut6SwExR4C~g~!Z#Y_h4g$uX%R7VoX%AkI zwZjp?iIg{_&uYcjw0pz+#j-bu@+K)@u^gU6Cnvs&fMaszjOC=5BcR3K{6u|>z{WZu6T_ zo^=eu3X?s-nkz$(HiZ4zC{M6GA-{dJW(bl*fAfCz7Sg7r6+RA+OiMHQ=63wcgb*}B)r#JqpqqnnhWbB=CaQUzIrW8_rMXQ=e2^q~C#-fsO_;pOo4U-CW>z!deeiE4CJNP=j+H z$?&J2$;LW*&*4q*xFkc9WczIO^W9Lr=iTeOqu&cJ+eIw!KB%x`D;IGV2|(OWgMxPg z?ZiM9G(DyOw+B#P8R#mR*urjQAI#1_aP}g@^V6jb4Y8%gCIvX|=v*{TR-y1qKJN?F zwdeAyUAl#q!tUzkVrR#)SiHzTAz*(!8!YTdDR3v@&A>kS>&C8~xUbl&%$TYoB~yO~ zoN9y`s4P<~w$U$RR#}@EC;a>3ng1FGrA&8_71A{ZKt{g*d&wSE$Z^y8cwN3vK^!*^-Sf z7cRjD_$KW7V)rEMHiO5=G|vS~#)yQ)oG)z=z^}PcS`GJ*i`m)zPPoLOb38;{p7M|( z*{f1y#7D`L+XJsbxTd$#Y%9 ziqUkwRupKejWhQOzp2%3BVTT}T~D`;3q5ZIw4&btttDFQb-MZUa^{?X?>M9Y z8q-%PnSWsxGO;p&vSFbFxL-(dBy|VJi$rHj zk}#=74+I?#3k9~NSa!PvJwgbx1gWzJtS-#dFRe4$$e0NP+r8Whd6jwCl2jClYt`a9 z#ukfX*Wz|~dFq04c1-;0n-ybnd$wQDdEsB`WHVa(9y*xFI1CCE2ZzJqAzwDv)#b5; zhQwm5Nqe%}|KJb8MhBz$^ldb8nljR3m#zBoSmDsmfR1E7PDaaoP7I$a;^V}Ytn z@j3JPfMUf-MuSCquoooGG8Er9%6?>oTUPhVK_p}>QXW>PC zh30Ft*Eo`cSfnsln$g|Fb2((wh6)$Rg59y>C~Nd;t*Y<~^eSp? zs)f|!)@g=I9h^3B+C}vP`HS>n>8VrPVe|!vTf#L}&lTsxAnZZ@ofjJbT9mQhhi{z7 zHn2p%-^^1&UHz5}5pnWG@)Co13@U0?84xO1uWi~xv*9hv9r%0B4<=Tfj8_GD^8CMV z`RKpcKHP6aRHBvMjZuDR>po^cQ(}*k8Nc%}SOhV%S17vN?e@A4WNH}ctzG`@xHcLt4>qQC<=SFat z;<6lz@UIbJJ2C0kg&xLyKuR#F`@wn>9i~H#Tal7McV|)TpN0bfy%QHrHCq1%TtK70 z>kuGDb?b#zRMlG5s*x3GGd1F#5U+T8@|@QvO@Dud zdHuaBZmcOSotfW#-=c-b=P&pc5wN`wS8KGk83*-=owQ!zVfi*Qxfl;>Gz}lr7z9Dm#9A0pI0%LyO8?XqezkaB zeKLYeafAso_AnF6;{}G4{*jFN;>ET{pFD~GxutJTpp-lKOJ96A)tijPn-1K1&wAjI z$AG@sKwk-cx7%g{fuNV$on<1Wiy#7pL?SSZD6xb{g2*xii3P@67{|b25zvw zZ$i{dGTD-ZkmF5|=Jc2Qy^t-*WNB%{$m*s@LNGgEwbT6z`|Xg;%4D-3>!jJAb~_XC z%nxT0L^rji)_+oLEwx6l^|7}Ya`3IoDemB<73}g~`mzm|8sH5!0ab1Qs+jO9y)%zzwGQuMHBy&<`^0^J{I_?GbJCT!FT+V*N5~(?TMwe{iGA2Yf zP}#jo!bVH?!oJv^vNX*y(w4n87cKu%@8N|fMWa1L$$#tZ!SjLym{#T(mJM;TgX3UN z3<*3m3opxvBP=F@2@Fh`AtsQO&7_-dDdzAtu90iu&TuR@P^4w1VgZMMB^w0>#PVw0 zWC|J0q;%hI@MmjVvc47gvsD8zSxH-}vXZX0L?_CdX3Cr#a3>2HLDVY6O5jBg@S-1h z@c?4epMQ0&rEQt{L5u2E2^vo<@+Mfi=J*pFZ9NxcT?yW3JzGM|aU@vXk)SWWFACYK zZDq6(Z7EzoFNx}t@i;V?6%2Uz3)W3X$Y)q++d}S4qqd9Zxr1#5lK z)_r5RG16#lq;kcB61k5JW2Scq|sP7>t=8xw#FwOm2=R zWN7VVgz_XMD8&RoQSVs~khGF=Ce_`*l2BZk=mfe7gWg(W?ilBQEh)jT@(xN;9)FZY z-IB0q-K@55l%H@t6dpikU_PHWVFmuQ!D`k62@M!g%gKiIDhGmu2$vYzO>ntgZhM63 zNb+Klh!u(rr5Fi6N!A^G|F(BOtj-@fIDO&B$XiBt2oL%Tesa~OArC*DD&`K>yuIYH zPqL!9Ll&m$ap#pAx|)Qxg-mJ1l7D{FR#U9;6xig{_h~{m>P}Ggq9_Q6VJV4ZDQH5X zKxJw`vy}-Wn1LZVq!QVuvQj&tl-nWn5r4rsp;95`+eXV!t&UNPxaj)@*gtx?Z0>S{LRvBTQ zsZ288X1mRPx9za)obR0fyia+}^opJMwSbnT1vUQnpwR@d-$Y2I^m*MElr@p(-wpU2 zfq+j8_!vw?Uw~1AS~GcOZ-0#yTbr?GpBi*RI1B8M0942(oEkpO>IxLiTp(Wf8zVf&Wb?|*y@AF%)Q#}6;| zfBwi*vngQ)WK+*gE_1li%$e^TOe0)=uaQy?P{|P%BVULs@8F6Cd(w z0qDYeNXYbiAdU-G8>|-4GB>mQ8nV{3*7A;-lLV88^sx_i4)pf&kFbw(j`QB&pDD~V zO|;K)&h*y#mylceMSrH-ENl49!Y1t<&nfZ=|B2~yi_aHiIY&@c-SZ_%wPFb)Nt1}Q zG21%dQ0!(X4Iv$>wlVlthG=mhTCzU=8*yil$Dog0vl(d7=F|w_!@QVXa{-*RYCtA| zA35{GZHx9SxPHcmPkyxI{sTLfF5R)?j->;Wnz9%*PAwKURxbJIl^A&Jk2K{ay$S9F;R4;e!QD&s2Wtp@?aVE_#$fS{I zCd~?FQjgC_^?y#PRu566mo(;}FPfhp`I)ToBaW=$laDhQ+0D5tQB{CGR zs%o`@Nddj4*Am^uTP0bP1)1Tsn3XsCu|>A|F`}@na0O+ac(NYe(V4L^Tuy7mT9z?1 ztZSZH_fh`OmYlhj;avTV1lOZ9Z9j%j}*Hyx(>hs+61l7b)bnAUA3_ zfMnV*r z!Zv_QEy4+b7Y>pc$b-A=o?Tm)36U{fc^5$7ZD_8E_x6dBW4?ek7yKeGRWa0)a%u3y}q3yxyA|KW2 zgVNuyL1O2rT9oJ1>%p9u2v$MRmJ}y6RkWU5qPW*{E&Ph^DdrfGnV9 z@`5hmhwK5?EjeWhXDP^Q315TW(+u$$VC$eMvg4k1hl z)dh#a>V(E;ZaP@>{ef>&KVZk7KgMQ!`5Sr9s)-xgPLW|s*HL#b-GN8BpKik0n86Cp zPkovCSqtqtI1N9vy4SSlsI*uG}7 zyH!#VBVtp4hwg!7DSxAg#hj2G+ewbKo%x;r2lLzd9nG)=bbzy3^1{5c&{rwjQ~S+$ zQ>4AK#!L+zl$?i?27?2KgAGl!1@QK&r>>h`b>mIfU4MP|n;bzl_GEqkZqMiStE!vV z_7UZTfxrm?sDD1Hz*+jek}4H?RexV$fm&FYP`fxQ{M`x%6eiVV;S6p@_FB&D*#;1tW>d$d&MVT41TBqDHcS+dc8DB7`fD{BenXAnAnYWtLW^Su_m-z=XV}CXW7&qk^ zm**i+%>wF^Czn8%Dwv>6K+$k+Gr3XM@^lo_Vxd@ZY*&nnbxu$sW>fx2v?R#31Wvf4 zo}5m(ukpuulFe7~gzwyyQnM8lvLQ=aL4uz*~DJqPmyeu!HlCLA}B7eo{aJeHfh8N5PvcP3<5>q+pz>Hmo`_1oPKJ(O6T-s;t z@+Db~o?A}bz4nEnn&i$o9B|)!bk4Yv+0&;z70bG7WZxH84Oub7VOD*)QTdh*J!NtU8*6&p3fyuRuwjLvS2i3#9Dnqrimn+|QC6Nw zi#uo1oQx{bqfU331x)g-+-Z)jfz5f2$>!#A4P2UIf%{~_WEhg($zV)hX?fXJgj+zZ zkZZV;?Kd>To%7;UKpScV8+-ALL3LM?p-%`}lbX(kfy-=w-Hz+eDq07vhc-xKt3r(- zk{v2gB3UKQlC0~q=6{AZhQw~}ZvKJpf&N_Ba-cFy$otdwT5nn3~?oy`?6n~>R?dqT#Vtjl$B zgUrecu)UO&+M)=xV7w7;!;SbnX0ve>u7R%Z&F)v>!G^2>O@CRfwOyc|ta=bNz$vu* z*)nVaM^U}Kz0XlFPoYRG&&n9BpMh*^p6T|$w6!N@EIfVt*!wzKpIfx}#pf5y-<_Jy zy}EALunp=5y43uf96uxZ9S1S@UJdG+@4QYQmVxwfgPiT(TW=F%@K||BuFs;z0 zK6Fg)Cn-2P(97P-J={LrU1zUzKS~~D9#Nmsp7AN7>VK7Ikm<|}ZlN+)ZBU<6_DTEY zeTw2zRx5uaj5%k#WsYUJg|T4T;Rh5O7^V)*1@y8FI1P|GvRF(2{%rx1-~j~^uwYBB zImb`6vMHX8;mt7~5OC%m7cf;9MCj}Q z39|L<6@SO%6@^h|0L-i2NZO)IUOtuj&%AH%-udV3UEbwm*S_$~${F|KRqj`g z<18${gvp9sPx@!hdgH@Sj@$_?*&F0*9#Ba|Ui7-2vBsjMNAb1dRDQZBmTBE= z-CX6KKH4DLAXgvHIBuMDgO;=Zdp~pcA3n#f+yB1) zbbqS#z@9a$_v~G@W)HFByn7d={?c~r?|0%LR^NZ`{XhQUy?3GAB!sxWz~M6bQSaZ0 z!-XiHiOQXnVx>;GTfAG^sI(~O6;ntVs(?9V62W4XLL%o7MGhJ}L^uZ_oP-JYZAeC< zG+D%xiAZ16l%E(X;s$Y}2>Tf8D$(;3<9`Xhk8CA`&=PBi8_JPlt`6XH3kW}sYbI;= zn(DTD;$GV0&w^^8t4C|qsKw^^%f+pnrMT%N(R?Ol$#;;vyWrt9RR%RgQ? zc6>*JTsEHRVFq*WH%h8=l9z3D2hMd1gVWP3c^N#z7k4!mgQK! zLh8qIQNDvbM!uCipN>yr&TFch*V}x318M}nrBE8A~iT#8> z%YQ5UhyPi0+GH8*G?q|@tA8ZIjwFiFjGL8V*=WY~Dud)^MKBGGU_Q}gLNeQoEqk~e zU}TFP2^o^jw-F$-DT+uG6c@r(s0Mh%tEhho_XG1GJ_INZ8p{}rslPHB)9%~?vbz(M zkJ&5!R_b^VG_g{wWQ;9vr{UO=in0=tn3YvYU8#Grs7LjqJs~669e>WauxhE_6oXk6 zH@seax@Aw;aIEif(d5fLn&F3q#Mo1eWVfl^|5c0I{kXO-SS&hR@HB^`(%8UN7x#GR z#sApt&zugD$I!NhleQG&2o^vg;TOJ5&A_jHnR;?LckuFI+?ZO_Hi=~4mbwu*;Dywe z_%3t|et7ry%Xqj!>M7+_iPOL@S44r0Jcz9 z^fQ4(zGIYSm(1v@ZXuRXesP&bH-aMBT&l;GXUbFZ)GkUFwSU~a#cIm8<=gwaYHhXl zTIY1zbo+GY5`K}o#Cn_KHs>mJoppn4gZ*yDW_i2muy)9L(D9x8wc|&%P5arA4g_r$ zi=tU=HW@Kqhut2v$qv}DC>E;{HOUT>Nw(W;ieloKfY*WoT7Yy4ycQsVW>U4!V%KfD zqnV7*O;tACMt{cJUb7KfGroSm1?QkXewiM!SwbdV4}qkvQJA4hS|JLYv9}ZGWVlC@ zKeQD1(C5|K=zx^ZV~j_6vV_3cCjIpf@+#j2G_>Q{ZNFcEG1#8eRZXCfPQm&*a`;0VXwuSE@2%z-ssz z6YXviv*NJF9E#PCZK|`~J+gvY%JD0vBM^vs7=N#EkI)=ssH5b`lILbDdN})zcb|A+ zZ)DtcbAQ(~X42pl-PqVeL&o1c=HRaVZF%JJS>wAs^i12sWY6NoLm#=n?Ig&j)qsNN z7@%h8u$M5WSaP{?t`EmmWjAJ%?ChLCY2f+*)l7UhJ5^JIU4wl|F{zHRBwaW8W{9)Y zX@8bmT(|gIvQH|f+^4*Mwg1EY5AWX$-R2E(oh+Rk#axv|=LTDba#OfdSwFJBXo}`E zvpfME24n{nW;S_pPnfV~(oJ=y1`}&qfUTvdl!+4ZKh1z(zjlwqe^~+42&np1g&Af* zI0C{6NEakd4MlSD7>D~;6^1)J-!yOc&40V<_0+#!Jv@_?jl6%+OV2J`^b&Wl?Z^9S z?t6EB>W9=PkK;|Rja+~1y%TR90}kT>A-w{U#71`On#F+&*#emiwBBgF*UDI_f|9bs zWm+IBqrdc>*|}vbuSj;@FL`Yoi&)+ynarY1Lw3d?1Vq0n3&3AgC=}!7GE^>f6Mws# zdo%rbU8oiZnR;3JSqIu~wA^5uDNGWl+LrLQ2@Avn{6Wip+mHMuDc@wxNBL@=Ip30J z>*VN)Dr~oktHsUC!^-n`JK1gmRFC%a2hDGT-a9FM!+vA=+IE5eMGDv$jw8GvaFQ&G zCPk4os};oJpuHTjg__d?^eM8%9DjPlDu^KgXvh+x6SiXhg^s%({6#-=I?9pM1^&Vvv%o006esHwP4rA7y%Hsj}YIaDL# zIr4IufG8WOOEp$J$GY4~taQ($ak$Q~gBcD^-iI&RFHSMq-&=hlne;&0!++oBZG-$* zSCy*PzGVFQ)b&JtGq7D#Z45zE!1#Y8AfZ6O9Th;x(Us=uI;b&w_?RX&q=d-f^cgT# z&LDI8L=!5uglx^}Gq`K}uXa#l*>DhlV*12xp%@zlVUUxh2F?`IXLbvrOsTDXJf99r zo!D;)(R%~zIk875rgz+fx_^>`nI~Pn`PJ*(#&y>8nZ0s|4N=$oRk>?Uf3)A0Kt-@p zNMKK7L@u@bDJr1o)@}$|yPHbe2$RR)L8(IrcT};ZI}U6u@3DVZs_D>j zc~M1XeW93>HFeDLQGY`p~Nng-4 z4eOX__yiz3tYLzwXT{+vqp2P=Tgx!+I4)~e7Rd@Y1vb#plmtKgs8^85n{l??aYKB;wcQ)hoYIk~puF&&31S6cIC}!1cnq6b~95v)eQoi8F zTnE?$9k3fVNBk%!qAFs6?8o_elFY|hKg!m!sCJ3do{`xYgZG8;6)RRyPds%kB<&Th zjEKyO<#i>%Ss^U;%+@n47VxJ(jy~U%I$F`rw;eYI=4pynpzzSI1f#mHE?` z&TzRp`B%R7@Tlo;E<1h__Xy0KH@SC@h$mVyV8xJrOY*bh{coS@xnbN56_G%eUCu4- zxpdsvt)pL}9#AmM@M@5=j1lh@VmSmLo$!?`Q;B(2CV!QksI5##M4uGfv0=s&q_tk@ z@STedHwmlHG3KmZ1=AEJ^{&mtt}PmCOB6KY0`$ zMQX({(ti{@g-jQxON-I1_*Sw+TrAxxufc1`YUXZXt+-Bl9Br2FmtR6p$*-bUgx&Hx z=nwKK^s)R8^f&nux*!+Hh?70YCFi4<)Dj8#0 z5`S)yur$O)yP=zoWx39~$XwSpSEDQKVqL`Xf9uP4Uh%cH$1KG!WJWhDGg#v4NS2v5 z3sEz#_^~Qlu0S;CGuUvcW*m*zVzQWUhQPUU?Q z{yy?Up4IK*oy}x-Q+~iM7~VWBgo+JcUIS_YO3-njWqMC85U|L7asrC%a+XF*<$tKh zbHa@^x9+ZUH@I2%0t=3!ob24!EXOUUEolpzZK<-sB+o3vFjF zQd8}$F}6|4DRw$YeuMC>%*F|%T&^9!Lqd;GhWpA`T1M^ zc+cV6o}2vnw%>oZ<+)``x9_}d@qhL)zG2alNngZD*3+b zvMf<$6iYzHP7-(6S%ydQRtI*Z?KSZ z#4-Z1T!fBMsa=4s1M;agNqxGNM$7?ln898S&B{vxFY<)fB%2>ud0;Z&vBDKAaJ)W= z=F!pX((MG^H+0+;_%8Lnqlams%pa>PpzA)Zfk34=^BlCGH6#4 zHA_s?Kru;X!H=$3J5*TX3ZvbjM>z!GgVjx`X*pf8E4nn5_I!8%`+w~p|M>ImTg(F< zV8>nBcC>mDjXNHm{+ji2EzqhFVCmC(MY#(XxCXce#J*C#E#{zj644uxHTkdG#zP$!yn2*s$}2^NGD6!aj)AMCiT zBkpJm2YD_(Xj6mpUw;Fc(@du7T714m4@Js~Eg+aQ3$Zlg`}dc4<~K5!f#Z8}=R2=P zQ#f@eac=Bp5!d^dCUntM_gPo7L&y#MCaGpDV(d&<A z&)9bA^tLGv7Ze>`dpM0SZn^JuJYw3)yT(skv+{DfdSlIV4R^k<9pu&%U;&K4GKlFd=wh{cy;rrBEH`1( zK{5)Nv407UkY;SsC1AmjWv+&`W-{uP5LcJ6o5=RPRvMd2J?R&cl^$pb!vh3)-_@P7 zN#vn|NxNq8fw=lVH2tpu$*&?MeF;pPPe96i((YPU;8?z4q^RkicAI5dYM3V~m?zC3)%shmA?DMZ_jMpA{j=Rmi9r)LfFEy-G!waNax{SD<4 z<#WF%**)e$A0riW#U^TJG0@F5yX>^t?eCf`4zt~1wy4eI8QpG{gHGMN%}mT@i|)iu zXMe!fOb)$bVeyALJf<0Y^avXasMhh?9BsLFpT=qp!hDYrP36JJqj`vDW5{+Gmm>>) z2%50#9`inY5O<}+4!Y^r@T%-){J`$3GJz`4iy5In^{1gc=^(fjR;^V#yGG1JKO)1| zVaN!44RFs4fZM~)Fq0VS=SS$}sn?c6YWL;j9?$;q}?YF6Igg2e^*TzI<; zH)!kDAARbPJvCJ>^3Ru2i^ioc{_(B*_ne_v9Pl!$8KXifx}bNljZvm4k0?8ocNA_g zGg$o{SoxTUNZ}cQlTD0(KwGHqGOUAPSVl!eQCWdGL=GVl5xh;85zE3U=v|p@CVx|2 z;W$~($_5OLD|A)Rb0TFzL%3YnXdzT+s;Z+55sichL-v`Q@dkrR|40I*;_(ZhRKGG} z%&S1TUaY(lez7LwOt)ApS4?9y{pB8;!ECyzG{NL_NHAD7q=3Gz?8B zdMu&j1R!na$=a|rT#iePh#tm@$$zG{mE`dU-+Z$v1+4fiv;XqIXH!oSmORupvptH> zYs5nqqTlOf-F$;xdgMme=*SdimTR_eYUDQGvfu{a`rsq39lpc9?_6JnE{5zqTu-=m zx|nVSlX#LxnKA-Q=?RDUP=2t+Jf3o3ASdYH@P|VwQ-Xi82?rEv@==jwJg@!&QHduYlfq)19+ClXJ8rv-D9&F!F@4Y z_Ujnz+?}qa6NWDv+68wxG<*MLEWCMN>+QGw^Qo6kk@ucmuz1gorOTeg!?oLP8NB?n zxr%4hOe}tO8f%ZF{+9Yz>VNCh-j`ov${yW+^sx=QcG3Pj0XWXZJrDdgS2rJ3F$;ep zvJ!9;4fiZ2n3WWDKEn|D+BHUiCqsM|alZ6-R0Hy1JYlLJnS+;O7JJR@z00t?E5Y<0 zqJhy(J+TytwN+A_pXo~VMszEW7+#2UvDqpnF#9&7S_gHp9ANJJ_kZ2&FFQ9pl(MBR zHGjSne}~_Cj3SUtP}gtUM*<7c3VkTc_Kl2+Oo_~wR!aPI-$HJ#G~aX=cbAFJb4iRR zuQ2G!k|et=SXfw4fHJBxI~cSg(G%lGL}QAtC@a{mJLA9VPN;MHxY2Jyed$;^br2Z- z0qQfpCWINbpb&AmB!8n1K^?-e3fi7Dzlp@Qzc+u%)K&M5Zg_n|>OtINMc09Y`ri3O z>T^8%rdY4B-9|jLA+?h`SbJddP0y9)9d4MqyRI{HgVi;qdcd55OWOpc>&(74Ea^;J z?5^}T%o*b=53e3TJ{m^`790uLT{N8hyk1~)l*R2hSG2nnY=3u|07+W|j0u&xq8_(l z!ntva8@q@23^R?IaK7_CGS|1w*XT?8SRYt=R}DBCry7z@NM|Hg8sfcbz_nh9M67Hx zhBT`x6Yb3kIK#(kX4Rq+K7%$GUSkzMQblV9fC7*}N$Lz~AN0(N86ebcNK^xmGF3}I zzUk>2&D3PF-hVP|*uCAG9&749yQX|Td7y3YJ)Qdv8-Cwfk^plSFd(qSKYUquE-a z)-=ZaFy1V0HoZccmA6grn%~z>F&|5RR6p0w$u=7g5`R~eB+T;?$1;q`Vu6=bvBjcl zCZG{fO^l++JRnk8dlS7W5iN=&2SO4<)HhYEMil`33L{Gr^dw$WRglVZjSbrdsCOti zvSk7<-JyeE_P?U@L-__{l2k9<9AfSuIW_R21FTDrwue$1z5<`8RXe9$X#Fbr8%Hb! z5Xp7~k$-GgTM3J0jcB-6Gh0XmV{oZ`w6n?V$x4`vDI-}Rjol!#-Nyc&a6&UoEoTDf zgcFh;xH^5L)`%yi1Cyl~m%1re@C>q{@Cl(rA>z}i%j^7290tU<@1Z%1_xp?`ytm6@T)U5MQV$G5SD$LV6yfb5yU z$Aia?9i!Kt28DSEq`!>j>mf#0tz|RW<>WrHMPy%Mv4nVzFcOCqg5Q-hv9(lgBcr$b z6i!zynQ$;Fv5Pqz;&hI1UeiHbiC3XaEPj2w-C<$Oo~)uC?)I)94@ay#FO+xbQc+4S zHGlQ|aKyuZ?X-Zs{ko;uFZX+QJgwiT^j9ERTTmQ*sONL4OYNhsR@pw*(bh$N<_6a+ zZH8l#YoWTtv07c{xZD4%Dsv&j|6-zFv0()qQ58&s@G1T|gz1MzR9xPqC{EUMkUWFD zWSXAq3ll3X-hYac@6q#SdNDwMXK!!s&{*4u&`f5MFiD(Yn-p3gE)1*^R|h^3KXO?G zAZk-yC=v=&>RR)Ix;j)P0C)WO!|@pvuS;Ce&wz<6iD&-OVI-?-e!QdVhs}?c_^l!YQw)d4p_%5p_$aE>J4j+T)0m-c#!2Fx7QbL7pW=i#YMZMU9S`Ipq$$M61T=ND}iHTMpg_smnb-}VAK+&rVW zy7;>9|2(lS^`AejYrO*x!b|av*S8Y_E^gO$> zjAeq7yiGnK6PY8#B!bWn2?C#N0J%p@8TD#t6gU?pm5_=<&;WE;ilvrPvK|1YVX`JK zUY*7Wrg>&If#LKE)2W28eShW%`Q^xwHl91!_8b}eOJB0Ltr~7VJN-3xfcp?d(Pw%e zzr*h&b$R$E(T;6QZY~Pj+$4%X^<&;0G&A8KFJTywl?j>LqFe&@dL44;hXo*S#{*raMv}M z+<(XU>qym0xb4im`F{uSO`m;&=QmAl{$26hhU#G}Yu0W(n)<0>LIt)`j+p{fT?ACk zLd|;JL^30bgiwh(5zR#lvKr9Jtc~aq?nUNV^#IePzNMZ(XS4pDWi{KftXWx1A)jw8 z41}`#siPdDoujrQg57VO?~?4F5K(LpK($5*Gi8(xZ`i*W`DK%>Aw=v`G-rd<6Hi84v*Y@ z=DiNv9(XGC!+-sUQs1tlvmv|)35)2wK)gZkU4UZN0$a?JKwYc}TNlp&)XzG=*3UBr zjkb=ljrM4p#myG_kuo|E4E;kkDT<_;Ef&RLx7p~Y$~?~Ibmd+Sc|tT*Y*w1;W1XTD zqGP_H%ou}*6UCs@<8V4XHbs(xP8(!xR>fioX;z1(S$}PkB6^&h#i}WYa889|JetKK zWrih)$7Ztv_Vu~lKCP#OhoKNsVC#fcM;souKSYV_^)}=6yW8go`n=VEHQL$$ba;&D zivKz8d&TwGKCk-!ec+b@k;sej;`ITc>km1NZoQM^3g6zz&s>~m9ix>_J2dg9{>*NOU$s91XHwvy$Y4OKxG48 zXl;fNY^QG|bKEx;0l36U&Ab3FIbtLka^a9`sEg1EEDbKkr5X~^ zn18DR*UCvJmDjYwNh%tX^%pafagDKtICMC`@tH}u2BbH%nU$?OGAVWGqYqNQ%stX? z=dw@s1F3g^k-Gf!y;%L0skyx8wS6}q!46vYVzBQH8Z*yobd@7P7HDXEa7bz<^Y?}_ z9|U-X4`I@Y`g<|nhcn6rj*9!YWXv}@Uw>0;JDdDUGosh3u6*vIoX*fB_EZ+TF6HOc zojZT|H+^P4SP&n91!2Z(b=B5P-Vuonm)P7iIPwEsf(*VcXoN~0(Fa1NfaFV^v;E)e5VLVtW# z{1gimSHGe;%Se$eAyHRJ9%vKNO_GTy%TY|AvlC3es6Zyr33$9bK}BlZER$wzX%a<& znNX>jSo|$i6pMON{Q_lAl;Fw59?=xf(DUo3B$SagQltvl#RbPvf zh9gJ>k#3=H*PeXyia#NVE`JXiuCvEYi+<8&SAsZT^|^kvElSHVAEE7qg)XIGXFhpm z{+Lt^GpX(MIZI~Xzdyi;`~$bP-E_P3XvRm*wgJzmU=NSh%O_iBI>;bxkbmPw?M4S{ zQi3!N#_cg?MT@qW=nMHU{Cys^-R$>XYxdVC4UWEI^BVx9-Oe|L;Ym1b%ul}J@g@Zi zRL^>#_WRU3skQj_!%rj!cV3ygn>%Q>P2NBIP^zu%B?fO;KJG533Xj?jHC<(V2V#(3 zXv{{wPrz3vBm<*A257`Yh=0#?bq2EBecXS|Kt6l5cFF&qeY~Cd;_^At*fx~TJnpu$ zZ3<9lO!{8#d+sCpwJ>bc9~d9o8Y5m$g_D>9Y&L}~j%-JSFXTG7F zMqP!mGFKutz%wAwC%aE%P;8Vq#yZkDHZV48RQBl5=$z@?6z9y??Xi0U_r^Z={5j@z z(zsf`5k#Z+@Fxi4%4dZ9n8(E-KFrvC9HBdi%MAuC3=wmKg5-(tfksJ#{5A*2WVcs5w#Yjp%!#l^eRN4BO6fKrTzN> z#;m!DSRVW1nt6#Q9)J1|Z>0|JYQ%lsq2Cm^rR}TjvtL~D?foZHf5rYkPaAjR(QgQN3`z8v-WM`#K5T3;wm>YDJDJ&Ocp5*=^d-+y z{{$}z63LzYcE!%Kj6v4e&uC?+0*XvL;x;?*TtmKXy3XKp4QT~eeQbh&}X zhv9v?3Z`fXF@HDIfLTrF4(!`QM`4L)ziK`brt<~j7pc6Zq3uTURc5#qM2j^83)W;J zTRE!zjSyG*y%i8HM+Y^!L4614msUhYQrLs(3y4WyFf66oOi-aQ`NH_h1*|L$p7t7H zR#%a6*!t@n0xRj>_TE2mcxa#NZ^D7Uw!K1TGu5fSOMjQn--vfz-rM#dmGyJcU)k>L z8}yr|y3#=IV+l(zBXHyp84HJ5GIkHAgPlASz|c^zl3wIr1RJ4}M?NvcVQ!%?nofHD zDhWNY66A!pldlzi9-o#8g=wEFhs)`o?S8qO!I#s_dt^mw!d_g3EBB_R&{`}_4I_1c zt2NX^mw)ptU|-q0Y$eEJCVVg{|hB5Th~hc;+SR;~NYS)pijqOe0{zkV`m5 ztYsBlDoViw03$%d`1C^`RF6HpVo6?)2$&J6VTbWg*!=yewo4~!*KIoVYAQPw`mg6J z`6OQ>k_=X^O`g7Utx`%}H?&Tr9LrIw>v^7LfC?d-}3C=x0a!>(vtImtZ%aQRRi5JKN+!5gM0lI_Z zF&)t%WDT0cGKj0>d(e;J=vGN7V<(|W%yL{wyuyxYp12p}r>DBjdlA5X9JaKb;eYL+ zH$z(s5qqgUg2&W<@L9`W-seWVfIX>iey#5tSL-{_sBb_wGh|l|&XFhekArm`y;{p; zc{%Vv5B4Itg?qz@IP0%R5JQAYFpUr|a4cak5-QoPjNu5p&zJ(oA?jxlGhfI6Dc^Rn z?TYn5;WC{LoQXiA?!g|14;*GM9)CM##Ge&_&TXU;7JaqbW~Q&+4Ul(#+)wN;F|ufq z$crq9LX25SW&wJ|vchHgGX5D*ZwRx1!dN-q6ez=VLj~_%NLea??X(mw;erBBOma{` zqI?MNqf!LqrXLB#qAn6~pi%`2$_EgQFwc(r$d5>R$HN3xlpxpLKmYc=I#QyyY2rhQ60I z_3vssb^({@KZBk3`{Rq8mp*BW+CSz}RM!dDXI!dlRPf1MRX|tjdVgK0uVZ(3^6%l* ziMy)kImLfDKM`|&9(G&qH8G3nS1M0_??M6#YM63a@IrC!=?_rf{+LX_L?q!)Sdw|W%k=imIQ2|n1n zJKoyl`Z9s*_EW$6#D6K_ykE+_hVR#|>zu2oZdXl_@bWE$`b6hEkLr>~tm1;NOz^{W zgu!_kMD5~7zMy`i=UzbiyZed-zgzc#qJ!c{(ZQ+T6@NW1{s#CX#qA;h{BhtX z)u%+4+Y&bd4uH0S-o*S%0{0;ky>CTJ+fBgNwge*;V=5 zCDE!|s(!ijL(A4Kd++k1eTd&C!& zPf6S>{Ax(zCE`QsLlQ4_f5BBH@i}71^NPghiec}K5-%(MtoNkE=ZPcb2XlFRPx-jS zvBy3%iqCEL{G(= z5-(Nt`CBADM{HPlBKH>ou3PvuiI=$!FLFtIo@icj8#GbetPBC_OTj2CnN z6O4Pfe}Zu@;};k&p%^Xsro<7Ws;^5NF{=8G#1W&aHzbZ2E!`<`#AxZQ5=V@dni5Bh zmVc%sjuA95M1eBXPt?E0;K8q$MSe7&WYByp-%}xR3EUWJ|+e zGCr64A7^|X;||XXvZdh+;|qZ=Xn3CSMNIQ;#uqc6A2D9Z{l8*-Da~zE7++2_jgD?B zh^EoUxR3EB##b?Y8{=yj?_qo$t&GNg!hgN2zrv$#9Fzx3p2u~_hZfobg+5We({Nv~&&VRbEHT052CN!~GBl3-gHqqFU>jA_;6Z?3+hP|2O?LpZGgprU|^SgU7JC>dBI^FAg6(QEL2w z{#Orot`zfQ_Hh3~tKt(!hLuWu{>?Wg-=h{YJ9(vsR(pG~xj46AyUEK2?;f^ew(;rM-nMx=V$BzrU^AB~J3+er5SD)83n1`^@T`kgwzQ61Se6Ug_2O zWPvdQZy)J2`EbO=@jkQe^p_qE7_^|nqmE;bR&lBGt-<6LbGqK&`*D8viEry4oBr=} zp>JaC^1p6#oX6EMefmajs2G!y^YQy}y~;1#_tC3q@n_E8m_|o)_pP&K<;Y8Y?3Z#6 zSW@-b^^(7O%wIS9(EOW)9v|3qJt^Pg1q*J5&tEm;<=MeWk2c&}S1Pn~^I@OjgG&_g zXm#tzJMZ;>#SIU6mzY||eM{2)z4eaviR#!XWDqVIE(n@7mFwbaYrSpIu&4(WK1q)w zMtwT7uIHJdXST9eN5po`_4(q;#MRCNu64e%p!gztjyElwO%t+A=rhWtXY>1I9uN0? zlUn4_ul1wy#!Rdko43yO2@8g0N&eX&~~AXS^72^{)pPcD^4}B_!o~lL|!>pHH4Y>0RzAlSfoZ zoKf)jiymQB9&Zd8y=VDWd*6qj8piyX+vnW2hjV?}`3Lt5Uv?#+%<>CQeP#_wi+I`X z;qh%LNBQgf_*pj>xa_(=v1M54fxk9A8tgOs%RsBWQ`2IDPM5hmz0DE+QPxLZQ@LK_ z1_XyZD^@UZ)x)9Nb67VuxfJy1`Eh=0`xOtL-wEC`=WI-bccViWZ_d6|bA#W!y>@$+ zpf3siy9ZZr8FaEt<-WE(NoNZkxxRHp<+Qys=EQROmu4Lj9p(R`Wc82Rn)mXmn|J=S z+14>^mIb{Clv3)*D zgS|QrsP%Hy`KawxR%y+J z^6jVY{5NIL*?bG5(rV?InY_4RmBPzw-AjAw9#ZvGrDEsoEA}Sux>2@g=OW&5kHXhE zrP}&>$COyn=H9b=RqNf{E63EEGi=|&4bzH+Zx%KLHFt}*U-X+FI3jrdJ#oBnE4FJH zanW|S0pkigJmC***GHpkNbLmpD|);=Xy~chjQJzl)dD(xp48# z&8BwtblcveOrGJ5?d!WQT)-{a(RFx0mXe7DVy|Aiw7Fr4#U-xx|M&ch9AmoF@cnCG zbjgWJVoEj}eXpbBGPB?4&vjgCobF=odcFIaPE$rtsu3QsqD9Fgb!we1)3{{&V+W(g z{v1*A51W(A+^=;e9&KFgbIV)>?@5*OTnawjaAZ#DQNM~V1G;#a{+Te>Y3j2#_MJ{* zuqoRp>7{U@`P?@>3wW~sb|}<+>(sz@_dVD{&s#_P7Y{v|tL@RLi~TAt%RA)KPQLER zQl^LY9#Xa$2R(wX3y*Tv4=*ro&!o%M=2X}@@sj76aaES2bP7IrW0NV?du6-9=eON& zmoTx``RA*qZMi?V$eIx)b9nW*RQzZypYX%QS$pc$B3oVz3<(V_H>=y^e_eY&plx*Vs|^>p#H~0xKq}U0)P>mBGxsH!_6&G_=Zh9Hb$;Xf6^(^C@tNX_%O=cG;T=TE`g8QVd9X6Ld z;}Wss;JLk%=WnakM;^KcAHgh<^U$LD-LGb2D=sVH+P>ztiRMdxuW;!UGydX5L)-Jq z>fxLCr3Qwy4!xc8W5tax%g=P4=P|?O&)h3QkK{R4v2E+{5AW zgO@q-czrDq`G!4Hw{_a$v_G#E-81&x(F-s8#mHf6o$_bzR;X;up1JMh?rWV2+CM+V zFR9-8W7kW+62~vRa4RmIPZ>R-+JhC7daT{P!*$-(^(i}tCDc7JqILX+luhj(1kdb| zyuE7=v1Q7zgdxq-tWmdb`UiL0UgyI=@B2~KqvD|WGApCEvCCcZ{|xMvW#GsuuGcpY ztCHfQJLxoistpIaYxd*97s&w3pfy2tOHmt^aAsKv_G5h-(5?B2HS!_cP7*ESk@ zrgocuCN7Pvm%Bv{EdQBhVe;kV!$D8i zzMoulW;B?7oTU=uZyJB4>6=}n&V9P_YUI-)OR{eA>Xo+_)61<_!MhFjkKIz^hkruh zIide1F_9nklqrAtmHoiFSBok%ZR7ND{8#75Z>a;Lhde77Jhw&3`)lRn(;ww&9&tTj z^{@`#&s_PZ?uW6SEoQu$(dyY1xmLDCHLiuW{W<-7mTy^(W$9gw-6W6LSK;FDDOsxI zJf3Ad`?%BTK?VEzGygCHo3G0r&wO;+`!xAzvCfSWdf(cACb`M#VNDWRR~XUQ{;T#6 zF1by^{f9qPUHj|shg_>-Bicmnx3qrX*{ZME-@KCPm-T7BiTPLmk~Vi65w|AxpTTY~ z-z@I#)IIBar^$>@w!CW}U!L`#dJ1D66xQ;+bHwBc;?AGZy)Tvzc=fv9*Q651Eakp? zi%vCr*9g4VH1Nli@7B4IpNoDiV=njo)i1NzUheyV+qot>+Xv(m#9!E5BjM8Qt9_m{ z%QfX{@%6ErpPySi)WdvaeOT_U<-PAOw?=N9-)!rZuHt}gM|byMo!|V1`L|c~mds9% zMY-xM&DFL>N?4_kT|@NY-0+(@vK%o%{KlB0Xl5 z8#cx(c3Qnp4MX=0KUZ&Pw<|Z!dU;*(YT&h}rF+xzkF53DoQa%tqg1)HL?=8Z@5s+E7HI;Sjq`=}`x-{BT^M{jptU{We26{I@%>i^L?wo7{rkhd=0D>85!aM%vS?$| zs*k_T7Sf`QCj1)zcX-ujLsowsmXfRDjMndm-l@8JQNUU@E%9lCe`5T(w0#8z#@`ws zHaYk8PUC%-2JD@i-6iI3|6J?O_DLD`t6hr!>t`E$-u7#8_shDt*bguMDeS%GS=X~$ z|M?KH*nXmVa<%JMu2k5zVN5}vF7qO5EQk%7GSF?%*UI9+7D2H=+kFnAGi|_# zq<;g?1tv#7{V;gKzMdPOdflo0{^XKUUwa=}a^HE)lca$0z4+FP8?6r5U#^kY#&SLL zC63~SE+p|)$E=Ie@jDNbLY+}}ZO9r&HM|W=A_|>wQZuS-H zSBnp>f7(!UrPrgy)!%o%>>gIG{oV7+xZ15gRXkVWT9{o3OSGqqJhi&#-d6_?R&UtE zwtIWGXMa|FcXL2|o8?leQ-3y{*|fo-rX79KUR0eqsN0dYD`rhy?KN^=;{K<}lZyl_ z{a)is^YBjvA3ctA^$B=zW6Ad=F;(p!_Uwpvcl#JtE_-5Fmy_qJkDd6%c4<)TsNnb- z@2*PmQv%{Y%yHk{Byz-tWwkEztrF_yytK<}NnnrlPt&UG>*jT-!odqOx~}tUQS8i- z!RIe0^9?$+XxVY@gjrpeoao+e`qOSxFGuo!ZK)s0*WJElVqLe?x-Ckc_+gv=t@-rO z6PF?b?Uqg(J9j-}fl6AIm_yTyK^PE=w1d)JIkInTaH z7#lX^$c}?ALgo*yv7qtzp+P(L_U{$lsrJxZrC+7qShGi7cx1%GnR6~#<|IZZRcxGX z(c*rsp6%|EBX<0l)Wv&Rx;44IZ&&{>%^%GyvZmUn@4I^}IT6;PZo?}b`Un21_`RmQ zpyb%VPBZ$gw-)YNncMt0G z`F!&t@{_l1UH`2X+O^TT3hq(S(oWwYTicfQEA^x8sT+x-%SK)G-esRNa{W_#mXke7 zEO4HYC)BeL%ln#r$(PAFo)`EGpB1;r3%5G0b+)qPE8*mm;vw;@r`l*NW^IySUBxqVKNx9GbrH+v0hLdh9*d<9PVJi|&aR2PG$k?w+3V@kagT z98e8{YZP?@+bPytL@PuA?J^ithfrvyIQW%@5m*{B$gDpNh%jXZC;oZ;x&_%;F)x zj%&B9dv|46o0xV_ehx|X4h?(!acN?Q#$NMgclr=@Y+a)3mTBF+wsg8vtm)~Cci30c zf?}<2bG>SMeB<;F`36ZfxI}O>jzeClH$A_G7%hsgc$9##y#%|90 z!{`w@0@c}hF)ygyoeU6~TP@O|Lv zP`|3(1HJ@tKYSi^`+BBO;;<>b`@P-od+F6O;mh&{Z$m5o2)=PCuHDu5(F5aK*w@Xo zuSls=_^a#pxx-3yxDa{EeoxcNzHd74)$C!pMmG3XG;H3-s;NC^6z#kDeeAUg zKU&;4|7!W{pWa8eynnSx?0%zapM}FFC3L#<^+Bs<<-b0tI&@RoslzKLY<+ZY+SH^^ zgC-vvQKVWQx4VBl8Tb{M-sBioRB> z;H>`X%kw<>w=c(W>3^Ed^zVWo&_AvCH^t*mNx?gd1fStKp+V_@zDA2+RJ=mRDm2pw zJJSvt0kt!E#@fujq@xHze-8lDQ(QrY-vi*Z-ve+?I@A_FqDQPl5JEe7<$K% zAGO3^E%>zrLHVl{e^sACp*Z^M3zdSQvm6Cv;(^zG6O#-Q*E8PNN{7Yz%d#ueIj_~M z5N*_{Z(P4V9Xj;|K=yEB%F9mqn5v#uGm&f~XcQF){LQ4e;y`4p6~VB z&PR(g$4$H-%G2^O-G4Jk#gfcDxm1DQPW7}OQxsEu?#KKkKl&ZCi2SP%Bglga{)QaI zh_YLu->|P@mi)h%j{kFJDk~=n|9`9qa;qZ0!IaF!n-!Ji&4QwWmA!w5mkXC>L`bV~ zX~vwJQ`MYP)ZAGf<;O^5{cQ3`pWjkxRE7xwmAPe@GC4R=@kjE5Qd;keMSs^jH^(db z$nlE8%k9cCF&@sGRWWf60fbnWT)Yf)in8NT>~{p^>bYUvz8tHN;}qwO$i~W|8&lcI zS&nyOL>FIpdZ2>QMHU{$JhTgiFeg@dU zQycwTnctCdQ$;DM3%?C14;5WrkuFWfU+#fIx68|T%C>Thn-iZ@ryLmeWX(2z-k0TV z{-Q4nDy-EaUx;P=T(L<0i2nXo-XAG|Q%5ErBUt3^<(ZJYv7kf%Cu)Z_B zm%#gDI!Z6mCRZQ%pZqaqUhe46)NxnX6VU}yKs0YRiz%h!ZE;HoL9)tuDmkWOv-oqg z2XD5?cM}XlkS_9?2*yJ`TZxf8=pcX+$zd3tlQ%au3`1ls59)zFgUpPi$c@JWL2jfE zX4$)=VIVe?@Mf01SdBMcun_@}F5vk;rcb)awJ&3w3oIk$HB0^^{jmC5pacTCB5fg4 z3YXi=VRFmEIKm6XNH%}gmqmIkKzJY=F6T^S^2p_R4I!|+hTud6v7I2U0O3Jt2)sxU ztgm2|tDRvQI!SVG3loxCX%$%7YWA1p@T{iBvdcVhS<%W!Zc4jkReH-2*O}__@EXwS zZS%n7H9(Y!h!8Si5+sm3gUvJWDbe$R87(+4P(}q~^A#;%6c{H?E+%Sxh*ruak%ruG zG1FLHwEzTei-_`+51ZK`EY@sMgcbHTAmb!$3|6oxtP-Rs5n)8gUkHY`IWWZ3z$=Rd z;E?%H%(8{R+_5n>Wj-8dK`X&n;C89Gh09@!AeM;%4h#%M!LYuZz!8%Sm%k89Kp3=kLegqnSm6ntfKJMRsplDhBj9L z6zCeu4YHb=$d5^DL`^2Zoh+H4>9fB@(dY<&Sj*(qzCG?~WwP?Yc1%OL+&VO`3T6WG5FTtc zwHXp&k=1r&!Wo4A+96C`$|KA1j{Ypk2>_6Xt|udes3cg6NFY=%usLsMGc}aUY=By< zsiV#USq6rpp$D37B?=fJpWgr?QFS$l1#t-w3w$DHwJDIn8v$YJX%Kin2Ni6PDU}kN z0NJ2Hkl_)dq)Q8pR?PP-fiw$Msqj3ta0Oza7T!=EvKj1Vt*=f9{y3eAAg3gN+mc&A zWD5{fDm+w~s5#-*0##monM{a4+B8rh7HBeokZD=qb}3}&RzPxvX%J|#1A?6#g_PO` zND?4)c~Co3m7VM^<;@K-&KZK}5Uvuj^2D)|DZ|xU&5BjUZwJIZLW79P8d|YTR!Njc z>;x6x9f0i7ASgbNU_`kUuoFMn2FrY62UIquAtSkCju=FM7ZH6eh}U6X;5qvzq1m&M zrtq|pP+*nj^E=VJ56!Mr*Wq6f@!=T!z2Nr~k4FA^1wl*{f0bDoh*KyK1k zQd|>}q)qiqbrBv8M8a#3c9s>XL6iBhJS$H-iun!M0}`=KR1x48fYKpWD}g{s_rh`H zkJ2Eb;=1VC+u(c1nqJxqDu)1}s{v20E*MFWi?SNNybS^D6owdn5P&|>Dhn0_ zL%LkhU3s$r0u}y6yH87X2<(K_Avo;S9Dd)+(D;EG+S`&}=L#dk`dUABH4O13*{aie;q$D6bXEN+Ew80i=H$ zjRqAHNo}l187aVe6oBGwH9)4^hX5G3sQqo3x^&I8#K(#u5P;1GA?``XKwxk?l?g5J zA@)vU1s%h79FUUjHRFJJDtua%?C1V*%=5gXSq&CQp&jW@UU}*XsOQiQ>L^;UAXebW zegaQolrkMPh#D*?L`{C=#{_Z_5E_=WU;&5{ET*0UBf~l|0dCYvNvI%+JnU>L6DC(a zjn;CV)dgc&#V->2ET{OzRD!q)gkp)jL_H@(z+cf^bLtsDhR3MlW(7`xAa@cJK;T&b zDs<6kNQw_9Su1B&efVPnxu!ulcq`)O>6QcDiVid593Z2*s=RW1x(^3}`tYjfAqsOh zbsWx0d8J_sDU?Fw>3PWfh6drG@gQc zQ0p?0B3NC25P>?*bFH=_uFiK*N0K?uy1PQzW+EwCJy_OUK3(#vg z?b`Cq8;JK$(5h%HvIZp%LyX88sM8*G6C=;;r>+5utbsrPuqZCO(k--C?yqu&J+{`4 z%`qi#lK>t$0BUpr0VTGC%VTc?Fl~UQu#VWmsj;Ps>_1S=!nCl00O`wVVddlodn}j0^Qfg=w9znl|`gnDgx&}*fdcVS3CjaBOpo~Qc5N? znnB4usz4Hr(=g1Ek(!BNAE@vUu@F4`B8_3Av_>^O6Xd^(npHXNgBzfH+UEM%$8%AV`b=V1OP0E&enkSiGr z6bYdmY7!<_d;tNk9jjT8pu~C@h@|efuD$?`X5%yfa&ARQIb__lM)BuM0J8q20yt#c zDggO51^B-LU<&}$&!Uz}0r1uGhy(DmH%N1v@hX!XHjbLN$LXL#Va#hlTqbA`Nli!~ zXx^-{$-Mz&rv@R(8MPMB;*ot}ml7zSe1oaBpQuvdt;!CTh82-kzry9dZ$ZU%lDgWw zq==M4Y>G&Wz5^l&2r5zw5^54vNM2&$=`PkHZ+eGiX*bysS1elKkvBhM%E));VCkaY zV_jXRsOxG${G!20zIOx?$@T$b>_Q{;w-y_xj)9GX%s$7V#k>y~q0>~=I30GQT1|vp z`y&W=Ow(BnG=o}=iA2B+)0nz+Jv5`SU_GeW{QU{6b)Bvf*USb1hZ;>ox!z~Ad(KcL zkZv?EE6r#=e8%|u0il_+pc)NG2sDi~Sx_=w zGYm(-sVqPGilsaRfG(dxo=xJ;lyB(YW479iG+T-M$g*jfA>cdMD=2F!jVxPfXE{y* zq!Pdp04V<~oTCb`$kn}(hEM;2_P9B!2w0@hq@CtlHno&dn*Y+FfQQ|FW--&ibQ&AgG zY~O;)0L{P`noJ&Y>%Y}WSm2`wfS3z*$ux}*{R4=c3)NXTHXCG@3?KF80y6#2f0%O1 z+Z+(bb_1Cfwi^_(EGr;w7O9L_se>k=)Un+N&xT=~7i+_)+YJ)RNwJmk`i(%g1EOec zhFUA(w2{0jJH}|aMDyk9Zh|ISk)+7>c8O|ITG=%ccQz*e0WwZr9kxv)@?E7WyB zQPqK9S-Dq7*j&I#sM{|flvn|MRA?aKf=1Gc(>oUsS+i1uAlecLiTSu*p+FY8g2#rd zR0wts4hRRG1eMZAOwv|qIS~qcB%z}lb>y=&WjpN#5(`&rB+%%9h_uKPE)Q@ABzTPm zK~_s3B=zQOw8+y|et}j+>#@TiQIG7xIi)ajCO76WbFJE)WJk(WapH~B20GP29)JX{ z(-a#X03i`Ha3rpz_I`N)xDNnT77Owt6(GtN?lGL4JBTUDz~KyAuP%xOtD-`%D73Vb z;0YSy22E+PC<=h&M-)&tF97!dp!-7XvndbI`Gful-B(EKgpFEvQ6vjNbl%3&eUu52 zL-yOGjxU($LZMw?t;#;DVm=T^*`&%r;E3xW#z{Q6dPH%ZK*n#@AQqbnAva`rh05ss zfLOO^5R|zbR8Zz3yFwEQ!56ovi!Rs{Mrob{?W6m~+XX;m(pGgYB1)CYTtrj>DB!Px z0EpXE079aY(867rm4ckL5Om_sHq@7~FU5Lt^yCfM1hO#;;tDCR(3Euac6HHMawvuB zA;30y#1=?&Qeh0j?obCIsf@w}r=8f?iU4qP2hJ&2L=BuOAgNc@j6+IK*X$92j7!3i zjS8`88%MY^vT-z7ao$&Yr@AaWr>Pe1?I{$3d_dv;PSwt_LK?1 znwqhS4pDXHR4q#MBXT*Q3Qpj)1r{&`s;L|#n0!E8o6J6%=CUtJfxz^GDx;c@&XBU> z5Ti68RsQ`iH{DpST?UO$(Ma6})L1cT76}odZz7d}v4_<0S(ap;L`?XDDzD=PX^r6xT2%XADU5(PpQL~itOa=VA{_N^-*Lz;WUK?m6d zmKk(F6SrNc$vIa9o#3MmjN)JvI`AwsfoMb#4BACCAp-xPB zwxZC2`2d3ukGoOO4cWaChN^d58_Fut4J{zVo8i6)IqzuT4>Iq8QOMwP3`@6%LM`uEX$xt3!4sBs{2S3iNV+^Zv+&Ay4tT)71%tBXi(WI&~$SSWy#QxEFU zs^5ZSaLk59RGc2Jh`^dyQdMpwx2b>~@r!hbvYokGM*&bq2m~D4u+JbT)YO;V0wxc|5Dmu&Hgb1BO^2u}8=0a};UE=) zAl{CHQc=lKS61n+0|TYfn86h{MIERwy9tcKE>B`OWtUuTAyT1^Z0tQvDx^%V41}tP zT5G3{%=5kjf>anHqlF?Q0FX+!;>Z30L>&efPn9V{yQx&D6YKUs;}sb)(H6>y1zJa? zLcLhNhuSz6#8om5Ss;s5QC;fF4g#VG*Fv*(Wh4tMfTm8=ne}+&z`z2up%7SkPqbeAAAvwFG zo-FrM+^nD~g`4M8;o#-v);3fLhXlZP>_xkx{UWvr%8YrKkW$R0j;zZwjad=7FJXj) z3lR%I8KI6W4H!2%j0nA?QL*w zVi(j1p(`{*Qy2CG7{xkRY!@_vuyV1km@M^RGhaHWh%^IJs9@UyM;IaR2m&wFUTGK( z8y96HSQ$=M=t$IuJx|Br#8uGQfRN55q%%LlqLf8+wYa2`mda50Hq z&`GNa66`xB$Q36L=&ZET%Wx6$%vzA_0n&(Zv9z=iE}z!vtJOwh_xDU?cPlIp(o|Yu zd2CP2l3F7SZ~a>MRTBaDrrqQtX<(RnRtRca2^a(w29Z{nzV4p;dV@@5kZX~TNt@u#70)#==rdD0FMt>%w(!+eERk>goF25$N z*}tF_MyJh3Ag97)J`3t$K3l(Fx_Fd6Fx)R4I5-rY+k7R>Y9t}$ZW2l8$Ztb&p!FWj zZg@n9BRC?^a3oGQlo!=U=SAPpS%kVk70^m9sNrH5xy06>0h;T7XDa7XZG-SFw++NG z!xz%@8BMNm1MqBgMi`WCmzIa2aoGkRw)`xrA=JmLjzIIOU!>VelVYVaQdPLj2sx@D<1s7JgjOYI zQ(DQr9Nc+eY~rlfrutYU>PTrDa?{+=5XQPj5cE1HQ)M?!aiK~pb)gOAsK#h*#*kL* z9<({(2p8Tn!eqnf9~e`pJ7-B(4tigRT(npp363|Jz!SL>r%jjak3FKnaf>D(-SQ98 zjO%&Ye0db%=zOzAp?8j~XvQPQ$UHQU%$I>#EYFIO@xY-SJh{w7MsC#P(v9yEWn#?8qr` zmzHQY)Yx+OoP5 z$~f84C|i-xQy03MG;cz)8y-0{AAy#ZOFFheE9Yja>}tiE8VXZZ?F=AyTQuHAqdOis z)WC{^J*o!#+Cm`X+(|P|Z5_RlHy&&SX?JUf0L|wn11r~U>5OsT@jx47dwJWVH6^zx z$PJ}GZAzpJKuPa!57HAn(3jM_G&R8S1>F~P>j1vQJYZVD_F7YILD?+j>xjk&c|aK1 zl%@hWzfkn+0BN1#iB_Xyi;#PC!mxpP(fVJGtzc)gKF*8z{-^2c#&qsvC;Xe zj;*2GD+Uv;nh(vYV^f-O5J0_V;VvNlj5aHtO=%{cjhx>f?E>O*e$#(=wmx0aRI>nd zgE~XiHOX&+;Uavxq3spg;Mg+wEktSJw~mw6c?C_C<@3)G@-#842a65m{;^;=xRA*v zzn;YW;fkAu+9D%{)7^}3cTjj&2$NE3x9Z?pHh7veFDy)&QEApznH=0B=ZsJ;a)%Zn z+#%7?hR4MLngf>XiO!$U>PmJJ+A4FiE!d2mCv8i;L6}pH38}PjE~%{Y&^R=Q`;cbk zYM{~##f2A%kjwUhtiRD_D6VGc92A!>#TC-LvMA}TY}A$BC`;26cX)3QZ|qB&ap_aj zFdh|I>cPtOLGv%tj7N@1;kKkQ_LV*$zP1=?##IPyY;q|EW4Du=7AGyJ7dq&Y!U%C* z72-kHRDv|)=8xuIc+}S5Un1n>c+lO5W;gXtC1n~{1*paR*$XUFmU}LIhe&<^FaYi0oGpe~`Ea z1yUd+u8|op`U^y2B@j7q4+R*yLs1aw&Di?mK_kCSV+3a=n$&otw$zTl5Xd17LW($= zp7QcRGnQ_}1Psz6K%;>urx~0DMI35y5fcF^7ziDj3&E$GlLc{(4)Tovjwk>qdb&B0 zx;8cG<&%KuU73>j!wt1X#~{cZ=pf;ff$$De5H41YOAD@mP;2@|+K;L2ZaB@-jL9OY zXJRX-0MWM!WIJ|3PjPWD#DqicN_^q4jPI39luEPDXlpduknZw zLrX4er;!1wX#*ggNOvscu(qMxY&tBZXmyh$zh1y(gQaLpT5+~W1Ywepr0uP43L${3 zZrE6AgW!_6B8c@fFiMGX_}`*9raW;Q4hTXal~wbZOdbYDBlmDd=niM%;6nhbG;(B{ z#dtVjTi|30bjL#nAEW?C_{b|td|A9Km+5^u`Cudy=mw*342aj8>44F*!A`4fPOkFM zIZUNof~0u>QC{SX(4AdI`>`EPs6@wuXIO+bapH)m25bey31(JF z^*&g5D5OUYQOHiBcT+~pgWHU_)sH#^dF26M9KgUR{N$h-rc!eCAV&1$>E@Y~K*`|< zIUGgty_R~Rs06|VUIJBLN{<}Wt5c<#?c&>YkBg}k(JqF(9F8)==o+RPPP}})hUrdr z8%`rF*zK&ZX)26oC-6sBT&%!8BCV#$&u$^Fx|08Vd-^)lznFO|i}yP-J;QlBZUbg| z2C`Q2ezqQG)%V34PiDNYoe_t=HhlB|kL(!+29Uh}pAl&0P$AYm!~33i&BBNi@fv96 zzBUvOGe1LL8+l9Bfy4M_Gl#D;=r}Z^yh&c$cL4DhykN@V1*1&Q2#&m+o)Krp``egS zrf29YkWU8aadyLuEoL0DWd@?N4KXrvXW+;u5Hb-&5@gdc$XW#4BQ@Y`u zi^#$=WFm;pyg{tM;R6?$aAuTC1%tHk$qC&=2oCQtX6RcDf5&|?@)-g0pQeNu7&6TK z3^*HkfjJ`%#|Q0dn>_6>6IMsUY=w~-#+UFkGYJf3!zBeBSqX(%-7^8lqq;?4Aqy5V zqgtf#ZU&INAf1U%!Gh#B^D}hT2?ITVBcD>p+!ymO_Qgdw2hK;aTtT!NbP)_%<>B>B zdF^_#Xd&+wXBtYhNTN=TEbdn671AuijPy$(O1KN2nI8HI=^`$nNu3VU#amGCEsTc_2R)*o3q+cey3SbOWxOtH7 z0qsh71(3(NkB)0Z2ZLmgAsPmT&KTAh3vZY)M5w3dg}N8{eoba^q51{)38yIPmW#C_ zwbRqE!nGMl2;?kWM;5mq4D@h;%ScZm!p-D95nOEK+bNm(M9eWvQpCxK0cSPpwkYUh z7;6nc*t88|4CUWmu zCeMnvfoO0R0*8XAfrf6zV(D|@I=XL?AUNm}0ENC%J*>JwQULLqO^_Z4yR*6<8d zHartqe63u^p(q)=nIIu8)8i!05Gn-8xZl7$jOr}mz)z(oSFU5q(N(~phQ+j*jfw!6 zL8dmtJ^(=)x7hR?+mJ@eBd8P5HDR}6kRpVwPrzAR1+eHPE1I!4G0+n={c@}xqNwH| z({&ChsKG;uEN4hTMeN)3^Fc%~WQ^F98&Xhch)xfobGS06Q$+IYKL+No=hM#)ds4l= zis-6e7~G0*EVGt-;YuE7i_jB9aoy0Fhs_&sFnYr?2`8-Wnvo!`Z?fRdgy9+eq*W%b zAwsr>p%A|fLs=w)x5hp|o3~r~QX_N3M>v{;C%rd<;v40T^xd$yuo`{n6cM`&^Fg>U z@JW2KGVctU2GJR0EC@z*#zxXOh;eTsiikFP;flO&15GqdM1E!f!lf9Vp@OD=CK>h| zIFB&w+VBjAFowR!%k|z3J1;{vBTACNyNM|G7zkqXZJ3A+XVdzDq4io{$DTv9VXtcd z8upNQv&n4m-IAFjU--(TvyvI#oH0B@&XoC?9Rx)~W{sSad}l2)L3kovXS|V!+t~&j zQgy>Kgg?VG5jlWv&w*Uh5GG;1hCBwb#o!Pm&gc*%4iR5JFbAaeOxtrva76~Li7V28 z>fQvOIn{4+k!D%QckD7tix&*ZhXhs7Gh>%f&Cr{jWHHuJBz#;^?}Lz`8~m&US7pRW z1|J}y&;({Or<;;rW(LE3JR0(MFUrmcuAhQ25s=%0}!+3`%>SV%ZJbF7IbYTV2- zKEpwtqqCCxN!Yv?lvOYk!ccKSnL*#zj*CZzK}3tewk7yh!@#0w*fvQbk`4VJhzfdV zCP_*tCGvNK1#EnbGl6J~1Vuyg0zn(H5tKTO%-HZMVmgC#{qf~Aiy>2xNC_n!NR$FN zf3&TXi19_y3?qOGJi{F$!!wIkn{i~@0OD0B15na?Qs8WQPm01Z z>dyMUc$-J(jew&cq0X>Ic5uiEdN+t?$T;)_ap%D>2+!&Z8~8RVugy+dUpzxe#Xt{U zU6*YGDCu|W91i#Nbu~OgjY>}tt~TQWQ}HA9G%$@Sv8MT2whe-aD0+gpP-z&%YB;;Z zS2nfY}K;FoV&5+;%hk}ZJcEk_rp5esHAQ`+MMI@6c2|$6xaO_WtE(T^; z93~nEF=Qzm{E)T(C;O1c83EqJv~fV7f3kP z&RO)?HoD?91w&^P6b;X8`l=V%80w=Cp5b1CzAui@$QT)u007BPN)Yeph)j5fO`850 zR>?3sY_1K1kn0|XzV!DDv@z)VBfr7(N=ar(|UO*cqOFw_{(*BDVzgjO=!3`qchhErQOdDw)0U{nr`&kWU0 z^u-~Fp>O6io5-J>b{It?;Y()v&c;)H9M4*e%%D1C7#PQ&2JuU_Qu5tw?BFyVkJACe**YB(FjNV$Jy6On&h!qAChZ{GT zI2@Q^J}_}d1Xjzu*rnl9ntGZ`C^1{24W4JHn@^@qkdS~hI%@yM{bCom&3 z_yrw(2@*h?z66O2>xLpSp3&b&(9E9viD%@d8u@FwyMbH`?gpQ{Hf&hX*>K{Ei5Tl* zxZ0+VZ#Zfc3`ZyAMv+cu5P9&q_H+j6`r{$}ag~f*;~DA&=|IwkRcG}HGKy#Ts;&+P zxfn|19PXFs>G5W}aqESBuRi6&m!NR@Pd5mj=@TX3V7hu7Qk@JlrW3)DoFc&tz6wEr@7|?&!@{RVbEY!BtvZBCNvwBTb z=z?pYOk{&iRTpt92=700Rh<8Sh;J+BO10uT)a=r!Lu}uEJ$x%c9l6>z>% delta 121822 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
Np~k^l0b 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 From a725bc80535bb6b1c8844fcad30e7c1b70c66ffe Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Wed, 29 Aug 2012 15:20:06 +0200 Subject: [PATCH 17/55] Fixed issue 1033 --- src/gui/UBTeacherGuideWidget.cpp | 11 +++++++++++ src/gui/UBTeacherGuideWidget.h | 5 +++++ src/gui/UBTeacherGuideWidgetsTools.cpp | 9 +++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/gui/UBTeacherGuideWidget.cpp b/src/gui/UBTeacherGuideWidget.cpp index 7de10dbf..ca73ec76 100644 --- a/src/gui/UBTeacherGuideWidget.cpp +++ b/src/gui/UBTeacherGuideWidget.cpp @@ -685,6 +685,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons mpSessionTitle = new UBTGAdaptableText(0, this, "UBTGSessionTitle"); mpSessionTitle->setPlaceHolderText(tr("Type session title here ...")); mpButtonTitleLayout->addWidget(mpSessionTitle); + connect(this, SIGNAL(resized()), mpSessionTitle, SLOT(onTextChanged())); mpLayout->addLayout(mpButtonTitleLayout); @@ -703,6 +704,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons mpAuthors->setObjectName("UBTGZeroPageInputText"); mpAuthors->setPlaceHolderText(tr("Type authors here ...")); mpLayout->addWidget(mpAuthors); + connect(this, SIGNAL(resized()), mpAuthors, SLOT(onTextChanged())); mpCreationLabel = new QLabel(this); mpCreationLabel->setObjectName("UBTGZeroPageDateLabel"); @@ -727,6 +729,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons mpObjectives->setObjectName("UBTGZeroPageInputText"); mpObjectives->setPlaceHolderText(tr("Type objectives here...")); mpLayout->addWidget(mpObjectives); + connect(this, SIGNAL(resized()), mpObjectives, SLOT(onTextChanged())); mpSeparatorObjectives = new QFrame(this); mpSeparatorObjectives->setFixedHeight(UBTG_SEPARATOR_FIXED_HEIGHT); @@ -747,6 +750,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons mpKeywords = new UBTGAdaptableText(0, this); mpKeywords->setPlaceHolderText(tr("Type keywords here ...")); mpLayout->addWidget(mpKeywords); + connect(this, SIGNAL(resized()), mpKeywords, SLOT(onTextChanged())); mpSchoolLevelItemLabel = new QLabel(this); mpSchoolLevelItemLabel->setObjectName("UBTGZeroPageItemLabel"); @@ -1122,6 +1126,12 @@ bool UBTeacherGuidePageZeroWidget::isModified() return result; } +void UBTeacherGuidePageZeroWidget::resizeEvent(QResizeEvent* ev){ + emit resized(); + + QWidget::resizeEvent(ev); +} + /*************************************************************************** * class UBTeacherGuideWidget * ***************************************************************************/ @@ -1238,3 +1248,4 @@ bool UBTeacherGuideWidget::isModified() else return mpEditionWidget->isModified(); } + diff --git a/src/gui/UBTeacherGuideWidget.h b/src/gui/UBTeacherGuideWidget.h index 1d165f13..a970807e 100644 --- a/src/gui/UBTeacherGuideWidget.h +++ b/src/gui/UBTeacherGuideWidget.h @@ -136,11 +136,16 @@ public: QVector getData(); bool isModified(); +signals: + void resized(); public slots: void onActiveSceneChanged(); void switchToMode(tUBTGZeroPageMode mode = tUBTGZeroPageMode_EDITION); +protected: + void resizeEvent(QResizeEvent* ev); + private: void fillComboBoxes(); void loadData(); diff --git a/src/gui/UBTeacherGuideWidgetsTools.cpp b/src/gui/UBTeacherGuideWidgetsTools.cpp index d9c88efd..55246e99 100644 --- a/src/gui/UBTeacherGuideWidgetsTools.cpp +++ b/src/gui/UBTeacherGuideWidgetsTools.cpp @@ -174,6 +174,7 @@ void UBTGAdaptableText::showEvent(QShowEvent* e) if(!mIsUpdatingSize && mHasPlaceHolder && toPlainText().isEmpty()) setPlainText(mPlaceHolderText); else + // If the teacherguide is collapsed, don't updated the size. Or set the size as the expanded size onTextChanged(); } @@ -188,9 +189,12 @@ QString UBTGAdaptableText::text() void UBTGAdaptableText::onTextChanged() { + qDebug() << ">> onTextChanged CALLED!"; qreal documentSize = document()->size().height(); - if(height() == documentSize + mBottomMargin) - return; + qDebug() << ">> documentSize: " << documentSize << ", height: " << height(); + if(height() == documentSize + mBottomMargin){ + return; + } mIsUpdatingSize = true; @@ -208,6 +212,7 @@ void UBTGAdaptableText::onTextChanged() setFocus(); } mIsUpdatingSize = false; + } void UBTGAdaptableText::setInitialText(const QString& text) { From 15080783f7f4a8df767723293269f3a733241c8d Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Wed, 29 Aug 2012 17:28:16 +0300 Subject: [PATCH 18/55] Progressbar translations. Checked on Linux --- src/board/UBFeaturesController.cpp | 47 +++++++++++++++--------------- src/board/UBFeaturesController.h | 8 ++--- src/gui/UBFeaturesWidget.cpp | 2 +- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 57019aac..6c777e73 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -36,7 +36,6 @@ const QString UBFeaturesController::webSearchPath = rootPath + "/Web search"; void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & currVirtualPath, const QSet &pFavoriteSet) { - Q_ASSERT(QFileInfo(currentPath.toLocalFile()).exists()); QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(currentPath.toLocalFile()); @@ -73,16 +72,16 @@ void UBFeaturesComputingThread::scanFS(const QUrl & currentPath, const QString & } } -void UBFeaturesComputingThread::scanAll(QList > pScanningData, const QSet &pFavoriteSet) +void UBFeaturesComputingThread::scanAll(QList > pScanningData, const QSet &pFavoriteSet) { for (int i = 0; i < pScanningData.count(); i++) { if (abort) { return; } - QPair curPair = pScanningData.at(i); + QPair curPair = pScanningData.at(i); - emit scanCategory(UBFeaturesController::categoryNameForVirtualPath(curPair.second)); - scanFS(curPair.first, curPair.second, pFavoriteSet); + emit scanCategory(curPair.second.getDisplayName()); + scanFS(curPair.first, curPair.second.getFullVirtualPath(), pFavoriteSet); } } @@ -109,11 +108,11 @@ int UBFeaturesComputingThread::featuresCount(const QUrl &pPath) return noItems; } -int UBFeaturesComputingThread::featuresCountAll(QList > pScanningData) +int UBFeaturesComputingThread::featuresCountAll(QList > pScanningData) { int noItems = 0; for (int i = 0; i < pScanningData.count(); i++) { - QPair curPair = pScanningData.at(i); + QPair curPair = pScanningData.at(i); noItems += featuresCount(curPair.first); } @@ -127,7 +126,7 @@ QThread(parent) abort = false; } -void UBFeaturesComputingThread::compute(const QList > &pScanningData, QSet *pFavoritesSet) +void UBFeaturesComputingThread::compute(const QList > &pScanningData, QSet *pFavoritesSet) { QMutexLocker curLocker(&mMutex); @@ -148,7 +147,7 @@ void UBFeaturesComputingThread::run() qDebug() << "Custom thread started execution"; mMutex.lock(); - QList > searchData = mScanningData; + QList > searchData = mScanningData; QSet favoriteSet = mFavoriteSet; mMutex.unlock(); @@ -339,24 +338,24 @@ UBFeaturesController::UBFeaturesController(QWidget *pParentWidget) : void UBFeaturesController::startThread() { - QList > computingData; + QList > computingData; - computingData << QPair(mLibAudiosDirectoryPath, audiosPath) - << QPair(mLibVideosDirectoryPath, moviesPath) - << QPair(mLibAnimationsDirectoryPath, flashPath) - << QPair(mLibPicturesDirectoryPath, picturesPath) + computingData << QPair(mLibAudiosDirectoryPath, audiosElement) + << QPair(mLibVideosDirectoryPath, moviesElement) + << QPair(mLibAnimationsDirectoryPath, flashElement) + << QPair(mLibPicturesDirectoryPath, picturesElement) - << QPair(mUserInteractiveDirectoryPath, appPath) - << QPair(mUserAudioDirectoryPath, audiosPath) - << QPair(mUserPicturesDirectoryPath, picturesPath) - << QPair(mUserVideoDirectoryPath, moviesPath) - << QPair(mUserAnimationDirectoryPath, flashPath) + << QPair(mUserInteractiveDirectoryPath, applicationsElement) + << QPair(mUserAudioDirectoryPath, audiosElement) + << QPair(mUserPicturesDirectoryPath, picturesElement) + << QPair(mUserVideoDirectoryPath, moviesElement) + << QPair(mUserAnimationDirectoryPath, flashElement) - << QPair(mLibApplicationsDirectoryPath, appPath) - << QPair(mLibShapesDirectoryPath, shapesPath) - << QPair(mLibInteractiveDirectoryPath, interactPath) - << QPair(trashDirectoryPath, trashPath) - << QPair(mLibSearchDirectoryPath, rootPath + "/" + "Web search"); + << QPair(mLibApplicationsDirectoryPath, applicationsElement) + << QPair(mLibShapesDirectoryPath, shapesElement) + << QPair(mLibInteractiveDirectoryPath, interactElement) + << QPair(trashDirectoryPath, trashElement) + << QPair(mLibSearchDirectoryPath, webSearchElement); mCThread.compute(computingData, favoriteSet); } diff --git a/src/board/UBFeaturesController.h b/src/board/UBFeaturesController.h index 92c31224..b48f3d62 100644 --- a/src/board/UBFeaturesController.h +++ b/src/board/UBFeaturesController.h @@ -33,7 +33,7 @@ class UBFeaturesComputingThread : public QThread public: explicit UBFeaturesComputingThread(QObject *parent = 0); virtual ~UBFeaturesComputingThread(); - void compute(const QList > &pScanningData, QSet *pFavoritesSet); + void compute(const QList > &pScanningData, QSet *pFavoritesSet); protected: void run(); @@ -51,16 +51,16 @@ public slots: private: void scanFS(const QUrl & currentPath, const QString & currVirtualPath, const QSet &pFavoriteSet); - void scanAll(QList > pScanningData, const QSet &pFavoriteSet); + void scanAll(QList > pScanningData, const QSet &pFavoriteSet); int featuresCount(const QUrl &pPath); - int featuresCountAll(QList > pScanningData); + int featuresCountAll(QList > pScanningData); private: QMutex mMutex; QWaitCondition mWaitCondition; QUrl mScanningPath; QString mScanningVirtualPath; - QList > mScanningData; + QList > mScanningData; QSet mFavoriteSet; bool restart; bool abort; diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index 78823404..ee052027 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -676,7 +676,7 @@ UBFeaturesProgressInfo::UBFeaturesProgressInfo(QWidget *parent) : void UBFeaturesProgressInfo::setCommmonInfoText(const QString &str) { - mProgressBar->setFormat(str + tr(" load") + "(%p%)"); + mProgressBar->setFormat(tr("Loading ") + str + " (%p%)"); } void UBFeaturesProgressInfo::setDetailedInfoText(const QString &str) From 59abea3576b70e80e0c52cb8df4d43c7d4105efb Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Thu, 30 Aug 2012 08:54:36 +0200 Subject: [PATCH 19/55] removed logs --- src/gui/UBTeacherGuideWidgetsTools.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/UBTeacherGuideWidgetsTools.cpp b/src/gui/UBTeacherGuideWidgetsTools.cpp index 55246e99..6300c65b 100644 --- a/src/gui/UBTeacherGuideWidgetsTools.cpp +++ b/src/gui/UBTeacherGuideWidgetsTools.cpp @@ -189,9 +189,9 @@ QString UBTGAdaptableText::text() void UBTGAdaptableText::onTextChanged() { - qDebug() << ">> onTextChanged CALLED!"; + //qDebug() << ">> onTextChanged CALLED!"; qreal documentSize = document()->size().height(); - qDebug() << ">> documentSize: " << documentSize << ", height: " << height(); + //qDebug() << ">> documentSize: " << documentSize << ", height: " << height(); if(height() == documentSize + mBottomMargin){ return; } From 19d31ccc55595daffecf1f8749e785fae1ccfeb7 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Thu, 30 Aug 2012 12:35:22 +0300 Subject: [PATCH 20/55] Rubber band in play mode disabled --- src/board/UBBoardView.cpp | 54 +++++++++++++++++++++------------------ src/board/UBBoardView.h | 1 + 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 9dab0121..ed75f550 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -75,6 +75,7 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool , mIsDragInProgress(false) , mMultipleSelectionIsEnabled(false) , isControl(pIsControl) +, mRubberBandInPlayMode(false) //enables rubberband with play tool { init (); @@ -1020,38 +1021,41 @@ UBBoardView::mouseMoveEvent (QMouseEvent *event) return; } - if (!movingItem && (mMouseButtonIsPressed || mTabletStylusIsPressed) && mUBRubberBand && mUBRubberBand->isVisible()) { + if (currentTool != UBStylusTool::Play || mRubberBandInPlayMode) { - QRect bandRect(mMouseDownPos, event->pos()); + if (!movingItem && (mMouseButtonIsPressed || mTabletStylusIsPressed) && mUBRubberBand && mUBRubberBand->isVisible()) { - bandRect = bandRect.normalized(); + QRect bandRect(mMouseDownPos, event->pos()); - mUBRubberBand->setGeometry(bandRect); + bandRect = bandRect.normalized(); - QList rubberItems = items(bandRect); - foreach (QGraphicsItem *item, mJustSelectedItems) { - if (!rubberItems.contains(item)) { - item->setSelected(false); - mJustSelectedItems.remove(item); - } - } - - if (currentTool == UBStylusTool::Selector) - foreach (QGraphicsItem *item, items(bandRect)) { + mUBRubberBand->setGeometry(bandRect); - if (item->type() == UBGraphicsW3CWidgetItem::Type - || item->type() == UBGraphicsPixmapItem::Type - || item->type() == UBGraphicsMediaItem::Type - || item->type() == UBGraphicsSvgItem::Type - || item->type() == UBGraphicsTextItem::Type - || item->type() == UBGraphicsStrokesGroup::Type - || item->type() == UBGraphicsGroupContainerItem::Type) { - - if (!mJustSelectedItems.contains(item)) { - item->setSelected(true); - mJustSelectedItems.insert(item); + QList rubberItems = items(bandRect); + foreach (QGraphicsItem *item, mJustSelectedItems) { + if (!rubberItems.contains(item)) { + item->setSelected(false); + mJustSelectedItems.remove(item); } } + + if (currentTool == UBStylusTool::Selector) + foreach (QGraphicsItem *item, items(bandRect)) { + + if (item->type() == UBGraphicsW3CWidgetItem::Type + || item->type() == UBGraphicsPixmapItem::Type + || item->type() == UBGraphicsMediaItem::Type + || item->type() == UBGraphicsSvgItem::Type + || item->type() == UBGraphicsTextItem::Type + || item->type() == UBGraphicsStrokesGroup::Type + || item->type() == UBGraphicsGroupContainerItem::Type) { + + if (!mJustSelectedItems.contains(item)) { + item->setSelected(true); + mJustSelectedItems.insert(item); + } + } + } } } diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h index 0794d76c..5c486a30 100644 --- a/src/board/UBBoardView.h +++ b/src/board/UBBoardView.h @@ -154,6 +154,7 @@ class UBBoardView : public QGraphicsView bool mIsDragInProgress; bool mMultipleSelectionIsEnabled; bool isControl; + bool mRubberBandInPlayMode; static bool hasSelectedParents(QGraphicsItem * item); From d12a2a80e1241fe7fa10622a7f3513c77346c6c4 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Thu, 30 Aug 2012 13:59:20 +0200 Subject: [PATCH 21/55] Fixed issue 633 again --- src/board/UBBoardPaletteManager.cpp | 4 +--- src/desktop/UBDesktopAnnotationController.cpp | 20 ++++++++++--------- src/gui/UBPropertyPalette.cpp | 2 ++ src/gui/UBPropertyPalette.h | 2 ++ 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 5c55521c..2652bb15 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -710,9 +710,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is mLeftPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); mRightPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); mStylusPalette->raise(); - // Maybe threre is a reason to keep that functions but with them right palette in desktop mode is not interactable - // mRightPalette->lower(); - // mLeftPalette->lower(); + if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) { diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 6ca9ba87..e86dca46 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -86,7 +86,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) mTransparentDrawingView->setScene(mTransparentDrawingScene); mTransparentDrawingScene->setDrawingMode(true); - mDesktopPalette = new UBDesktopPalette(mTransparentDrawingView); + mDesktopPalette = new UBDesktopPalette(NULL); // FIX #633: The palette must be 'floating' in order to stay on top of the library palette if (UBPlatformUtils::hasVirtualKeyboard()) { @@ -119,13 +119,13 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) connect(UBDrawingController::drawingController(), SIGNAL(stylusToolChanged(int)), this, SLOT(stylusToolChanged(int))); // Add the desktop associated palettes - mDesktopPenPalette = new UBDesktopPenPalette(mTransparentDrawingView); + mDesktopPenPalette = new UBDesktopPenPalette(NULL); // FIX #633: The palette must be 'floating' in order to stay on top of the library palette connect(mDesktopPalette, SIGNAL(maximized()), mDesktopPenPalette, SLOT(onParentMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), mDesktopPenPalette, SLOT(onParentMinimized())); - mDesktopMarkerPalette = new UBDesktopMarkerPalette(mTransparentDrawingView); - mDesktopEraserPalette = new UBDesktopEraserPalette(mTransparentDrawingView); + mDesktopMarkerPalette = new UBDesktopMarkerPalette(NULL); // FIX #633: The palette must be 'floating' in order to stay on top of the library palette + mDesktopEraserPalette = new UBDesktopEraserPalette(NULL); // FIX #633: The palette must be 'floating' in order to stay on top of the library palette mDesktopPalette->setBackgroundBrush(UBSettings::settings()->opaquePaletteColor); mDesktopPenPalette->setBackgroundBrush(UBSettings::settings()->opaquePaletteColor); @@ -154,6 +154,12 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) connect(UBApplication::boardController->paletteManager()->rightPalette(), SIGNAL(resized()), this, SLOT(refreshMask())); #endif onDesktopPaletteMaximized(); + + // FIX #633: Ensure that these palettes stay on top of the other elements + mDesktopEraserPalette->raise(); + mDesktopMarkerPalette->raise(); + mDesktopPenPalette->raise(); + mDesktopPalette->raise(); } UBDesktopAnnotationController::~UBDesktopAnnotationController() @@ -243,11 +249,7 @@ void UBDesktopAnnotationController::setAssociatedPalettePosition(UBActionPalette if(act->objectName() == actionName) { int iAction = actions.indexOf(act); - yPen = iAction * mDesktopPalette->buttonSize().height(); - - // Add the borders - yPen += (iAction) * (mDesktopPalette->border() + 4); // 4 has been set after some experiment. We must determine why this value is good - + yPen = iAction * (mDesktopPalette->buttonSize().height() + 2 * mDesktopPalette->border() +6); // This is the mysterious value (6) break; } } diff --git a/src/gui/UBPropertyPalette.cpp b/src/gui/UBPropertyPalette.cpp index 8d587c99..643f87a7 100644 --- a/src/gui/UBPropertyPalette.cpp +++ b/src/gui/UBPropertyPalette.cpp @@ -25,6 +25,7 @@ UBPropertyPalette::UBPropertyPalette(QWidget *parent, const char *name):UBAction { setObjectName(name); mbGrip = false; + setMaximumHeight(MAX_HEIGHT); } /** @@ -35,6 +36,7 @@ UBPropertyPalette::UBPropertyPalette(QWidget *parent, const char *name):UBAction UBPropertyPalette::UBPropertyPalette(Qt::Orientation orientation, QWidget *parent):UBActionPalette(orientation, parent) { mbGrip = false; + setMaximumHeight(MAX_HEIGHT); } /** diff --git a/src/gui/UBPropertyPalette.h b/src/gui/UBPropertyPalette.h index 777e976e..47bacf13 100644 --- a/src/gui/UBPropertyPalette.h +++ b/src/gui/UBPropertyPalette.h @@ -20,6 +20,8 @@ #include "UBActionPalette.h" +#define MAX_HEIGHT 20 + class UBPropertyPalette : public UBActionPalette { Q_OBJECT From 4a7cd59250d57f214b34a5b4518c5ce99bb988b6 Mon Sep 17 00:00:00 2001 From: maximXbs Date: Thu, 30 Aug 2012 16:40:19 +0200 Subject: [PATCH 22/55] fixed Sankore-704 bug --- .../locales/fr/scripts/blackYellow.js | 31 ++++++++++++++++--- .../locales/ru/scripts/blackYellow.js | 31 ++++++++++++++++--- .../Contraste.wgt/scripts/blackYellow.js | 29 ++++++++++++++--- 3 files changed, 77 insertions(+), 14 deletions(-) diff --git a/resources/library/interactivities/Contraste.wgt/locales/fr/scripts/blackYellow.js b/resources/library/interactivities/Contraste.wgt/locales/fr/scripts/blackYellow.js index 34de0859..3fbfd9aa 100644 --- a/resources/library/interactivities/Contraste.wgt/locales/fr/scripts/blackYellow.js +++ b/resources/library/interactivities/Contraste.wgt/locales/fr/scripts/blackYellow.js @@ -326,6 +326,15 @@ function init(){ $(".closeItem").live("click", function(){ if(!shadowOver){ $(this).parent().remove(); + if($(".editContainer").size() > 0){ + var prev = $(".editContainer:first"); + if((prev.position().left == 54) && (prev.position().top != 60)) + prev.css("top", "60px"); + var prevBottom = prev.position().top + prev.height(), + prevLeft = prev.position().left; + if(prev.next().length) + recursionCall(prevBottom, prevLeft, prev.next()); + } } }); @@ -339,8 +348,7 @@ function init(){ }) function recursionCall(prevBottom, prevLeft, curr){ - var curTop = curr.position().top, - curHeight = curr.height(), + var curHeight = curr.height(), curLeft = curr.position().left; if(prevLeft == curLeft){ if((prevBottom + 15 + curHeight) < ($(window).height() - 54)) @@ -351,7 +359,7 @@ function init(){ if((prevBottom + 15 + curHeight) < ($(window).height() - 54)) curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px"); else - curr.css("top", "60px"); + curr.css("top", "60px").css("left", prevLeft + 255 + "px"); } prevBottom = curr.position().top + curr.height(), prevLeft = curr.position().left; @@ -364,7 +372,20 @@ function init(){ popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); $(window).resize(function(){ - //$("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); + if($("#wgt_edit").hasClass("selected")){ + if($(".editContainer").size() > 1){ + var prev = $(".editContainer:first"), + prevBottom = prev.position().top + prev.height(), + prevLeft = prev.position().left; + recursionCall(prevBottom, prevLeft, prev.next()); + } + } else { + var tmp_array = []; + $(".readyTask").each(function(){ + tmp_array.push($(this)); + }); + orderItems(tmp_array); + } popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); }); @@ -564,4 +585,4 @@ function changeStyle(val){ } if($("#wgt_edit").hasClass("selected")) $(document).enableTextSelect(); -} \ No newline at end of file +} diff --git a/resources/library/interactivities/Contraste.wgt/locales/ru/scripts/blackYellow.js b/resources/library/interactivities/Contraste.wgt/locales/ru/scripts/blackYellow.js index fce0a9af..fc0eb152 100644 --- a/resources/library/interactivities/Contraste.wgt/locales/ru/scripts/blackYellow.js +++ b/resources/library/interactivities/Contraste.wgt/locales/ru/scripts/blackYellow.js @@ -326,6 +326,15 @@ function init(){ $(".closeItem").live("click", function(){ if(!shadowOver){ $(this).parent().remove(); + if($(".editContainer").size() > 0){ + var prev = $(".editContainer:first"); + if((prev.position().left == 54) && (prev.position().top != 60)) + prev.css("top", "60px"); + var prevBottom = prev.position().top + prev.height(), + prevLeft = prev.position().left; + if(prev.next().length) + recursionCall(prevBottom, prevLeft, prev.next()); + } } }); @@ -339,8 +348,7 @@ function init(){ }) function recursionCall(prevBottom, prevLeft, curr){ - var curTop = curr.position().top, - curHeight = curr.height(), + var curHeight = curr.height(), curLeft = curr.position().left; if(prevLeft == curLeft){ if((prevBottom + 15 + curHeight) < ($(window).height() - 54)) @@ -351,7 +359,7 @@ function init(){ if((prevBottom + 15 + curHeight) < ($(window).height() - 54)) curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px"); else - curr.css("top", "60px"); + curr.css("top", "60px").css("left", prevLeft + 255 + "px"); } prevBottom = curr.position().top + curr.height(), prevLeft = curr.position().left; @@ -364,7 +372,20 @@ function init(){ popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); $(window).resize(function(){ - //$("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); + if($("#wgt_edit").hasClass("selected")){ + if($(".editContainer").size() > 1){ + var prev = $(".editContainer:first"), + prevBottom = prev.position().top + prev.height(), + prevLeft = prev.position().left; + recursionCall(prevBottom, prevLeft, prev.next()); + } + } else { + var tmp_array = []; + $(".readyTask").each(function(){ + tmp_array.push($(this)); + }); + orderItems(tmp_array); + } popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); }); @@ -564,4 +585,4 @@ function changeStyle(val){ } if($("#wgt_edit").hasClass("selected")) $(document).enableTextSelect(); -} \ No newline at end of file +} diff --git a/resources/library/interactivities/Contraste.wgt/scripts/blackYellow.js b/resources/library/interactivities/Contraste.wgt/scripts/blackYellow.js index 27035aaf..89e6df3f 100644 --- a/resources/library/interactivities/Contraste.wgt/scripts/blackYellow.js +++ b/resources/library/interactivities/Contraste.wgt/scripts/blackYellow.js @@ -326,6 +326,15 @@ function init(){ $(".closeItem").live("click", function(){ if(!shadowOver){ $(this).parent().remove(); + if($(".editContainer").size() > 0){ + var prev = $(".editContainer:first"); + if((prev.position().left == 54) && (prev.position().top != 60)) + prev.css("top", "60px"); + var prevBottom = prev.position().top + prev.height(), + prevLeft = prev.position().left; + if(prev.next().length) + recursionCall(prevBottom, prevLeft, prev.next()); + } } }); @@ -339,8 +348,7 @@ function init(){ }) function recursionCall(prevBottom, prevLeft, curr){ - var curTop = curr.position().top, - curHeight = curr.height(), + var curHeight = curr.height(), curLeft = curr.position().left; if(prevLeft == curLeft){ if((prevBottom + 15 + curHeight) < ($(window).height() - 54)) @@ -351,7 +359,7 @@ function init(){ if((prevBottom + 15 + curHeight) < ($(window).height() - 54)) curr.css("top", prevBottom + 15 + "px").css("left", prevLeft + "px"); else - curr.css("top", "60px"); + curr.css("top", "60px").css("left", prevLeft + 255 + "px"); } prevBottom = curr.position().top + curr.height(), prevLeft = curr.position().left; @@ -364,7 +372,20 @@ function init(){ popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); $(window).resize(function(){ - //$("#leftDiv,#rightDiv,#shadowDiv").css("height", $(window).height()); + if($("#wgt_edit").hasClass("selected")){ + if($(".editContainer").size() > 1){ + var prev = $(".editContainer:first"), + prevBottom = prev.position().top + prev.height(), + prevLeft = prev.position().left; + recursionCall(prevBottom, prevLeft, prev.next()); + } + } else { + var tmp_array = []; + $(".readyTask").each(function(){ + tmp_array.push($(this)); + }); + orderItems(tmp_array); + } popupBack.css("top", ($(window).height() - 138)*50/$(window).height() + "%"); popupBack.css("left", ($(window).width() - 360)*50/$(window).width() + "%"); }); From 990458d187c109aca0fc2359484b16f040329c17 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Thu, 30 Aug 2012 18:30:49 +0300 Subject: [PATCH 23/55] Removed memory leaks at deletion of UBGraphicsGroupContainerItem. Corrected adding items to group. Corrected group creation. Corrected adding items to scene - items shouldn't be added to itemsToRemove list because that list needs for cleaning undo stack. Improved mechanism of removing "itemsToRemove". Removed wrong deletion of mButtons list from UBGraphicsItemDelegate destructor because that buttons has Frame as parent. Removed possible memory leak in UBBoardController::clearUndoStack. Some items was able not deleted. tmpScene in cffReader not deletes now because ithas a proxy as parent. --- src/adaptors/UBCFFSubsetAdaptor.cpp | 2 -- src/board/UBBoardController.cpp | 3 +- src/domain/UBGraphicsGroupContainerItem.cpp | 33 ++++++++++----------- src/domain/UBGraphicsGroupContainerItem.h | 3 +- src/domain/UBGraphicsItemDelegate.cpp | 3 +- src/domain/UBGraphicsScene.cpp | 2 +- src/frameworks/UBCoreGraphicsScene.cpp | 27 ++++++++++------- 7 files changed, 38 insertions(+), 35 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 7eb667b5..097540a7 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -1189,8 +1189,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::persistScenes() UBGraphicsScene *tmpScene = UBSvgSubsetAdaptor::loadScene(mProxy, i); tmpScene->setModified(true); UBThumbnailAdaptor::persistScene(mProxy, tmpScene, i); - delete tmpScene; - mCurrentScene->setModified(false); } diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index bcfc1ddd..d2397285 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1515,7 +1515,8 @@ void UBBoardController::ClearUndoStack() } if(!scene) { - mActiveScene->deleteItem(item); + if (!mActiveScene->deleteItem(item)) + delete item; } } diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index bed3b219..ff4a8bc4 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -28,18 +28,12 @@ UBGraphicsGroupContainerItem::UBGraphicsGroupContainerItem(QGraphicsItem *parent setUuid(QUuid::createUuid()); setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::ObjectItem)); //Necessary to set if we want z value to be assigned correctly - - } UBGraphicsGroupContainerItem::~UBGraphicsGroupContainerItem() { - foreach (QGraphicsItem *item, childItems()) - { - removeFromGroup(item); - if (item && item->scene()) - item->scene()->removeItem(item); - } + if (mDelegate) + delete mDelegate; } void UBGraphicsGroupContainerItem::addToGroup(QGraphicsItem *item) @@ -83,6 +77,8 @@ void UBGraphicsGroupContainerItem::addToGroup(QGraphicsItem *item) QTransform newItemTransform(itemTransform); item->setPos(mapFromItem(item, 0, 0)); + + item->scene()->removeItem(item); item->setParentItem(this); // removing position from translation component of the new transform @@ -113,10 +109,12 @@ void UBGraphicsGroupContainerItem::removeFromGroup(QGraphicsItem *item) { if (!item) { qDebug() << "can't specify the item because of the null pointer"; + return; } - UBGraphicsScene *groupScene = scene(); - if (groupScene) { + UBCoreGraphicsScene *groupScene = corescene(); + if (groupScene) + { groupScene->addItemToDeletion(item); } @@ -170,9 +168,9 @@ void UBGraphicsGroupContainerItem::paint(QPainter *painter, const QStyleOptionGr // } } -UBGraphicsScene *UBGraphicsGroupContainerItem::scene() +UBCoreGraphicsScene *UBGraphicsGroupContainerItem::corescene() { - UBGraphicsScene *castScene = dynamic_cast(QGraphicsItem::scene()); + UBCoreGraphicsScene *castScene = dynamic_cast(QGraphicsItem::scene()); return castScene; } @@ -218,15 +216,14 @@ void UBGraphicsGroupContainerItem::setUuid(const QUuid &pUuid) void UBGraphicsGroupContainerItem::destroy() { - UBGraphicsScene *groupScene = scene(); + UBCoreGraphicsScene *groupScene = corescene(); - foreach (QGraphicsItem *item, childItems()) { - - if (groupScene) { - groupScene->addItemToDeletion(item); - } + if (groupScene) { + // groupScene->addItemToDeletion(this); + } + foreach (QGraphicsItem *item, childItems()) { pRemoveFromGroup(item); item->setFlag(QGraphicsItem::ItemIsSelectable, true); item->setFlag(QGraphicsItem::ItemIsFocusable, true); diff --git a/src/domain/UBGraphicsGroupContainerItem.h b/src/domain/UBGraphicsGroupContainerItem.h index 535627eb..00f643d3 100644 --- a/src/domain/UBGraphicsGroupContainerItem.h +++ b/src/domain/UBGraphicsGroupContainerItem.h @@ -4,6 +4,7 @@ #include #include "domain/UBItem.h" +#include "frameworks/UBCoreGraphicsScene.h" class UBGraphicsGroupContainerItem : public QGraphicsItem, public UBItem, public UBGraphicsItem { @@ -23,7 +24,7 @@ public: virtual UBGraphicsItemDelegate* Delegate() const { return mDelegate;} - virtual UBGraphicsScene* scene(); + virtual UBCoreGraphicsScene *corescene(); virtual UBGraphicsGroupContainerItem *deepCopy() const; virtual void copyItemParameters(UBItem *copy) const; diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 4abeb1a2..6c0349e4 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -113,7 +113,6 @@ UBGraphicsItemDelegate::UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObjec , mFlippable(false) , mToolBarUsed(useToolBar) { - // NOOP connect(UBApplication::boardController, SIGNAL(zoomChanged(qreal)), this, SLOT(onZoomChanged())); } @@ -167,7 +166,7 @@ void UBGraphicsItemDelegate::init() UBGraphicsItemDelegate::~UBGraphicsItemDelegate() { - qDeleteAll(mButtons); + disconnect(UBApplication::boardController, SIGNAL(zoomChanged(qreal)), this, SLOT(onZoomChanged())); // do not release mMimeData. // the mMimeData is owned by QDrag since the setMimeData call as specified in the documentation } diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index b4cbfc4e..f6a12f95 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1363,6 +1363,7 @@ UBGraphicsW3CWidgetItem* UBGraphicsScene::addOEmbed(const QUrl& pContentUrl, con UBGraphicsGroupContainerItem *UBGraphicsScene::createGroup(QList items) { UBGraphicsGroupContainerItem *groupItem = new UBGraphicsGroupContainerItem(); + addItem(groupItem); foreach (QGraphicsItem *item, items) { if (item->type() == UBGraphicsGroupContainerItem::Type) { @@ -1379,7 +1380,6 @@ UBGraphicsGroupContainerItem *UBGraphicsScene::createGroup(QListsetVisible(true); groupItem->setFocus(); diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index fd4948ec..1f306425 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -30,12 +30,23 @@ UBCoreGraphicsScene::UBCoreGraphicsScene(QObject * parent) UBCoreGraphicsScene::~UBCoreGraphicsScene() { //we must delete removed items that are no more in any scene - foreach (const QGraphicsItem* item, mItemsToDelete) + //at groups deleting some items can be added to mItemsToDelete, so we need to use iterators. + if (mItemsToDelete.count()) { - if (item->scene() == NULL || item->scene() == this) + QSet::iterator it = mItemsToDelete.begin(); + QGraphicsItem* item = *it; + do { - delete item; - } + item = *it; + if (item && (item->scene() == NULL || item->scene() == this)) + { + mItemsToDelete.remove(*it); + delete item; + } + + it = mItemsToDelete.begin(); + + }while(mItemsToDelete.count()); } } @@ -46,9 +57,7 @@ void UBCoreGraphicsScene::addItem(QGraphicsItem* item) removeItemFromDeletion(curItem); } } - - mItemsToDelete << item; - + if (item->scene() != this) QGraphicsScene::addItem(item); } @@ -59,9 +68,7 @@ void UBCoreGraphicsScene::removeItem(QGraphicsItem* item, bool forceDelete) QGraphicsScene::removeItem(item); if (forceDelete) { - mItemsToDelete.remove(item); - delete item; - item = 0; + deleteItem(item); } } From 0b108d466a0f32c242166fed4d2d9cfbda3087b8 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 31 Aug 2012 10:11:43 +0300 Subject: [PATCH 24/55] Fixed adding items from section to group. --- src/adaptors/UBCFFSubsetAdaptor.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 097540a7..87c83cc4 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -174,9 +174,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseGSection(const QDomElement &ele QDomElement currentSvgElement = element.firstChildElement(); while (!currentSvgElement.isNull()) { - if (!parseSvgElement(currentSvgElement)) - return false; - + parseSvgElement(currentSvgElement); currentSvgElement = currentSvgElement.nextSiblingElement(); } @@ -187,8 +185,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseGSection(const QDomElement &ele else { delete mGSectionContainer; - mGSectionContainer = NULL; } + mGSectionContainer = NULL; return true; } From 3d3dee28d287e6f8472e6a8c2f1733fdd6150cd7 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Fri, 31 Aug 2012 10:15:34 +0200 Subject: [PATCH 25/55] Fixed issue 984 --- src/gui/UBThumbnailWidget.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/UBThumbnailWidget.cpp b/src/gui/UBThumbnailWidget.cpp index 24f7442f..3057761b 100644 --- a/src/gui/UBThumbnailWidget.cpp +++ b/src/gui/UBThumbnailWidget.cpp @@ -12,11 +12,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#include #include #include #include "UBThumbnailWidget.h" #include "UBRubberBand.h" +#include "UBMainWindow.h" #include "board/UBBoardController.h" @@ -858,7 +860,9 @@ void UBSceneThumbnailNavigPixmap::updateButtonsState() void UBSceneThumbnailNavigPixmap::deletePage() { - UBApplication::boardController->deleteScene(sceneIndex()); + if(UBApplication::mainWindow->yesNoQuestion(QObject::tr("Remove Page"), QObject::tr("Are you sure you want to remove 1 page from the selected document '%0'?").arg(UBApplication::documentController->selectedDocument()->metaData(UBSettings::documentName).toString()))){ + UBApplication::boardController->deleteScene(sceneIndex()); + } } void UBSceneThumbnailNavigPixmap::duplicatePage() From 4b7939b6c3b97e10a82f5e86f5c4c93d7f0388e0 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 31 Aug 2012 11:47:14 +0300 Subject: [PATCH 26/55] Grouped items doesn't manages by mFastAccessItems now. --- src/board/UBBoardController.cpp | 5 +++-- src/domain/UBGraphicsGroupContainerItem.cpp | 6 ++++++ src/domain/UBGraphicsPolygonItem.cpp | 4 ++-- src/domain/UBGraphicsScene.cpp | 11 +++++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index d2397285..891591d7 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1482,11 +1482,12 @@ void UBBoardController::ClearUndoStack() UBGraphicsItemUndoCommand *cmd = (UBGraphicsItemUndoCommand*)UBApplication::undoStack->command(i); // go through all added and removed objects, for create list of unique objects + // grouped items will be deleted by groups, so we don't need do delete that items. QSetIterator itAdded(cmd->GetAddedList()); while (itAdded.hasNext()) { QGraphicsItem* item = itAdded.next(); - if( !uniqueItems.contains(item) ) + if( !uniqueItems.contains(item) && !(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type())) uniqueItems.insert(item); } @@ -1494,7 +1495,7 @@ void UBBoardController::ClearUndoStack() while (itRemoved.hasNext()) { QGraphicsItem* item = itRemoved.next(); - if( !uniqueItems.contains(item) ) + if( !uniqueItems.contains(item) && (item->parentItem() && UBGraphicsGroupContainerItem::Type != item->parentItem()->type())) uniqueItems.insert(item); } } diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index ff4a8bc4..1c63d004 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -324,6 +324,12 @@ void UBGraphicsGroupContainerItem::pRemoveFromGroup(QGraphicsItem *item) item->setParentItem(newParent); item->setPos(oldPos); + UBGraphicsScene *Scene = dynamic_cast(item->scene()); + if (Scene) + { + Scene->addItem(item); + } + // removing position from translation component of the new transform if (!item->pos().isNull()) itemTransform *= QTransform::fromTranslate(-item->x(), -item->y()); diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index b21f2760..8e0e6f85 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -67,8 +67,8 @@ void UBGraphicsPolygonItem::clearStroke() if (mStroke!=NULL) { mStroke->remove(this); - if (mStroke->polygons().empty()) - delete mStroke; + //if (mStroke->polygons().empty()) + // delete mStroke; mStroke = NULL; } } diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index f6a12f95..f5463574 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1374,9 +1374,11 @@ UBGraphicsGroupContainerItem *UBGraphicsScene::createGroup(QListaddToGroup(chItem); + mFastAccessItems.removeAll(item); } } else { groupItem->addToGroup(item); + mFastAccessItems.removeAll(item); } } @@ -1396,6 +1398,15 @@ UBGraphicsGroupContainerItem *UBGraphicsScene::createGroup(QListchildItems().count(); i++) + { + QGraphicsItem *it = qgraphicsitem_cast(groupItem->childItems().at(i)); + if (it) + { + mFastAccessItems.removeAll(it); + } + } + groupItem->setVisible(true); groupItem->setFocus(); From 8b19847c1121b9ca8f93259b0b6c7d2067a0d91e Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 31 Aug 2012 12:18:50 +0300 Subject: [PATCH 27/55] Fixed deletion removed groups. Code was cleaned. Corrections in removing strokes. --- src/board/UBBoardController.cpp | 2 +- src/domain/UBGraphicsGroupContainerItem.cpp | 4 ---- src/domain/UBGraphicsPolygonItem.cpp | 4 ++-- src/domain/UBGraphicsScene.cpp | 17 +++++++++++++++++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 891591d7..3c56d617 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1495,7 +1495,7 @@ void UBBoardController::ClearUndoStack() while (itRemoved.hasNext()) { QGraphicsItem* item = itRemoved.next(); - if( !uniqueItems.contains(item) && (item->parentItem() && UBGraphicsGroupContainerItem::Type != item->parentItem()->type())) + if( !uniqueItems.contains(item) && !(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type())) uniqueItems.insert(item); } } diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index 1c63d004..b3e9dec8 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -219,10 +219,6 @@ void UBGraphicsGroupContainerItem::destroy() { UBCoreGraphicsScene *groupScene = corescene(); - if (groupScene) { - // groupScene->addItemToDeletion(this); - } - foreach (QGraphicsItem *item, childItems()) { pRemoveFromGroup(item); item->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index 8e0e6f85..b21f2760 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -67,8 +67,8 @@ void UBGraphicsPolygonItem::clearStroke() if (mStroke!=NULL) { mStroke->remove(this); - //if (mStroke->polygons().empty()) - // delete mStroke; + if (mStroke->polygons().empty()) + delete mStroke; mStroke = NULL; } } diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index f5463574..a982a2d1 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -305,7 +305,10 @@ UBGraphicsScene::~UBGraphicsScene() { if (mCurrentStroke) if (mCurrentStroke->polygons().empty()) + { delete mCurrentStroke; + mCurrentStroke = NULL; + } if (mZLayerController) delete mZLayerController; @@ -433,6 +436,11 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre } } + if (mCurrentStroke && mCurrentStroke->polygons().empty()){ + delete mCurrentStroke; + mCurrentStroke = NULL; + } + return accepted; } @@ -474,6 +482,10 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres UBCoreGraphicsScene::removeItemFromDeletion(mpLastPolygon); mAddedItems.remove(mpLastPolygon); mCurrentStroke->remove(mpLastPolygon); + if (mCurrentStroke->polygons().empty()){ + delete mCurrentStroke; + mCurrentStroke = NULL; + } removeItem(mpLastPolygon); mPreviousPolygonItems.removeAll(mpLastPolygon); } @@ -2285,6 +2297,11 @@ void UBGraphicsScene::setToolCursor(int tool) { deselectAllItems(); } + + if (mCurrentStroke && mCurrentStroke->polygons().empty()){ + delete mCurrentStroke; + } + mCurrentStroke = NULL; } void UBGraphicsScene::initStroke(){ From 29ef687d41c717e35644fc0f6a976c55c63d0740 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 31 Aug 2012 13:00:30 +0300 Subject: [PATCH 28/55] Useless code removed. --- src/domain/UBGraphicsGroupContainerItem.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index b3e9dec8..10be1c4d 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -216,9 +216,6 @@ void UBGraphicsGroupContainerItem::setUuid(const QUuid &pUuid) void UBGraphicsGroupContainerItem::destroy() { - UBCoreGraphicsScene *groupScene = corescene(); - - foreach (QGraphicsItem *item, childItems()) { pRemoveFromGroup(item); item->setFlag(QGraphicsItem::ItemIsSelectable, true); From 278668b500164563e5da69dcc052dfd7901f77af Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 31 Aug 2012 14:51:58 +0300 Subject: [PATCH 29/55] Another fix for SANKORE-972. --- src/domain/UBGraphicsScene.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index a982a2d1..47547198 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1615,6 +1615,7 @@ void UBGraphicsScene::addItems(const QSet& items) void UBGraphicsScene::removeItem(QGraphicsItem* item) { setModified(true); + item->setSelected(false); UBCoreGraphicsScene::removeItem(item); UBApplication::boardController->freezeW3CWidget(item, true); @@ -2235,7 +2236,6 @@ void UBGraphicsScene::keyReleaseEvent(QKeyEvent * keyEvent) default: { - item->setSelected(false); UBGraphicsItem *ubgi = dynamic_cast(item); if (0 != ubgi) ubgi->remove(); From c0d9f87812b3d29d5a03ddeae7ef28a9f2ce0900 Mon Sep 17 00:00:00 2001 From: maximXbs Date: Fri, 31 Aug 2012 15:54:48 +0200 Subject: [PATCH 30/55] fixed Sankore-1089 bug --- .../interactivities/Ordre phrase.wgt/styles/of_puppets.css | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css b/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css index 6589dcef..401a2bea 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css +++ b/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css @@ -33,7 +33,6 @@ body{ font: 28px tahoma; text-align: center; cursor: pointer; - text-transform: uppercase; overflow: hidden; } From 81c42f539d4af50f877d20848bd1940c579731af Mon Sep 17 00:00:00 2001 From: maximXbs Date: Fri, 31 Aug 2012 16:40:40 +0200 Subject: [PATCH 31/55] fixed Sankore-588 bug --- resources/library/applications/Grapheur.wgt/Grapheur.xhtml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/resources/library/applications/Grapheur.wgt/Grapheur.xhtml b/resources/library/applications/Grapheur.wgt/Grapheur.xhtml index 3a94a9d3..bfca757c 100644 --- a/resources/library/applications/Grapheur.wgt/Grapheur.xhtml +++ b/resources/library/applications/Grapheur.wgt/Grapheur.xhtml @@ -218,7 +218,6 @@ return true; }); $("label[for*='checkAire']").text(sankoreLang[lang].draw); - $("label[for*='checkMaJ']").text(sankoreLang[lang].auto_update); $("#menuOptions td").eq(0).html(sankoreLang[lang].widget); $("#menuOptions h3").eq(0).text(sankoreLang[lang].widget_options); $("#menuOptions2D h3").eq(0).text(sankoreLang[lang].options + " 2D"); @@ -1033,13 +1032,10 @@ Control options:

Save a widget options in cookies or load an options from cookies or delete a registered options. -

-


Cookies are disabled. You cannot save an options...

You are using the last version of this widget.
-
From 1ce5763adc9d299041de1bb74d23e33ac9675c99 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Mon, 3 Sep 2012 12:25:54 +0300 Subject: [PATCH 32/55] SANKORE-1063 --- src/domain/UBGraphicsScene.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 6d1f5459..c25b65f6 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1105,9 +1105,10 @@ void UBGraphicsScene::clearItems() if (!item->parentItem()) { - UBGraphicsPolygonItem* pi = qgraphicsitem_cast(item); + bool isPolygon = qgraphicsitem_cast(item) != NULL; + bool isStrokesGroup = qgraphicsitem_cast(item) != NULL; - if(!pi && !mTools.contains(item) && !isBackgroundObject(item)) + if(!isPolygon && !isStrokesGroup && !mTools.contains(item) && !isBackgroundObject(item)) { removeItem(item); removedItems << item; From 5cec06a62a934a5108152b2140f69c467ab929bf Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 13:00:40 +0300 Subject: [PATCH 33/55] Duplication of Strokes was implemented. --- src/board/UBBoardController.cpp | 10 ++++------ src/domain/UBGraphicsPolygonItem.cpp | 20 +++++++++----------- src/domain/UBGraphicsStrokesGroup.cpp | 13 +++++++------ 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 3c56d617..66dbc026 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -557,11 +557,10 @@ void UBBoardController::duplicateItem(UBItem *item) UBMimeType::Enum itemMimeType; QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(item->sourceUrl().toLocalFile()); - if(NULL != qgraphicsitem_cast(commonItem)){ - itemMimeType = UBMimeType::Group; - }else{ - itemMimeType = UBFileSystemUtils::mimeTypeFromString(contentTypeHeader); - } + if(NULL != qgraphicsitem_cast(commonItem)) + itemMimeType = UBMimeType::Group; + else + itemMimeType = UBFileSystemUtils::mimeTypeFromString(contentTypeHeader); switch(static_cast(itemMimeType)) { @@ -633,7 +632,6 @@ void UBBoardController::duplicateItem(UBItem *item) QGraphicsItem *gitem = dynamic_cast(item->deepCopy()); if (gitem) { - qDebug() << "Adding a stroke: " << gitem; mActiveScene->addItem(gitem); gitem->setPos(itemPos); mLastCreatedItem = gitem; diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index b21f2760..e5dd4fd7 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -142,14 +142,14 @@ QColor UBGraphicsPolygonItem::color() const UBItem* UBGraphicsPolygonItem::deepCopy() const -{ - UBGraphicsPolygonItem* copy = new UBGraphicsPolygonItem(polygon(), parentItem()); +{ + UBGraphicsPolygonItem* copy = new UBGraphicsPolygonItem(polygon(), 0); + UBGraphicsStroke *stroke = new UBGraphicsStroke(); + copyItemParameters(copy); - copy->mOriginalLine = this->mOriginalLine; - copy->mOriginalWidth = this->mOriginalWidth; - copy->mIsNominalLine = this->mIsNominalLine; + copy->setStroke(stroke); return copy; } @@ -160,17 +160,15 @@ void UBGraphicsPolygonItem::copyItemParameters(UBItem *copy) const UBGraphicsPolygonItem *cp = dynamic_cast(copy); if (cp) { - cp->mOriginalLine = QLineF(); - cp->mOriginalWidth = -1; - cp->mIsNominalLine = false; + cp->mOriginalLine = this->mOriginalLine; + cp->mOriginalWidth = this->mOriginalWidth; + cp->mIsNominalLine = this->mIsNominalLine; - cp->setStroke(this->stroke()); - cp->setStrokesGroup(this->strokesGroup()); + cp->setTransform(transform()); cp->setBrush(this->brush()); cp->setPen(this->pen()); cp->mHasAlpha = this->mHasAlpha; - cp->setColorOnDarkBackground(this->colorOnDarkBackground()); cp->setColorOnLightBackground(this->colorOnLightBackground()); diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index a5320924..2f57360f 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -65,29 +65,30 @@ void UBGraphicsStrokesGroup::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) UBItem* UBGraphicsStrokesGroup::deepCopy() const { - UBGraphicsStrokesGroup* copy = new UBGraphicsStrokesGroup(); + UBGraphicsStrokesGroup* copy = new UBGraphicsStrokesGroup(); - - QList chl = childItems(); + QList chl = childItems(); foreach(QGraphicsItem *child, chl) { UBGraphicsPolygonItem *polygon = dynamic_cast(child); if (polygon) + { copy->addToGroup(dynamic_cast(polygon->deepCopy())); + polygon->setStrokesGroup(copy); + } } copyItemParameters(copy); - return copy; + return copy; } void UBGraphicsStrokesGroup::copyItemParameters(UBItem *copy) const { UBGraphicsStrokesGroup *cp = dynamic_cast(copy); { - cp->setPos(this->pos()); + cp->setTransform(transform()); - cp->setTransform(this->transform()); cp->setFlag(QGraphicsItem::ItemIsMovable, true); cp->setFlag(QGraphicsItem::ItemIsSelectable, true); cp->setData(UBGraphicsItemData::ItemLayerType, this->data(UBGraphicsItemData::ItemLayerType)); From 8a6b3e3fa6f45f2239f554d8dedcddba0ae8c845 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 3 Sep 2012 13:30:21 +0200 Subject: [PATCH 34/55] issue on language --- src/core/UBApplication.cpp | 102 ++++++++++++++++++++++--------------- src/core/UBApplication.h | 4 +- 2 files changed, 62 insertions(+), 44 deletions(-) diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index d3aed832..028518da 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -139,15 +139,7 @@ UBApplication::UBApplication(const QString &id, int &argc, char **argv) : QtSing UBSettings *settings = UBSettings::settings(); - QString forcedLanguage(""); - if(args.contains("-lang")) - forcedLanguage=args.at(args.indexOf("-lang") + 1); - else{ - QString setLanguage = settings->appPreferredLanguage->get().toString(); - if(!setLanguage.isEmpty()) - forcedLanguage = setLanguage; - } - setupTranslator(forcedLanguage); + setupTranslators(args); connect(settings->appToolBarPositionedAtTop, SIGNAL(changed(QVariant)), this, SLOT(toolBarPositionChanged(QVariant))); connect(settings->appToolBarDisplayText, SIGNAL(changed(QVariant)), this, SLOT(toolBarDisplayTextChanged(QVariant))); @@ -207,45 +199,71 @@ UBApplication::~UBApplication() staticMemoryCleaner = 0; } -void UBApplication::setupTranslator(QString forcedLanguage) +QString UBApplication::checkLanguageAvailabilityForSankore(QString &language) { - QStringList availablesTranslations = UBPlatformUtils::availableTranslations(); - QString language(""); - if(!forcedLanguage.isEmpty()){ - if(availablesTranslations.contains(forcedLanguage,Qt::CaseInsensitive)) - language = forcedLanguage; - else - qDebug() << "forced language " << forcedLanguage << " not available"; - } - else{ - QString systemLanguage = UBPlatformUtils::systemLanguage(); - if(availablesTranslations.contains(systemLanguage,Qt::CaseInsensitive)) - language = systemLanguage; - else - qDebug() << "translation for system language " << systemLanguage << " not found"; - } - - if(language.isEmpty()){ - language = "en_US"; - //fallback if no translation are available - } - else{ - mApplicationTranslator = new QTranslator(this); - mQtGuiTranslator = new QTranslator(this); + QStringList availableTranslations = UBPlatformUtils::availableTranslations(); + if(availableTranslations.contains(language,Qt::CaseInsensitive)) + return language; + else{ + if(language.length() > 2){ + QString shortLanguageCode = language.left(2); + if(availableTranslations.contains(shortLanguageCode,Qt::CaseInsensitive)) + return shortLanguageCode; + } + } + return QString(""); +} + +void UBApplication::setupTranslators(QStringList args) +{ + QString forcedLanguage; + if(args.contains("-lang")) + forcedLanguage=args.at(args.indexOf("-lang") + 1); + else{ + QString setLanguage = UBSettings::settings()->appPreferredLanguage->get().toString(); + if(!setLanguage.isEmpty()) + forcedLanguage = setLanguage; + } + + QStringList availablesTranslations = UBPlatformUtils::availableTranslations(); + QString language(""); + + if(!forcedLanguage.isEmpty()) + language = checkLanguageAvailabilityForSankore(forcedLanguage); + + if(language.isEmpty()){ + QString systemLanguage = UBPlatformUtils::systemLanguage(); + language = checkLanguageAvailabilityForSankore(systemLanguage); + } + + if(language.isEmpty()){ + language = "en_US"; + //fallback if no translation are available + } + else{ + mApplicationTranslator = new QTranslator(this); + mQtGuiTranslator = new QTranslator(this); mApplicationTranslator->load(UBPlatformUtils::translationPath(QString("sankore_"),language)); - installTranslator(mApplicationTranslator); + installTranslator(mApplicationTranslator); + + QString qtGuiTranslationPath = UBPlatformUtils::translationPath("qt_", language); - mQtGuiTranslator->load(UBPlatformUtils::translationPath(QString("qt_"),language)); - if(!mQtGuiTranslator->isEmpty()){ - // checked because this translation could be not available - installTranslator(mQtGuiTranslator); - } - else - qDebug() << "Qt gui translation in " << language << " are not available"; - } + if(!QFile(qtGuiTranslationPath).exists()){ + qtGuiTranslationPath = UBPlatformUtils::translationPath("qt_", language.left(2)); + if(!QFile(qtGuiTranslationPath).exists()) + qtGuiTranslationPath = ""; + } + if(qtGuiTranslationPath.isEmpty()){ + qDebug() << "qtGuiTranslationPath " << qtGuiTranslationPath; + mQtGuiTranslator->load(qtGuiTranslationPath); + installTranslator(mQtGuiTranslator); + } + else + qDebug() << "Qt gui translation in " << language << " is not available"; + } QLocale::setDefault(QLocale(language)); qDebug() << "Running application in:" << language; diff --git a/src/core/UBApplication.h b/src/core/UBApplication.h index b4060d54..b08fdcee 100644 --- a/src/core/UBApplication.h +++ b/src/core/UBApplication.h @@ -119,10 +119,10 @@ class UBApplication : public QtSingleApplication private: void updateProtoActionsState(); - void setupTranslator(QString forcedLanguage); + void setupTranslators(QStringList args); QList mProtoMenus; bool mIsVerbose; - + QString checkLanguageAvailabilityForSankore(QString& language); protected: #if defined(Q_WS_MACX) && !defined(QT_MAC_USE_COCOA) From 0b484e2a16cde31e7edfd3395ea63b4ecdc92dbc Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 14:45:41 +0300 Subject: [PATCH 35/55] Item deselected before duplication. --- src/board/UBBoardController.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 66dbc026..c5627842 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -553,6 +553,7 @@ void UBBoardController::duplicateItem(UBItem *item) qreal shifting = UBSettings::settings()->objectFrameWidth; itemPos = commonItem->pos() + QPointF(shifting,shifting); itemSize = commonItem->boundingRect().size(); + commonItem->setSelected(false); } UBMimeType::Enum itemMimeType; From aa54bed95b2ec2cbd3ffa690285103d225e672cb Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 14:59:03 +0300 Subject: [PATCH 36/55] Copied items with unknown type is selected. --- src/board/UBBoardController.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index c5627842..a9600ab6 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -636,6 +636,7 @@ void UBBoardController::duplicateItem(UBItem *item) mActiveScene->addItem(gitem); gitem->setPos(itemPos); mLastCreatedItem = gitem; + gitem->setSelected(true); } return; }break; From a495f5f1eca8422b31043d43b625a737e36ae776 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 3 Sep 2012 14:01:56 +0200 Subject: [PATCH 37/55] fixed the algorithm --- src/core/UBApplication.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index 028518da..94f0710e 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -256,7 +256,7 @@ void UBApplication::setupTranslators(QStringList args) qtGuiTranslationPath = ""; } - if(qtGuiTranslationPath.isEmpty()){ + if(!qtGuiTranslationPath.isEmpty()){ qDebug() << "qtGuiTranslationPath " << qtGuiTranslationPath; mQtGuiTranslator->load(qtGuiTranslationPath); installTranslator(mQtGuiTranslator); From e441f2c2f86fed46fd8e174f4b2929f60a09f036 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Mon, 3 Sep 2012 15:10:39 +0300 Subject: [PATCH 38/55] SANKORE-1063 The annotations are erased when you select the Erase items --- src/domain/UBGraphicsScene.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index c25b65f6..86d19d34 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1103,16 +1103,14 @@ void UBGraphicsScene::clearItems() { QGraphicsItem* item = itItems.next(); - if (!item->parentItem()) - { - bool isPolygon = qgraphicsitem_cast(item) != NULL; - bool isStrokesGroup = qgraphicsitem_cast(item) != NULL; + bool isGroup = qgraphicsitem_cast(item) != NULL; + bool isPolygon = qgraphicsitem_cast(item) != NULL; + bool isStrokesGroup = qgraphicsitem_cast(item) != NULL; - if(!isPolygon && !isStrokesGroup && !mTools.contains(item) && !isBackgroundObject(item)) - { - removeItem(item); - removedItems << item; - } + if(!isGroup && !isPolygon && !isStrokesGroup && !mTools.contains(item) && !isBackgroundObject(item)) + { + removeItem(item); + removedItems << item; } } From 2a443e618dc70c393c7675285cb2e94a4e4f6815 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 16:33:05 +0300 Subject: [PATCH 39/55] Fixed crash on removing fastAccessItems. --- src/domain/UBGraphicsScene.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 47547198..5084f660 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1386,7 +1386,7 @@ UBGraphicsGroupContainerItem *UBGraphicsScene::createGroup(QListaddToGroup(chItem); - mFastAccessItems.removeAll(item); + mFastAccessItems.removeAll(chItem); } } else { groupItem->addToGroup(item); From b21e00910831de9df56b828bbf8a5c70ab1016fd Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 16:39:26 +0300 Subject: [PATCH 40/55] Delegate buttons takes mouse press and mouse release events immediately. Fix to Sankore-772. --- src/board/UBBoardView.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index ed75f550..5500ec9b 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -528,6 +528,8 @@ Here we determines cases when items should to get mouse press event at pressing return true; case DelegateButton::Type: + return true; + case UBGraphicsMediaItem::Type: return false; @@ -1123,6 +1125,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) else { if (isUBItem(movingItem) && + DelegateButton::Type != movingItem->type() && QGraphicsSvgItem::Type != movingItem->type() && UBGraphicsDelegateFrame::Type != movingItem->type() && UBToolWidget::Type != movingItem->type() && From 5816a17f576da8c92b32e60996bed5250724fc73 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Mon, 3 Sep 2012 16:55:23 +0300 Subject: [PATCH 41/55] SANKORE-98 shutdown after emptying the trashbin --- src/document/UBDocumentController.cpp | 310 +++++++++++++------------- src/document/UBDocumentController.h | 3 + 2 files changed, 163 insertions(+), 150 deletions(-) diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index 4be9ee0f..af8734e6 100755 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -117,8 +117,11 @@ UBDocumentProxyTreeItem* UBDocumentController::findDocument(UBDocumentProxy* pro void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurrentDocument) { - if (!proxy) + if (proxy==NULL) + { + setDocument(NULL); return; + } QTreeWidgetItemIterator it(mDocumentUI->documentTreeWidget); @@ -531,6 +534,153 @@ void UBDocumentController::duplicateSelectedItem() } } +void UBDocumentController::moveDocumentToTrash(UBDocumentGroupTreeItem* groupTi, UBDocumentProxyTreeItem *proxyTi) +{ + int index = proxyTi->parent()->indexOfChild(proxyTi); + index --; + + if (index >= 0) + { + if (proxyTi->proxy() == mBoardController->selectedDocument()) + { + selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(index))->proxy(), true); + } + else + proxyTi->parent()->child(index)->setSelected(true); + } + else if (proxyTi->parent()->childCount() > 1) + { + if (proxyTi->proxy() == mBoardController->selectedDocument()) + { + selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(1))->proxy(), true); + } + else + proxyTi->parent()->child(1)->setSelected(true); + } + else + { + if (proxyTi->proxy() == mBoardController->selectedDocument()) + { + bool documentFound = false; + for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) + { + QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); + UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); + if (!groupItem->isTrashFolder()) + { + for(int j=0; jchildCount(); j++) + { + if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument()) + { + selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true); + documentFound = true; + break; + } + } + } + if (documentFound) + break; + } + if (!documentFound) + { + UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument(groupTi->groupName()); + selectDocument(document, true); + } + } + else + proxyTi->parent()->setSelected(true); + } + + QString oldGroupName = proxyTi->proxy()->metaData(UBSettings::documentGroupName).toString(); + proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName); + UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy()); + + proxyTi->parent()->removeChild(proxyTi); + mTrashTi->addChild(proxyTi); + proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable); +} + +void UBDocumentController::moveFolderToTrash(UBDocumentGroupTreeItem* groupTi) +{ + bool changeCurrentDocument = false; + for (int i = 0; i < groupTi->childCount(); i++) + { + UBDocumentProxyTreeItem* proxyTi = dynamic_cast(groupTi->child(i)); + if (proxyTi && proxyTi->proxy() && proxyTi->proxy() == mBoardController->selectedDocument()) + { + changeCurrentDocument = true; + break; + } + } + + QList toBeDeleted; + + for (int i = 0; i < groupTi->childCount(); i++) + { + UBDocumentProxyTreeItem* proxyTi = dynamic_cast(groupTi->child(i)); + if (proxyTi && proxyTi->proxy()) + toBeDeleted << proxyTi; + } + + for (int i = 0; i < toBeDeleted.count(); i++) + { + UBDocumentProxyTreeItem* proxyTi = toBeDeleted.at(i); + + showMessage(QString("Deleting %1").arg(proxyTi->proxy()->metaData(UBSettings::documentName).toString())); + // Move document to trash + QString oldGroupName = proxyTi->proxy()->metaData(UBSettings::documentGroupName).toString(); + proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName); + UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy()); + + groupTi->removeChild(proxyTi); + mTrashTi->addChild(proxyTi); + proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable); + + showMessage(QString("%1 deleted").arg(groupTi->groupName())); + } + + // dont remove default group + if (!groupTi->isDefaultFolder()) + { + int index = mDocumentUI->documentTreeWidget->indexOfTopLevelItem(groupTi); + + if (index >= 0) + { + mDocumentUI->documentTreeWidget->takeTopLevelItem(index); + } + } + + if (changeCurrentDocument) + { + bool documentFound = false; + for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) + { + QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); + UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); + if (!groupItem->isTrashFolder() && groupItem != groupTi) + { + for(int j=0; jchildCount(); j++) + { + if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument()) + { + selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true); + documentFound = true; + break; + } + } + } + if (documentFound) + break; + } + if (!documentFound) + { + UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument( UBSettings::defaultDocumentGroupName ); + selectDocument(document, true); + } + } + + reloadThumbnails(); +} void UBDocumentController::deleteSelectedItem() { @@ -553,79 +703,19 @@ void UBDocumentController::deleteSelectedItem() { if (proxyTi->parent() != mTrashTi) { - // We have to move document into Trash - // Select another document for processing - // This is for Board, where this document can be selected - int index = proxyTi->parent()->indexOfChild(proxyTi); - index --; - - if (index >= 0) - { - if (proxyTi->proxy() == mBoardController->selectedDocument()) - { - selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(index))->proxy(), true); - } - else - proxyTi->parent()->child(index)->setSelected(true); - } - else if (proxyTi->parent()->childCount() > 1) - { - if (proxyTi->proxy() == mBoardController->selectedDocument()) - { - selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(1))->proxy(), true); - } - else - proxyTi->parent()->child(1)->setSelected(true); - } - else - { - if (proxyTi->proxy() == mBoardController->selectedDocument()) - { - bool documentFound = false; - for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) - { - QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); - UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); - if (!groupItem->isTrashFolder()) - { - for(int j=0; jchildCount(); j++) - { - if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument()) - { - selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true); - documentFound = true; - break; - } - } - } - if (documentFound) - break; - } - if (!documentFound) - { - UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument(groupTi->groupName()); - selectDocument(document, true); - } - } - else - proxyTi->parent()->setSelected(true); - } - - QString oldGroupName = proxyTi->proxy()->metaData(UBSettings::documentGroupName).toString(); - proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy()); - - proxyTi->parent()->removeChild(proxyTi); - mTrashTi->addChild(proxyTi); - proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable); + moveDocumentToTrash(groupTi, proxyTi); } else { - // We have to physical delete document - // No action with selection required - document from Trash cant be selected in Board - + // We have to physically delete document proxyTi->parent()->removeChild(proxyTi); UBPersistenceManager::persistenceManager()->deleteDocument(proxyTi->proxy()); + + if (mTrashTi->childCount()==0) + selectDocument(NULL); + else + selectDocument(((UBDocumentProxyTreeItem*)mTrashTi->child(0))->proxy()); + reloadThumbnails(); } } } @@ -666,87 +756,7 @@ void UBDocumentController::deleteSelectedItem() if(UBApplication::mainWindow->yesNoQuestion(tr("Remove Folder"), tr("Are you sure you want to remove the folder '%1' and all its content?").arg(groupTi->groupName()))) { QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); - - bool changeCurrentDocument = false; - for (int i = 0; i < groupTi->childCount(); i++) - { - UBDocumentProxyTreeItem* proxyTi = dynamic_cast(groupTi->child(i)); - if (proxyTi && proxyTi->proxy() && proxyTi->proxy() == mBoardController->selectedDocument()) - { - changeCurrentDocument = true; - break; - } - } - - QList toBeDeleted; - - for (int i = 0; i < groupTi->childCount(); i++) - { - UBDocumentProxyTreeItem* proxyTi = dynamic_cast(groupTi->child(i)); - if (proxyTi && proxyTi->proxy()) - toBeDeleted << proxyTi; - } - - for (int i = 0; i < toBeDeleted.count(); i++) - { - UBDocumentProxyTreeItem* proxyTi = toBeDeleted.at(i); - - showMessage(QString("Deleting %1").arg(proxyTi->proxy()->metaData(UBSettings::documentName).toString())); - // Move document to trash - QString oldGroupName = proxyTi->proxy()->metaData(UBSettings::documentGroupName).toString(); - proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName); - UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy()); - - groupTi->removeChild(proxyTi); - mTrashTi->addChild(proxyTi); - proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable); - - showMessage(QString("%1 deleted").arg(groupTi->groupName())); - } - - // dont remove default group - if (!groupTi->isDefaultFolder()) - { - int index = mDocumentUI->documentTreeWidget->indexOfTopLevelItem(groupTi); - - if (index >= 0) - { - mDocumentUI->documentTreeWidget->takeTopLevelItem(index); - } - } - - if (changeCurrentDocument) - { - bool documentFound = false; - for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++) - { - QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i); - UBDocumentGroupTreeItem* groupItem = dynamic_cast(item); - if (!groupItem->isTrashFolder() && groupItem != groupTi) - { - for(int j=0; jchildCount(); j++) - { - if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument()) - { - selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true); - documentFound = true; - break; - } - } - } - if (documentFound) - break; - } - if (!documentFound) - { - UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument( UBSettings::defaultDocumentGroupName ); - selectDocument(document, true); - } - } - - - reloadThumbnails(); - + moveFolderToTrash(groupTi); QApplication::restoreOverrideCursor(); } } diff --git a/src/document/UBDocumentController.h b/src/document/UBDocumentController.h index d27ca0a6..ac8a113f 100644 --- a/src/document/UBDocumentController.h +++ b/src/document/UBDocumentController.h @@ -111,6 +111,9 @@ class UBDocumentController : public UBDocumentContainer bool mToolsPalettePositionned; UBDocumentGroupTreeItem* mTrashTi; + void moveDocumentToTrash(UBDocumentGroupTreeItem* groupTi, UBDocumentProxyTreeItem *proxyTi); + void moveFolderToTrash(UBDocumentGroupTreeItem* groupTi); + private slots: void documentZoomSliderValueChanged (int value); void loadDocumentProxies(); From 687b65658c592b9ddf5b883de627999dda0d19e5 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Mon, 3 Sep 2012 17:01:27 +0300 Subject: [PATCH 42/55] Sankore-861 Only standard created annotations change their color --- src/board/UBBoardController.cpp | 15 +++++++++ src/domain/UBGraphicsStrokesGroup.cpp | 48 +++++++++++++++++++++++++++ src/domain/UBGraphicsStrokesGroup.h | 8 +++++ 3 files changed, 71 insertions(+) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index bcfc1ddd..7a14e8d4 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1543,6 +1543,21 @@ void UBBoardController::changeBackground(bool isDark, bool isCrossed) mActiveScene->setBackground(isDark, isCrossed); + foreach (QGraphicsItem *item, mActiveScene->items()) { + if (item->type() == UBGraphicsStrokesGroup::Type) { + UBGraphicsStrokesGroup *curGroup = static_cast(item); + QColor compareColor = curGroup->color(currentIsDark ? UBGraphicsStrokesGroup::colorOnDarkBackground + : UBGraphicsStrokesGroup::colorOnLightBackground); + + if (curGroup->color() == compareColor) { + QColor newColor = curGroup->color(!currentIsDark ? UBGraphicsStrokesGroup::colorOnDarkBackground + : UBGraphicsStrokesGroup::colorOnLightBackground); + curGroup->setColor(newColor); + } + + } + } + updateBackgroundState(); emit backgroundChanged(); diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index a5320924..6da869a1 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -32,6 +32,54 @@ void UBGraphicsStrokesGroup::setUuid(const QUuid &pUuid) UBItem::setUuid(pUuid); setData(UBGraphicsItemData::ItemUuid, QVariant(pUuid)); //store item uuid inside the QGraphicsItem to fast operations with Items on the scene } +void UBGraphicsStrokesGroup::setColor(const QColor &color, colorType pColorType) +{ + //TODO Implement common mechanism of managing groups, drop UBGraphicsStroke if it's obsolete + //Using casting for the moment + foreach (QGraphicsItem *item, childItems()) { + if (item->type() == UBGraphicsPolygonItem::Type) { + UBGraphicsPolygonItem *curPolygon = static_cast(item); + + switch (pColorType) { + case currentColor : + curPolygon->setColor(color); + break; + case colorOnLightBackground : + curPolygon->setColorOnLightBackground(color); + break; + case colorOnDarkBackground : + curPolygon->setColorOnDarkBackground(color); + break; + } + } + } +} + +QColor UBGraphicsStrokesGroup::color(colorType pColorType) const +{ + QColor result; + + foreach (QGraphicsItem *item, childItems()) { + if (item->type() == UBGraphicsPolygonItem::Type) { + UBGraphicsPolygonItem *curPolygon = static_cast(item); + + switch (pColorType) { + case currentColor : + result = curPolygon->color(); + break; + case colorOnLightBackground : + result = curPolygon->colorOnLightBackground(); + break; + case colorOnDarkBackground : + result = curPolygon->colorOnDarkBackground(); + break; + } + + } + } + + return result; +} void UBGraphicsStrokesGroup::mousePressEvent(QGraphicsSceneMouseEvent *event) { diff --git a/src/domain/UBGraphicsStrokesGroup.h b/src/domain/UBGraphicsStrokesGroup.h index b2310773..2c286d11 100644 --- a/src/domain/UBGraphicsStrokesGroup.h +++ b/src/domain/UBGraphicsStrokesGroup.h @@ -11,6 +11,12 @@ class UBGraphicsStrokesGroup : public QObject, public QGraphicsItemGroup, public { Q_OBJECT public: + enum colorType { + currentColor = 0 + , colorOnLightBackground + , colorOnDarkBackground + }; + UBGraphicsStrokesGroup(QGraphicsItem* parent = 0); ~UBGraphicsStrokesGroup(); virtual UBItem* deepCopy() const; @@ -23,6 +29,8 @@ public: return Type; } virtual void setUuid(const QUuid &pUuid); + void setColor(const QColor &color, colorType pColorType = currentColor); + QColor color(colorType pColorType = currentColor) const; protected: From 05f6cc364ff1c559ea59eeafa9835b74ec14947e Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 19:25:42 +0300 Subject: [PATCH 43/55] Additional fix to Sankore-979 - improved cleaning mechanism for items on board. --- src/domain/UBGraphicsGroupContainerItem.cpp | 14 ++++++++++++++ src/domain/UBGraphicsGroupContainerItem.h | 2 ++ src/frameworks/UBCoreGraphicsScene.cpp | 14 +++----------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index 10be1c4d..95b95af3 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -79,6 +79,8 @@ void UBGraphicsGroupContainerItem::addToGroup(QGraphicsItem *item) item->setPos(mapFromItem(item, 0, 0)); item->scene()->removeItem(item); + if (corescene()) + corescene()->removeItemFromDeletion(item); item->setParentItem(this); // removing position from translation component of the new transform @@ -225,6 +227,18 @@ void UBGraphicsGroupContainerItem::destroy() { remove(); } +void UBGraphicsGroupContainerItem::clearSource() +{ + foreach(QGraphicsItem *child, childItems()) + { + UBGraphicsItem *item = dynamic_cast(child); + if (item) + { + item->clearSource(); + } + } +} + void UBGraphicsGroupContainerItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { if (mDelegate->mousePressEvent(event)) { diff --git a/src/domain/UBGraphicsGroupContainerItem.h b/src/domain/UBGraphicsGroupContainerItem.h index 00f643d3..e8fa77eb 100644 --- a/src/domain/UBGraphicsGroupContainerItem.h +++ b/src/domain/UBGraphicsGroupContainerItem.h @@ -39,6 +39,8 @@ public: virtual void setUuid(const QUuid &pUuid); void destroy(); + virtual void clearSource(); + protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index 1f306425..69297da7 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -52,6 +52,8 @@ UBCoreGraphicsScene::~UBCoreGraphicsScene() void UBCoreGraphicsScene::addItem(QGraphicsItem* item) { + addItemToDeletion(item); + if (item->type() == UBGraphicsGroupContainerItem::Type && item->childItems().count()) { foreach (QGraphicsItem *curItem, item->childItems()) { removeItemFromDeletion(curItem); @@ -76,17 +78,7 @@ bool UBCoreGraphicsScene::deleteItem(QGraphicsItem* item) { if(mItemsToDelete.contains(item)) { - UBGraphicsItem* item_casted = 0; - switch (item->type()) - { - case UBGraphicsMediaItem::Type: - item_casted = dynamic_cast(item); - break; - case UBGraphicsW3CWidgetItem::Type: - item_casted = dynamic_cast(item); - break; - } - + UBGraphicsItem *item_casted = dynamic_cast(item); if (0 != item_casted) item_casted->clearSource(); From 3a21e07283c4b224ad81425d137d7d1cc9d49e92 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Mon, 3 Sep 2012 19:27:15 +0300 Subject: [PATCH 44/55] SANKORE-1063 The annotations are erased when you select the Erase items --- src/domain/UBGraphicsScene.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index a34d8aac..37ab5bef 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1078,12 +1078,9 @@ void UBGraphicsScene::clearItemsAndAnnotations() QSet emptyList; QSet removedItems; - QListIterator itItems(mFastAccessItems); - - while (itItems.hasNext()) + QList sceneItems = items(); + foreach(QGraphicsItem* item, sceneItems) { - QGraphicsItem* item = itItems.next(); - if(!mTools.contains(item) && !isBackgroundObject(item)) { removeItem(item); @@ -1109,12 +1106,9 @@ void UBGraphicsScene::clearItems() QSet emptyList; QSet removedItems; - QListIterator itItems(mFastAccessItems); - - while (itItems.hasNext()) + QList sceneItems = items(); + foreach(QGraphicsItem* item, sceneItems) { - QGraphicsItem* item = itItems.next(); - bool isGroup = qgraphicsitem_cast(item) != NULL; bool isPolygon = qgraphicsitem_cast(item) != NULL; bool isStrokesGroup = qgraphicsitem_cast(item) != NULL; @@ -1143,11 +1137,9 @@ void UBGraphicsScene::clearAnnotations() QSet emptyList; QSet removedItems; - QListIterator itItems(mFastAccessItems); - - while (itItems.hasNext()) + QList sceneItems = items(); + foreach(QGraphicsItem* item, sceneItems) { - QGraphicsItem* item = itItems.next(); UBGraphicsStrokesGroup* pi = qgraphicsitem_cast(item); if (pi) { @@ -1159,7 +1151,6 @@ void UBGraphicsScene::clearAnnotations() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); UBApplication::undoStack->push(uc); From 678633094d33a5fa15f6f77578447c3d91fe66f6 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Mon, 3 Sep 2012 19:48:05 +0300 Subject: [PATCH 45/55] Sankore-861 using recolorAllItemsFunction --- src/board/UBBoardController.cpp | 16 ---------------- src/domain/UBGraphicsScene.cpp | 29 +++++++++++------------------ 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 7a14e8d4..c0be0da8 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1543,28 +1543,12 @@ void UBBoardController::changeBackground(bool isDark, bool isCrossed) mActiveScene->setBackground(isDark, isCrossed); - foreach (QGraphicsItem *item, mActiveScene->items()) { - if (item->type() == UBGraphicsStrokesGroup::Type) { - UBGraphicsStrokesGroup *curGroup = static_cast(item); - QColor compareColor = curGroup->color(currentIsDark ? UBGraphicsStrokesGroup::colorOnDarkBackground - : UBGraphicsStrokesGroup::colorOnLightBackground); - - if (curGroup->color() == compareColor) { - QColor newColor = curGroup->color(!currentIsDark ? UBGraphicsStrokesGroup::colorOnDarkBackground - : UBGraphicsStrokesGroup::colorOnLightBackground); - curGroup->setColor(newColor); - } - - } - } - updateBackgroundState(); emit backgroundChanged(); } } - void UBBoardController::boardViewResized(QResizeEvent* event) { Q_UNUSED(event); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index b4cbfc4e..9a89e96b 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -891,25 +891,18 @@ void UBGraphicsScene::recolorAllItems() view->setViewportUpdateMode(QGraphicsView::NoViewportUpdate); } - for(int i = 0; i < mFastAccessItems.size(); i++) - { - UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast (mFastAccessItems.at(i)); - - if (polygonItem) - { - QColor color; - - if (mDarkBackground) - { - color = polygonItem->colorOnDarkBackground(); - } - else - { - color = polygonItem->colorOnLightBackground(); + bool currentIslight = isLightBackground(); + foreach (QGraphicsItem *item, items()) { + if (item->type() == UBGraphicsStrokesGroup::Type) { + UBGraphicsStrokesGroup *curGroup = static_cast(item); + QColor compareColor = curGroup->color(currentIslight ? UBGraphicsStrokesGroup::colorOnDarkBackground + : UBGraphicsStrokesGroup::colorOnLightBackground); + + if (curGroup->color() == compareColor) { + QColor newColor = curGroup->color(!currentIslight ? UBGraphicsStrokesGroup::colorOnDarkBackground + : UBGraphicsStrokesGroup::colorOnLightBackground); + curGroup->setColor(newColor); } - - polygonItem->setColor(color); - continue; } } From 4ec54ee3a86ceefcdec2b87b8c4a6d212cea76fe Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Mon, 3 Sep 2012 20:31:51 +0300 Subject: [PATCH 46/55] Delete group after deletion of last member --- src/domain/UBGraphicsScene.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 018d463c..0f3ecc17 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1600,6 +1600,8 @@ void UBGraphicsScene::addItems(const QSet& items) void UBGraphicsScene::removeItem(QGraphicsItem* item) { + UBGraphicsGroupContainerItem* group = qgraphicsitem_cast(item->parentItem()); + item->setSelected(false); UBCoreGraphicsScene::removeItem(item); UBApplication::boardController->freezeW3CWidget(item, true); @@ -1608,6 +1610,15 @@ void UBGraphicsScene::removeItem(QGraphicsItem* item) --mItemCount; mFastAccessItems.removeAll(item); + + if (group) + { + if (group->childItems().empty()) + { + group->Delegate()->remove(); + UBCoreGraphicsScene::removeItemFromDeletion(group); + } + } } void UBGraphicsScene::removeItems(const QSet& items) From e232bbc9009e107796114da3aabd2d3ef0ae1e7e Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Mon, 3 Sep 2012 21:49:05 +0300 Subject: [PATCH 47/55] Some changes crash related --- src/domain/UBGraphicsScene.cpp | 29 +++++++++++++++++--------- src/frameworks/UBCoreGraphicsScene.cpp | 1 + 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 0f3ecc17..d5eb8d36 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1099,6 +1099,11 @@ void UBGraphicsScene::clearItemsAndAnnotations() setDocumentUpdated(); } +bool isService(QGraphicsItem *item) { + return (item->type() == UBGraphicsDelegateFrame::Type) + || (item->parentItem() && item->parentItem()->Type == UBGraphicsDelegateFrame::Type); +} + void UBGraphicsScene::clearItems() { deselectAllItems(); @@ -1113,9 +1118,13 @@ void UBGraphicsScene::clearItems() bool isPolygon = qgraphicsitem_cast(item) != NULL; bool isStrokesGroup = qgraphicsitem_cast(item) != NULL; - if(!isGroup && !isPolygon && !isStrokesGroup && !mTools.contains(item) && !isBackgroundObject(item)) - { + bool inGroup = (item->parentItem() + && (item->parentItem()->type() == UBGraphicsGroupContainerItem::Type)); + + if(!isGroup && !isPolygon && !isStrokesGroup && !mTools.contains(item) && !isBackgroundObject(item)) { removeItem(item); + } + if (!inGroup || !isService(item)) { removedItems << item; } } @@ -1611,14 +1620,14 @@ void UBGraphicsScene::removeItem(QGraphicsItem* item) mFastAccessItems.removeAll(item); - if (group) - { - if (group->childItems().empty()) - { - group->Delegate()->remove(); - UBCoreGraphicsScene::removeItemFromDeletion(group); - } - } +// if (group) +// { +// if (group->childItems().empty()) +// { +// group->Delegate()->remove(); +// UBCoreGraphicsScene::removeItemFromDeletion(group); +// } +// } } void UBGraphicsScene::removeItems(const QSet& items) diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index b39eef0d..28dd6a9f 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -73,6 +73,7 @@ void UBCoreGraphicsScene::removeItem(QGraphicsItem* item, bool forceDelete) QGraphicsScene::removeItem(item); if (forceDelete) { + qDebug() << "force delete is " << forceDelete; deleteItem(item); } setModified(true); From a3be61c15b7886a4d434e6715dc58c158c976742 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Tue, 4 Sep 2012 13:00:35 +0300 Subject: [PATCH 48/55] Keyboard under MAX 10.7 --- src/gui/UBKeyboardPalette.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/UBKeyboardPalette.cpp b/src/gui/UBKeyboardPalette.cpp index 3f1fe242..2a496526 100644 --- a/src/gui/UBKeyboardPalette.cpp +++ b/src/gui/UBKeyboardPalette.cpp @@ -60,7 +60,10 @@ UBKeyboardPalette::UBKeyboardPalette(QWidget *parent) createCtrlButtons(); nCurrentLocale = UBSettings::settings()->KeyboardLocale->get().toInt(); - setInput(locales[nCurrentLocale]); + if (nCurrentLocale < 0 || nCurrentLocale >= nLocalesCount) + nCurrentLocale = 0; + if (locales!=NULL) + setInput(locales[nCurrentLocale]); setContentsMargins( 22, 22, 22, 22 ); From a8fadf639e85f54d22196bdb26e1a9195661c663 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Tue, 4 Sep 2012 13:29:08 +0300 Subject: [PATCH 49/55] Frame shows rotation angle at mouse press to rotation area. --- src/domain/UBGraphicsDelegateFrame.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/UBGraphicsDelegateFrame.cpp b/src/domain/UBGraphicsDelegateFrame.cpp index a2da072a..de40ab43 100644 --- a/src/domain/UBGraphicsDelegateFrame.cpp +++ b/src/domain/UBGraphicsDelegateFrame.cpp @@ -226,7 +226,7 @@ void UBGraphicsDelegateFrame::mousePressEvent(QGraphicsSceneMouseEvent *event) mInitialTransform = buildTransform(); mCurrentTool = toolFromPos(event->pos()); - setCursorFromAngle(QString("")); + setCursorFromAngle(QString::number((int)mAngle % 360)); event->accept(); prepareFramesToMove(getLinkedFrames()); From eb53715d6c51cb646d8ddce5f3e11327b135d27a Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Tue, 4 Sep 2012 15:28:41 +0300 Subject: [PATCH 50/55] Eraising elements --- src/api/UBWidgetUniboardAPI.cpp | 2 +- src/board/UBBoardController.cpp | 8 +- src/desktop/UBDesktopAnnotationController.cpp | 2 +- src/domain/UBGraphicsGroupContainerItem.cpp | 5 +- src/domain/UBGraphicsItemDelegate.cpp | 19 ++- src/domain/UBGraphicsItemDelegate.h | 1 + src/domain/UBGraphicsScene.cpp | 152 ++++++------------ src/domain/UBGraphicsScene.h | 12 +- src/domain/UBGraphicsTextItemDelegate.cpp | 9 +- src/domain/UBGraphicsTextItemDelegate.h | 1 + src/domain/UBItem.cpp | 43 +++++ src/domain/UBItem.h | 1 + 12 files changed, 136 insertions(+), 119 deletions(-) diff --git a/src/api/UBWidgetUniboardAPI.cpp b/src/api/UBWidgetUniboardAPI.cpp index 0e2a54f1..b86e7aa1 100644 --- a/src/api/UBWidgetUniboardAPI.cpp +++ b/src/api/UBWidgetUniboardAPI.cpp @@ -250,7 +250,7 @@ void UBWidgetUniboardAPI::eraseLineTo(const qreal x, const qreal y, const qreal void UBWidgetUniboardAPI::clear() { if (mScene) - mScene->clearItemsAndAnnotations(); + mScene->clearContent(UBGraphicsScene::clearItemsAndAnnotations); } diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index a9600ab6..ea627e3f 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -683,7 +683,7 @@ void UBBoardController::clearScene() if (mActiveScene) { freezeW3CWidgets(true); - mActiveScene->clearItemsAndAnnotations(); + mActiveScene->clearContent(UBGraphicsScene::clearItemsAndAnnotations); updateActionStates(); } } @@ -694,7 +694,7 @@ void UBBoardController::clearSceneItems() if (mActiveScene) { freezeW3CWidgets(true); - mActiveScene->clearItems(); + mActiveScene->clearContent(UBGraphicsScene::clearItems); updateActionStates(); } } @@ -704,7 +704,7 @@ void UBBoardController::clearSceneAnnotation() { if (mActiveScene) { - mActiveScene->clearAnnotations(); + mActiveScene->clearContent(UBGraphicsScene::clearAnnotations); updateActionStates(); } } @@ -713,7 +713,7 @@ void UBBoardController::clearSceneBackground() { if (mActiveScene) { - mActiveScene->clearBackground(); + mActiveScene->clearContent(UBGraphicsScene::clearBackground); updateActionStates(); } } diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index e86dca46..b95b433d 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -274,7 +274,7 @@ void UBDesktopAnnotationController::eraseDesktopAnnotations() { if (mTransparentDrawingScene) { - mTransparentDrawingScene->clearAnnotations(); + mTransparentDrawingScene->clearContent(UBGraphicsScene::clearAnnotations); } } diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index 95b95af3..818eb88e 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -78,7 +78,10 @@ void UBGraphicsGroupContainerItem::addToGroup(QGraphicsItem *item) QTransform newItemTransform(itemTransform); item->setPos(mapFromItem(item, 0, 0)); - item->scene()->removeItem(item); + if (item->scene()) { + item->scene()->removeItem(item); + } + if (corescene()) corescene()->removeItemFromDeletion(item); item->setParentItem(this); diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 6c0349e4..d5620d12 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -387,12 +387,25 @@ void UBGraphicsItemDelegate::remove(bool canUndo) UBGraphicsScene* scene = dynamic_cast(mDelegated->scene()); if (scene) { - foreach(DelegateButton* button, mButtons) - scene->removeItem(button); +// bool shownOnDisplay = mDelegated->data(UBGraphicsItemData::ItemLayerType).toInt() != UBItemLayerType::Control; +// showHide(shownOnDisplay); +// updateFrame(); +// updateButtons(); + + if (mFrame && !mFrame->scene() && mDelegated->scene()) + { + mDelegated->scene()->addItem(mFrame); + } + mFrame->setAntiScale(mAntiScaleRatio); + mFrame->positionHandles(); + updateButtons(true); + foreach(DelegateButton* button, mButtons) { + scene->removeItem(button); + } scene->removeItem(mFrame); - /* this is performed because when removing delegated from scene while it contains flash content, segfault happens because of QGraphicsScene::removeItem() */ + /* this is performed because when removing delegated from scene while it contains flash content, segfault happens because of QGraphicsScene::removeItem() */ UBGraphicsWebView *mDelegated_casted = dynamic_cast(mDelegated); if (mDelegated_casted) mDelegated_casted->setHtml(QString()); diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index c782c94b..01ef854b 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -244,6 +244,7 @@ class UBGraphicsItemDelegate : public QObject UBGraphicsToolBarItem* getToolBarItem() const { return mToolBarItem; } qreal antiScaleRatio() const { return mAntiScaleRatio; } + virtual void update() {positionHandles();} signals: void showOnDisplayChanged(bool shown); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index d5eb8d36..c60257ab 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1071,115 +1071,72 @@ UBItem* UBGraphicsScene::deepCopy() const return sceneDeepCopy(); } -void UBGraphicsScene::clearItemsAndAnnotations() +void UBGraphicsScene::clearContent(clearCase pCase) { - deselectAllItems(); - - QSet emptyList; - QSet removedItems; - - QList sceneItems = items(); - foreach(QGraphicsItem* item, sceneItems) - { - if(!mTools.contains(item) && !isBackgroundObject(item)) - { - removeItem(item); - removedItems << item; - } - } - - // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint - update(sceneRect()); - - if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); - } - - setDocumentUpdated(); -} - -bool isService(QGraphicsItem *item) { - return (item->type() == UBGraphicsDelegateFrame::Type) - || (item->parentItem() && item->parentItem()->Type == UBGraphicsDelegateFrame::Type); -} - -void UBGraphicsScene::clearItems() -{ - deselectAllItems(); - - QSet emptyList; QSet removedItems; - QList sceneItems = items(); - foreach(QGraphicsItem* item, sceneItems) - { - bool isGroup = qgraphicsitem_cast(item) != NULL; - bool isPolygon = qgraphicsitem_cast(item) != NULL; - bool isStrokesGroup = qgraphicsitem_cast(item) != NULL; - - bool inGroup = (item->parentItem() - && (item->parentItem()->type() == UBGraphicsGroupContainerItem::Type)); - - if(!isGroup && !isPolygon && !isStrokesGroup && !mTools.contains(item) && !isBackgroundObject(item)) { - removeItem(item); - } - if (!inGroup || !isService(item)) { - removedItems << item; - } - } - - // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint - update(sceneRect()); - - - if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); - } + switch (pCase) { + case clearBackground : + removeItem(mBackgroundObject); + removedItems << mBackgroundObject; + break; + + case clearItemsAndAnnotations : + case clearItems : + case clearAnnotations : + foreach(QGraphicsItem* item, items()) { + + bool isGroup = item->type() == UBGraphicsGroupContainerItem::Type; + bool isStrokesGroup = item->type() == UBGraphicsStrokesGroup::Type; + + UBGraphicsGroupContainerItem *itemGroup = item->parentItem() + ? qgraphicsitem_cast(item->parentItem()) + : 0; + UBGraphicsItemDelegate *curDelegate = UBGraphicsItem::Delegate(item); + if (!curDelegate) { + continue; + } - setDocumentUpdated(); -} + bool shouldDelete = false; + switch (static_cast(pCase)) { + case clearAnnotations : + shouldDelete = isStrokesGroup; + break; + case clearItems : + shouldDelete = !isGroup && !isBackgroundObject(item) && !isStrokesGroup; + break; + case clearItemsAndAnnotations: + shouldDelete = !isGroup && !isBackgroundObject(item); + break; + } -void UBGraphicsScene::clearAnnotations() -{ - QSet emptyList; - QSet removedItems; + if(shouldDelete) { + if (itemGroup) { + itemGroup->removeFromGroup(item); + if (itemGroup->childItems().count() == 1) { + itemGroup->destroy(); + } + itemGroup->Delegate()->update(); + } - QList sceneItems = items(); - foreach(QGraphicsItem* item, sceneItems) - { - UBGraphicsStrokesGroup* pi = qgraphicsitem_cast(item); - if (pi) - { - removeItem(item); - removedItems << item; + curDelegate->remove(false); + removedItems << item; + } } + break; } // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, QSet()); UBApplication::undoStack->push(uc); } - setDocumentUpdated(); -} - -void UBGraphicsScene::clearBackground() -{ - if(mBackgroundObject){ - removeItem(mBackgroundObject); - - if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, mBackgroundObject, NULL); - UBApplication::undoStack->push(uc); - } + if (pCase == clearBackground) { mBackgroundObject = 0; } - update(sceneRect()); setDocumentUpdated(); } @@ -1373,8 +1330,8 @@ UBGraphicsW3CWidgetItem* UBGraphicsScene::addOEmbed(const QUrl& pContentUrl, con UBGraphicsGroupContainerItem *UBGraphicsScene::createGroup(QList items) { UBGraphicsGroupContainerItem *groupItem = new UBGraphicsGroupContainerItem(); - addItem(groupItem); + addItem(groupItem); foreach (QGraphicsItem *item, items) { if (item->type() == UBGraphicsGroupContainerItem::Type) { QList childItems = item->childItems(); @@ -1609,8 +1566,6 @@ void UBGraphicsScene::addItems(const QSet& items) void UBGraphicsScene::removeItem(QGraphicsItem* item) { - UBGraphicsGroupContainerItem* group = qgraphicsitem_cast(item->parentItem()); - item->setSelected(false); UBCoreGraphicsScene::removeItem(item); UBApplication::boardController->freezeW3CWidget(item, true); @@ -1619,15 +1574,6 @@ void UBGraphicsScene::removeItem(QGraphicsItem* item) --mItemCount; mFastAccessItems.removeAll(item); - -// if (group) -// { -// if (group->childItems().empty()) -// { -// group->Delegate()->remove(); -// UBCoreGraphicsScene::removeItemFromDeletion(group); -// } -// } } void UBGraphicsScene::removeItems(const QSet& items) diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index 6f8c8def..0dedb9c1 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -101,6 +101,13 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem public: + enum clearCase { + clearItemsAndAnnotations = 0 + , clearAnnotations + , clearItems + , clearBackground + }; + // tmp stub for divide addings scene objects from undo mechanism implementation void setURStackEnable(bool set = true) {enableUndoRedoStack = set;} bool isURStackIsEnabled(){ return enableUndoRedoStack;} @@ -114,10 +121,7 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem UBGraphicsScene* sceneDeepCopy() const; - void clearItemsAndAnnotations(); - void clearItems(); - void clearAnnotations(); - void clearBackground(); + void clearContent(clearCase pCase = clearItemsAndAnnotations); bool inputDevicePress(const QPointF& scenePos, const qreal& pressure = 1.0); bool inputDeviceMove(const QPointF& scenePos, const qreal& pressure = 1.0); diff --git a/src/domain/UBGraphicsTextItemDelegate.cpp b/src/domain/UBGraphicsTextItemDelegate.cpp index 6e7e730e..9f7b5fdb 100644 --- a/src/domain/UBGraphicsTextItemDelegate.cpp +++ b/src/domain/UBGraphicsTextItemDelegate.cpp @@ -263,6 +263,11 @@ void UBGraphicsTextItemDelegate::setEditable(bool editable) mDelegated->setData(UBGraphicsItemData::ItemEditable, QVariant(false)); } } +void UBGraphicsTextItemDelegate::remove(bool canUndo) +{ + UBGraphicsItemDelegate::remove(canUndo); +} + bool UBGraphicsTextItemDelegate::isEditable() { return mDelegated->data(UBGraphicsItemData::ItemEditable).toBool(); @@ -419,8 +424,8 @@ QVariant UBGraphicsTextItemDelegate::itemChange(QGraphicsItem::GraphicsItemChang QTextCursor c = delegated()->textCursor(); if (c.hasSelection()) { - c.clearSelection(); - delegated()->setTextCursor(c); + c.clearSelection(); + delegated()->setTextCursor(c); } } } diff --git a/src/domain/UBGraphicsTextItemDelegate.h b/src/domain/UBGraphicsTextItemDelegate.h index 26b3ba9b..2cf6f447 100644 --- a/src/domain/UBGraphicsTextItemDelegate.h +++ b/src/domain/UBGraphicsTextItemDelegate.h @@ -46,6 +46,7 @@ class UBGraphicsTextItemDelegate : public UBGraphicsItemDelegate public slots: void contentsChanged(); virtual void setEditable(bool); + virtual void remove(bool canUndo); protected: virtual void buildButtons(); diff --git a/src/domain/UBItem.cpp b/src/domain/UBItem.cpp index 9d999a94..10d3d6ce 100644 --- a/src/domain/UBItem.cpp +++ b/src/domain/UBItem.cpp @@ -17,6 +17,15 @@ #include "core/memcheck.h" +#include "domain/UBGraphicsPixmapItem.h" +#include "domain/UBGraphicsTextItem.h" +#include "domain/UBGraphicsSvgItem.h" +#include "domain/UBGraphicsMediaItem.h" +#include "domain/UBGraphicsStrokesGroup.h" +#include "domain/UBGraphicsGroupContainerItem.h" +#include "domain/UBGraphicsWidgetItem.h" +#include "tools/UBGraphicsCurtainItem.h" + UBItem::UBItem() : mUuid(QUuid()) , mRenderingQuality(UBItem::RenderingQualityNormal) @@ -44,3 +53,37 @@ bool UBGraphicsItem::isRotatable(QGraphicsItem *item) { return item->data(UBGraphicsItemData::ItemRotatable).toBool(); } + +UBGraphicsItemDelegate *UBGraphicsItem::Delegate(QGraphicsItem *pItem) +{ + UBGraphicsItemDelegate *result = 0; + + switch (static_cast(pItem->type())) { + case UBGraphicsPixmapItem::Type : + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsTextItem::Type : + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsSvgItem::Type : + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsMediaItem::Type: + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsStrokesGroup::Type : + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsGroupContainerItem::Type : + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsWidgetItem::Type : + result = (static_cast(pItem))->Delegate(); + break; + case UBGraphicsCurtainItem::Type : + result = (static_cast(pItem))->Delegate(); + break; + } + + return result; +} diff --git a/src/domain/UBItem.h b/src/domain/UBItem.h index 99c3e6a6..ca8a0f3b 100644 --- a/src/domain/UBItem.h +++ b/src/domain/UBItem.h @@ -108,6 +108,7 @@ public: static bool isRotatable(QGraphicsItem *item); static bool isFlippable(QGraphicsItem *item); + static UBGraphicsItemDelegate *Delegate(QGraphicsItem *pItem); virtual UBGraphicsItemDelegate *Delegate() const = 0; virtual void remove() = 0; From 5f30e45d97918a8b006ed3c6f97588f2b49aef8f Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Tue, 4 Sep 2012 17:53:33 +0300 Subject: [PATCH 51/55] SANKORE-523 Changing the languages of the virtual keyboard crashes the software --- src/frameworks/UBPlatformUtils_mac.mm | 5 +++++ src/gui/UBKeyboardPalette_mac.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/src/frameworks/UBPlatformUtils_mac.mm b/src/frameworks/UBPlatformUtils_mac.mm index 66191a95..d62e9f2e 100644 --- a/src/frameworks/UBPlatformUtils_mac.mm +++ b/src/frameworks/UBPlatformUtils_mac.mm @@ -440,6 +440,9 @@ void UBPlatformUtils::initializeKeyboardLayouts() int count = CFArrayGetCount(kbds); QList result; + qDebug() << "initializeKeyboardLayouts"; + qDebug() << "Found system locales: " << count; + for(int i=0; i Date: Tue, 4 Sep 2012 18:04:18 +0300 Subject: [PATCH 52/55] SANKORE-523 Changing the languages of the virtual keyboard crashes the software --- src/frameworks/UBPlatformUtils.h | 40 ++++++++++++++---------- src/frameworks/UBPlatformUtils_linux.cpp | 10 +++--- src/frameworks/UBPlatformUtils_win.cpp | 15 ++++++--- 3 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/frameworks/UBPlatformUtils.h b/src/frameworks/UBPlatformUtils.h index ebac3995..29af417e 100644 --- a/src/frameworks/UBPlatformUtils.h +++ b/src/frameworks/UBPlatformUtils.h @@ -19,6 +19,11 @@ #include #include +#ifdef Q_WS_MACX + #import +#endif + + class QMainWindow; #define SYMBOL_KEYS_COUNT 47 @@ -125,28 +130,31 @@ struct KEYBT class UBKeyboardLocale { public: - UBKeyboardLocale(const QString& _fullName, - const QString& _name, - const QString& _id, - QIcon* _icon, - KEYBT** _symbols) - :fullName(_fullName),name(_name), id(_id), icon(_icon), - constSymbols(NULL), varSymbols(_symbols) - {} - UBKeyboardLocale(const QString& _fullName, - const QString& _name, - const QString& _id, - QIcon* _icon, - KEYBT _symbols[]) - :fullName(_fullName),name(_name), id(_id), icon(_icon), + #ifdef Q_WS_MACX + UBKeyboardLocale(const QString& _fullName, + const QString& _name, + TISInputSourceRef _tisInputSourceRef, + QIcon* _icon, + KEYBT** _symbols) + :fullName(_fullName),name(_name), tisInputSourceRef(_tisInputSourceRef), + icon(_icon),constSymbols(NULL), varSymbols(_symbols) + {} + + TISInputSourceRef tisInputSourceRef; + #else + UBKeyboardLocale(const QString& _fullName, + const QString& _name, + QIcon* _icon, + KEYBT _symbols[]) + :fullName(_fullName),name(_name), icon(_icon), constSymbols(_symbols), varSymbols(NULL) - {} + {} + #endif ~UBKeyboardLocale(); const QString fullName; const QString name; - const QString id; QIcon* icon; KEYBT* operator[] (int index) const { diff --git a/src/frameworks/UBPlatformUtils_linux.cpp b/src/frameworks/UBPlatformUtils_linux.cpp index 8c10c4c9..411d812a 100644 --- a/src/frameworks/UBPlatformUtils_linux.cpp +++ b/src/frameworks/UBPlatformUtils_linux.cpp @@ -399,11 +399,11 @@ void UBPlatformUtils::initializeKeyboardLayouts() { nKeyboardLayouts = 5; keyboardLayouts = new UBKeyboardLocale*[nKeyboardLayouts]; - keyboardLayouts[0] = new UBKeyboardLocale(tr("English"), "en", "", new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); - keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", "", new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); - keyboardLayouts[2] = new UBKeyboardLocale(tr("German"), "de", "", new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); - keyboardLayouts[3] = new UBKeyboardLocale(tr("French"), "fr", "", new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); - keyboardLayouts[4] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", "", new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); + keyboardLayouts[0] = new UBKeyboardLocale(tr("English"), "en", new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); + keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); + keyboardLayouts[2] = new UBKeyboardLocale(tr("German"), "de", new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); + keyboardLayouts[3] = new UBKeyboardLocale(tr("French"), "fr", new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); + keyboardLayouts[4] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); } void UBPlatformUtils::destroyKeyboardLayouts() diff --git a/src/frameworks/UBPlatformUtils_win.cpp b/src/frameworks/UBPlatformUtils_win.cpp index 95a6970e..f7c67f8b 100644 --- a/src/frameworks/UBPlatformUtils_win.cpp +++ b/src/frameworks/UBPlatformUtils_win.cpp @@ -407,11 +407,16 @@ void UBPlatformUtils::initializeKeyboardLayouts() { nKeyboardLayouts = 5; keyboardLayouts = new UBKeyboardLocale*[nKeyboardLayouts]; - keyboardLayouts[0] = new UBKeyboardLocale(tr("English"), "en", "", new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); - keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", "", new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); - keyboardLayouts[2] = new UBKeyboardLocale(tr("French"), "fr", "", new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); - keyboardLayouts[3] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", "", new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); - keyboardLayouts[4] = new UBKeyboardLocale(tr("German"), "de", "", new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); + keyboardLayouts[0] = new UBKeyboardLocale(tr("English"),"en", + new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); + keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", + new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); + keyboardLayouts[2] = new UBKeyboardLocale(tr("French"), "fr", + new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); + keyboardLayouts[3] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", + new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); + keyboardLayouts[4] = new UBKeyboardLocale(tr("German"), "de", + new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); } void UBPlatformUtils::destroyKeyboardLayouts() From 34c6aa28a98b2adef9f35681f0e5fea4908c9341 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Tue, 4 Sep 2012 19:58:18 +0300 Subject: [PATCH 53/55] Reversed changed... --- src/frameworks/UBPlatformUtils.h | 40 ++++++++++-------------- src/frameworks/UBPlatformUtils_linux.cpp | 10 +++--- src/frameworks/UBPlatformUtils_win.cpp | 15 +++------ 3 files changed, 26 insertions(+), 39 deletions(-) diff --git a/src/frameworks/UBPlatformUtils.h b/src/frameworks/UBPlatformUtils.h index 29af417e..ebac3995 100644 --- a/src/frameworks/UBPlatformUtils.h +++ b/src/frameworks/UBPlatformUtils.h @@ -19,11 +19,6 @@ #include #include -#ifdef Q_WS_MACX - #import -#endif - - class QMainWindow; #define SYMBOL_KEYS_COUNT 47 @@ -130,31 +125,28 @@ struct KEYBT class UBKeyboardLocale { public: - #ifdef Q_WS_MACX - UBKeyboardLocale(const QString& _fullName, - const QString& _name, - TISInputSourceRef _tisInputSourceRef, - QIcon* _icon, - KEYBT** _symbols) - :fullName(_fullName),name(_name), tisInputSourceRef(_tisInputSourceRef), - icon(_icon),constSymbols(NULL), varSymbols(_symbols) - {} - - TISInputSourceRef tisInputSourceRef; - #else - UBKeyboardLocale(const QString& _fullName, - const QString& _name, - QIcon* _icon, - KEYBT _symbols[]) - :fullName(_fullName),name(_name), icon(_icon), + UBKeyboardLocale(const QString& _fullName, + const QString& _name, + const QString& _id, + QIcon* _icon, + KEYBT** _symbols) + :fullName(_fullName),name(_name), id(_id), icon(_icon), + constSymbols(NULL), varSymbols(_symbols) + {} + UBKeyboardLocale(const QString& _fullName, + const QString& _name, + const QString& _id, + QIcon* _icon, + KEYBT _symbols[]) + :fullName(_fullName),name(_name), id(_id), icon(_icon), constSymbols(_symbols), varSymbols(NULL) - {} - #endif + {} ~UBKeyboardLocale(); const QString fullName; const QString name; + const QString id; QIcon* icon; KEYBT* operator[] (int index) const { diff --git a/src/frameworks/UBPlatformUtils_linux.cpp b/src/frameworks/UBPlatformUtils_linux.cpp index 411d812a..8c10c4c9 100644 --- a/src/frameworks/UBPlatformUtils_linux.cpp +++ b/src/frameworks/UBPlatformUtils_linux.cpp @@ -399,11 +399,11 @@ void UBPlatformUtils::initializeKeyboardLayouts() { nKeyboardLayouts = 5; keyboardLayouts = new UBKeyboardLocale*[nKeyboardLayouts]; - keyboardLayouts[0] = new UBKeyboardLocale(tr("English"), "en", new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); - keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); - keyboardLayouts[2] = new UBKeyboardLocale(tr("German"), "de", new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); - keyboardLayouts[3] = new UBKeyboardLocale(tr("French"), "fr", new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); - keyboardLayouts[4] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); + keyboardLayouts[0] = new UBKeyboardLocale(tr("English"), "en", "", new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); + keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", "", new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); + keyboardLayouts[2] = new UBKeyboardLocale(tr("German"), "de", "", new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); + keyboardLayouts[3] = new UBKeyboardLocale(tr("French"), "fr", "", new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); + keyboardLayouts[4] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", "", new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); } void UBPlatformUtils::destroyKeyboardLayouts() diff --git a/src/frameworks/UBPlatformUtils_win.cpp b/src/frameworks/UBPlatformUtils_win.cpp index f7c67f8b..95a6970e 100644 --- a/src/frameworks/UBPlatformUtils_win.cpp +++ b/src/frameworks/UBPlatformUtils_win.cpp @@ -407,16 +407,11 @@ void UBPlatformUtils::initializeKeyboardLayouts() { nKeyboardLayouts = 5; keyboardLayouts = new UBKeyboardLocale*[nKeyboardLayouts]; - keyboardLayouts[0] = new UBKeyboardLocale(tr("English"),"en", - new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); - keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", - new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); - keyboardLayouts[2] = new UBKeyboardLocale(tr("French"), "fr", - new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); - keyboardLayouts[3] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", - new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); - keyboardLayouts[4] = new UBKeyboardLocale(tr("German"), "de", - new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); + keyboardLayouts[0] = new UBKeyboardLocale(tr("English"), "en", "", new QIcon(":/images/flags/en.png"), ENGLISH_LOCALE); + keyboardLayouts[1] = new UBKeyboardLocale(tr("Russian"), "ru", "", new QIcon(":/images/flags/ru.png"),RUSSIAN_LOCALE); + keyboardLayouts[2] = new UBKeyboardLocale(tr("French"), "fr", "", new QIcon(":/images/flags/fr.png"), FRENCH_LOCALE); + keyboardLayouts[3] = new UBKeyboardLocale(tr("Swiss French"), "fr-CH", "", new QIcon(":/images/flags/fr.png"), SWISS_FRENCH_LOCALE); + keyboardLayouts[4] = new UBKeyboardLocale(tr("German"), "de", "", new QIcon(":/images/flags/de.png"), GERMAN_LOCALE); } void UBPlatformUtils::destroyKeyboardLayouts() From ff6332a66f71cdc4379e2233243848cc521a876c Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Wed, 5 Sep 2012 12:34:04 +0300 Subject: [PATCH 54/55] Virtual Keyboard under Mac OS 10.7: switching locales --- src/frameworks/UBPlatformUtils.h | 5 +++++ src/frameworks/UBPlatformUtils_mac.mm | 25 +++++++++++++++++++++++++ src/gui/UBKeyboardPalette_mac.cpp | 19 +------------------ 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/frameworks/UBPlatformUtils.h b/src/frameworks/UBPlatformUtils.h index ebac3995..46acb6f6 100644 --- a/src/frameworks/UBPlatformUtils.h +++ b/src/frameworks/UBPlatformUtils.h @@ -171,6 +171,7 @@ class UBPlatformUtils static int nKeyboardLayouts; static UBKeyboardLocale** keyboardLayouts; + public: static void init(); static void destroy(); @@ -192,6 +193,10 @@ public: static UBKeyboardLocale** getKeyboardLayouts(int& nCount); static QString urlFromClipboard(); static QStringList availableTranslations(); + +#ifdef Q_WS_MAC + static void SetMacLocaleByIdentifier(const QString& id); +#endif }; diff --git a/src/frameworks/UBPlatformUtils_mac.mm b/src/frameworks/UBPlatformUtils_mac.mm index d62e9f2e..72dcb75c 100644 --- a/src/frameworks/UBPlatformUtils_mac.mm +++ b/src/frameworks/UBPlatformUtils_mac.mm @@ -570,3 +570,28 @@ QString UBPlatformUtils::urlFromClipboard() */ return qsRet; } + + +void UBPlatformUtils::SetMacLocaleByIdentifier(const QString& id) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + const char * strName = id.toAscii().data(); + + CFStringRef iName = CFStringCreateWithCString(NULL, strName, kCFStringEncodingMacRoman ); + + CFStringRef keys[] = { kTISPropertyInputSourceCategory, kTISPropertyInputSourceID }; + CFStringRef values[] = { kTISCategoryKeyboardInputSource, iName }; + CFDictionaryRef dict = CFDictionaryCreate(NULL, (const void **)keys, (const void **)values, 2, NULL, NULL); + CFArrayRef kbds = TISCreateInputSourceList(dict, true); + if (kbds!=NULL) + { + if (CFArrayGetCount(kbds)!=0) + { + TISInputSourceRef klRef = (TISInputSourceRef)CFArrayGetValueAtIndex(kbds, 0); + if (klRef!=NULL) + TISSelectInputSource(klRef); + } + } + [pool drain]; +} diff --git a/src/gui/UBKeyboardPalette_mac.cpp b/src/gui/UBKeyboardPalette_mac.cpp index a8ca7c72..79e48e36 100644 --- a/src/gui/UBKeyboardPalette_mac.cpp +++ b/src/gui/UBKeyboardPalette_mac.cpp @@ -57,23 +57,6 @@ void UBKeyboardPalette::createCtrlButtons() ctrlButtons[8] = new UBLocaleButton(this); } -void SetMacLocaleByIdentifier(const QString& id) -{ - const char * strName = id.toAscii().data(); - - CFStringRef iName = CFStringCreateWithCString(NULL, strName, kCFStringEncodingMacRoman ); - - CFStringRef keys[] = { kTISPropertyInputSourceCategory, kTISPropertyInputSourceID }; - CFStringRef values[] = { kTISCategoryKeyboardInputSource, iName }; - CFDictionaryRef dict = CFDictionaryCreate(NULL, (const void **)keys, (const void **)values, 2, NULL, NULL); - CFArrayRef kbds = TISCreateInputSourceList(dict, true); - if (CFArrayGetCount(kbds)!=0) - { - TISInputSourceRef klRef = (TISInputSourceRef)CFArrayGetValueAtIndex(kbds, 0); - if (klRef!=NULL) - TISSelectInputSource(klRef); - } -} void UBKeyboardPalette::checkLayout() @@ -108,6 +91,6 @@ void UBKeyboardPalette::onActivated(bool) void UBKeyboardPalette::onLocaleChanged(UBKeyboardLocale* locale) { - SetMacLocaleByIdentifier(locale->id); + UBPlatformUtils::SetMacLocaleByIdentifier(locale->id); } From 938fb11ec8048086550d401cf62b5a30febbfb00 Mon Sep 17 00:00:00 2001 From: bmagnin Date: Wed, 5 Sep 2012 14:52:50 +0200 Subject: [PATCH 55/55] Wording in french for inter activities --- .../interactivities/Calcul.wgt/i18n/Messages_fr.properties | 6 +++--- .../interactivities/Des.wgt/i18n/Messages_fr.properties | 6 +++--- .../Enveloppe.wgt/i18n/Messages_fr.properties | 6 +++--- .../interactivities/Memory.wgt/i18n/Messages_fr.properties | 6 +++--- .../Selectionner.wgt/locales/fr/js/script.js | 2 +- .../interactivities/Tables.wgt/i18n/Messages_fr.properties | 6 +++--- .../interactivities/Train.wgt/i18n/Messages_fr.properties | 6 +++--- .../Transformation.wgt/i18n/Messages_fr.properties | 6 +++--- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/resources/library/interactivities/Calcul.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Calcul.wgt/i18n/Messages_fr.properties index 42cae735..f89c9066 100644 --- a/resources/library/interactivities/Calcul.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Calcul.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Calcul rapide -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Editer fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun diff --git a/resources/library/interactivities/Des.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Des.wgt/i18n/Messages_fr.properties index 02bef45e..cdc4fe70 100644 --- a/resources/library/interactivities/Des.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Des.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Dés -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Afficher fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun diff --git a/resources/library/interactivities/Enveloppe.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Enveloppe.wgt/i18n/Messages_fr.properties index 085ce522..131cc892 100644 --- a/resources/library/interactivities/Enveloppe.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Enveloppe.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Enveloppe -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Afficher fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun diff --git a/resources/library/interactivities/Memory.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Memory.wgt/i18n/Messages_fr.properties index 8054dd1c..3b35c9c6 100644 --- a/resources/library/interactivities/Memory.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Memory.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Memory -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Afficher fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun diff --git a/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js b/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js index 465f601e..b37fdee6 100644 --- a/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js +++ b/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js @@ -3,7 +3,7 @@ var sankoreLang = { edit: "Modifier", short_desc: "Sélectionner les animaux dans la liste suivante :", add: "Nouveau bloc", - enter: "Saisir votre consigne ici ...", + enter: "Texte", cat: "chat", ball: "balle", shovel: "pelle", diff --git a/resources/library/interactivities/Tables.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Tables.wgt/i18n/Messages_fr.properties index 27f9bd5d..9019424a 100644 --- a/resources/library/interactivities/Tables.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Tables.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Tables -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Afficher fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun diff --git a/resources/library/interactivities/Train.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Train.wgt/i18n/Messages_fr.properties index 4f34d08f..f9046ee8 100644 --- a/resources/library/interactivities/Train.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Train.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Le train -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Afficher fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun diff --git a/resources/library/interactivities/Transformation.wgt/i18n/Messages_fr.properties b/resources/library/interactivities/Transformation.wgt/i18n/Messages_fr.properties index a1de3815..19e73785 100644 --- a/resources/library/interactivities/Transformation.wgt/i18n/Messages_fr.properties +++ b/resources/library/interactivities/Transformation.wgt/i18n/Messages_fr.properties @@ -1,11 +1,11 @@ fr.njin.i18n.document.title = Boîte à transformation -fr.njin.i18n.toolbar.edit = Editer -fr.njin.i18n.toolbar.view = Fermer +fr.njin.i18n.toolbar.edit = Modifier +fr.njin.i18n.toolbar.view = Afficher fr.njin.i18n.toolbar.reload = Recharger fr.njin.i18n.toolbar.help = Aide -fr.njin.i18n.parameters.label.themes = Thème +fr.njin.i18n.parameters.label.themes = Thèmes fr.njin.i18n.parameters.label.slate.themes = ardoise fr.njin.i18n.parameters.label.pad.themes = tablette fr.njin.i18n.parameters.label.none.themes = aucun

$wb%D9tr4LA-RZiZxhGBvB@#MfA*2 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 XS$Oh{!F)T*_tb-T+;RV&0|x&en?jvu delta 113438 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