diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro
index b5b94230..57aa32a3 100644
--- a/Sankore_3.1.pro
+++ b/Sankore_3.1.pro
@@ -65,7 +65,6 @@ FORMS += resources/forms/mainWindow.ui \
resources/forms/preferences.ui \
resources/forms/brushProperties.ui \
resources/forms/documents.ui \
- resources/forms/library.ui \
resources/forms/blackoutWidget.ui \
resources/forms/trapFlash.ui \
resources/forms/youTubePublishingDialog.ui \
diff --git a/resources/forms/library.ui b/resources/forms/library.ui
deleted file mode 100644
index 91aedd10..00000000
--- a/resources/forms/library.ui
+++ /dev/null
@@ -1,922 +0,0 @@
-
-
- library
-
-
-
- 0
- 0
- 961
- 550
-
-
-
-
- 0
- 0
-
-
-
- Qt::DefaultContextMenu
-
-
- Sankore Library
-
-
-
- 0
-
-
- 0
-
- -
-
-
- QFrame::NoFrame
-
-
- QFrame::Raised
-
-
- 0
-
-
-
-
-
-
- QTabWidget::Rounded
-
-
- 0
-
-
- Qt::ElideLeft
-
-
-
- Iteractive Models
-
-
-
-
-
-
- Qt::NoContextMenu
-
-
-
-
-
- QFrame::NoFrame
-
-
- 0
-
-
- Qt::ScrollBarAsNeeded
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QGraphicsView::NoDrag
-
-
-
-
-
-
-
- Applications
-
-
- -
-
-
-
- 0
- 0
-
-
-
- QFrame::Box
-
-
- QFrame::Plain
-
-
- 1
-
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
-
- QFrame::NoFrame
-
-
- QFrame::Plain
-
-
- 0
-
-
- QAbstractItemView::DropOnly
-
-
- QAbstractItemView::ScrollPerPixel
-
-
- 2
-
-
- true
-
-
- false
-
-
-
- 1
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 16777215
- 42
-
-
-
- New Folder
-
-
-
- :/images/toolbar/newFolder.png:/images/toolbar/newFolder.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextBesideIcon
-
-
- true
-
-
- Qt::NoArrow
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 16777215
- 42
-
-
-
- Import to Library
-
-
-
- :/images/toolbar/addInteractiveToLibrary.png:/images/toolbar/addInteractiveToLibrary.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextBesideIcon
-
-
- true
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
- Qt::NoContextMenu
-
-
-
-
-
- QFrame::NoFrame
-
-
- 0
-
-
- Qt::ScrollBarAsNeeded
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QGraphicsView::NoDrag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Images
-
-
- -
-
-
-
- 0
- 0
-
-
-
- QFrame::Box
-
-
- QFrame::Plain
-
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
-
- QFrame::NoFrame
-
-
- QFrame::Plain
-
-
- 0
-
-
- QAbstractItemView::ScrollPerPixel
-
-
- 2
-
-
- true
-
-
- false
-
-
-
- 1
-
-
-
-
- -
-
-
-
- 1
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 16777215
- 42
-
-
-
- New Folder
-
-
-
- :/images/toolbar/newFolder.png:/images/toolbar/newFolder.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextBesideIcon
-
-
- true
-
-
-
- -
-
-
-
- 1
- 0
-
-
-
-
- 0
- 0
-
-
-
-
- 16777215
- 42
-
-
-
- Import to Library
-
-
-
- :/images/toolbar/addToLibrary.png:/images/toolbar/addToLibrary.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextBesideIcon
-
-
- true
-
-
-
-
-
-
- -
-
-
- 1
-
-
-
-
-
-
-
- Qt::NoContextMenu
-
-
-
-
-
- QFrame::NoFrame
-
-
- 0
-
-
- Qt::ScrollBarAsNeeded
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QGraphicsView::NoDrag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Movies
-
-
- -
-
-
-
- 0
- 0
-
-
-
- QFrame::Box
-
-
- QFrame::Plain
-
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
-
-
- QFrame::NoFrame
-
-
- QFrame::Plain
-
-
- 0
-
-
- QAbstractItemView::ScrollPerPixel
-
-
- 2
-
-
- true
-
-
- false
-
-
-
- 1
-
-
-
-
-
-
-
- -
-
-
- 0
-
-
-
-
-
-
-
- Qt::NoContextMenu
-
-
-
-
-
- QFrame::NoFrame
-
-
- 0
-
-
- Qt::ScrollBarAsNeeded
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QGraphicsView::NoDrag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Shapes
-
-
- -
-
-
- Qt::NoContextMenu
-
-
-
-
-
- QFrame::NoFrame
-
-
- QFrame::Plain
-
-
- 0
-
-
- Qt::ScrollBarAsNeeded
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QGraphicsView::NoDrag
-
-
-
-
-
-
-
- Sounds
-
-
- -
-
-
- Qt::NoContextMenu
-
-
-
-
-
- QFrame::NoFrame
-
-
- 0
-
-
- Qt::ScrollBarAsNeeded
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QGraphicsView::NoDrag
-
-
-
-
-
-
-
- -
-
-
- QFrame::NoFrame
-
-
- QFrame::Plain
-
-
- 0
-
-
- 0
-
-
-
-
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Fixed
-
-
-
- 20
- 20
-
-
-
-
- -
-
-
- Delete
-
-
-
- :/images/toolbar/remove.png:/images/toolbar/remove.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextUnderIcon
-
-
- true
-
-
-
- -
-
-
- Set as Background
-
-
-
- :/images/toolbar/setBackground.png:/images/toolbar/setBackground.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextUnderIcon
-
-
- true
-
-
-
- -
-
-
- Remove Background
-
-
-
- :/images/toolbar/removeBackground.png:/images/toolbar/removeBackground.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextUnderIcon
-
-
- true
-
-
-
- -
-
-
- Add File to Page
-
-
-
- :/images/toolbar/import.png:/images/toolbar/import.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextUnderIcon
-
-
- true
-
-
-
- -
-
-
- Add to Page
-
-
-
- :/images/toolbar/addToPage.png:/images/toolbar/addToPage.png
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextUnderIcon
-
-
- true
-
-
-
- -
-
-
- true
-
-
- false
-
-
- Add to Editor
-
-
-
- :/images/addItemToCurrentPage.svg:/images/addItemToCurrentPage.svg
-
-
-
- 32
- 32
-
-
-
- Qt::ToolButtonTextUnderIcon
-
-
- true
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 150
- 0
-
-
-
-
-
-
- 50
-
-
- 500
-
-
- 10
-
-
- 150
-
-
- Qt::Horizontal
-
-
- false
-
-
- false
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Minimum
-
-
-
- 20
- 20
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- UBThumbnailWidget
- QGraphicsView
-
-
-
- UBLibraryTreeWidget
- QTreeWidget
- board/UBLibraryTreeWidget.h
-
-
-
-
-
-
-
diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp
index 30e3e1d7..ba9bda3b 100644
--- a/src/board/UBBoardController.cpp
+++ b/src/board/UBBoardController.cpp
@@ -332,7 +332,6 @@ void UBBoardController::connectToolbar()
connect(mMainWindow->actionRedo, SIGNAL(triggered()), UBApplication::undoStack, SLOT(redo()));
connect(mMainWindow->actionBack, SIGNAL( triggered()), this, SLOT(previousScene()));
connect(mMainWindow->actionForward, SIGNAL(triggered()), this, SLOT(nextScene()));
- connect(mMainWindow->actionLibrary, SIGNAL(toggled(bool)), this, SLOT(showLibraryDialog(bool)));
connect(mMainWindow->actionSleep, SIGNAL(triggered()), this, SLOT(blackout()));
connect(mMainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool)));
connect(mMainWindow->actionImportPage, SIGNAL(triggered()), this, SLOT(importPage()));
@@ -526,19 +525,6 @@ void UBBoardController::showDocumentsDialog()
}
-
-void UBBoardController::showLibraryDialog(bool show)
-{
- if (!mLibraryController)
- {
- mLibraryController = new UBLibraryController(mMainWindow->centralWidget(), this);
- connect(mLibraryController, SIGNAL(dialogClosed(int)), this, SLOT(libraryDialogClosed(int)));
- }
-
- mLibraryController->showLibraryDialog(show);
-}
-
-
void UBBoardController::libraryDialogClosed(int ret)
{
Q_UNUSED(ret);
@@ -920,7 +906,7 @@ void UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString
bool acceptFlash = true;
#ifdef Q_WS_X11
- acceptFlash = false;
+ acceptFlash = false;
#endif
if (acceptFlash)
{
@@ -1371,10 +1357,6 @@ UBToolWidget* UBBoardController::addTool(const QUrl& toolUrl)
UBToolWidget* UBBoardController::addTool(const QUrl& toolUrl, QPointF scenePos)
{
UBToolWidget *toolWidget = new UBToolWidget(toolUrl, mMainWindow); // Deleted in UBBoardController::removeTool
-
- if (mLibraryController && mLibraryController->libraryWindow())
- toolWidget->stackUnder(mLibraryController->libraryWindow());
-
QPoint pos = mControlView->mapToGlobal(mControlView->mapFromScene(scenePos));
pos -= QPoint(toolWidget->width() / 2, toolWidget->height() / 2);
@@ -1551,8 +1533,6 @@ void UBBoardController::updateBackgroundState()
newBackgroundStyle ="QWidget {background-color: #F1F1F1}";
}
- // if (mControlContainer->styleSheet() != newBackgroundStyle)
- // mControlContainer->setStyleSheet(newBackgroundStyle);
}
diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h
index 710f3b71..e0d3788a 100644
--- a/src/board/UBBoardController.h
+++ b/src/board/UBBoardController.h
@@ -149,7 +149,6 @@ class UBBoardController : public QObject
void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0);
void showDocumentsDialog();
- void showLibraryDialog(bool show);
void showKeyboard(bool show);
diff --git a/src/board/UBLibraryController.cpp b/src/board/UBLibraryController.cpp
index 603e5092..ddd51c1f 100644
--- a/src/board/UBLibraryController.cpp
+++ b/src/board/UBLibraryController.cpp
@@ -1,16 +1,8 @@
#include "UBLibraryController.h"
-#include
-#include
-#include
-#include
-
#include "frameworks/UBFileSystemUtils.h"
#include "frameworks/UBPlatformUtils.h"
#include "frameworks/UBDesktopServices.h"
-#include "frameworks/UBFileSystemUtils.h"
-
-#include "pdf/XPDFRenderer.h"
#include "core/UBApplication.h"
#include "core/UBPersistenceManager.h"
@@ -18,9 +10,6 @@
#include "core/UBSetting.h"
#include "core/UBApplicationController.h"
-#include "network/UBNetworkAccessManager.h"
-#include "network/UBServerXMLHttpRequest.h"
-
#include "domain/UBAbstractWidget.h"
#include "domain/UBGraphicsScene.h"
#include "domain/UBGraphicsSvgItem.h"
@@ -31,19 +20,10 @@
#include "tools/UBToolsManager.h"
#include "board/UBBoardView.h"
-#include "board/UBDrawingController.h"
-
-#include "web/UBWebPage.h"
-#include "web/UBWebController.h"
-
-#include "gui/UBMainWindow.h"
-
-#include "api/UBLibraryAPI.h"
#include "UBBoardController.h"
-#include "../frameworks/UBFileSystemUtils.h"
-#include
+#include "gui/UBThumbnailWidget.h"
static quint32 magicNumber = 0xACDCAFE0;
static QString favoriteVirtualPath = "$favorite$";
@@ -52,20 +32,8 @@ UBLibraryController::UBLibraryController(QWidget *pParentWidget, UBBoardControll
QObject(pParentWidget),
mParentWidget(pParentWidget),
mBoardController(pBoardController),
- mLibraryWindow(0),
- mLibraryUI(0),
- mImageWebView(0),
- mVideoWebView(0),
- mInteractiveWebView(0),
- mImageOnlineTi(0),
- mVideoOnlineTi(0),
- mInteractiveOnlineTi(0),
- mInteractiveUniboardTi(0),
- mLastItemOffsetIndex(0),
- mNeedRefreshOnNextDisplay(false)
+ mLastItemOffsetIndex(0)
{
- QString dummyBackgrounds = tr("Backgrounds");
- mLibraryFileToDownload = onlineLibraries();
readFavoriteList();
mAudioStandardDirectoryPath = QUrl::fromLocalFile(UBDesktopServices::storageLocation(QDesktopServices::MusicLocation));
@@ -120,19 +88,6 @@ void UBLibraryController::createDirectory(QUrl& pDirPath)
QDir().mkpath(pDirPath.toLocalFile());
}
-void UBLibraryController::preloadFirstOnlineLibrary()
-{
- new UBLibraryPreloader(UBApplication::staticMemoryCleaner);
-}
-
-QStringList UBLibraryController::onlineLibraries()
-{
- QStringList libraries;
- libraries << UBSettings::settings()->softwareLibrariesUrl + "/libraries-release.xml";
- return libraries;
-}
-
-
void UBLibraryController::routeItem(QString& pItem, QString pMiddleDirectory)
{
QFileInfo itemToRoute(pItem);
@@ -450,7 +405,7 @@ QList UBLibraryController::getContent(UBLibElement *element)
UBLibraryController::~UBLibraryController()
{
- delete mLibraryUI;
+ //NOOP
}
@@ -458,7 +413,7 @@ UBLibraryController::~UBLibraryController()
void UBLibraryController::setItemAsBackground(UBLibElement* image)
{
if (!activeScene()){
- qWarning() << "No active scene";
+ qDebug() << "No active scene";
return;
}
QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(image->path().toLocalFile());
@@ -510,10 +465,9 @@ void UBLibraryController::addItemToPage(UBLibElement* item)
void UBLibraryController::removeBackground()
{
- if (activeScene()) {
+ if (activeScene())
activeScene()->setAsBackgroundObject(0);
- selectionChanged();
- }
+
}
UBGraphicsScene* UBLibraryController::activeScene()
@@ -604,1823 +558,98 @@ void UBLibraryController::removeFromFavorite(QList elementList)
persistFavoriteList();
}
+QRectF UBLibraryController::visibleSceneRect() {
+ QRectF visibleSceneRect(0, 0, 0, 0);
+ if (activeScene() && mBoardController && mBoardController->controlView()) {
+ QPointF topLeftCorner = mBoardController->controlGeometry().topLeft();
+ QPointF bottomRightCorner =
+ mBoardController->controlGeometry().bottomRight();
+ QPointF sceneTopLeft = mBoardController->controlView()->mapToScene(
+ topLeftCorner.toPoint());
+ QPointF sceneBottomRight = mBoardController->controlView()->mapToScene(
+ bottomRightCorner.toPoint());
-void UBLibraryController::refreshShapeThumbnailsView() {
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-
- QStringList shapePaths =
- UBPersistenceManager::persistenceManager()->allShapes();
-
- mSvgItemToFilepath.clear();
-
- QList items;
- QList itemsPath;
-
- for (int i = 0; i < shapePaths.size(); i++) {
- QString path = shapePaths.at(i);
-
- UBThumbnailSvg *svgItem = new UBThumbnailSvg(path);
- mSvgItemToFilepath.insert(svgItem, path);
-
- items.append(svgItem);
- itemsPath.append(QUrl::fromLocalFile(path));
- }
-
- mLibraryUI->shapeThumbnailView->setGraphicsItems(items, itemsPath);
-
- QApplication::restoreOverrideCursor();
-}
-
-
-void UBLibraryController::refreshImageThumbnailsView() {
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-
- mSvgImageItemToFilepath.clear();
- mPixmapItemToFilepath.clear();
-
- QList items;
- QList itemsPath;
-
- QList tw =
- mLibraryUI->imageLibraryTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi = dynamic_cast (tw.last());
-
- if (fi) {
- QStringList
- imagePaths =
- UBPersistenceManager::persistenceManager()->allImages(
- fi->dir());
-
- for (int i = 0; i < imagePaths.size(); i++) {
- QString path = imagePaths.at(i);
-
- if (!path.contains(".thumbnail.")) {
- if (path.endsWith("svg", Qt::CaseInsensitive) || path.endsWith(
- "svgz", Qt::CaseInsensitive)) {
- UBThumbnailSvg *svgItem = new UBThumbnailSvg(path);
-
- items.append(svgItem);
- itemsPath.append(QUrl::fromLocalFile(path));
- mSvgImageItemToFilepath.insert(svgItem, path);
- } else {
- // The image is not a thumbnail ...
- QString thumbnailPath = UBFileSystemUtils::thumbnailPath(
- path);
- if (!QFileInfo(thumbnailPath).exists()) {
- // ... and the thumbnail does not exist
- QPixmap pix(path);
- if (!pix.isNull()) {
- // actually create the thumbnail
- pix = pix.scaledToWidth(
- qMin(UBSettings::maxThumbnailWidth,
- pix.width()),
- Qt::SmoothTransformation);
- pix.save(thumbnailPath);
-
- QGraphicsPixmapItem *pixmapItem =
- new UBThumbnailPixmap(pix);
-
- items.append(pixmapItem);
- itemsPath.append(QUrl::fromLocalFile(path));
- mPixmapItemToFilepath.insert(pixmapItem, path);
- }
- }
- UBPlatformUtils::hideFile(thumbnailPath);
- }
- } else {
- // The image is a thumbnail
- QString originalImagePath(path);
- originalImagePath.remove(".thumbnail");
-
- if (!QFileInfo(originalImagePath).exists()) {
- // Skip images that have a thumbnail only but no corresponding original image
- continue;
- }
-
- QPixmap pix(path);
-
- if (!pix.isNull()) {
- QGraphicsPixmapItem *pixmapItem =
- new UBThumbnailPixmap(pix); //deleted while replaced in the scene or by the scene destruction
-
- items.append(pixmapItem);
- itemsPath.append(QUrl::fromLocalFile(originalImagePath));
- mPixmapItemToFilepath.insert(pixmapItem, originalImagePath);
- }
- }
- }
- }
- }
-
- mLibraryUI->imageThumbnailView->setGraphicsItems(items, itemsPath);
-
- QApplication::restoreOverrideCursor();
-}
-
-void UBLibraryController::createNewFolder() {
- QTreeWidget* currentTreeWidget = 0;
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- currentTreeWidget = mLibraryUI->imageLibraryTreeWidget;
- break;
- case TabIndex::Interactive:
- currentTreeWidget = mLibraryUI->interactiveLibraryTreeWidget;
- break;
+ visibleSceneRect.setTopLeft(sceneTopLeft);
+ visibleSceneRect.setBottomRight(sceneBottomRight);
}
- if (currentTreeWidget != 0) {
- QList tw = currentTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi = dynamic_cast (tw.at(0));
-
- if (fi) {
- QString newFolderPath = fi->dir().path() + "/" + tr("New Folder");
-
- int count = 1;
-
- if (QDir(newFolderPath).exists()) {
- while (QDir(newFolderPath + QString(" %1").arg(count)).exists()) {
- count++;
- }
-
- newFolderPath = newFolderPath + QString(" %1").arg(count);
- }
-
- UBLibraryFolderItem* newFi = new UBLibraryFolderItem(QDir(
- newFolderPath), QString(), fi, true, QStringList());
-
- currentTreeWidget->expandItem(fi);
- currentTreeWidget->setCurrentItem(newFi);
- }
- }
- }
+ return visibleSceneRect;
}
-QStringList UBLibraryController::addItemsToCurrentLibrary(
- const QDir& pSelectedFolder, const QStringList& pExtensions) {
- QString extensions;
-
- foreach(QString ext, pExtensions)
- {
- extensions += " *.";
- extensions += ext;
- }
-
- QString defaultPath =
- UBSettings::settings()->lastImportToLibraryPath->get().toString();
- QStringList filenames = QFileDialog::getOpenFileNames(mParentWidget, tr(
- "Add Item to Library"), defaultPath, tr("All Supported (%1)").arg(
- extensions));
-
- QStringList importedFiles;
- if (filenames.size() == 0)
- return filenames;
-
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-
- UBApplication::processEvents();
-
- int i = 1;
- int count = filenames.count();
+void UBLibraryController::addImagesToCurrentPage(const QList& images) {
+ QPointF pos = visibleSceneRect().topLeft();
- foreach(const QString filename, filenames)
+ foreach(const QUrl url, images)
{
- QFileInfo source(filename);
-
- // we update last import location. We do it only once at the first imported file
- if (i == 1) {
- UBSettings::settings()->lastImportToLibraryPath->set(QVariant(
- source.absolutePath()));
- }
-
- if (source.isDir()) {
- QString target = pSelectedFolder.path() + "/"
- + QFileInfo(source).fileName();
- UBFileSystemUtils::copyDir(source.absoluteFilePath(), target);
- importedFiles << target;
- } else if (source.isFile() && (filename.toLower().endsWith(".wgt")
- || filename.toLower().endsWith(".wdgt")
- || filename.toLower().endsWith(".pwgt"))) {
- QString baseFileName = source.fileName();
-
- QString filePath = pSelectedFolder.path() + "/" + baseFileName;
- QString nextItemPath = UBFileSystemUtils::nextAvailableFileName(
- filePath);
-
- QFile file(filename);
-
- UBFileSystemUtils::expandZipToDir(file, nextItemPath);
- importedFiles << nextItemPath;
- } else if (source.isFile() && filename.toLower().endsWith(".pdf")) {
- XPDFRenderer pdfRenderer(filename);
-
- if (pdfRenderer.isValid()) {
- QString title = pdfRenderer.title();
-
- if (title.length() == 0)
- title = QFileInfo(source).completeBaseName();
-
- for (int i = 0; i < pdfRenderer.pageCount(); i++) {
- UBApplication::showMessage(tr(
- "Copying page %1 of file %2 to library %3") .arg(i
- + 1) .arg(title) .arg(pSelectedFolder.dirName()));
-
- QString filePath = pSelectedFolder.path() + "/" + title
- + QString(" %1 %2.png").arg(tr("Page")).arg(i + 1);
- QSize size = pdfRenderer.pageSizeF(i + 1).toSize();
- QImage image(size, QImage::Format_RGB32);
- QPainter p(&image);
-
- p.setRenderHint(QPainter::SmoothPixmapTransform);
- p.setRenderHint(QPainter::Antialiasing);
+ mLastItemOffsetIndex++;
+ mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
- pdfRenderer.render(&p, i + 1, QRectF(0, 0, size.width(),
- size.height()));
- p.end();
+ QGraphicsItem* itemInScene = 0;
- image.save(filePath);
+ if (activeScene()) {
+ QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(
+ url.toString());
- importedFiles << filePath;
- }
+ //TODO UB 4.x move this logic to the scene ..
+ if (mimeType == "image/svg+xml") {
+ itemInScene = activeScene()->addSvg(url, pos);
} else {
- qWarning() << "Failed to load file " << filename << "as PDF";
+ itemInScene = activeScene()->addPixmap(QPixmap(
+ url.toLocalFile()), pos);
}
- } else {
- QString target = pSelectedFolder.path() + "/"
- + QFileInfo(source).fileName();
- QFile sourceFile(source.absoluteFilePath());
- UBApplication::showMessage(
- tr("Copying file %1 to library %2 (%3/%4)").arg(QFileInfo(
- source).fileName()).arg(pSelectedFolder.dirName()).arg(
- i).arg(count));
- sourceFile.copy(target);
- importedFiles << target;
- }
-
- i++;
- }
-
- UBApplication::showMessage(tr("Finished copying %1 files ...").arg(
- filenames.size()));
-
- QApplication::restoreOverrideCursor();
- return importedFiles;
-}
-
-void UBLibraryController::addInteractivesToLibrary() {
- QList tw =
- mLibraryUI->interactiveLibraryTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi = dynamic_cast (tw.at(0));
-
- if (fi) {
- addItemsToCurrentLibrary(fi->dir(),
- UBSettings::settings()->widgetFileExtensions);
-
- refreshInteractiveThumbnailsView(); // TODO UB 4.x optimisation : could do better than refreshing the entire directory
}
- }
-}
-void UBLibraryController::addImagesToLibrary() {
- QList tw =
- mLibraryUI->imageLibraryTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi = dynamic_cast (tw.at(0));
-
- if (fi) {
- QStringList extensions = UBSettings::imageFileExtensions;
- extensions << "pdf";
-
- QStringList filenames = addItemsToCurrentLibrary(fi->dir(), extensions);
-
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
- UBApplication::processEvents();
-
- quint32 i = 1, count = filenames.count();
- foreach(const QString filename, filenames)
- {
- // Create thumbnail
- // For large images, what actually takes time is the creation of the thumbnail, the copy is fast
- QPixmap pix(filename);
- UBApplication::showMessage(
- tr("Creating thumbnail %1 (%2/%3)").arg(filename).arg(i).arg(
- count));
- QString thumbnailPath = UBFileSystemUtils::thumbnailPath(
- filename);
- pix.scaledToWidth(qMin(UBSettings::maxThumbnailWidth,
- pix.width()), Qt::SmoothTransformation).save(
- thumbnailPath);
- UBPlatformUtils::hideFile(thumbnailPath);
- i++;
- }
+ if (itemInScene) {
+ itemInScene = activeScene()->scaleToFitDocumentSize(itemInScene, false, UBSettings::objectInControlViewMargin);
- refreshImageThumbnailsView(); // TODO UB 4.x optimisation : could do better than refreshing the entire directory
- QApplication::restoreOverrideCursor();
+ itemInScene->setPos(QPoint(pos.x() + 50 * mLastItemOffsetIndex, pos.y() + 50 * mLastItemOffsetIndex));
}
}
}
-void UBLibraryController::removeDir() {
- QTreeWidget* currentTreeWidget = 0;
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- currentTreeWidget = mLibraryUI->imageLibraryTreeWidget;
- break;
- case TabIndex::Interactive:
- currentTreeWidget = mLibraryUI->interactiveLibraryTreeWidget;
- break;
- }
-
- if (currentTreeWidget != 0) {
- QList tw = currentTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi =
- dynamic_cast (tw.last());
-
- if (fi && fi->canWrite()) {
- if (QMessageBox::question(
- 0,
- tr("Remove Folder"),
- tr(
- "Are you sure you want to remove the folder %1 from the library?").arg(
- fi->dir().dirName()), QMessageBox::Yes
- | QMessageBox::No) == QMessageBox::Yes) {
- qDebug() << "deleting dir" << fi->dir().path();
-
- UBFileSystemUtils::deleteDir(fi->dir().path());
- fi->parent()->removeChild(fi);
- }
- }
- }
- }
-}
+void UBLibraryController::addVideosToCurrentPage(const QList& videos) {
+ QPointF pos = visibleSceneRect().topLeft();
-void UBLibraryController::remove() {
- UBThumbnailWidget* currentThumbnailView = 0;
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- currentThumbnailView = mLibraryUI->imageThumbnailView;
- break;
- case TabIndex::Interactive:
- currentThumbnailView = mLibraryUI->interactiveThumbnailView;
- break;
- }
+ foreach(const QUrl url, videos)
+ {
+ mLastItemOffsetIndex++;
+ mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
- if (currentThumbnailView) {
- if (currentThumbnailView->selectedItems().size() > 0) {
- removeItemsFromLibrary(currentThumbnailView);
- } else {
- removeDir();
- }
+ UBGraphicsVideoItem* itemInScene = UBApplication::boardController->addVideo(url, false, pos);
+ itemInScene->setPos(QPoint(pos.x() + 50 * mLastItemOffsetIndex, pos.y() + 50 * mLastItemOffsetIndex));
}
}
-void UBLibraryController::removeItemsFromLibrary(
- UBThumbnailWidget* pThumbnailView) {
- QList selectedItems = pThumbnailView->selectedItems();
-
- if (selectedItems.size() > 0) {
- if (QMessageBox::question(0, tr("Remove Item"), tr(
- "Are you sure you want to remove the item from the library?"),
- QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
- QGraphicsPixmapItem* pixmapItem =
- dynamic_cast (selectedItems.last());
-
- if (pixmapItem && mPixmapItemToFilepath.contains(pixmapItem)) {
- QString path = mPixmapItemToFilepath.take(pixmapItem);
- QFile file(path);
- QFile thumbnailFile(UBFileSystemUtils::thumbnailPath(path));
-
- file.remove();
- thumbnailFile.remove();
-
- refreshImageThumbnailsView();
- } else if (pixmapItem
- && mInteractiveItemToFilepath.contains(pixmapItem)) {
- QString path = mInteractiveItemToFilepath.take(pixmapItem);
-
- //is it a tool ?
- if (path.startsWith("uniboardTool://")) {
- QStringList
- uris =
- UBSettings::settings()->favoritesNativeToolUris->get().toStringList();
- if (uris.contains(path)) {
- uris.removeAll(path);
- UBSettings::settings()->favoritesNativeToolUris->set(uris);
- }
- } else {
- qDebug() << "file to delete " << path;
- QFileInfo fileInfo(path);
- if (fileInfo.isDir()) {
- UBFileSystemUtils::deleteDir(fileInfo.absoluteFilePath());
- } else {
- QFile(fileInfo.absoluteFilePath()).remove();
- }
- }
- refreshInteractiveThumbnailsView();
- } else {
- QGraphicsSvgItem* svgItem =
- dynamic_cast (selectedItems.last());
-
- if (svgItem && mSvgImageItemToFilepath.contains(svgItem)) {
- QString path = mSvgImageItemToFilepath.take(svgItem);
- QFile file(path);
+void UBLibraryController::addAudiosToCurrentPage(const QList& sounds) {
+ QPointF topLeftPos = visibleSceneRect().topLeft();
- file.remove();
+ QPointF pos = topLeftPos;
- refreshImageThumbnailsView();
- }
- }
- }
+ foreach(const QUrl url, sounds)
+ {
+ mLastItemOffsetIndex++;
+ mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
+ pos = QPointF(topLeftPos.x() + 50 * mLastItemOffsetIndex,
+ topLeftPos.y() + 50 * mLastItemOffsetIndex);
+ UBApplication::boardController->addAudio(url, false, pos);
}
}
-void UBLibraryController::refreshInteractiveThumbnailsView()
-{
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-
- QList items;
- QList itemsPath;
- QStringList labels;
-
- QList tw =
- mLibraryUI->interactiveLibraryTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi = dynamic_cast (tw.last());
-
- if (fi) {
- QStringList toolUris;
-
- if (fi == mInteractiveUniboardTi) {
- toolUris = UBToolsManager::manager()->allToolIDs();
- }
-
- foreach(QString toolUri, toolUris)
- {
- UBToolsManager::UBToolDescriptor tool =
- UBToolsManager::manager()->toolByID(toolUri);
-
- QGraphicsPixmapItem *pixmapItem = new UBThumbnailPixmap(
- tool.icon);
-
- if (!pixmapItem->pixmap().isNull()) {
- QString id = tool.id;
-
- mInteractiveItemToFilepath.insert(pixmapItem, id);
- items.append(pixmapItem);
- itemsPath.append(QUrl(id));
- labels.append(tool.label + " " + tool.version);
- }
- }
-
- QStringList widgetPaths =
- UBPersistenceManager::persistenceManager()->allWidgets(
- fi->dir());
-
- for (int i = 0; i < widgetPaths.size(); i++) {
- QString path = widgetPaths.at(i);
-
- QString iconFilepath = UBAbstractWidget::iconFilePath(
- QUrl::fromLocalFile(path));
-
- QGraphicsPixmapItem *pixmapItem = new UBThumbnailPixmap(QPixmap(
- iconFilepath));
-
- mInteractiveItemToFilepath.insert(pixmapItem, path);
-
- QString name = UBAbstractWidget::widgetName(QUrl::fromLocalFile(
- path));
-
- items.append(pixmapItem);
- itemsPath.append(QUrl::fromLocalFile(path));
- labels.append(name);
- }
- }
+void UBLibraryController::addInteractivesToCurrentPage(
+ const QList& widgets) {
+ foreach(const QUrl url, widgets)
+ {
+ mBoardController->downloadURL(url, QPointF(0, 0));
}
- mLibraryUI->interactiveThumbnailView->setGraphicsItems(items, itemsPath, labels);
-
- QApplication::restoreOverrideCursor();
}
-void UBLibraryController::showLibraryDialog(bool show)
+QString UBLibraryController::favoritePath()
{
- if (show && !mLibraryWindow) {
- Qt::WindowFlags flag = Qt::Dialog | Qt::WindowMaximizeButtonHint
- | Qt::WindowCloseButtonHint;
- flag &= ~Qt::WindowContextHelpButtonHint;
- flag &= ~Qt::WindowMinimizeButtonHint;
-
- mLibraryWindow = new QDialog(mParentWidget, flag);
-
- mLibraryUI = new Ui::library();
- mLibraryUI->setupUi(mLibraryWindow);
- mLibraryUI->libraryTab->setCurrentIndex(TabIndex::Gip);
-
- // image tab
- QString ubPictures =
- UBSettings::settings()->uniboardImageLibraryDirectory();
- QString userPictures = UBSettings::settings()->uniboardUserImageDirectory();
-
- UBLibraryFolderItem *ubLibrary = new UBLibraryFolderItem(QDir(ubPictures),
- tr("Sankore 3.1"), 0, false, QStringList());
- UBLibraryFolderItem *userLibrary = new UBLibraryFolderItem(QDir(
- userPictures), tr("My Images"), 0, true, QStringList());
-
- mLibraryUI->imageLibraryTreeWidget->addTopLevelItem(userLibrary);
- mLibraryUI->imageLibraryTreeWidget->addTopLevelItem(ubLibrary);
-
- QStringList imageMimeTypes;
- imageMimeTypes << "image";
- mLibraryUI->imageLibraryTreeWidget->setMimeTypes(imageMimeTypes);
- mLibraryUI->imageLibraryTreeWidget->setFileExtensions(
- UBSettings::imageFileExtensions);
-
- ubLibrary->setIcon(0, QIcon(":/images/myContent.png"));
- ubLibrary->setExpanded(true);
-
- userLibrary->setIcon(0, QIcon(":/images/myFolder.png"));
- userLibrary->setExpanded(true);
-
- if (userLibrary->childCount() > 0) {
- foreach(QTreeWidgetItem* ti, mLibraryUI->imageLibraryTreeWidget->selectedItems())
- {
- ti->setSelected(false);
- }
-
- userLibrary->child(0)->setSelected(true);
-
- selectionChanged();
- } else {
- ubLibrary->setSelected(true);
- }
-
- mLibraryUI->imageLibraryTreeWidget->setRootIsDecorated(false);
- mLibraryUI->imageLibrariesStack->setCurrentWidget(
- mLibraryUI->imagePageLocal);
-
- mImageWebView = new UBLibraryWebView(mLibraryUI->imagePageOnline);
- mLibraryUI->imagePageOnline->layout()->addWidget(mImageWebView);
-
- // Interactive tab
- QString ubInteractive =
- UBSettings::settings()->uniboardInteractiveLibraryDirectory();
- QString userInteractive =
- UBSettings::settings()->uniboardInteractiveUserDirectory();
- QString ubInteractiveFavorites =
- UBSettings::settings()->uniboardInteractiveFavoritesDirectory();
-
- mInteractiveUniboardTi = new UBLibraryFolderItem(QDir(ubInteractive), tr(
- "Sankore 3.1"), 0, false,
- UBSettings::interactiveContentFileExtensions);
-
- UBLibraryFolderItem *userInteractiveLibrary = new UBLibraryFolderItem(QDir(
- userInteractive), tr("My Applications"), 0, true,
- UBSettings::interactiveContentFileExtensions);
-
- mLibraryUI->interactiveLibraryTreeWidget->addTopLevelItem(
- userInteractiveLibrary);
- mLibraryUI->interactiveLibraryTreeWidget->addTopLevelItem(
- mInteractiveUniboardTi);
-
- QStringList icMimeTypes;
- icMimeTypes << "application/widget";
- icMimeTypes << "application/x-shockwave-flash";
- mLibraryUI->interactiveLibraryTreeWidget->setMimeTypes(icMimeTypes);
-
- mLibraryUI->interactiveLibraryTreeWidget->setFileExtensions(
- UBSettings::interactiveContentFileExtensions);
-
- QStringList icProtocoles;
- icProtocoles << "uniboardTool://";
- mLibraryUI->interactiveLibraryTreeWidget->setProtocoles(icProtocoles);
-
- mInteractiveUniboardTi->setIcon(0, QIcon(":/images/myContent.png"));
- mInteractiveUniboardTi->setExpanded(true);
-
- userInteractiveLibrary->setIcon(0, QIcon(":/images/myFolder.png"));
- userInteractiveLibrary->setExpanded(true);
-
- mInteractiveUniboardTi->setSelected(true);
-
- mLibraryUI->interactiveLibraryTreeWidget->setRootIsDecorated(false);
- mLibraryUI->interactiveLibrariesStack->setCurrentWidget(
- mLibraryUI->interactivePageLocal);
-
- mInteractiveWebView = new UBLibraryWebView(
- mLibraryUI->interactivePageOnline);
- mLibraryUI->interactivePageOnline->layout()->addWidget(mInteractiveWebView);
-
- // video tab
-
- QString userVideos = UBSettings::settings()->uniboardUserVideoDirectory();
-
- UBLibraryFolderItem *userVideoLibrary = new UBLibraryFolderItem(QDir(
- userVideos), tr("My Movies"), 0, false, QStringList());
-
- mLibraryUI->videoLibraryTreeWidget->addTopLevelItem(userVideoLibrary);
- userVideoLibrary->setIcon(0, QIcon(":/images/myFolder.png"));
- userVideoLibrary->setExpanded(true);
- userVideoLibrary->setSelected(true);
-
- mLibraryUI->videoLibraryTreeWidget->setRootIsDecorated(false);
-
- QStringList videoMimeTypes;
- videoMimeTypes << "video";
- mLibraryUI->videoLibraryTreeWidget->setMimeTypes(videoMimeTypes);
-
- mLibraryUI->videoLibrariesStack->setCurrentWidget(
- mLibraryUI->videoPageLocal);
-
- mVideoWebView = new UBLibraryWebView(mLibraryUI->videoPageOnline);
- mLibraryUI->videoPageOnline->layout()->addWidget(mVideoWebView);
-
- mLibraryUI->imageThumbnailView->setThumbnailWidth(
- UBSettings::settings()->imageThumbnailWidth->get().toInt());
- mLibraryUI->gipThumbnailView->setThumbnailWidth(UBSettings::defaultGipWidth);
- mLibraryUI->soundThumbnailView->setThumbnailWidth(
- UBSettings::defaultSoundWidth);
- mLibraryUI->shapeThumbnailView->setThumbnailWidth(
- UBSettings::settings()->shapeThumbnailWidth->get().toInt());
- mLibraryUI->interactiveThumbnailView->setThumbnailWidth(
- UBSettings::defaultWidgetIconWidth);
- mLibraryUI->videoThumbnailView->setThumbnailWidth(
- UBSettings::settings()->videoThumbnailWidth->get().toInt());
-
- connect(mLibraryUI->imageLibraryTreeWidget, SIGNAL(itemSelectionChanged()),
- this, SLOT(itemSelectionChanged()));
-
- connect(mLibraryUI->imageLibraryTreeWidget,
- SIGNAL(itemChanged ( QTreeWidgetItem * , int )), this,
- SLOT(itemChanged ( QTreeWidgetItem * , int )));
-
- connect(mLibraryUI->imageLibraryTreeWidget, SIGNAL(contentChanged()), this,
- SLOT(refreshImageThumbnailsView()));
-
- connect(mLibraryUI->interactiveLibraryTreeWidget,
- SIGNAL(itemSelectionChanged()), this, SLOT(itemSelectionChanged()));
-
- connect(mLibraryUI->interactiveLibraryTreeWidget,
- SIGNAL(itemChanged ( QTreeWidgetItem * , int )), this,
- SLOT(itemChanged ( QTreeWidgetItem * , int )));
-
- connect(mLibraryUI->interactiveLibraryTreeWidget, SIGNAL(contentChanged()),
- this, SLOT(refreshInteractiveThumbnailsView()));
-
- connect(mLibraryUI->videoLibraryTreeWidget, SIGNAL(itemSelectionChanged()),
- this, SLOT(itemSelectionChanged()));
-
- connect(mLibraryUI->videoLibraryTreeWidget, SIGNAL(contentChanged()), this,
- SLOT(refreshVideoThumbnailsView()));
-
- connect(mLibraryUI->newInteractiveFolderButton, SIGNAL(clicked()), this,
- SLOT(createNewFolder()));
- connect(mLibraryUI->newFolderButton, SIGNAL(clicked()), this,
- SLOT(createNewFolder()));
- connect(mLibraryUI->addImageToLibraryButton, SIGNAL(clicked()), this,
- SLOT(addImagesToLibrary()));
- connect(mLibraryUI->addInteractiveToLibraryButton, SIGNAL(clicked()), this,
- SLOT(addInteractivesToLibrary()));
- connect(mLibraryUI->addToDocumentButton, SIGNAL(clicked()), this,
- SLOT(addObjectFromFilesystemToPage()));
- connect(mLibraryUI->removeButton, SIGNAL(clicked()), this, SLOT(remove()));
-
- connect(mLibraryUI->addToPageButton, SIGNAL(clicked()), this,
- SLOT(addToPage()));
- connect(mLibraryUI->setAsBackgroundButton, SIGNAL(clicked()), this,
- SLOT(setAsBackground()));
- connect(mLibraryUI->removeBackgroundButton, SIGNAL(clicked()), this,
- SLOT(removeBackground()));
-
- connect(mLibraryUI->zoomSlider, SIGNAL(valueChanged(int)), this,
- SLOT(zoomSliderValueChanged(int)));
-
- connect(mLibraryUI->imageThumbnailView, SIGNAL(resized()), this,
- SLOT(thumbnailViewResized()));
- connect(mLibraryUI->shapeThumbnailView, SIGNAL(resized()), this,
- SLOT(thumbnailViewResized()));
- connect(mLibraryUI->interactiveThumbnailView, SIGNAL(resized()), this,
- SLOT(thumbnailViewResized()));
- connect(mLibraryUI->videoThumbnailView, SIGNAL(resized()), this,
- SLOT(thumbnailViewResized()));
- connect(mLibraryUI->gipThumbnailView, SIGNAL(resized()), this,
- SLOT(thumbnailViewResized()));
- connect(mLibraryUI->soundThumbnailView, SIGNAL(resized()), this,
- SLOT(thumbnailViewResized()));
-
- connect(mLibraryUI->imageThumbnailView, SIGNAL(selectionChanged()), this,
- SLOT(selectionChanged()));
- connect(mLibraryUI->shapeThumbnailView, SIGNAL(selectionChanged()), this,
- SLOT(selectionChanged()));
- connect(mLibraryUI->interactiveThumbnailView, SIGNAL(selectionChanged()),
- this, SLOT(selectionChanged()));
- connect(mLibraryUI->videoThumbnailView, SIGNAL(selectionChanged()), this,
- SLOT(selectionChanged()));
- connect(mLibraryUI->gipThumbnailView, SIGNAL(selectionChanged()), this,
- SLOT(selectionChanged()));
- connect(mLibraryUI->soundThumbnailView, SIGNAL(selectionChanged()), this,
- SLOT(selectionChanged()));
-
- mLibraryUI->imageLibraryTreeWidget->setIndentation(30);
- mLibraryUI->interactiveLibraryTreeWidget->setIndentation(30);
- mLibraryUI->videoLibraryTreeWidget->setIndentation(30);
-
- mLibraryUI->imageThumbnailView->setBackgroundBrush(
- UBSettings::documentViewLightColor);
- mLibraryUI->shapeThumbnailView->setBackgroundBrush(
- UBSettings::documentViewLightColor);
- mLibraryUI->interactiveThumbnailView->setBackgroundBrush(
- UBSettings::documentViewLightColor);
- mLibraryUI->gipThumbnailView->setBackgroundBrush(
- UBSettings::documentViewLightColor);
- mLibraryUI->videoThumbnailView->setBackgroundBrush(
- UBSettings::documentViewLightColor);
- mLibraryUI->soundThumbnailView->setBackgroundBrush(
- UBSettings::documentViewLightColor);
-
- int viewWidth = mParentWidget->width() / 2;
- int viewHeight = mParentWidget->height() * 2.0 / 3.0;
-
- mLibraryWindow->setGeometry((mParentWidget->width() - viewWidth) / 2,
- (mParentWidget->height() - viewHeight) / 2, viewWidth, viewHeight);
-
- connect(mLibraryUI->libraryTab, SIGNAL(currentChanged(int)), this,
- SLOT(tabChanged(int)));
-
- mLibraryUI->libraryTab->setCurrentIndex(TabIndex::Gip);
- tabChanged(TabIndex::Gip);
-
- connect(mLibraryWindow, SIGNAL(finished(int)), this,
- SIGNAL(dialogClosed(int)));
-
- loadLibraries();
- }
-
- if (mLibraryWindow) {
- mLibraryWindow->setVisible(show);
- if (show) {
- mLibraryWindow->activateWindow();
-
- if (mNeedRefreshOnNextDisplay) {
- refreshImageThumbnailsView();
- mNeedRefreshOnNextDisplay = false;
- }
- }
- }
-
- selectionChanged();
-}
-
-void UBLibraryController::tabChanged(int value) {
- selectionChanged();
-
- switch (value) {
- case TabIndex::Image:
- refreshImageThumbnailsView();
- break;
-
- case TabIndex::Shape:
- refreshShapeThumbnailsView();
- break;
-
- case TabIndex::Interactive:
- refreshInteractiveThumbnailsView();
- break;
-
- case TabIndex::Video:
- refreshVideoThumbnailsView();
- break;
-
- case TabIndex::Sound:
- refreshSoundThumbnailsView();
- break;
-
- default:
- break;
- }
-}
-
-void UBLibraryController::selectionChanged() {
- bool hasSelectedItems = false;
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image: {
- bool canWrite = false;
- bool isTopLevel = false;
-
- QList tw =
- mLibraryUI->imageLibraryTreeWidget->selectedItems();
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi =
- dynamic_cast (tw.last());
- if (fi) {
- canWrite = fi->canWrite();
- isTopLevel = !fi->parent();
-
- mLibraryUI->imageLibrariesStack->setCurrentWidget(
- mLibraryUI->imagePageLocal);
- } else {
-
- UBOnlineLibraryItem* oi =
- dynamic_cast (tw.last());
- if (oi) {
-
- mLibraryUI->imageLibrariesStack->setCurrentWidget(
- mLibraryUI->imagePageOnline);
- mImageWebView->load(oi->url(), oi);
- }
- }
- }
-
- mLibraryUI->newFolderButton->setEnabled(canWrite && isTopLevel);
- mLibraryUI->addImageToLibraryButton->setEnabled(canWrite && !isTopLevel);
- mLibraryUI->addToDocumentButton->setEnabled(true);
-
- mLibraryUI->removeButton->setEnabled(canWrite && !isTopLevel);
-
- hasSelectedItems = mLibraryUI->imageThumbnailView->selectedItems().size()
- > 0;
-
- mLibraryUI->addToPageButton->setEnabled(hasSelectedItems);
- mLibraryUI->setAsBackgroundButton->setEnabled(hasSelectedItems);
-
- mLibraryUI->removeBackgroundButton->setEnabled(
- activeScene()->hasBackground());
-
- mLibraryUI->zoomSlider->setValue(
- mLibraryUI->imageThumbnailView->thumbnailWidth());
- mLibraryUI->zoomSlider->setVisible(true);
- }
- break;
- case TabIndex::Shape: {
- mLibraryUI->newFolderButton->setEnabled(false);
- mLibraryUI->addImageToLibraryButton->setEnabled(false);
- mLibraryUI->addToDocumentButton->setEnabled(false);
- mLibraryUI->removeButton->setEnabled(false);
-
- hasSelectedItems = mLibraryUI->shapeThumbnailView->selectedItems().size()
- > 0;
-
- mLibraryUI->addToPageButton->setEnabled(hasSelectedItems);
- mLibraryUI->setAsBackgroundButton->setEnabled(hasSelectedItems);
-
- mLibraryUI->removeBackgroundButton->setEnabled(
- activeScene()->hasBackground());
-
- mLibraryUI->zoomSlider->setValue(
- mLibraryUI->shapeThumbnailView->thumbnailWidth());
- mLibraryUI->zoomSlider->setVisible(true);
- }
- break;
- case TabIndex::Interactive: {
- bool canWrite = false;
- bool isTopLevel = false;
-
- QList tw =
- mLibraryUI->interactiveLibraryTreeWidget->selectedItems();
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi =
- dynamic_cast (tw.last());
- if (fi) {
- canWrite = fi->canWrite();
- isTopLevel = !fi->parent();
- mLibraryUI->interactiveLibrariesStack->setCurrentWidget(
- mLibraryUI->interactivePageLocal);
- } else {
- UBOnlineLibraryItem* oi =
- dynamic_cast (tw.last());
-
- if (oi) {
- mLibraryUI->interactiveLibrariesStack->setCurrentWidget(
- mLibraryUI->interactivePageOnline);
- mInteractiveWebView->load(oi->url(), oi);
- }
- }
- }
-
- mLibraryUI->newInteractiveFolderButton->setEnabled(canWrite && isTopLevel);
- mLibraryUI->addInteractiveToLibraryButton->setEnabled(canWrite
- && !isTopLevel);
- mLibraryUI->addToDocumentButton->setEnabled(true);
-
- hasSelectedItems
- = mLibraryUI->interactiveThumbnailView->selectedItems().size() > 0;
-
- mLibraryUI->removeButton->setEnabled((canWrite && !isTopLevel) || (canWrite
- && hasSelectedItems));
-
- mLibraryUI->addToPageButton->setEnabled(hasSelectedItems);
- mLibraryUI->setAsBackgroundButton->setEnabled(false);
- mLibraryUI->removeBackgroundButton->setEnabled(false);
-
- mLibraryUI->zoomSlider->setValue(
- mLibraryUI->interactiveThumbnailView->thumbnailWidth());
- mLibraryUI->zoomSlider->setVisible(false);
- }
- break;
- case TabIndex::Video: {
- QList tw =
- mLibraryUI->videoLibraryTreeWidget->selectedItems();
- if (tw.size() > 0) {
- hasSelectedItems = true;
- UBOnlineLibraryItem* oi =
- dynamic_cast (tw.last());
- if (oi) {
- mLibraryUI->videoLibrariesStack->setCurrentWidget(
- mLibraryUI->videoPageOnline);
- mVideoWebView->load(oi->url(), oi);
- } else {
- mLibraryUI->videoLibrariesStack->setCurrentWidget(
- mLibraryUI->videoPageLocal);
- }
- }
-
- mLibraryUI->newFolderButton->setEnabled(false);
- mLibraryUI->addImageToLibraryButton->setEnabled(false);
- mLibraryUI->addToDocumentButton->setEnabled(true);
- mLibraryUI->removeButton->setEnabled(false);
- mLibraryUI->addToPageButton->setEnabled(true);
- mLibraryUI->setAsBackgroundButton->setEnabled(false);
- mLibraryUI->removeBackgroundButton->setEnabled(false);
-
- mLibraryUI->zoomSlider->setValue(mLibraryUI->videoThumbnailView->thumbnailWidth());
- mLibraryUI->zoomSlider->setVisible(true);
- }
- break;
- case TabIndex::Gip: {
- hasSelectedItems = mLibraryUI->gipThumbnailView->selectedItems().size() > 0;
-
- mLibraryUI->newFolderButton->setEnabled(false);
- mLibraryUI->addImageToLibraryButton->setEnabled(false);
- mLibraryUI->addToDocumentButton->setEnabled(false);
- mLibraryUI->removeButton->setEnabled(false);
- mLibraryUI->addToPageButton->setEnabled(hasSelectedItems);
- mLibraryUI->setAsBackgroundButton->setEnabled(false);
- mLibraryUI->removeBackgroundButton->setEnabled(false);
- mLibraryUI->zoomSlider->setValue(mLibraryUI->gipThumbnailView->thumbnailWidth());
- mLibraryUI->zoomSlider->setVisible(true);
- }
- break;
-
- case TabIndex::Sound: {
- hasSelectedItems = mLibraryUI->soundThumbnailView->selectedItems().size()
- > 0;
-
- mLibraryUI->newFolderButton->setEnabled(false);
- mLibraryUI->addImageToLibraryButton->setEnabled(false);
- mLibraryUI->addToDocumentButton->setEnabled(false);
- mLibraryUI->removeButton->setEnabled(false);
- mLibraryUI->addToPageButton->setEnabled(hasSelectedItems);
- mLibraryUI->setAsBackgroundButton->setEnabled(false);
- mLibraryUI->removeBackgroundButton->setEnabled(false);
- mLibraryUI->zoomSlider->setValue(mLibraryUI->soundThumbnailView->thumbnailWidth());
- mLibraryUI->zoomSlider->setVisible(true);
- }
- default:
- break;
- }
-}
-
-void UBLibraryController::zoomSliderValueChanged(int value) {
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- mLibraryUI->imageThumbnailView->setThumbnailWidth(value);
- UBSettings::settings()->imageThumbnailWidth->set(value);
- break;
- case TabIndex::Shape:
- mLibraryUI->shapeThumbnailView->setThumbnailWidth(value);
- UBSettings::settings()->shapeThumbnailWidth->set(value);
- break;
- case TabIndex::Interactive:
- mLibraryUI->interactiveThumbnailView->setThumbnailWidth(value);
- break;
- case TabIndex::Video:
- mLibraryUI->videoThumbnailView->setThumbnailWidth(value);
- UBSettings::settings()->videoThumbnailWidth->set(value);
- break;
- case TabIndex::Gip:
- mLibraryUI->gipThumbnailView->setThumbnailWidth(value);
- UBSettings::settings()->gipThumbnailWidth->set(value);
- break;
- case TabIndex::Sound:
- mLibraryUI->soundThumbnailView->setThumbnailWidth(value);
- UBSettings::settings()->soundThumbnailWidth->set(value);
- break;
- default:
- break;
- }
+ return favoriteVirtualPath;
}
-void UBLibraryController::addShape() {
- QPointF pos(0, 0);
-
- if (activeScene()) {
- QPointF topLeftCorner = mBoardController->controlGeometry().topLeft();
- pos = mBoardController->controlView()->mapToScene(topLeftCorner.toPoint());
- }
-
- int i = 0;
-
- foreach(QGraphicsItem *item, mLibraryUI->shapeThumbnailView->selectedItems())
- {
- ++i;
-
- QGraphicsSvgItem* svgItem = dynamic_cast (item);
-
- if (svgItem && mSvgItemToFilepath.contains(svgItem) && activeScene()) {
- QUrl url = QUrl::fromLocalFile(mSvgItemToFilepath.value(svgItem));
- QGraphicsItem* itemInScene = activeScene()->addSvg(url, QPointF(0,
- 0));
-
- itemInScene->setPos(QPoint(pos.x() + 10 * i, pos.y() + 10 * i));
- }
- }
-}
-
-void UBLibraryController::setShapeAsBackground() {
- QList selectedItems =
- mLibraryUI->shapeThumbnailView->selectedItems();
-
- if (selectedItems.size() > 0) {
- QGraphicsSvgItem* svgItem =
- dynamic_cast (selectedItems.last());
-
- if (svgItem && mSvgItemToFilepath.contains(svgItem) && activeScene()) {
- QString path = mSvgItemToFilepath.value(svgItem);
- UBGraphicsSvgItem* boardItem = activeScene()->addSvg(
- QUrl::fromLocalFile(path), QPointF(0, 0));
- activeScene()->setAsBackgroundObject(boardItem, true);
- }
- }
-}
-
-void UBLibraryController::addToPage() {
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- addImage();
- break;
- case TabIndex::Shape:
- addShape();
- break;
- case TabIndex::Interactive:
- addInteractiveToCurrentPage();
- break;
- case TabIndex::Video:
- addVideo();
- break;
- case TabIndex::Sound:
- addAudio();
- break;
- default:
- break;
- }
-
- mLibraryWindow->done(0);
-
- UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector);
-}
-
-
-void UBLibraryController::setAsBackground()
-{
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- setImageAsBackground();
- break;
- case TabIndex::Shape:
- setShapeAsBackground();
- break;
- default:
- break;
- }
-
- selectionChanged();
-}
-
-QRectF UBLibraryController::visibleSceneRect() {
- QRectF visibleSceneRect(0, 0, 0, 0);
-
- if (activeScene() && mBoardController && mBoardController->controlView()) {
- QPointF topLeftCorner = mBoardController->controlGeometry().topLeft();
- QPointF bottomRightCorner =
- mBoardController->controlGeometry().bottomRight();
-
- QPointF sceneTopLeft = mBoardController->controlView()->mapToScene(
- topLeftCorner.toPoint());
- QPointF sceneBottomRight = mBoardController->controlView()->mapToScene(
- bottomRightCorner.toPoint());
-
- visibleSceneRect.setTopLeft(sceneTopLeft);
- visibleSceneRect.setBottomRight(sceneBottomRight);
- }
-
- return visibleSceneRect;
-}
-
-void UBLibraryController::addImagesToCurrentPage(const QList& images) {
- QPointF pos = visibleSceneRect().topLeft();
-
- foreach(const QUrl url, images)
- {
- mLastItemOffsetIndex++;
- mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
-
- QGraphicsItem* itemInScene = 0;
-
- if (activeScene()) {
- QString mimeType = UBFileSystemUtils::mimeTypeFromFileName(
- url.toString());
-
- //TODO UB 4.x move this logic to the scene ..
- if (mimeType == "image/svg+xml") {
- itemInScene = activeScene()->addSvg(url, pos);
- } else {
- itemInScene = activeScene()->addPixmap(QPixmap(
- url.toLocalFile()), pos);
- }
- }
-
- if (itemInScene) {
- itemInScene = activeScene()->scaleToFitDocumentSize(itemInScene,
- false, UBSettings::objectInControlViewMargin);
-
- itemInScene->setPos(QPoint(pos.x() + 50 * mLastItemOffsetIndex,
- pos.y() + 50 * mLastItemOffsetIndex));
- }
- }
-}
-
-void UBLibraryController::addVideosToCurrentPage(const QList& videos) {
- QPointF pos = visibleSceneRect().topLeft();
-
- foreach(const QUrl url, videos)
- {
- mLastItemOffsetIndex++;
- mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
-
- UBGraphicsVideoItem* itemInScene =
- UBApplication::boardController->addVideo(url, false, pos);
- itemInScene->setPos(QPoint(pos.x() + 50 * mLastItemOffsetIndex, pos.y()
- + 50 * mLastItemOffsetIndex));
- }
-}
-
-void UBLibraryController::addAudiosToCurrentPage(const QList& sounds) {
- QPointF topLeftPos = visibleSceneRect().topLeft();
-
- QPointF pos = topLeftPos;
-
- foreach(const QUrl url, sounds)
- {
- mLastItemOffsetIndex++;
- mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
- pos = QPointF(topLeftPos.x() + 50 * mLastItemOffsetIndex,
- topLeftPos.y() + 50 * mLastItemOffsetIndex);
- UBApplication::boardController->addAudio(url, false, pos);
- }
-}
-
-void UBLibraryController::addInteractivesToCurrentPage(
- const QList& widgets) {
- foreach(const QUrl url, widgets)
- {
- mBoardController->downloadURL(url, QPointF(0, 0));
- }
-}
-
-void UBLibraryController::addImage() {
- QList images;
-
- foreach(QGraphicsItem *item, mLibraryUI->imageThumbnailView->selectedItems())
- {
- QGraphicsPixmapItem* pixmapItem =
- dynamic_cast (item);
-
- if (pixmapItem && activeScene()) {
- images << QUrl::fromLocalFile(mPixmapItemToFilepath.value(
- pixmapItem));
- } else {
- QGraphicsSvgItem* svgItem = dynamic_cast (item);
-
- images << QUrl::fromLocalFile(
- mSvgImageItemToFilepath.value(svgItem));
- }
- }
-
- addImagesToCurrentPage(images);
-}
-
-void UBLibraryController::addVideo() {
- QList urls;
-
- foreach(QGraphicsItem *item, mLibraryUI->videoThumbnailView->selectedItems())
- {
- UBThumbnailVideo* videoItem = dynamic_cast (item);
-
- if (videoItem && activeScene()) {
- urls << videoItem->path();
- }
- }
-
- addVideosToCurrentPage(urls);
-}
-
-void UBLibraryController::addAudio() {
- QList urls;
-
- foreach(QGraphicsItem *item, mLibraryUI->soundThumbnailView->selectedItems())
- {
- QGraphicsPixmapItem* pixmapItem =
- dynamic_cast (item);
-
- if (pixmapItem && activeScene()) {
- urls << QUrl::fromLocalFile(mSoundItemToFilepath.value(pixmapItem));
- }
- }
-
- addAudiosToCurrentPage(urls);
-}
-
-void UBLibraryController::setImageAsBackground() {
- QList selectedItems =
- mLibraryUI->imageThumbnailView->selectedItems();
-
- if (selectedItems.size() > 0) {
- QGraphicsPixmapItem* pixmapItem =
- dynamic_cast (selectedItems.last());
-
- if (pixmapItem && activeScene()) {
- QPixmap pix = mPixmapItemToFilepath.value(pixmapItem);
- UBGraphicsPixmapItem* boardItem = activeScene()->addPixmap(pix,
- QPointF(0, 0));
- activeScene()->setAsBackgroundObject(boardItem, true);
-
- return;
- }
-
- QGraphicsSvgItem* svgItem =
- dynamic_cast (selectedItems.last());
-
- if (svgItem && activeScene() && mSvgImageItemToFilepath.contains(svgItem)) {
- QUrl url = QUrl::fromLocalFile(mSvgImageItemToFilepath.value(svgItem));
- QGraphicsSvgItem* boardItem = activeScene()->addSvg(url, QPointF(0, 0));
- activeScene()->setAsBackgroundObject(boardItem, true, true);
- }
- }
-}
-
-
-
-
-void UBLibraryController::closeWindow() {
- mLibraryWindow->hide();
-}
-
-void UBLibraryController::itemSelectionChanged() {
- selectionChanged();
-
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- refreshImageThumbnailsView();
- break;
- case TabIndex::Interactive:
- refreshInteractiveThumbnailsView();
- break;
- case TabIndex::Video:
- refreshVideoThumbnailsView();
- break;
- case TabIndex::Sound:
- refreshSoundThumbnailsView();
- break;
- default:
- break;
- }
-}
-
-void UBLibraryController::itemChanged(QTreeWidgetItem * item, int column) {
- UBLibraryFolderItem* fi = dynamic_cast (item);
-
- if (fi) {
- QString newName = item->text(column);
-
- QString oldPath = fi->dir().canonicalPath();
-
- int lastSlashIndex = oldPath.lastIndexOf("/");
-
- QString newPath = oldPath.left(lastSlashIndex + 1) + newName;
-
- qDebug() << "renaming" << oldPath << "to" << newPath;
-
- if (fi->dir().rename(oldPath, newPath)) {
- fi->setDir(QDir(newPath));
- } else {
- item->setText(column, fi->dir().dirName());
- }
- }
-}
-
-void UBLibraryController::thumbnailViewResized() {
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image:
- mLibraryUI->zoomSlider->setMaximum(mLibraryUI->imageThumbnailView->width());
- break;
- case TabIndex::Shape:
- mLibraryUI->zoomSlider->setMaximum(mLibraryUI->shapeThumbnailView->width());
- break;
- case TabIndex::Interactive:
- mLibraryUI->zoomSlider->setMaximum(
- mLibraryUI->interactiveThumbnailView->width());
- break;
- case TabIndex::Video:
- mLibraryUI->zoomSlider->setMaximum(mLibraryUI->videoThumbnailView->width());
- break;
- case TabIndex::Gip:
- mLibraryUI->zoomSlider->setMaximum(mLibraryUI->gipThumbnailView->width());
- break;
- case TabIndex::Sound:
- mLibraryUI->zoomSlider->setMaximum(mLibraryUI->soundThumbnailView->width());
- break;
- default:
- break;
- }
-}
-
-UBLibraryFolderItem::UBLibraryFolderItem(const QDir& pDir, const QString& name,
- QTreeWidgetItem * parent, bool canWrite,
- const QStringList& pExtensionsToHide) :
-QTreeWidgetItem(parent), mExtensionsToHide(pExtensionsToHide), mDir(pDir),
-mCanWrite(canWrite) {
- if (name.length() == 0) {
- setText(0, UBLibraryController::trUtf8(pDir.dirName().toUtf8()));
- } else {
- setText(0, UBLibraryController::trUtf8(name.toUtf8()));
- }
-
- if (canWrite) {
- setFlags(flags() | Qt::ItemIsEditable);
- }
-
-
- if (!mDir.exists())
- mDir.mkpath(mDir.path());
-
- refreshSubDirs();
-}
-
-void UBLibraryFolderItem::refreshSubDirs() {
- foreach(QTreeWidgetItem *ti, takeChildren())
- delete ti;
-
- QStringList subDirs = mDir.entryList(QStringList(), QDir::Dirs
- | QDir::NoDotAndDotDot | QDir::NoSymLinks, QDir::Name); // TODO UB 4.x support symlinks properly
-
- foreach(QString subDirName, subDirs)
- {
- QString ext = UBFileSystemUtils::extension(subDirName);
-
- if (!mExtensionsToHide.contains(ext)) {
- new UBLibraryFolderItem(QDir(mDir.path() + "/" + subDirName),
- UBLibraryController::trUtf8(subDirName.toUtf8()), this,
- mCanWrite, mExtensionsToHide);
- }
- }
-}
-
-void UBLibraryController::refreshVideoThumbnailsView() {
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-
- QList items;
- QList itemsPath;
- QStringList labels;
-
- QList tw =
- mLibraryUI->videoLibraryTreeWidget->selectedItems();
-
- if (tw.size() > 0) {
- UBLibraryFolderItem* fi = dynamic_cast (tw.last());
-
- if (fi) {
- QStringList
- videoPaths = UBPersistenceManager::persistenceManager()->allVideos(fi->dir());
-
- for (int i = 0; i < videoPaths.size(); i++) {
- QString path = videoPaths.at(i);
-
- UBThumbnailVideo *pixmapItem = new UBThumbnailVideo(QUrl::fromLocalFile(path));
-
- items.append(pixmapItem);
- itemsPath.append(QUrl::fromLocalFile(path));
-
- QFileInfo file(path);
-
- labels.append(file.completeBaseName());
- }
- }
- }
-
- mLibraryUI->videoThumbnailView->setGraphicsItems(items, itemsPath, labels);
-
- QApplication::restoreOverrideCursor();
-}
-
-void UBLibraryController::refreshSoundThumbnailsView() {
- QList soundItems;
- QList soundItemsPath;
- QStringList soundLabels;
-
- QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
-
- QStringList soundWidgetPaths = UBPersistenceManager::persistenceManager()->allSounds();
-
- for (int i = 0; i < soundWidgetPaths.size(); i++) {
- QString path = soundWidgetPaths.at(i);
-
- QGraphicsPixmapItem *pixmapItem = new UBThumbnailPixmap(QPixmap(
- ":/images/soundIcon.svg"));
-
- QString name = path;
-
- mSoundItemToFilepath.insert(pixmapItem, path);
- soundItems.append(pixmapItem);
- soundItemsPath.append(QUrl::fromLocalFile(path));
- soundLabels.append(UBFileSystemUtils::lastPathComponent(name));
- }
-
- mLibraryUI->soundThumbnailView->setGraphicsItems(soundItems, soundItemsPath,
- soundLabels);
-
- QApplication::restoreOverrideCursor();
-}
-
-void UBLibraryController::addObjectFromFilesystemToPage() {
-
- bool hasAddedObjects = false;
-
- switch (mLibraryUI->libraryTab->currentIndex()) {
- case TabIndex::Image: {
- QString extensions;
-
- foreach(QString ext, UBSettings::settings()->imageFileExtensions)
- {
- extensions += " *.";
- extensions += ext;
- }
-
- QString defaultPath =
- UBSettings::settings()->lastPicturePath->get().toString();
-
- QStringList filenames = QFileDialog::getOpenFileNames(mParentWidget, tr(
- "Add Images to Current Page"), defaultPath,
- tr("All Images (%1)").arg(extensions));
-
- if (filenames.size() > 0) {
- QFileInfo fi(filenames.at(0));
- UBSettings::settings()->lastPicturePath->set(QVariant(
- fi.dir().absolutePath()));
-
- QList urls;
- foreach(const QString s, filenames)
- {
- urls << QUrl::fromLocalFile(s);
- }
-
- addImagesToCurrentPage(urls);
-
- hasAddedObjects = true;
- }
- break;
- }
-
- case TabIndex::Interactive: {
- QString defaultWidgetPath =
- UBSettings::settings()->lastWidgetPath->get().toString();
-
- QString extensions;
-
- foreach(QString ext, UBSettings::settings()->interactiveContentFileExtensions)
- {
- extensions += " *.";
- extensions += ext;
- }
-
- QStringList filenames = QFileDialog::getOpenFileNames(mParentWidget, tr(
- "Add Applications to Current Page"), defaultWidgetPath, tr(
- "All Applications (%1)").arg(extensions));
-
- if (filenames.size() > 0) {
- QFileInfo fi(filenames.at(0));
- UBSettings::settings()->lastWidgetPath->set(QVariant(
- fi.dir().absolutePath()));
-
- QList urls;
- foreach(const QString s, filenames)
- {
- urls << QUrl::fromLocalFile(s);
- }
-
- addInteractivesToCurrentPage(urls);
-
- hasAddedObjects = true;
- }
-
- break;
- }
-
- case TabIndex::Video: {
- QString defaultVideoPath =
- UBSettings::settings()->lastVideoPath->get().toString();
-
- QStringList filenames = QFileDialog::getOpenFileNames(mParentWidget, tr(
- "Add Movies to Current Page"), defaultVideoPath, tr(
- "All Files (*.*)"));
- if (filenames.size() > 0) {
- QFileInfo fi(filenames.at(0));
- UBSettings::settings()->lastVideoPath->set(QVariant(
- fi.dir().absolutePath()));
-
- QList urls;
- foreach(const QString s, filenames)
- {
- urls << QUrl::fromLocalFile(s);
- }
-
- addVideosToCurrentPage(urls);
-
- hasAddedObjects = true;
- }
-
- break;
- }
- case TabIndex::Gip: {
- //TODO
- break;
- }
- default:
- break;
-
- }
-
- UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector);
-
- if (hasAddedObjects) {
- mLibraryWindow->done(0);
- }
-}
-
-void UBLibraryController::addInteractiveToCurrentPage() {
- QList widgets;
-
- foreach(QGraphicsItem *item, mLibraryUI->interactiveThumbnailView->selectedItems())
- {
- QGraphicsPixmapItem* iconItem =
- dynamic_cast (item);
-
- if (iconItem && activeScene()) {
- QString url = mInteractiveItemToFilepath.value(iconItem);
-
- if (url.startsWith("uniboardTool")) {
- widgets << QUrl(url);
- } else {
- widgets << QUrl::fromLocalFile(url);
- }
- }
- }
-
- addInteractivesToCurrentPage(widgets);
-}
-
-void UBLibraryController::loadLibraries()
-{
- if (mLibraryFileToDownload.size() > 0) {
- QString mainLibrary = mLibraryFileToDownload.takeFirst();
-
- UBNetworkAccessManager *nam =
- UBNetworkAccessManager::defaultAccessManager();
-
- UBServerXMLHttpRequest *librariesReq = new UBServerXMLHttpRequest(nam); // Deleted automatically after reply content is consumed
- connect(librariesReq, SIGNAL(finished(bool, const QByteArray&)), this,
- SLOT(getLibraryListResponse(bool, const QByteArray&)));
-
- librariesReq->get(QUrl(mainLibrary));
- }
-}
-
-void UBLibraryController::getLibraryListResponse(bool ok,
- const QByteArray& replyContent) {
- if (!ok)
- return;
-
- QXmlStreamReader xml(replyContent);
-
- while (!xml.atEnd()) {
- xml.readNext();
-
- if (xml.isStartElement()) {
- if (xml.name() == "library") {
- QStringRef libraryTitle = xml.attributes().value("title");
- QStringRef libraryHref = xml.attributes().value("href");
- QStringRef libraryType = xml.attributes().value("type");
-
- if (!libraryTitle.isNull() && !libraryTitle.isNull()
- && !libraryType.isNull()) {
- QString title = libraryTitle.toString();
- QUrl href(libraryHref.toString());
-
- UBOnlineLibraryItem *ubLibrary = new UBOnlineLibraryItem(href,
- title, 0);
-
- if (libraryType.toString() == "image") {
- if (!mImageOnlineTi) {
- mImageOnlineTi = new QTreeWidgetItem();
- mImageOnlineTi->setText(0, tr("Online"));
- mImageOnlineTi->setIcon(0, QPixmap(
- ":/images/online.png"));
-
- mLibraryUI->imageLibraryTreeWidget->addTopLevelItem(
- mImageOnlineTi);
- }
- mImageOnlineTi->addChild(ubLibrary);
- mImageOnlineTi->setExpanded(true);
- } else if (libraryType.toString() == "video") {
- if (!mVideoOnlineTi) {
- mVideoOnlineTi = new QTreeWidgetItem();
- mVideoOnlineTi->setText(0, tr("Online"));
- mVideoOnlineTi->setIcon(0, QPixmap(
- ":/images/online.png"));
-
- mLibraryUI->videoLibraryTreeWidget->addTopLevelItem(
- mVideoOnlineTi);
- }
- mVideoOnlineTi->addChild(ubLibrary);
- mVideoOnlineTi->setExpanded(true);
- } else if (libraryType.toString() == "interactive") {
- if (!mInteractiveOnlineTi) {
- mInteractiveOnlineTi = new QTreeWidgetItem();
- mInteractiveOnlineTi->setText(0, tr("Online"));
- mInteractiveOnlineTi->setIcon(0, QPixmap(
- ":/images/online.png"));
-
- mLibraryUI->interactiveLibraryTreeWidget->addTopLevelItem(
- mInteractiveOnlineTi);
- }
- mInteractiveOnlineTi->addChild(ubLibrary);
- mInteractiveOnlineTi->setExpanded(true);
-
- }
- }
- }
- }
- }
-
- loadLibraries();
-}
-
-UBLibraryWebView::UBLibraryWebView(QWidget * parent) :
- QWebView(parent), mCurrentLibraryItem(0) {
- setPage(new UBWebPage(this));
-
- QWebView::settings()->setAttribute(QWebSettings::PluginsEnabled, true);
- QWebView::page()->setNetworkAccessManager(
- UBNetworkAccessManager::defaultAccessManager());
-
- connect(page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this,
- SLOT(javaScriptWindowObjectCleared()));
- connect(this, SIGNAL(iconChanged()), this, SLOT(newIconAvailable()));
- connect(this, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool)));
-}
-
-void UBLibraryWebView::javaScriptWindowObjectCleared() {
- UBLibraryAPI *libraryAPI = new UBLibraryAPI(this);
-
- page()->mainFrame()->addToJavaScriptWindowObject("uniboard", libraryAPI);
-}
-
-void UBLibraryWebView::loadFinished(bool ok) {
- if (ok) {
- QString installDragHandler =
- "document.body.ondragstart = function(event) {";
-
- installDragHandler += "var p = event.target.parentNode;";
- installDragHandler += "if (p && p.href){";
- installDragHandler += "event.preventDefault();";
- installDragHandler += "uniboard.startDrag(p.href);";
- installDragHandler += "}";
- installDragHandler += "}";
-
- page()->mainFrame()->evaluateJavaScript(installDragHandler);
- }
-
- mCurrentLibraryItem->setIcon(0, QWebSettings::iconForUrl(url()));
-}
-
-void UBLibraryWebView::newIconAvailable() {
- if (mCurrentLibraryItem)
- mCurrentLibraryItem->setIcon(0, icon());
-
-}
-
-QWebView * UBLibraryWebView::createWindow(QWebPage::WebWindowType type) {
- if (type == QWebPage::WebBrowserWindow) {
- UBApplication::applicationController->showInternet();
- return UBApplication::webController->createNewTab();
- } else {
- return this;
- }
-}
-
-UBLibraryPreloader::UBLibraryPreloader(QObject* pParent) :
- QObject(pParent) {
- QTimer::singleShot(30000, this, SLOT(loadLibrary()));
-}
-
-void UBLibraryPreloader::loadLibrary() {
- QStringList libraries = UBLibraryController::onlineLibraries();
-
- if (libraries.length() > 0) {
- QString mainLibrary = libraries.at(0);
-
- UBNetworkAccessManager *nam =
- UBNetworkAccessManager::defaultAccessManager();
-
- UBServerXMLHttpRequest *librariesReq = new UBServerXMLHttpRequest(nam); // Deleted automatically after reply content is consumed
- connect(librariesReq, SIGNAL(finished(bool, const QByteArray&)), this,
- SLOT(getLibraryListResponse(bool, const QByteArray&)));
-
- librariesReq->get(QUrl(mainLibrary));
- }
-}
-
-void UBLibraryPreloader::getLibraryListResponse(bool ok,
- const QByteArray& replyContent) {
- if (!ok)
- return;
-
- QXmlStreamReader xml(replyContent);
-
- while (!xml.atEnd()) {
- xml.readNext();
-
- if (xml.isStartElement()) {
- if (xml.name() == "library") {
- QStringRef libraryHref = xml.attributes().value("href");
- QStringRef libraryType = xml.attributes().value("type");
-
- if (!libraryType.isNull() && !libraryHref.isNull()) {
- if (libraryType.toString() == "interactive") {
- QUrl href(libraryHref.toString());
-
- mWebView = new QWebView(UBApplication::mainWindow);
- mWebView->setVisible(false);
-
- connect(mWebView, SIGNAL(loadFinished(bool)), this,
- SLOT(loadFinished(bool)));
-
- mWebView->load(QUrl(libraryHref.toString()));
-
- return;
- }
- }
- }
- }
- }
-}
-
-void UBLibraryPreloader::loadFinished(bool ok) {
- Q_UNUSED(ok);
-
- mWebView->deleteLater();
- deleteLater();
-}
-
-void UBLibraryController::addNativeToolToFavorites(const QUrl& url) {
- QString id = url.toString();
-
- QStringList favoritesNativeTools =
- UBSettings::settings()->favoritesNativeToolUris->get().toStringList();
-
- if (!favoritesNativeTools.contains(id)) {
- favoritesNativeTools << id;
- UBSettings::settings()->favoritesNativeToolUris->set(favoritesNativeTools);
- }
-
- refreshInteractiveThumbnailsView();
-}
-
-QString UBLibraryController::favoritePath()
-{
- return favoriteVirtualPath;
-}
-
-
-
UBLibElement::UBLibElement() {
mType = eUBLibElementType_Category;
mName = QObject::tr("/Home", "Category list label on navigation tool bar");
diff --git a/src/board/UBLibraryController.h b/src/board/UBLibraryController.h
index 2596d87c..25539234 100644
--- a/src/board/UBLibraryController.h
+++ b/src/board/UBLibraryController.h
@@ -6,8 +6,6 @@
#include "web/UBWebPage.h"
-#include "ui_library.h"
-
class UBGraphicsScene;
class UBBoardController;
class QGraphicsSvgItem;
@@ -82,14 +80,6 @@ class UBLibraryController : public QObject
UBLibraryController(QWidget *parentWidget, UBBoardController *boardController);
virtual ~UBLibraryController();
- QWidget* libraryWindow()
- {
- return mLibraryWindow;
- }
-
- static QStringList onlineLibraries();
- static void preloadFirstOnlineLibrary();
-
QList getContent(UBLibElement* pElement);
void moveContent(QList sourceList, UBLibElement *pDestination);
void trashElements(QList trashList);
@@ -117,42 +107,10 @@ class UBLibraryController : public QObject
public slots:
void removeBackground();
-
-
- void showLibraryDialog(bool show);
-
- void refreshShapeThumbnailsView();
- void refreshImageThumbnailsView();
- void refreshInteractiveThumbnailsView();
- void refreshVideoThumbnailsView();
- void refreshSoundThumbnailsView();
-
- void addShape();
- void setShapeAsBackground();
-
- void addToPage();
- void setAsBackground();
-
-
- void addImage();
- void addVideo();
- void addAudio();
- void addInteractiveToCurrentPage();
-
void addImagesToCurrentPage(const QList& images);
void addVideosToCurrentPage(const QList& videos);
void addAudiosToCurrentPage(const QList& sounds);
void addInteractivesToCurrentPage(const QList& interactiveWidgets);
- void setImageAsBackground();
-
- void closeWindow();
-
- void addObjectFromFilesystemToPage();
-
- void needRefreshOnNextDisplay()
- {
- mNeedRefreshOnNextDisplay = true;
- }
protected:
@@ -186,215 +144,11 @@ class UBLibraryController : public QObject
UBLibElement* isOnFavoriteList(UBLibElement * element);
- void loadLibraries();
-
QWidget *mParentWidget;
UBBoardController *mBoardController;
- QDialog *mLibraryWindow;
- Ui::library *mLibraryUI;
-
- // TODO UB 4.x break this logic, by carrying the path within the thumb item (see Video items path)
- //
- QMap mSvgItemToFilepath; //shape mapping
- QMap mSvgImageItemToFilepath; // svg image mapping
- QMap mPixmapItemToFilepath; // other image mapping
- QMap mInteractiveItemToFilepath; // interactive widget mapping
- QMap mSoundItemToFilepath; // sounds mapping
-
- UBLibraryWebView *mImageWebView;
- UBLibraryWebView *mVideoWebView;
- UBLibraryWebView *mInteractiveWebView;
-
- QTreeWidgetItem *mImageOnlineTi;
- QTreeWidgetItem *mVideoOnlineTi;
- QTreeWidgetItem *mInteractiveOnlineTi;
- QTreeWidgetItem *mInteractiveUniboardTi;
-
- struct TabIndex
- {
- enum Enum
- {
- Gip = 0,
- Interactive = 1,
- Image = 2,
- Video = 3,
- Shape = 4,
- Sound = 5
- };
- };
int mLastItemOffsetIndex;
- QStringList mLibraryFileToDownload;
-
- bool mNeedRefreshOnNextDisplay;
-
-
- private slots:
-
- void tabChanged(int value);
-
- void zoomSliderValueChanged(int value);
-
- void createNewFolder();
- void addInteractivesToLibrary();
- void addImagesToLibrary();
-
- void removeItemsFromLibrary(UBThumbnailWidget* pThumbnailView);
- void removeDir();
- void remove();
-
- void itemSelectionChanged();
- void itemChanged(QTreeWidgetItem * item, int column);
-
- void selectionChanged();
-
- void thumbnailViewResized();
-
- void getLibraryListResponse(bool, const QByteArray&);
-
-};
-
-
-class UBLibraryFolderItem : public QTreeWidgetItem
-{
-
- public:
-
- UBLibraryFolderItem(const QDir& pDir, const QString& name, QTreeWidgetItem * parent,
- bool pCanWrite, const QStringList& pExtensionsToHide);
-
- virtual ~UBLibraryFolderItem(){}
-
- void refreshSubDirs();
-
- QDir dir()
- {
- return mDir;
- }
-
- void setDir(const QDir& dir)
- {
- mDir = dir;
- }
-
- bool canWrite()
- {
- return mCanWrite;
- }
-
- void setCanWrite(bool canWrite)
- {
- mCanWrite = canWrite;
- }
-
- private:
- const QStringList mExtensionsToHide;
- QDir mDir;
- bool mCanWrite;
};
-
-class UBOnlineLibraryItem : public QTreeWidgetItem
-{
-
- public:
-
- UBOnlineLibraryItem(const QUrl& pUrl, const QString& name, QTreeWidgetItem * parent)
- : QTreeWidgetItem(parent)
- , mUrl(pUrl)
- {
- setText(0, UBLibraryController::trUtf8(name.toUtf8()));
- setIcon(0, QWebSettings::iconForUrl(pUrl));
- }
-
- virtual ~UBOnlineLibraryItem(){}
-
- QUrl url() const
- {
- return mUrl;
- }
-
- private:
-
- QUrl mUrl;
-};
-
-
-class UBLibraryWebView : public QWebView
-{
- Q_OBJECT;
-
- public:
- UBLibraryWebView(QWidget * parent = 0 );
- virtual ~UBLibraryWebView(){};
-
- virtual void mousePressEvent ( QMouseEvent * event)
- {
- QWebView::mousePressEvent(event);
- }
-
- virtual void mouseMoveEvent ( QMouseEvent * event)
- {
- QWebView::mouseMoveEvent(event);
- }
-
- virtual void mouseReleaseEvent ( QMouseEvent * event)
- {
- QWebView::mouseReleaseEvent(event);
- }
-
- void load ( const QUrl & url )
- {
- mCurrentLibraryItem = 0;
- QWebView::load(url);
- }
-
- void load ( const QUrl & url, UBOnlineLibraryItem* pLibraryItem)
- {
- mCurrentLibraryItem = pLibraryItem;
- QWebView::load(url);
- }
-
- protected:
-
- virtual QWebView * createWindow(QWebPage::WebWindowType type);
-
- private slots:
-
- void javaScriptWindowObjectCleared();
-
- void newIconAvailable();
-
- void loadFinished(bool ok);
-
- private:
- UBOnlineLibraryItem* mCurrentLibraryItem;
-
-
-};
-
-
-class UBLibraryPreloader : public QObject
-{
- Q_OBJECT;
-
- public:
- UBLibraryPreloader(QObject* pParent);
- virtual ~UBLibraryPreloader(){};
-
- private slots:
-
- void loadLibrary();
-
- void getLibraryListResponse(bool ok, const QByteArray& replyContent);
-
- void loadFinished (bool ok);
-
- private:
- QWebView *mWebView;
-};
-
-
-
#endif /* UBLIBRARYCONTROLLER_H_ */
diff --git a/src/board/UBLibraryTreeWidget.cpp b/src/board/UBLibraryTreeWidget.cpp
deleted file mode 100644
index c1578e95..00000000
--- a/src/board/UBLibraryTreeWidget.cpp
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * UBLibraryTreeWidget.cpp
- *
- * Created on: 28 juil. 2009
- * Author: Luc
- */
-
-#include "UBLibraryTreeWidget.h"
-
-#include "frameworks/UBFileSystemUtils.h"
-
-#include "core/UBApplication.h"
-#include "core/UBSettings.h"
-
-#include "board/UBBoardController.h"
-
-#include "network/UBHttpGet.h"
-
-#include "domain/UBW3CWidget.h"
-
-#include "UBLibraryController.h"
-
-
-UBLibraryTreeWidget::UBLibraryTreeWidget(QWidget * parent)
- : QTreeWidget(parent)
- , mDropFolderItem(0)
-{
- setDragDropMode(QAbstractItemView::DropOnly);
- setAcceptDrops(true);
- viewport()->setAcceptDrops(true);
- setDropIndicatorShown(true);
-}
-
-
-UBLibraryTreeWidget::~UBLibraryTreeWidget()
-{
- // NOOP
-}
-
-bool UBLibraryTreeWidget::supportMimeData(const QMimeData* pMimeData)
-{
- foreach(QString mimeType, mMimeTypes)
- {
- foreach(QString format, pMimeData->formats())
- {
- if (format.startsWith(mimeType))
- {
- return true;
- }
- }
- }
-
- foreach (QUrl url, pMimeData->urls())
- {
- foreach(QString ext, mFileExtensions)
- {
- if (url.toString().endsWith(ext))
- {
- return true;
- }
- }
- }
-
- foreach (QUrl url, pMimeData->urls())
- {
- foreach(QString protocole, mProtocoles)
- {
- if (url.toString().startsWith(protocole))
- {
- return true;
- }
- }
- }
-
- return false;
-}
-
-
-void UBLibraryTreeWidget::dragEnterEvent(QDragEnterEvent * event)
-{
- mDropFolderItem = 0;
-
- if (supportMimeData(event->mimeData()))
- {
- event->acceptProposedAction();
- return;
- }
- else
- {
- QTreeWidget::dragEnterEvent(event);
- }
-}
-
-
-void UBLibraryTreeWidget::dragMoveEvent(QDragMoveEvent * event)
-{
- QTreeWidgetItem * ti = itemAt(event->pos());
- UBLibraryFolderItem * lfi = dynamic_cast(ti);
-
- if (lfi && lfi->canWrite() && !(lfi == currentItem()))
- {
- event->acceptProposedAction();
- return;
- }
-
- QTreeWidget::dragMoveEvent(event);
-}
-
-
-void UBLibraryTreeWidget::dropEvent(QDropEvent * event)
-{
- QTreeWidgetItem * ti = itemAt(event->pos());
- UBLibraryFolderItem * lfi = dynamic_cast(ti);
-
- if (lfi)
- {
- UBLibraryFolderItem * sourceLfi = dynamic_cast(currentItem());
-
- mDropFolderItem = lfi;
-
- QDir dir = lfi->dir();
-
- foreach(QUrl url, event->mimeData()->urls())
- {
- // is it local ?
- QString localFile = url.toLocalFile();
-
- if (localFile.length() > 0)
- {
- QFileInfo fileInfo(localFile);
-
- //is it a file ?
- if (fileInfo.isFile())
- {
- // copy file to dir
- QFile file(localFile);
-
- if (sourceLfi && sourceLfi->canWrite())
- {
- file.rename(dir.filePath(fileInfo.fileName()));
- emit contentChanged();
- }
- else
- {
- file.copy(dir.filePath(fileInfo.fileName()));
- }
- }
- else if (fileInfo.isDir())
- {
- if (sourceLfi && sourceLfi->canWrite())
- {
- UBFileSystemUtils::moveDir(localFile, dir.filePath(fileInfo.fileName()));
- emit contentChanged();
- }
- else
- {
- UBFileSystemUtils::copyDir(localFile, dir.filePath(fileInfo.fileName()));
- }
- }
- }
- else if (url.toString().startsWith("uniboardTool://"))
- {
- UBApplication::boardController->libraryController()->addNativeToolToFavorites(url);
- }
- else
- {
- UBHttpGet* httpGet = new UBHttpGet(this); // TODO UB 4.6 we are leaking here, tree widget is never destroyed
-
- connect(httpGet, SIGNAL(downloadFinished(bool, QUrl, QString, QByteArray, QPointF, QSize, bool)),
- this, SLOT(downloadFinished(bool, QUrl, QString, QByteArray)));
-
- UBApplication::setOverrideCursor(Qt::WaitCursor);
- UBApplication::showMessage(tr("Downloading content from %1").arg(url.toString()), true);
-
- httpGet->get(url);
- }
- }
-
- event->acceptProposedAction();
- return;
- }
- else
- {
- QTreeWidget::dropEvent(event);
- }
-}
-
-
-void UBLibraryTreeWidget::downloadFinished(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData)
-{
- if (!pSuccess)
- {
- UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString()));
- }
- else
- {
- UBApplication::showMessage(tr("Download finished"));
- QStringList urlPathParts = sourceUrl.path().split("/");
-
- if (urlPathParts.length() > 0 && mDropFolderItem)
- {
- QString fileName = urlPathParts.last();
-
- QString ext = UBFileSystemUtils::fileExtensionFromMimeType(pContentTypeHeader);
-
- if (!fileName.endsWith(ext))
- {
- fileName += "." + ext;
- }
-
- QString filePath = mDropFolderItem->dir().filePath(fileName);
- QString nextItemPath = UBFileSystemUtils::nextAvailableFileName(filePath);
-
- if (UBSettings::widgetFileExtensions.contains(ext))
- {
- QTemporaryFile tempFile;
-
- if (tempFile.open())
- {
- tempFile.write(pData);
- tempFile.close();
-
- QDir widgetDir(nextItemPath);
-
- UBFileSystemUtils::expandZipToDir(tempFile, widgetDir);
- }
- }
- else if(UBW3CWidget::hasNPAPIWrapper(pContentTypeHeader))
- {
- QString widgetPath = UBW3CWidget::createNPAPIWrapperInDir(sourceUrl.toString()
- , mDropFolderItem->dir(), pContentTypeHeader);
- }
- else
- {
- QFile itemFile(nextItemPath);
- if (itemFile.open(QIODevice::WriteOnly))
- {
- itemFile.write(pData);
- itemFile.close();
- }
- }
- }
- }
-
- UBApplication::restoreOverrideCursor();
-}
-
diff --git a/src/board/UBLibraryTreeWidget.h b/src/board/UBLibraryTreeWidget.h
deleted file mode 100644
index b623dc5b..00000000
--- a/src/board/UBLibraryTreeWidget.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * UBLibraryTreeWidget.h
- *
- * Created on: 28 juil. 2009
- * Author: Luc
- */
-
-#ifndef UBLIBRARYTREEWIDGET_H_
-#define UBLIBRARYTREEWIDGET_H_
-
-#include
-
-class UBLibraryFolderItem;
-
-class UBLibraryTreeWidget : public QTreeWidget
-{
- Q_OBJECT;
-
- public:
- UBLibraryTreeWidget(QWidget * parent = 0);
- virtual ~UBLibraryTreeWidget();
-
- void setMimeTypes(const QStringList& pMimeTypes)
- {
- mMimeTypes = pMimeTypes;
- }
-
- void setFileExtensions(const QStringList& pFileExtensions)
- {
- mFileExtensions = pFileExtensions;
- }
-
- void setProtocoles(const QStringList& pProtocoles)
- {
- mProtocoles = pProtocoles;
- }
-
- bool supportMimeData(const QMimeData* pMimeData);
-
- signals:
- void contentChanged();
-
- protected:
-
- virtual void dragEnterEvent(QDragEnterEvent * event);
- virtual void dragMoveEvent(QDragMoveEvent * event);
- virtual void dropEvent(QDropEvent * event);
-
- private slots:
- void downloadFinished(bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData);
-
- private:
-
- UBLibraryFolderItem* mDropFolderItem;
-
- QStringList mMimeTypes;
- QStringList mFileExtensions;
- QStringList mProtocoles;
-
-};
-
-#endif /* UBLIBRARYTREEWIDGET_H_ */
diff --git a/src/board/board.pri b/src/board/board.pri
index 422490b3..bf934a62 100644
--- a/src/board/board.pri
+++ b/src/board/board.pri
@@ -3,14 +3,12 @@ HEADERS += src/board/UBBoardController.h \
src/board/UBBoardPaletteManager.h \
src/board/UBBoardView.h \
src/board/UBLibraryController.h \
- src/board/UBLibraryTreeWidget.h \
src/board/UBDrawingController.h
SOURCES += src/board/UBBoardController.cpp \
src/board/UBBoardPaletteManager.cpp \
src/board/UBBoardView.cpp \
src/board/UBLibraryController.cpp \
- src/board/UBLibraryTreeWidget.cpp \
src/board/UBDrawingController.cpp
diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp
index b3e8582d..87fc38b9 100644
--- a/src/core/UBApplication.cpp
+++ b/src/core/UBApplication.cpp
@@ -140,8 +140,6 @@ UBApplication::UBApplication(const QString &id, int &argc, char **argv)
}
else
{
- // Make sure we don't mix English language with unsupported language dates
- //QLocale::setDefault(QLocale(QLocale::English, QLocale::UnitedStates));
localString = "en_US";
}
@@ -182,6 +180,10 @@ UBApplication::~UBApplication()
// delete staticMemoryCleaner;
staticMemoryCleaner = 0;
+
+
+ delete mUniboardSankoreTransition;
+ mUniboardSankoreTransition = 0;
}
int UBApplication::exec(const QString& pFileToImport)
@@ -231,7 +233,7 @@ int UBApplication::exec(const QString& pFileToImport)
#else
connect(mainWindow->actionHideApplication, SIGNAL(triggered()), this, SLOT(showMinimized()));
#endif
-
+
mPreferencesController = new UBPreferencesController(mainWindow);
connect(mainWindow->actionPreferences, SIGNAL(triggered()), mPreferencesController, SLOT(show()));
@@ -256,9 +258,6 @@ int UBApplication::exec(const QString& pFileToImport)
// installEventFilter(new UBIdleTimer(this));
//#endif
- // TODO UB 4.x make it better and reenable it ... or dump
- //installEventFilter(new UBMousePressFilter);
-
applicationController->initScreenLayout();
boardController->setupLayout();
@@ -299,8 +298,6 @@ int UBApplication::exec(const QString& pFileToImport)
}
}
- UBLibraryController::preloadFirstOnlineLibrary();
-
mUniboardSankoreTransition = new UniboardSankoreTransition();
mUniboardSankoreTransition->documentTransition();
@@ -526,30 +523,6 @@ bool UBApplication::handleOpenMessage(const QString& pMessage)
return true;
}
-
-
-#if defined(Q_WS_MACX) && !defined(QT_MAC_USE_COCOA)
-
-bool UBApplication::macEventFilter(EventHandlerCallRef caller, EventRef event)
-{
- Q_UNUSED(caller);
-
- if ((GetEventClass(event) == kEventClassCommand) && (GetEventKind(event) == kEventProcessCommand))
- {
- HICommand cmd;
- GetEventParameter(event, kEventParamDirectObject, typeHICommand, 0, sizeof(cmd), 0, &cmd);
- if (cmd.commandID == kHICommandHide)
- {
- // Override the command + H (Hide Uniboard) behavior
- applicationController->showDesktop();
- return true;
- }
- }
- return false;
-}
-#endif
-
-
void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal,
bool enabled, const QString& text, QPalette::ColorRole textRole) const
{
@@ -577,30 +550,6 @@ void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment,
painter->setPen(pen);
}
- /*
- *
-#if defined(Q_WS_MACX)
-
- if (pal.brush(textRole).color() == Qt::black)
- {
- painter->save();
- painter->translate(0, 0.1);
-
- QBrush brush = pal.brush(QPalette::Light);
- QColor color = brush.color();
- color.setAlpha(color.alpha() * 0.6);
- brush.setColor(color);
-
- painter->setPen(QPen(brush, savedPen.widthF() * 0.8));
-
- painter->drawText(rect, alignment, text);
-
- painter->restore();
- }
-
-#endif
-
- */
painter->drawText(rect, alignment, text);
if (textRole != QPalette::NoRole)
diff --git a/src/gui/UBLibPathViewer.cpp b/src/gui/UBLibPathViewer.cpp
index 341f673c..d7302433 100644
--- a/src/gui/UBLibPathViewer.cpp
+++ b/src/gui/UBLibPathViewer.cpp
@@ -172,20 +172,17 @@ void UBLibPathViewer::addItem(UBChainedLibElement *elem)
*/
void UBLibPathViewer::resizeEvent(QResizeEvent *event)
{
- qDebug() << "old" << event->oldSize();
- qDebug() << "new" << event->size();
-
+
if(event->oldSize() == event->size())
event->ignore();
else{
- if(NULL != mpContainer){
- mpContainer->setMinimumWidth(width() - 20);
- }
-
- viewport()->resize(width() - 10, viewport()->height());
+ if(NULL != mpContainer)
+ mpContainer->setMinimumWidth(width() - 20);
+
+ viewport()->resize(width() - 10, viewport()->height());
- updateScrolls();
- event->accept();
+ updateScrolls();
+ event->accept();
}
}
@@ -422,8 +419,8 @@ void UBPathScene::dropEvent(QGraphicsSceneDragDropEvent *event)
// The drag comes from this application, we have now to get the list of UBLibElements*
QList qlDroppedElems;
- foreach(QUrl url, pMimeData->urls())
- qlDroppedElems << url.toString();
+ foreach(QUrl url, pMimeData->urls())
+ qlDroppedElems << url.toString();
if(!qlDroppedElems.empty())
{