From 1d354dd1e09dd4cbd6395ee603ed68c7e6223d6e Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Tue, 5 Mar 2013 17:45:25 +0100 Subject: [PATCH 01/27] removed the uniboard import --- Sankore_3.1.pro | 1 - src/adaptors/UBExportDocument.cpp | 4 - src/adaptors/UBWebPublisher.cpp | 4 - src/core/UBApplication.cpp | 15 - src/core/UBApplication.h | 5 - src/core/UBDisplayManager.cpp | 6 +- src/transition/UniboardSankoreTransition.cpp | 300 ------------------- src/transition/UniboardSankoreTransition.h | 80 ----- src/transition/transition.pri | 5 - 9 files changed, 4 insertions(+), 416 deletions(-) delete mode 100644 src/transition/UniboardSankoreTransition.cpp delete mode 100644 src/transition/UniboardSankoreTransition.h delete mode 100644 src/transition/transition.pri diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index 3b12b4cf..f1908440 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -49,7 +49,6 @@ include(src/podcast/podcast.pri) include(src/tools/tools.pri) include(src/desktop/desktop.pri) include(src/web/web.pri) -include(src/transition/transition.pri) include(src/interfaces/interfaces.pri) include(src/customWidgets/customWidgets.pri) diff --git a/src/adaptors/UBExportDocument.cpp b/src/adaptors/UBExportDocument.cpp index 81d49543..d06a2a55 100644 --- a/src/adaptors/UBExportDocument.cpp +++ b/src/adaptors/UBExportDocument.cpp @@ -37,8 +37,6 @@ THIRD_PARTY_WARNINGS_DISABLE #include "quazipfile.h" THIRD_PARTY_WARNINGS_ENABLE -#include "transition/UniboardSankoreTransition.h" - #include "core/memcheck.h" UBExportDocument::UBExportDocument(QObject *parent) @@ -78,9 +76,7 @@ void UBExportDocument::persist(UBDocumentProxy* pDocumentProxy) void UBExportDocument::persistsDocument(UBDocumentProxy* pDocumentProxy, QString filename) { - UniboardSankoreTransition document; QString documentPath(pDocumentProxy->persistencePath()); - document.checkDocumentDirectory(documentPath); QuaZip zip(filename); zip.setFileNameCodec("UTF-8"); diff --git a/src/adaptors/UBWebPublisher.cpp b/src/adaptors/UBWebPublisher.cpp index 7c9f8b18..d6cbf653 100644 --- a/src/adaptors/UBWebPublisher.cpp +++ b/src/adaptors/UBWebPublisher.cpp @@ -27,8 +27,6 @@ #include "adaptors/publishing/UBDocumentPublisher.h" -#include "transition/UniboardSankoreTransition.h" - #include "core/memcheck.h" UBWebPublisher::UBWebPublisher(QObject *parent) @@ -55,9 +53,7 @@ void UBWebPublisher::persist(UBDocumentProxy* pDocumentProxy) if (!pDocumentProxy) return; - UniboardSankoreTransition document; QString documentPath(pDocumentProxy->persistencePath()); - document.checkDocumentDirectory(documentPath); UBDocumentPublisher* publisher = new UBDocumentPublisher(pDocumentProxy, this); // the publisher will self delete when publication finishes publisher->publish(); diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index 80c51605..a0e12edb 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -72,7 +72,6 @@ UBApplicationController* UBApplication::applicationController = 0; UBBoardController* UBApplication::boardController = 0; UBWebController* UBApplication::webController = 0; UBDocumentController* UBApplication::documentController = 0; -UniboardSankoreTransition* UBApplication::mUniboardSankoreTransition = 0; UBMainWindow* UBApplication::mainWindow = 0; @@ -180,9 +179,6 @@ UBApplication::~UBApplication() delete mainWindow; mainWindow = 0; - delete mUniboardSankoreTransition; - mUniboardSankoreTransition = 0; - UBPersistenceManager::destroy(); UBDownloadManager::destroy(); @@ -365,7 +361,6 @@ int UBApplication::exec(const QString& pFileToImport) connect(mainWindow->actionMultiScreen, SIGNAL(triggered(bool)), applicationController, SLOT(useMultiScreen(bool))); connect(mainWindow->actionWidePageSize, SIGNAL(triggered(bool)), boardController, SLOT(setWidePageSize(bool))); connect(mainWindow->actionRegularPageSize, SIGNAL(triggered(bool)), boardController, SLOT(setRegularPageSize(bool))); - connect(mainWindow->actionImportUniboardDocuments, SIGNAL(triggered()), this, SLOT(importUniboardFiles())); connect(mainWindow->actionCut, SIGNAL(triggered()), applicationController, SLOT(actionCut())); connect(mainWindow->actionCopy, SIGNAL(triggered()), applicationController, SLOT(actionCopy())); @@ -399,12 +394,6 @@ void UBApplication::onScreenCountChanged(int newCount) mainWindow->actionMultiScreen->setEnabled(displayManager.numScreens() > 1); } -void UBApplication::importUniboardFiles() -{ - mUniboardSankoreTransition = new UniboardSankoreTransition(); - mUniboardSankoreTransition->documentTransition(); -} - #ifdef Q_WS_MAC void UBApplication::showMinimized() { @@ -545,7 +534,6 @@ void UBApplication::decorateActionMenu(QAction* action) menu->addSeparator(); menu->addAction(mainWindow->actionPreferences); menu->addAction(mainWindow->actionMultiScreen); - menu->addAction(mainWindow->actionImportUniboardDocuments); // SANKORE-48: Hide the check update action if the setting // EnableAutomaticSoftwareUpdates is false in Uniboard.config if(UBSettings::settings()->appEnableAutomaticSoftwareUpdates->get().toBool()) @@ -662,14 +650,11 @@ void UBApplication::cleanup() if (boardController) delete boardController; if (webController) delete webController; if (documentController) delete documentController; - if (mUniboardSankoreTransition) delete mUniboardSankoreTransition; - applicationController = NULL; boardController = NULL; webController = NULL; documentController = NULL; - mUniboardSankoreTransition = NULL; } void UBStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal, diff --git a/src/core/UBApplication.h b/src/core/UBApplication.h index b3d6aa27..618538b0 100644 --- a/src/core/UBApplication.h +++ b/src/core/UBApplication.h @@ -28,8 +28,6 @@ #include "qtsingleapplication.h" -#include "transition/UniboardSankoreTransition.h" - namespace Ui { class MainWindow; @@ -66,7 +64,6 @@ class UBApplication : public QtSingleApplication static UBBoardController* boardController; static UBWebController* webController; static UBDocumentController* documentController; - static UniboardSankoreTransition* mUniboardSankoreTransition; static UBMainWindow* mainWindow; @@ -123,8 +120,6 @@ class UBApplication : public QtSingleApplication #ifdef Q_WS_MAC void showMinimized(); #endif - void importUniboardFiles(); - void onScreenCountChanged(int newCount); private: diff --git a/src/core/UBDisplayManager.cpp b/src/core/UBDisplayManager.cpp index a436e383..7f648b6d 100644 --- a/src/core/UBDisplayManager.cpp +++ b/src/core/UBDisplayManager.cpp @@ -25,8 +25,10 @@ #include "frameworks/UBPlatformUtils.h" -#include "core/UBApplication.h" -#include "core/UBApplicationController.h" +#include "UBApplication.h" +#include "UBApplicationController.h" + +#include "UBSettings.h" #include "board/UBBoardView.h" diff --git a/src/transition/UniboardSankoreTransition.cpp b/src/transition/UniboardSankoreTransition.cpp deleted file mode 100644 index cce8ce7d..00000000 --- a/src/transition/UniboardSankoreTransition.cpp +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - - -#include "UniboardSankoreTransition.h" -#include "core/UBSettings.h" -#include "frameworks/UBFileSystemUtils.h" -#include "core/UBApplication.h" -#include "core/UBPersistenceManager.h" -#include "gui/UBMainWindow.h" - -#include "core/memcheck.h" - -UniboardSankoreTransition::UniboardSankoreTransition(QObject *parent) : - QObject(parent) - , mTransitionDlg(NULL) - , mThread(NULL) -{ - mOldSankoreDirectory = UBFileSystemUtils::normalizeFilePath(QDesktopServices::storageLocation(QDesktopServices::DataLocation)); - - mUniboardSourceDirectory = UBFileSystemUtils::normalizeFilePath(QDesktopServices::storageLocation(QDesktopServices::DataLocation)); -#if defined(Q_WS_MACX) - mOldSankoreDirectory.replace("Sankore/Sankore 3.1", "Sankore"); - mUniboardSourceDirectory.replace("Sankore/Sankore 3.1", "Uniboard"); -#else - mUniboardSourceDirectory.replace("Sankore/Sankore 3.1", "Mnemis/Uniboard"); -#endif - connect(this, SIGNAL(docAdded(UBDocumentProxy*)), UBPersistenceManager::persistenceManager(), SIGNAL(documentCreated(UBDocumentProxy*))); -} - -UniboardSankoreTransition::~UniboardSankoreTransition() -{ - if(NULL != mTransitionDlg) - { - delete mTransitionDlg; - mTransitionDlg = NULL; - } - - if(mThread){ - delete mThread; - mThread = NULL; - } -} - -void UniboardSankoreTransition::rollbackDocumentsTransition(QFileInfoList& fileInfoList) -{ - QFileInfoList::iterator fileInfo; - for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end(); fileInfo += 1) { - if (fileInfo->isDir() && fileInfo->fileName().startsWith("Uniboard Document ")){ - QString sankoreDocumentName = fileInfo->fileName(); - sankoreDocumentName.replace("Uniboard","Sankore"); - QString sankoreDocumentDirectoryPath = UBSettings::userDocumentDirectory() + "/" + sankoreDocumentName; - if (QFileInfo(sankoreDocumentDirectoryPath).exists()){ - UBFileSystemUtils::deleteDir(sankoreDocumentDirectoryPath); - } - } - } -} - -bool UniboardSankoreTransition::checkDocumentDirectory(QString& documentDirectoryPath) -{ - bool result = true; - result = updateSankoreHRef(documentDirectoryPath); - QString sankoreWidgetPath = documentDirectoryPath + "/widgets"; - result &= updateIndexWidget(sankoreWidgetPath); - return result; -} - -void UniboardSankoreTransition::documentTransition() -{ - if (QFileInfo(mUniboardSourceDirectory).exists() || QFileInfo(mOldSankoreDirectory).exists()){ - QString uniboardDocumentDirectory = mUniboardSourceDirectory + "/document"; - - QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(uniboardDocumentDirectory); - fileInfoList << UBFileSystemUtils::allElementsInDirectory(mOldSankoreDirectory + "/document"); - - QString backupDirectoryPath = UBFileSystemUtils::normalizeFilePath(QDesktopServices::storageLocation(QDesktopServices::DesktopLocation)); - - if (fileInfoList.count() != 0){ - mTransitionDlg = new UBUpdateDlg(NULL, fileInfoList.count(), backupDirectoryPath); - connect(mTransitionDlg, SIGNAL(updateFiles()), this, SLOT(startDocumentTransition())); - connect(this, SIGNAL(transitionFinished(bool)), mTransitionDlg, SLOT(onFilesUpdated(bool))); - mTransitionDlg->show(); - } - } - else{ - UBApplication::mainWindow->information(tr("Import old Uniboard/Sankore documents"), tr("There are no documents that should be imported")); - } -} - -void UniboardSankoreTransition::startDocumentTransition() -{ - mThread = new UniboardSankoreThread(this); - mThread->start(); - connect(this,SIGNAL(transitioningFile(QString)),mTransitionDlg,SLOT(transitioningFile(QString))); -} - - -bool UniboardSankoreTransition::checkPage(QString& sankorePagePath) -{ - QFile file(sankorePagePath); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) - return false; - - QByteArray documentByteArray = file.readAll(); - file.close(); - - QString sankoreDirectory = sankorePagePath.left(sankorePagePath.indexOf("/page")); - - sankoreDirectory = QUrl::fromLocalFile(sankoreDirectory).toString(); - QString documentString(documentByteArray); - - QRegExp videoRegExp(""); - videoRegExp.setMinimal(true); - - documentString.replace(videoRegExp,""); - - - QRegExp audioRegExp(""); - audioRegExp.setMinimal(true); - - documentString.replace(audioRegExp,""); - - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - return false; - - file.write(documentString.toAscii()); - file.close(); - - return true; -} - - -bool UniboardSankoreTransition::checkWidget(QString& sankoreWidgetIndexPath) -{ - QFile file(sankoreWidgetIndexPath); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) - return false; - - QByteArray documentByteArray = file.readAll(); - file.close(); - - QString documentString(documentByteArray); - - QRegExp swfOriginFilePathRegExp(""); - swfOriginFilePathRegExp.setMinimal(true); - swfOriginFilePathRegExp.indexIn(documentString); - QString origin = swfOriginFilePathRegExp.cap(1); - if(origin.contains("http://")){ - // an url is the source of the swf. The source is kept as is. - return true; - } - - //changing the path - QRegExp swfDataPathRegExp(""); - swfDataPathRegExp.setMinimal(true); - documentString.replace(swfDataPathRegExp,""); - - QRegExp swfMoviePathRegExp(""); - swfMoviePathRegExp.setMinimal(true); - documentString.replace(swfMoviePathRegExp,""); - - //copy the swf on the right place - QRegExp swfFileNameRegExp(""); - swfFileNameRegExp.setMinimal(true); - swfFileNameRegExp.indexIn(documentString); - QString swfFileName = swfFileNameRegExp.cap(1); - int lastDirectoryLevel = sankoreWidgetIndexPath.lastIndexOf("/"); - if (lastDirectoryLevel == -1) - lastDirectoryLevel = sankoreWidgetIndexPath.lastIndexOf("\\"); - - - QString destination(sankoreWidgetIndexPath.left(lastDirectoryLevel) + "/" + swfFileName); - QFile(origin).copy(destination); - - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) - return false; - - file.write(documentString.toAscii()); - file.close(); - - return true; -} - - -bool UniboardSankoreTransition::updateIndexWidget(QString& sankoreWidgetPath) -{ - bool result = true; - QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(sankoreWidgetPath); - - QFileInfoList::iterator fileInfo; - for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) { - if (fileInfo->fileName().endsWith("wgt")){ - QString path = fileInfo->absolutePath() + "/" + fileInfo->fileName() + "/index.html"; - if (QFile(path).exists()) - result = checkWidget(path); - - path = fileInfo->absolutePath() + "/" + fileInfo->fileName() + "/index.htm"; - if (QFile(path).exists()) - result &= checkWidget(path); - } - } - - return result; -} - -bool UniboardSankoreTransition::updateSankoreHRef(QString& sankoreDocumentPath) -{ - bool result = true; - QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(sankoreDocumentPath); - - QFileInfoList::iterator fileInfo; - - for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) { - if (fileInfo->fileName().endsWith("svg")){ - QString path = fileInfo->absolutePath() + "/" + fileInfo->fileName(); - result = checkPage(path); - } - } - - return result; -} - -void UniboardSankoreTransition::executeTransition() -{ - bool result = false; - QString backupDestinationPath = mTransitionDlg->backupPath() + "/OldSankoreAndUniboardVersionsBackup"; - result = UBFileSystemUtils::copyDir(mUniboardSourceDirectory + "/document", backupDestinationPath); - result &= UBFileSystemUtils::copyDir(mOldSankoreDirectory + "/document", backupDestinationPath); - - QString uniboardDocumentDirectory = mUniboardSourceDirectory + "/document"; - QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(uniboardDocumentDirectory); - fileInfoList.append(UBFileSystemUtils::allElementsInDirectory(mOldSankoreDirectory + "/document")); - - QFileInfoList::iterator fileInfo; - QString sankoreDocumentDirectory = UBSettings::userDocumentDirectory(); - - for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) { - if (fileInfo->isDir() && (fileInfo->fileName().startsWith("Uniboard Document ") || fileInfo->fileName().startsWith("Sankore Document "))){ - QString sankoreDocumentName = fileInfo->fileName(); - emit transitioningFile(sankoreDocumentName); - sankoreDocumentName.replace("Uniboard","Sankore"); - QString sankoreDocumentPath = sankoreDocumentDirectory + "/" + sankoreDocumentName; - result = UBFileSystemUtils::copyDir(fileInfo->filePath(),sankoreDocumentPath); - result &= updateSankoreHRef(sankoreDocumentPath); - QString sankoreWidgetPath = sankoreDocumentDirectory + "/" + sankoreDocumentName + "/widgets"; - result &= updateIndexWidget(sankoreWidgetPath); - } - } - - if (!result){ - qWarning() << "The transition has failed"; - rollbackDocumentsTransition(fileInfoList); - UBFileSystemUtils::deleteDir(backupDestinationPath); - } - else{ - UBFileSystemUtils::deleteDir(mOldSankoreDirectory); - UBFileSystemUtils::deleteDir(mUniboardSourceDirectory); - } - - emit transitionFinished(result); -} - - -UniboardSankoreThread::UniboardSankoreThread(QObject* parent):QThread(parent) -{ - -} - -UniboardSankoreThread::~UniboardSankoreThread() -{ - -} - -void UniboardSankoreThread::run() -{ - UniboardSankoreTransition* pTransition = dynamic_cast(parent()); - - pTransition->executeTransition(); -} - diff --git a/src/transition/UniboardSankoreTransition.h b/src/transition/UniboardSankoreTransition.h deleted file mode 100644 index 7e4e5e41..00000000 --- a/src/transition/UniboardSankoreTransition.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - - -#ifndef UNIBOARDSANKORETRANSITION_H -#define UNIBOARDSANKORETRANSITION_H - -#include -#include -#include -#include "gui/UBUpdateDlg.h" -#include "document/UBDocumentProxy.h" - -class UniboardSankoreThread : public QThread -{ - Q_OBJECT -public: - UniboardSankoreThread(QObject* parent = 0); - ~UniboardSankoreThread(); - - void run(); - -}; - -class UniboardSankoreTransition : public QObject -{ - Q_OBJECT -public: - explicit UniboardSankoreTransition(QObject *parent = 0); - ~UniboardSankoreTransition(); - - bool checkDocumentDirectory(QString& documentDirectoryPath); - - void documentTransition(); - bool checkPage(QString& sankorePagePath); - bool updateSankoreHRef(QString &sankoreDocumentPath); - bool checkWidget(QString& sankoreWidgetPath); - bool updateIndexWidget(QString& sankoreWidgetPath); - void executeTransition(); - - -private: - void rollbackDocumentsTransition(QFileInfoList& fileInfoList); - UBUpdateDlg* mTransitionDlg; - -protected: - QString mUniboardSourceDirectory; - QString mOldSankoreDirectory; - UniboardSankoreThread* mThread; - -signals: - void transitionFinished(bool result); - void docAdded(UBDocumentProxy* doc); - void transitioningFile(QString documentName); - -private slots: - void startDocumentTransition(); - -}; - -#endif // UNIBOARDSANKORETRANSITION_H diff --git a/src/transition/transition.pri b/src/transition/transition.pri deleted file mode 100644 index 4d2006f7..00000000 --- a/src/transition/transition.pri +++ /dev/null @@ -1,5 +0,0 @@ - -HEADERS += src/transition/UniboardSankoreTransition.h - - -SOURCES += src/transition/UniboardSankoreTransition.cpp From d3fb0c9059734f2d9864375a0412a3f72f271f76 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 6 Mar 2013 10:38:55 +0100 Subject: [PATCH 02/27] removed sankore editor --- .../SankoreEditor/editor_en/files/calepin.png | Bin 11462 -> 0 bytes .../SankoreEditor/editor_en/files/logo.png | Bin 4349 -> 0 bytes .../editor_en/files/logoplanetesankore.png | Bin 14509 -> 0 bytes .../SankoreEditor/editor_en/files/mappe.png | Bin 10972 -> 0 bytes .../SankoreEditor/editor_en/files/outils.png | Bin 10347 -> 0 bytes .../etc/SankoreEditor/editor_en/index.html | 81 ------------------ .../SankoreEditor/editor_fr/files/calepin.png | Bin 11462 -> 0 bytes .../SankoreEditor/editor_fr/files/logo.png | Bin 4349 -> 0 bytes .../editor_fr/files/logoplanetesankore.png | Bin 14509 -> 0 bytes .../SankoreEditor/editor_fr/files/mappe.png | Bin 10972 -> 0 bytes .../SankoreEditor/editor_fr/files/outils.png | Bin 10347 -> 0 bytes .../etc/SankoreEditor/editor_fr/index.html | 80 ----------------- resources/forms/mainWindow.ui | 20 ----- resources/images/toolbar/paraschool.png | Bin 1574 -> 0 bytes resources/sankore.qrc | 1 - src/board/UBBoardPaletteManager.cpp | 2 +- src/core/UBApplication.cpp | 2 - src/core/UBApplicationController.cpp | 32 ------- src/core/UBApplicationController.h | 3 +- src/domain/UBGraphicsItemDelegate.cpp | 1 - src/web/UBWebController.cpp | 60 ------------- src/web/UBWebController.h | 6 +- 22 files changed, 3 insertions(+), 285 deletions(-) delete mode 100644 resources/etc/SankoreEditor/editor_en/files/calepin.png delete mode 100644 resources/etc/SankoreEditor/editor_en/files/logo.png delete mode 100644 resources/etc/SankoreEditor/editor_en/files/logoplanetesankore.png delete mode 100644 resources/etc/SankoreEditor/editor_en/files/mappe.png delete mode 100644 resources/etc/SankoreEditor/editor_en/files/outils.png delete mode 100644 resources/etc/SankoreEditor/editor_en/index.html delete mode 100644 resources/etc/SankoreEditor/editor_fr/files/calepin.png delete mode 100644 resources/etc/SankoreEditor/editor_fr/files/logo.png delete mode 100644 resources/etc/SankoreEditor/editor_fr/files/logoplanetesankore.png delete mode 100644 resources/etc/SankoreEditor/editor_fr/files/mappe.png delete mode 100644 resources/etc/SankoreEditor/editor_fr/files/outils.png delete mode 100644 resources/etc/SankoreEditor/editor_fr/index.html delete mode 100644 resources/images/toolbar/paraschool.png diff --git a/resources/etc/SankoreEditor/editor_en/files/calepin.png b/resources/etc/SankoreEditor/editor_en/files/calepin.png deleted file mode 100644 index e710d8c0066c8c523ac16b05c23c989e04f5bc3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11462 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 diff --git a/resources/etc/SankoreEditor/editor_en/files/logo.png b/resources/etc/SankoreEditor/editor_en/files/logo.png deleted file mode 100644 index e1a85e35bb5f9eec5e7cb69946ab474318b086d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4349 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�uDNU{g`5%8-vwziYR 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 LNkvXXu0mjf;rxC6 diff --git a/resources/etc/SankoreEditor/editor_en/files/mappe.png b/resources/etc/SankoreEditor/editor_en/files/mappe.png deleted file mode 100644 index f9548bee57ae62ab3c399f63c1f193ab94437e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10972 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 oKaiXMAJ@4pF diff --git a/resources/etc/SankoreEditor/editor_en/files/outils.png b/resources/etc/SankoreEditor/editor_en/files/outils.png deleted file mode 100644 index 0ef1c5bb9bfbcd5d421171d9cb71bfa768cb8732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10347 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 - - - -Sankoré editor - - - - - - - - - - - - - - - - - - - - - - - - - - -

editeur

-

Instructions on how to use Sankoré editor

-

THE CURRENT VERSION IS ONLY AVAILABLE IN FRENCH

outils mappe calepin

Sankoré Editor allows you to create rich interactivity scenarios. Create interactive content easily with basic activities that can be used in various subjects (attach images, sounds, order of words, phrases, create categories ...). This content can then be added to the software Open-Sankore.

Requirement to work with the editor :

-
    -
  • a Web access
  • -
  • an account on Planète Sankoré
  • -

 

-

 

-

 

Sankoré editor is hosted on planete.sankore.org
-

 

- - diff --git a/resources/etc/SankoreEditor/editor_fr/files/calepin.png b/resources/etc/SankoreEditor/editor_fr/files/calepin.png deleted file mode 100644 index e710d8c0066c8c523ac16b05c23c989e04f5bc3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11462 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 diff --git a/resources/etc/SankoreEditor/editor_fr/files/logo.png b/resources/etc/SankoreEditor/editor_fr/files/logo.png deleted file mode 100644 index e1a85e35bb5f9eec5e7cb69946ab474318b086d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4349 zcmVi_^R>Hq){!52pw zng9S0gGod|RCwC#T7OtnWxoH+4;Tgk9sGeqqBfL-EL%9HC6uk==9-k2XxFsW+@)LX zrqq*oZ+p$UTjsrY`(dVu*+o}P!Sqq^_goX5sa6_X_0A|5M@DQ8Ak2Y*;SA@@Ip_W{ z=ZuGO_@SU~-oDSn^DyU}_kF*=zwh_+z6!zeFSx~&1Hc4;z|VB2P&R;~pCaRm^pzcc zE3ad0rs&Lh0M-LIBK~i@jyduGtarKTFBR!4bwB&j4Uc^(N_sq$ENiZ*U_Asar8y!9lKo$gU^9}N?6L~WIKX877=yXQ$ z&k+0p-R?V~)u^8WK;0((kUU~Qt|EQqF2TIi{L>Byo|7CbM-~j-X78H%7IOFT3)aP} zzdi-P2%hV4Km-)Yb2rNOdH~t>>c%%mj~w{k9U2HaNzU#*)P^Y@*=M=%+4Q{K3xwmZ z)3=f5Oz_-KDjY_atY42Yai!9chByqD@*oE4WSvf0DX{riP$lZNZ` z-=8BD{>0=n-|`^ny-jaV@QPdh@7B$E=AoB%d<_6`s0H+#$0rFdEc1e^rEICjOTH2|%3cfG- zbdQ}75g`JAjW_-Ns-b!-e8=&50P=gV4-N#cy}HpKpm%0Km^fZ=tCWfu>A|ZrlBds` zY#0(7t=R}*a}RWS%L1b2iif;S>t8PzQ7G}e_Zx?0$=Ywt)wM08m}H;^=NBL<9O>X# zmo#$A;R?&Ad+b&K#r&ZKS0Pfa4+XwDmkz-D?lyMefSFs<_(Kcmo|NdKQi23P^(jyP zI7ICGw&t0xZ7avV5z9LEd)sZuJ|!4G%dt}SCAIkmOXGyrEOwlIhZ zFB`yE+#bk1PihOATA9Xw+f=^))4k^j0A>IdSwJu$OW(|g^u~FQ%^DIL9sVjfCK%aR z24GchN~=F00&7!(fTkD?l9GnSyaLnTxlZ#fZspYDVyhxq9@12ol;KQHtwzG zQkOkDam1{oVKD(6s(=`9{?bn~+zD;CYQb%Av;g{e@?0$ez#C+XOfd*@qzBte9c$*U zvOLG{pG)1spgkh-dhAS{^@R_=Gga4lNC3sbI#UaLK!8H|i(v!RdH{Oa`v7e@>d5@< z2W1wnWR|%%0TDE}Ztj2lZFR+E_WvVpoE&{6Q zJ3CAwRfx=x8C>36|JX{@QeLX`e;bLnzpStaW%wJkcE|BsUrT#+dudHPx93T^leq&t z4j-tFzxer-SHUsCNQ_nNMF`m#DN7jufER>jr9v_5Is>Cntc*k#&XFTuN1`ju%%_9< zhyS5hs@n4;0U%HH)LuiHq5t?LPbR+bOu9Zp8?K6wzKPKYE2q49?DUa$CVYJp5U)H@ z#@RBxU6qsP@Vj4+hzG~4msbS2|EwvwXj!}eA~EUyL1EyS@6q}BR<^s%_iaq1`iX9O z%AV-ls(xy3ieYGE&ir2`jCO8%JUwoJ<}JzpT8p086P3MhhBQvW?V2hHR@DLCV>qwr zbfdMo%|{oP)e}3vsU<~cpa2luuBo=`EUg`&UDeYE-{y8rUC~7*&kp)+L=R78>zkQ! z{lcS}+^(tF@MHPc(5Z{=vtwWXW(K!wYEQNq*#HX9I9g0;xt7`7uBlXr{c%oL6DG=*bd0_4br=Q_=O{GKVG)Jbx7dr{= zDselUFaGY};6ZwOUqWkY8oXq}pa}i7f#4z5>~~n!9=Id{GiGkr)R6jewX&2pT&b0U zyuO*Kww$9T%zP-0?4&2@sm?oWn}TWa=jWEK+3#58-!gFwfoe==EYQ7%;qrfplP{yG;YvjX~oB=?Fz%e!%f7hJfR5;s+vLD<8QAbmT zIIS*Wphma#*pDOLEvkx_>##TEE1E4=tx-LFaGtMd zlD-!@|47bjsg1Ixj)*eEMuq7Bfakds5w>=!!809@8&|835`)3y+mX?+N9caPE|u0U zw_h~FdxPf71EAaS%@t`kK#p{*rKPdq8>V+epmGfI& z+e%JMjxtKm$|_w104+N9P=?(n8?$DP8%Tzz5b(5ly#RFJnQO9>tJO#CFLzm26kf85 z{1CE=stW`g-zNY-U>g`2*73xjsBNWWy3La%n+}vTR6XwQLD46QPu4z?H8%E?yg$>Z z5VvuMqsC3d~*4Wr|0C+SxdXhT(=nmhGj1Y;*M{PY(Z^W@FBW?ThanGi!Wo1UUAspzJ}&%B)Fj ze2DH!lAjTVY-4yD01lsSvIC%lU{|n=?_u>EbBb@<_+|FX^oa6{9u?*Bc`wv@skMje z2-{!opP!_UFaW^v?bQ}bMT-gkLqgKGZG6xc!B+^`&5$u8G^3^UDo8J}qR`>bTvvI> z1^`E0+Y0rZb4z6N1suwLsl_Ssohc9Q&yUudayL692e1OLUdvCfVQZrdwF#-`3erow zQ*_BLLeV+$Oj>@?V=pOhvZalTjL$Oa(g7e`fqn@(3Y`CS7EfbeY_ zAArw&+s3B@_&qpQYSssUiS-H;fyHb$#zoG_|ieBux_O5V8V z+Cv;cyjR7uwqGtiGgDlH5*enF;#99nV=NUd{_L}540SyRLR-u((}K^cEusRfvT;@b z#z&L182}96S(_ZY27nDm>+AqX@T@^H%)<4K%{%`_5dciSEn}{tNxeUyGT`dHvh42q zr_ysR)C=${(dxgcD5`aLdvLBBO-CIY7~G`;Mu4BAO=n;6<8UJ96c~R-0=Q1ig$u%B{{R@JC?Ew&4jpCpX$7(ks;@;tuC@uv^wSBin_N)?Qd+oJmbL9k!jlS zjyK7N=@k0sCPeF>n~)T;hal>i2=%=36n1lJpg9-Bo3{ebg58`-i#V|ire$>iP)W8E z0Kjfe?dqyReyFDFxe3vkS!pQ=F$Y(NuoQ{|G!AE>9H2YoY^Y4$~?0E1n*_R^ZvS zA)VI6l2Y>Oh0cpY^&G==3jLwHk-q~_rco<00Z?JjpPj7+@9Pp}ad|kZp@pLW;3PqJ z_;%l^R>D&0p&H!nUnInaJs;73P0a(c*8Ac^?Hp=kjpW?A4B905-NDxj0xhM+4(+p;?pkywvWtEzEZo zy_Y@Y;rrsl?@iKc^n;>Ry5Io$o@h-?T~?XF79_9gF4)Vfz4qB_E*ArEvIWWJUg(@~ z)BMLVTIJ&47aAoZ0ZarBRMs*l0c5Meb3~n+%Z-aseOTl2kyqS4%I;*G`%Zg^onr;mzI#CzHW z@82(Z2}gsE`sgrab2P9N{FnO(00jHRC}#*hUTmiMgZ;J2K`swRovmpnMBNhrio`M2 zuoo(e0gU!17;cKWl3rVQvZcb&z>)w;WOGtdPyxWqv`CWkaYt23OcIla{f*xY$Pas= zG6jHML~V4l9*iD6I9jDWQ`1g~b_aOQWU{qAKW3!nauTi>eIb zK76dBkrf;bK5vK&PXREq8xyIZu^FOaEbPX_PR}?#Jk<23rG<@ZaSl@tc+vsLcy@f$ z6kR{n003Bbv{?#j8vwg}y|6`9+PrDH_uO87;Qlinr=!6~0k8uwu^SWVAXzg+K5ojD z3E3JtS>s2EJkvcGAD=iR?6+0*tVTLN3Z?ttF=A!01G4W#n zNc~gIOXo=@PSlUNi#a0zQ1Z3I7F8K0C2JQX>BC2MXP3UvdDx;VKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-CEy_tmK~#9!?45ahRMpwXzmtU_3t0$D0tx#XWD!LWML}$} zR*Q9crPc+gRiwUFY+dS7^|iHHYh6pNZM817TCIwn`>l?W0K_+3TUrsZ@gRv_1J2@VEwC0DXZUySK&_S6t?GyhsW#4j6@U6#=XVmIM1* zaK2%{^*|=@s+`M}wj(2eM}Tyj_XYz!fxYf+a>W%FypE+z0B#1(0n)VNb-<^&su+O(|*N4blx0V0j_a-g^Ty-u$2c$Sla2L-(50H1fzH84I3-~#1VPH$t^mJ0k<*63K^ zr$BuNd9HCN_kBO07Wmp#_Z=L(7U$>o1MU&vidFi_kAA)~;4R?!NrgKX9pURe8x@R? zMG2h*{6&Clox^7a0so`D{u(%V96$G5-~|FMvU`9lfwB%Z|4#>=iUPO*e87io?D|d; z?}3&2zYut*13cGrWj>z-WCO2@0qROSvrb|Gt{K4U76O-(SPbr?#re4(EzZv!bA+yS z81R_Jj$)C~z^}uA{kMUE+UrkI>GH>`^fVOq`M~!&*xdgP@UlGHNK!3q{nIvfjpq|c zMCvTB+jE9-JaChM)#boYU@7o-SJii5@LHUo`y9%>l5qsbGZ|RDI6wDMaZ9%5q`nyy zmpUA4ZkEmQEV1$|DFzlF=g++YC^e4F1qQSNllQiPdH+q|�uDNU{g`5%8-vwziYR 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 LNkvXXu0mjf;rxC6 diff --git a/resources/etc/SankoreEditor/editor_fr/files/mappe.png b/resources/etc/SankoreEditor/editor_fr/files/mappe.png deleted file mode 100644 index f9548bee57ae62ab3c399f63c1f193ab94437e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10972 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 oKaiXMAJ@4pF diff --git a/resources/etc/SankoreEditor/editor_fr/files/outils.png b/resources/etc/SankoreEditor/editor_fr/files/outils.png deleted file mode 100644 index 0ef1c5bb9bfbcd5d421171d9cb71bfa768cb8732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10347 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 - - - -Editeur Sankoré - - - - - - - - - - - - - - - - - - - - - - - - - - -

editeur

-

Instructions pour l'utilisation de l'éditeur Sankoré

outils mappe calepin
L'éditeur Sankoré vous permet de réaliser des scénarios d'interactivités riches. Il facilite la création de contenu interactif avec des activités de base qui peuvent être utilisées dans diverses disciplines (associer des images, des sons, ordonner des mots, des phrases, créer des catégories...). Ce contenu peut ensuite être ajouté à votre cours sur le logiciel Open-Sankoré. L'éditeur repose sur votre compte utilisateur Planète Sankoré.

Éléments requis pour travailler avec l'éditeur :

-
    -
  • un accès Web
  • -
  • un compte Planète Sankoré
  • -

 

-

 

-

 

L'éditeur Sankoré est hébergé sur planete.sankore.org
-

 

- - diff --git a/resources/forms/mainWindow.ui b/resources/forms/mainWindow.ui index 06ea51ab..575d475d 100644 --- a/resources/forms/mainWindow.ui +++ b/resources/forms/mainWindow.ui @@ -1596,18 +1596,6 @@ Check Update - - - - :/images/toolbar/paraschool.png:/images/toolbar/paraschool.png - - - Open-Sankoré Editor - - - Show Open-Sankoré Widgets Editor - - @@ -1623,14 +1611,6 @@ Ctrl+H - - - Import Uniboard Documents - - - Import old Sankore or Uniboard documents - - true diff --git a/resources/images/toolbar/paraschool.png b/resources/images/toolbar/paraschool.png deleted file mode 100644 index bdb6da434bcd7ad9464184dce40a1f9c0b613e93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1574 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW~I!Kh>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d20o>TUVrVb{15Cdnu|VHY&j92lm_lD){7Q3k;i`*Ef>IIg#cFVINM%8) zeo$(0erZuMFyhjbK~@!5ITxiSmgEyn>bnwy$e0@Is<&})uUFDNPG765H_NiE7OOHFYr%Fk5*d)X=zw_8kbng`XJ zg4->oIQ8lS9itD5Sfq%C2?0|NhzU=&Kn^_Nr{)1udl4{MUvzRWW?*2N<>}%WQgLfd z$bSFeKndIL_x4?9(m&`Z_V`GXy+qcdMS+v8c3CnRY9_1u@>p%V%fq9mR;tbYB0k}c zjL)eDL5nhlwS!za8aaC1Hg5S|SNHuJd#&R_sl1}k@6Lao`+m-QJ4crn%Q+RDKHr?< z_363ZeLowYmr?1lkL+*V37#q=Vf6EIddVEd__I&{1m8XI|I~*-zo*R(D(8>$hO}(h z>{<~Y+W~+o;dz^dgsiSVGf7)v=pYBuRgGR z)v7krCuiHPtux=*Ew_p(>EClXQTz2bO8c85+PZu{Z1^r45&t<$=vCPgZnv<2K90+= zMpsVNCw|h3FY}9=b@rr9yKi6LN4~8lYr_7_%2YC(d`n->AVn!C%J-Jkzojt|KVGhv z&f53MFDaY(M?lclw8gAqdeWx@esxp?YKXRm*wxqaCGc6=O}=z__w9*4uXgEhX_Ree z71Nr%^7$L1z*#Z{{N4xkCZEvpiFvtt&n~HZmBo`CeWceOzGdOE*<@1XN0yg;?nmDJ z|G*|_@_o~GuI!l;*2}i(zvsWuYZx7WILu<-@#NHixOES`AL^Xz?XwbQnLc&Pzt21N zd=li*_;=#MuEZ@)&ZX0ADuNDgn0Kx)&GizmL`ZAT>)eG_B6SDErD}FuT=`AswX%gyZ~&Dy@1!Bh1@FUefkWFr*t$@|JQ-z~X(t9Pv5 zu>0_N2cE-MUZ1Pt&Zw{#lD1;I(DCN=)3ehicTH9J9XIo+he@~Sf=&D8@x6SuM&PD% p{nEPn_`hbI!g=a^KcX8L8FVs@s*h~HQwu7&Jzf1=);T3K0RTFMStkGh diff --git a/resources/sankore.qrc b/resources/sankore.qrc index fcefa2e8..b98a501b 100644 --- a/resources/sankore.qrc +++ b/resources/sankore.qrc @@ -295,7 +295,6 @@ images/toolbar/updates.png images/paletteLibrary.png images/paletteNavigator.png - images/toolbar/paraschool.png images/toolbar/display.png images/toolbar/hide.png images/toolbar/record.png diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 086da59b..2595dc98 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -175,7 +175,7 @@ void UBBoardPaletteManager::setupDockPaletteWidgets() void UBBoardPaletteManager::slot_changeMainMode(UBApplicationController::MainMode mainMode) { -// Board = 0, Internet, Document, Tutorial, ParaschoolEditor, WebDocument +// Board = 0, Internet, Document, Tutorial, WebDocument switch( mainMode ) { diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index a0e12edb..d24bb14b 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -349,7 +349,6 @@ int UBApplication::exec(const QString& pFileToImport) connect(mainWindow->actionPreferences, SIGNAL(triggered()), mPreferencesController, SLOT(show())); connect(mainWindow->actionTutorial, SIGNAL(triggered()), applicationController, SLOT(showTutorial())); connect(mainWindow->actionTutorial, SIGNAL(triggered()), this, SLOT(stopScript())); - connect(mainWindow->actionSankoreEditor, SIGNAL(triggered()), applicationController, SLOT(showSankoreEditor())); connect(mainWindow->actionCheckUpdate, SIGNAL(triggered()), applicationController, SLOT(checkUpdateRequest())); @@ -543,7 +542,6 @@ void UBApplication::decorateActionMenu(QAction* action) menu->addSeparator(); menu->addAction(mainWindow->actionTutorial); - menu->addAction(mainWindow->actionSankoreEditor); #ifndef Q_WS_X11 // No Podcast on Linux yet menu->addAction(mainWindow->actionPodcast); diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp index 3922a385..b24daa25 100644 --- a/src/core/UBApplicationController.cpp +++ b/src/core/UBApplicationController.cpp @@ -513,34 +513,6 @@ void UBApplicationController::showTutorial() } -void UBApplicationController::showSankoreEditor() -{ - - if (UBApplication::boardController) - { - UBApplication::boardController->persistCurrentScene(); - UBApplication::boardController->hide(); - } - -// it's needed not to duplicate webbrowser search in web mode. If I've breaked smbd's code let Ivan know - UBApplication::webController->show(UBWebController::Paraschool); - - mMainWindow->webToolBar->hide(); - mMainWindow->boardToolBar->hide(); - mMainWindow->documentToolBar->hide(); - mMainWindow->tutorialToolBar->show(); - - - mMainMode = ParaschoolEditor; - - adaptToolBar(); - - mUninoteController->hideWindow(); - - mirroringEnabled(false); - emit mainModeChanged(mMainMode); -} - void UBApplicationController::checkUpdate() { if(mHttp) @@ -622,10 +594,6 @@ void UBApplicationController::hideDesktop() { showTutorial(); } - else if (mMainMode == ParaschoolEditor) - { - showSankoreEditor(); - } mIsShowingDesktop = false; diff --git a/src/core/UBApplicationController.h b/src/core/UBApplicationController.h index 77f6433f..189dfe55 100644 --- a/src/core/UBApplicationController.h +++ b/src/core/UBApplicationController.h @@ -92,7 +92,7 @@ class UBApplicationController : public QObject enum MainMode { - Board = 0, Internet, Document, Tutorial, ParaschoolEditor, WebDocument + Board = 0, Internet, Document, Tutorial, WebDocument }; MainMode displayMode() @@ -137,7 +137,6 @@ class UBApplicationController : public QObject void actionPaste(); void showTutorial(); - void showSankoreEditor(); void checkUpdateRequest(); void checkUpdateAtLaunch(); diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 3a4075f8..1ec52624 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -56,7 +56,6 @@ #include "core/memcheck.h" -class UBGraphicsParaschoolEditorWidgetItem; DelegateButton::DelegateButton(const QString & fileName, QGraphicsItem* pDelegated, QGraphicsItem * parent, Qt::WindowFrameSection section) : QGraphicsSvgItem(fileName, parent) diff --git a/src/web/UBWebController.cpp b/src/web/UBWebController.cpp index 87837e34..3a36c2c6 100644 --- a/src/web/UBWebController.cpp +++ b/src/web/UBWebController.cpp @@ -75,7 +75,6 @@ UBWebController::UBWebController(UBMainWindow* mainWindow) mStackedWidget = new QStackedWidget(); mStackedWidget->addWidget(new QWidget(mStackedWidget)); mStackedWidget->addWidget(new QWidget(mStackedWidget)); - mStackedWidget->addWidget(new QWidget(mStackedWidget)); mMainWindow->addWebWidget(mStackedWidget); @@ -246,62 +245,6 @@ void UBWebController::tutorialWebInstance() } -void UBWebController::paraschoolWebInstance() -{ - QLocale locale = QLocale(); - QString language = "_" + locale.name().left(2); - QString editorPath = "/etc/SankoreEditor/editor" + language + "/index.html"; - QString editorHtmlIndexFile; -#if defined(Q_WS_MAC) - editorHtmlIndexFile = QApplication::applicationDirPath() + "/../Resources" + editorPath; -#elif defined(Q_WS_WIN) - editorHtmlIndexFile = QApplication::applicationDirPath() + editorPath; -#else - editorHtmlIndexFile = QApplication::applicationDirPath() + editorPath; -#endif - - QUrl currentUrl = QUrl::fromLocalFile(editorHtmlIndexFile); - - if (UBSettings::settings()->webUseExternalBrowser->get().toBool()){ - QDesktopServices::openUrl(currentUrl); - } - - else { - mCurrentWebBrowser = &mWebBrowserList[Paraschool]; - mToolsCurrentPalette = &mToolsPaletteList[Paraschool]; - mToolsPalettePositionned = &mToolsPalettePositionnedList[Paraschool]; - if (!(*mCurrentWebBrowser)){ - (*mCurrentWebBrowser) = new WBBrowserWindow(mMainWindow->centralWidget(), mMainWindow, true); - connect((*mCurrentWebBrowser), SIGNAL(activeViewChange(QWidget*)), this, SLOT(setSourceWidget(QWidget*))); - - mStackedWidget->setCurrentIndex(Paraschool); - if (mStackedWidget->currentWidget()) { - mStackedWidget->removeWidget(mStackedWidget->currentWidget()); - } - mStackedWidget->insertWidget(Paraschool, (*mCurrentWebBrowser)); - - adaptToolBar(); - - mTrapFlashController = new UBTrapFlashController((*mCurrentWebBrowser)); - - connect((*mCurrentWebBrowser), SIGNAL(activeViewPageChanged()), this, SLOT(activePageChanged())); - (*mCurrentWebBrowser)->loadUrl(currentUrl); - (*mCurrentWebBrowser)->tabWidget()->tabBar()->hide(); - (*mCurrentWebBrowser)->tabWidget()->lineEdits()->hide(); - - } - - mStackedWidget->setCurrentIndex(Paraschool); - UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget()); - mMainWindow->switchToWebWidget(); - screenLayoutChanged(); - - bool mirroring = UBSettings::settings()->webShowPageImmediatelyOnMirroredScreen->get().toBool(); - UBApplication::mainWindow->actionWebShowHideOnDisplay->setChecked(mirroring); - } -} - - void UBWebController::show(WebInstance type) { switch(type) @@ -312,9 +255,6 @@ void UBWebController::show(WebInstance type) case Tutorial: tutorialWebInstance(); break; - case Paraschool: - paraschoolWebInstance(); - break; default: qCritical() << __FILE__ << " non supported web instance type " << QString::number(type) ; break; diff --git a/src/web/UBWebController.h b/src/web/UBWebController.h index 3f239402..15d7c7bb 100644 --- a/src/web/UBWebController.h +++ b/src/web/UBWebController.h @@ -60,7 +60,7 @@ class UBWebController : public QObject enum WebInstance { - WebBrowser = 0, Tutorial, Paraschool, TotalNumberOfWebInstances + WebBrowser = 0, Tutorial, TotalNumberOfWebInstances }; void show(WebInstance type = UBWebController::WebBrowser); @@ -108,7 +108,6 @@ class UBWebController : public QObject void initialiazemOEmbedProviders(); void tutorialWebInstance(); void webBrowserInstance(); - void paraschoolWebInstance(); void lookForEmbedContent(QString* pHtml, QString tag, QString attribute, QList* pList); void checkForOEmbed(QString* pHtml); @@ -123,8 +122,6 @@ class UBWebController : public QObject UBTrapFlashController* mTrapFlashController; UBWebToolsPalette** mToolsCurrentPalette; UBWebToolsPalette* mToolsPaletteList[TotalNumberOfWebInstances]; -// UBKeyboardPalette** mKeyboardCurrentPalette; -// UBKeyboardPalette* mKeyboardPaletteList[TotalNumberOfWebInstances]; bool mToolsPalettePositionned; bool mToolsPalettePositionnedList[TotalNumberOfWebInstances]; @@ -144,7 +141,6 @@ class UBWebController : public QObject void toggleWebTrap(bool checked); void onOEmbedParsed(QVector contents); -// void showKeyboard(bool checked); signals: /** From ddaed8333c122818d376f8d305ace78a2a0e715b Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 6 Mar 2013 10:48:02 +0100 Subject: [PATCH 03/27] english fallback --- .../library/shape/{fleche bleue bas.svg => blue_arrow_down.svg} | 0 .../shape/{fleche bleue gauche.svg => blue_arrow_left.svg} | 0 .../shape/{fleche bleue droite.svg => blue_arrow_right.svg} | 0 .../library/shape/{fleche bleue haut.svg => blue_arrow_up.svg} | 0 .../library/shape/{bulle bleue.svg => blue_bubble_speak.svg} | 0 .../shape/{bulle bleue gauche.svg => blue_bubble_speak_left.svg} | 0 .../library/shape/{bulle bleue idee.svg => blue_bubble_think.svg} | 0 resources/library/shape/{cylindre bleu.svg => blue_cylinder.svg} | 0 resources/library/shape/{disque bleu.svg => blue_disk.svg} | 0 resources/library/shape/{hexagone bleu.svg => blue_exagon.svg} | 0 resources/library/shape/{pentagone bleu.svg => blue_pentagon.svg} | 0 .../library/shape/{rectangle bleu.svg => blue_rectangle.svg} | 0 .../shape/{rectangle bleu arr.svg => blue_rectangle_rnd.svg} | 0 resources/library/shape/{carre bleu.svg => blue_square.svg} | 0 .../library/shape/{carre bleu arr.svg => blue_square_rnd.svg} | 0 resources/library/shape/{etoile bleue.svg => blue_star.svg} | 0 .../library/shape/{etoile bleue arr.svg => blue_star_rnd.svg} | 0 resources/library/shape/{triangle bleu.svg => blue_triangle.svg} | 0 .../shape/{triangle bleu arr.svg => blue_triangle_rnd.svg} | 0 .../library/shape/{fleche grise bas.svg => grey_arrow_down.svg} | 0 .../shape/{fleche grise gauche.svg => grey_arrow_left.svg} | 0 .../shape/{fleche grise droite.svg => grey_arrow_right.svg} | 0 .../library/shape/{fleche grise haut.svg => grey_arrow_up.svg} | 0 .../library/shape/{bulle grise.svg => grey_bubble_speak.svg} | 0 .../shape/{bulle grise gauche.svg => grey_bubble_speak_left.svg} | 0 .../library/shape/{bulle grise idee.svg => grey_bubble_think.svg} | 0 resources/library/shape/{cylindre gris.svg => grey_cylinder.svg} | 0 resources/library/shape/{disque gris.svg => grey_disk.svg} | 0 resources/library/shape/{hexagone gris.svg => grey_exagon.svg} | 0 resources/library/shape/{pentagone gris.svg => grey_pentagon.svg} | 0 .../library/shape/{rectangle gris.svg => grey_rectangle.svg} | 0 .../shape/{rectangle gris arr.svg => grey_rectangle_rnd.svg} | 0 resources/library/shape/{carre gris.svg => grey_square.svg} | 0 .../library/shape/{carre gris arr.svg => grey_square_rnd.svg} | 0 resources/library/shape/{etoile grise.svg => grey_star.svg} | 0 .../library/shape/{etoile grise arr.svg => grey_star_rnd.svg} | 0 resources/library/shape/{triangle gris.svg => grey_triangle.svg} | 0 .../shape/{triangle gris arr.svg => grey_triangle_rnd.svg} | 0 .../library/shape/{fleche vide bas.svg => nofill_arrow_down.svg} | 0 .../shape/{fleche vide gauche.svg => nofill_arrow_left.svg} | 0 .../shape/{fleche vide droite.svg => nofill_arrow_right.svg} | 0 .../library/shape/{fleche vide haut.svg => nofill_arrow_up.svg} | 0 .../library/shape/{bulle vide.svg => nofill_bubble_speak.svg} | 0 .../shape/{bulle vide gauche.svg => nofill_bubble_speak_left.svg} | 0 .../shape/{bulle vide idee.svg => nofill_bubble_think.svg} | 0 .../library/shape/{cylindre vide.svg => nofill_cylinder.svg} | 0 resources/library/shape/{disque vide.svg => nofill_disk.svg} | 0 resources/library/shape/{hexagone vide.svg => nofill_exagon.svg} | 0 .../library/shape/{pentagone vide.svg => nofill_pentagon.svg} | 0 .../library/shape/{rectangle vide.svg => nofill_rectangle.svg} | 0 .../shape/{rectangle vide arr.svg => nofill_rectangle_rnd.svg} | 0 resources/library/shape/{carre vide.svg => nofill_square.svg} | 0 .../library/shape/{carre vide arr.svg => nofill_square_rnd.svg} | 0 resources/library/shape/{etoile vide.svg => nofill_star.svg} | 0 .../library/shape/{etoile vide arr.svg => nofill_star_rnd.svg} | 0 .../library/shape/{triangle vide.svg => nofill_triangle.svg} | 0 .../shape/{triangle vide arr.svg => nofill_triangle_rnd.svg} | 0 .../library/shape/{fleche rouge bas.svg => red_arrow_down.svg} | 0 .../library/shape/{fleche rouge gauche.svg => red_arrow_left.svg} | 0 .../shape/{fleche rouge droite.svg => red_arrow_right.svg} | 0 .../library/shape/{fleche rouge haut.svg => red_arrow_up.svg} | 0 resources/library/shape/{bulle rouge.svg => red_bubble_speak.svg} | 0 .../shape/{bulle rouge gauche.svg => red_bubble_speak_left.svg} | 0 .../library/shape/{bulle rouge idee.svg => red_bubble_think.svg} | 0 resources/library/shape/{cylindre rouge.svg => red_cylinder.svg} | 0 resources/library/shape/{disque rouge.svg => red_disk.svg} | 0 resources/library/shape/{hexagone rouge.svg => red_exagon.svg} | 0 resources/library/shape/{pentagone rouge.svg => red_pentagon.svg} | 0 .../library/shape/{rectangle rouge.svg => red_rectangle.svg} | 0 .../shape/{rectangle rouge arr.svg => red_rectangle_rnd.svg} | 0 resources/library/shape/{carre rouge.svg => red_square.svg} | 0 .../library/shape/{carre rouge arr.svg => red_square_rnd.svg} | 0 resources/library/shape/{etoile rouge.svg => red_star.svg} | 0 .../library/shape/{etoile rouge arr.svg => red_star_rnd.svg} | 0 resources/library/shape/{triangle rouge.svg => red_triangle.svg} | 0 .../shape/{triangle rouge arr.svg => red_triangle_rnd.svg} | 0 .../shape/{fleche blanche bas.svg => white_arrow_down.svg} | 0 .../shape/{fleche blanche gauche.svg => white_arrow_left.svg} | 0 .../shape/{fleche blanche droite.svg => white_arrow_right.svg} | 0 .../library/shape/{fleche blanche haut.svg => white_arrow_up.svg} | 0 .../library/shape/{bulle blanche.svg => white_bubble_speak.svg} | 0 .../{bulle blanche gauche.svg => white_bubble_speak_left.svg} | 0 .../shape/{bulle blanche idee.svg => white_bubble_think.svg} | 0 .../library/shape/{cylindre blanc.svg => white_cylinder.svg} | 0 resources/library/shape/{disque blanc.svg => white_disk.svg} | 0 resources/library/shape/{hexagone blanc.svg => white_exagon.svg} | 0 .../library/shape/{pentagone blanc.svg => white_pentagon.svg} | 0 .../library/shape/{rectangle blanc.svg => white_rectangle.svg} | 0 .../shape/{rectangle blanc arr.svg => white_rectangle_rnd.svg} | 0 resources/library/shape/{carre blanc.svg => white_square.svg} | 0 .../library/shape/{carre blanc arr.svg => white_square_rnd.svg} | 0 resources/library/shape/{etoile blanche.svg => white_star.svg} | 0 .../library/shape/{etoile blanche arr.svg => white_star_rnd.svg} | 0 .../library/shape/{triangle blanc.svg => white_triangle.svg} | 0 .../shape/{triangle blanc arr.svg => white_triangle_rnd.svg} | 0 95 files changed, 0 insertions(+), 0 deletions(-) rename resources/library/shape/{fleche bleue bas.svg => blue_arrow_down.svg} (100%) rename resources/library/shape/{fleche bleue gauche.svg => blue_arrow_left.svg} (100%) rename resources/library/shape/{fleche bleue droite.svg => blue_arrow_right.svg} (100%) rename resources/library/shape/{fleche bleue haut.svg => blue_arrow_up.svg} (100%) rename resources/library/shape/{bulle bleue.svg => blue_bubble_speak.svg} (100%) rename resources/library/shape/{bulle bleue gauche.svg => blue_bubble_speak_left.svg} (100%) rename resources/library/shape/{bulle bleue idee.svg => blue_bubble_think.svg} (100%) rename resources/library/shape/{cylindre bleu.svg => blue_cylinder.svg} (100%) rename resources/library/shape/{disque bleu.svg => blue_disk.svg} (100%) rename resources/library/shape/{hexagone bleu.svg => blue_exagon.svg} (100%) rename resources/library/shape/{pentagone bleu.svg => blue_pentagon.svg} (100%) rename resources/library/shape/{rectangle bleu.svg => blue_rectangle.svg} (100%) rename resources/library/shape/{rectangle bleu arr.svg => blue_rectangle_rnd.svg} (100%) rename resources/library/shape/{carre bleu.svg => blue_square.svg} (100%) rename resources/library/shape/{carre bleu arr.svg => blue_square_rnd.svg} (100%) rename resources/library/shape/{etoile bleue.svg => blue_star.svg} (100%) rename resources/library/shape/{etoile bleue arr.svg => blue_star_rnd.svg} (100%) rename resources/library/shape/{triangle bleu.svg => blue_triangle.svg} (100%) rename resources/library/shape/{triangle bleu arr.svg => blue_triangle_rnd.svg} (100%) rename resources/library/shape/{fleche grise bas.svg => grey_arrow_down.svg} (100%) rename resources/library/shape/{fleche grise gauche.svg => grey_arrow_left.svg} (100%) rename resources/library/shape/{fleche grise droite.svg => grey_arrow_right.svg} (100%) rename resources/library/shape/{fleche grise haut.svg => grey_arrow_up.svg} (100%) rename resources/library/shape/{bulle grise.svg => grey_bubble_speak.svg} (100%) rename resources/library/shape/{bulle grise gauche.svg => grey_bubble_speak_left.svg} (100%) rename resources/library/shape/{bulle grise idee.svg => grey_bubble_think.svg} (100%) rename resources/library/shape/{cylindre gris.svg => grey_cylinder.svg} (100%) rename resources/library/shape/{disque gris.svg => grey_disk.svg} (100%) rename resources/library/shape/{hexagone gris.svg => grey_exagon.svg} (100%) rename resources/library/shape/{pentagone gris.svg => grey_pentagon.svg} (100%) rename resources/library/shape/{rectangle gris.svg => grey_rectangle.svg} (100%) rename resources/library/shape/{rectangle gris arr.svg => grey_rectangle_rnd.svg} (100%) rename resources/library/shape/{carre gris.svg => grey_square.svg} (100%) rename resources/library/shape/{carre gris arr.svg => grey_square_rnd.svg} (100%) rename resources/library/shape/{etoile grise.svg => grey_star.svg} (100%) rename resources/library/shape/{etoile grise arr.svg => grey_star_rnd.svg} (100%) rename resources/library/shape/{triangle gris.svg => grey_triangle.svg} (100%) rename resources/library/shape/{triangle gris arr.svg => grey_triangle_rnd.svg} (100%) rename resources/library/shape/{fleche vide bas.svg => nofill_arrow_down.svg} (100%) rename resources/library/shape/{fleche vide gauche.svg => nofill_arrow_left.svg} (100%) rename resources/library/shape/{fleche vide droite.svg => nofill_arrow_right.svg} (100%) rename resources/library/shape/{fleche vide haut.svg => nofill_arrow_up.svg} (100%) rename resources/library/shape/{bulle vide.svg => nofill_bubble_speak.svg} (100%) rename resources/library/shape/{bulle vide gauche.svg => nofill_bubble_speak_left.svg} (100%) rename resources/library/shape/{bulle vide idee.svg => nofill_bubble_think.svg} (100%) rename resources/library/shape/{cylindre vide.svg => nofill_cylinder.svg} (100%) rename resources/library/shape/{disque vide.svg => nofill_disk.svg} (100%) rename resources/library/shape/{hexagone vide.svg => nofill_exagon.svg} (100%) rename resources/library/shape/{pentagone vide.svg => nofill_pentagon.svg} (100%) rename resources/library/shape/{rectangle vide.svg => nofill_rectangle.svg} (100%) rename resources/library/shape/{rectangle vide arr.svg => nofill_rectangle_rnd.svg} (100%) rename resources/library/shape/{carre vide.svg => nofill_square.svg} (100%) rename resources/library/shape/{carre vide arr.svg => nofill_square_rnd.svg} (100%) rename resources/library/shape/{etoile vide.svg => nofill_star.svg} (100%) rename resources/library/shape/{etoile vide arr.svg => nofill_star_rnd.svg} (100%) rename resources/library/shape/{triangle vide.svg => nofill_triangle.svg} (100%) rename resources/library/shape/{triangle vide arr.svg => nofill_triangle_rnd.svg} (100%) rename resources/library/shape/{fleche rouge bas.svg => red_arrow_down.svg} (100%) rename resources/library/shape/{fleche rouge gauche.svg => red_arrow_left.svg} (100%) rename resources/library/shape/{fleche rouge droite.svg => red_arrow_right.svg} (100%) rename resources/library/shape/{fleche rouge haut.svg => red_arrow_up.svg} (100%) rename resources/library/shape/{bulle rouge.svg => red_bubble_speak.svg} (100%) rename resources/library/shape/{bulle rouge gauche.svg => red_bubble_speak_left.svg} (100%) rename resources/library/shape/{bulle rouge idee.svg => red_bubble_think.svg} (100%) rename resources/library/shape/{cylindre rouge.svg => red_cylinder.svg} (100%) rename resources/library/shape/{disque rouge.svg => red_disk.svg} (100%) rename resources/library/shape/{hexagone rouge.svg => red_exagon.svg} (100%) rename resources/library/shape/{pentagone rouge.svg => red_pentagon.svg} (100%) rename resources/library/shape/{rectangle rouge.svg => red_rectangle.svg} (100%) rename resources/library/shape/{rectangle rouge arr.svg => red_rectangle_rnd.svg} (100%) rename resources/library/shape/{carre rouge.svg => red_square.svg} (100%) rename resources/library/shape/{carre rouge arr.svg => red_square_rnd.svg} (100%) rename resources/library/shape/{etoile rouge.svg => red_star.svg} (100%) rename resources/library/shape/{etoile rouge arr.svg => red_star_rnd.svg} (100%) rename resources/library/shape/{triangle rouge.svg => red_triangle.svg} (100%) rename resources/library/shape/{triangle rouge arr.svg => red_triangle_rnd.svg} (100%) rename resources/library/shape/{fleche blanche bas.svg => white_arrow_down.svg} (100%) rename resources/library/shape/{fleche blanche gauche.svg => white_arrow_left.svg} (100%) rename resources/library/shape/{fleche blanche droite.svg => white_arrow_right.svg} (100%) rename resources/library/shape/{fleche blanche haut.svg => white_arrow_up.svg} (100%) rename resources/library/shape/{bulle blanche.svg => white_bubble_speak.svg} (100%) rename resources/library/shape/{bulle blanche gauche.svg => white_bubble_speak_left.svg} (100%) rename resources/library/shape/{bulle blanche idee.svg => white_bubble_think.svg} (100%) rename resources/library/shape/{cylindre blanc.svg => white_cylinder.svg} (100%) rename resources/library/shape/{disque blanc.svg => white_disk.svg} (100%) rename resources/library/shape/{hexagone blanc.svg => white_exagon.svg} (100%) rename resources/library/shape/{pentagone blanc.svg => white_pentagon.svg} (100%) rename resources/library/shape/{rectangle blanc.svg => white_rectangle.svg} (100%) rename resources/library/shape/{rectangle blanc arr.svg => white_rectangle_rnd.svg} (100%) rename resources/library/shape/{carre blanc.svg => white_square.svg} (100%) rename resources/library/shape/{carre blanc arr.svg => white_square_rnd.svg} (100%) rename resources/library/shape/{etoile blanche.svg => white_star.svg} (100%) rename resources/library/shape/{etoile blanche arr.svg => white_star_rnd.svg} (100%) rename resources/library/shape/{triangle blanc.svg => white_triangle.svg} (100%) rename resources/library/shape/{triangle blanc arr.svg => white_triangle_rnd.svg} (100%) diff --git a/resources/library/shape/fleche bleue bas.svg b/resources/library/shape/blue_arrow_down.svg similarity index 100% rename from resources/library/shape/fleche bleue bas.svg rename to resources/library/shape/blue_arrow_down.svg diff --git a/resources/library/shape/fleche bleue gauche.svg b/resources/library/shape/blue_arrow_left.svg similarity index 100% rename from resources/library/shape/fleche bleue gauche.svg rename to resources/library/shape/blue_arrow_left.svg diff --git a/resources/library/shape/fleche bleue droite.svg b/resources/library/shape/blue_arrow_right.svg similarity index 100% rename from resources/library/shape/fleche bleue droite.svg rename to resources/library/shape/blue_arrow_right.svg diff --git a/resources/library/shape/fleche bleue haut.svg b/resources/library/shape/blue_arrow_up.svg similarity index 100% rename from resources/library/shape/fleche bleue haut.svg rename to resources/library/shape/blue_arrow_up.svg diff --git a/resources/library/shape/bulle bleue.svg b/resources/library/shape/blue_bubble_speak.svg similarity index 100% rename from resources/library/shape/bulle bleue.svg rename to resources/library/shape/blue_bubble_speak.svg diff --git a/resources/library/shape/bulle bleue gauche.svg b/resources/library/shape/blue_bubble_speak_left.svg similarity index 100% rename from resources/library/shape/bulle bleue gauche.svg rename to resources/library/shape/blue_bubble_speak_left.svg diff --git a/resources/library/shape/bulle bleue idee.svg b/resources/library/shape/blue_bubble_think.svg similarity index 100% rename from resources/library/shape/bulle bleue idee.svg rename to resources/library/shape/blue_bubble_think.svg diff --git a/resources/library/shape/cylindre bleu.svg b/resources/library/shape/blue_cylinder.svg similarity index 100% rename from resources/library/shape/cylindre bleu.svg rename to resources/library/shape/blue_cylinder.svg diff --git a/resources/library/shape/disque bleu.svg b/resources/library/shape/blue_disk.svg similarity index 100% rename from resources/library/shape/disque bleu.svg rename to resources/library/shape/blue_disk.svg diff --git a/resources/library/shape/hexagone bleu.svg b/resources/library/shape/blue_exagon.svg similarity index 100% rename from resources/library/shape/hexagone bleu.svg rename to resources/library/shape/blue_exagon.svg diff --git a/resources/library/shape/pentagone bleu.svg b/resources/library/shape/blue_pentagon.svg similarity index 100% rename from resources/library/shape/pentagone bleu.svg rename to resources/library/shape/blue_pentagon.svg diff --git a/resources/library/shape/rectangle bleu.svg b/resources/library/shape/blue_rectangle.svg similarity index 100% rename from resources/library/shape/rectangle bleu.svg rename to resources/library/shape/blue_rectangle.svg diff --git a/resources/library/shape/rectangle bleu arr.svg b/resources/library/shape/blue_rectangle_rnd.svg similarity index 100% rename from resources/library/shape/rectangle bleu arr.svg rename to resources/library/shape/blue_rectangle_rnd.svg diff --git a/resources/library/shape/carre bleu.svg b/resources/library/shape/blue_square.svg similarity index 100% rename from resources/library/shape/carre bleu.svg rename to resources/library/shape/blue_square.svg diff --git a/resources/library/shape/carre bleu arr.svg b/resources/library/shape/blue_square_rnd.svg similarity index 100% rename from resources/library/shape/carre bleu arr.svg rename to resources/library/shape/blue_square_rnd.svg diff --git a/resources/library/shape/etoile bleue.svg b/resources/library/shape/blue_star.svg similarity index 100% rename from resources/library/shape/etoile bleue.svg rename to resources/library/shape/blue_star.svg diff --git a/resources/library/shape/etoile bleue arr.svg b/resources/library/shape/blue_star_rnd.svg similarity index 100% rename from resources/library/shape/etoile bleue arr.svg rename to resources/library/shape/blue_star_rnd.svg diff --git a/resources/library/shape/triangle bleu.svg b/resources/library/shape/blue_triangle.svg similarity index 100% rename from resources/library/shape/triangle bleu.svg rename to resources/library/shape/blue_triangle.svg diff --git a/resources/library/shape/triangle bleu arr.svg b/resources/library/shape/blue_triangle_rnd.svg similarity index 100% rename from resources/library/shape/triangle bleu arr.svg rename to resources/library/shape/blue_triangle_rnd.svg diff --git a/resources/library/shape/fleche grise bas.svg b/resources/library/shape/grey_arrow_down.svg similarity index 100% rename from resources/library/shape/fleche grise bas.svg rename to resources/library/shape/grey_arrow_down.svg diff --git a/resources/library/shape/fleche grise gauche.svg b/resources/library/shape/grey_arrow_left.svg similarity index 100% rename from resources/library/shape/fleche grise gauche.svg rename to resources/library/shape/grey_arrow_left.svg diff --git a/resources/library/shape/fleche grise droite.svg b/resources/library/shape/grey_arrow_right.svg similarity index 100% rename from resources/library/shape/fleche grise droite.svg rename to resources/library/shape/grey_arrow_right.svg diff --git a/resources/library/shape/fleche grise haut.svg b/resources/library/shape/grey_arrow_up.svg similarity index 100% rename from resources/library/shape/fleche grise haut.svg rename to resources/library/shape/grey_arrow_up.svg diff --git a/resources/library/shape/bulle grise.svg b/resources/library/shape/grey_bubble_speak.svg similarity index 100% rename from resources/library/shape/bulle grise.svg rename to resources/library/shape/grey_bubble_speak.svg diff --git a/resources/library/shape/bulle grise gauche.svg b/resources/library/shape/grey_bubble_speak_left.svg similarity index 100% rename from resources/library/shape/bulle grise gauche.svg rename to resources/library/shape/grey_bubble_speak_left.svg diff --git a/resources/library/shape/bulle grise idee.svg b/resources/library/shape/grey_bubble_think.svg similarity index 100% rename from resources/library/shape/bulle grise idee.svg rename to resources/library/shape/grey_bubble_think.svg diff --git a/resources/library/shape/cylindre gris.svg b/resources/library/shape/grey_cylinder.svg similarity index 100% rename from resources/library/shape/cylindre gris.svg rename to resources/library/shape/grey_cylinder.svg diff --git a/resources/library/shape/disque gris.svg b/resources/library/shape/grey_disk.svg similarity index 100% rename from resources/library/shape/disque gris.svg rename to resources/library/shape/grey_disk.svg diff --git a/resources/library/shape/hexagone gris.svg b/resources/library/shape/grey_exagon.svg similarity index 100% rename from resources/library/shape/hexagone gris.svg rename to resources/library/shape/grey_exagon.svg diff --git a/resources/library/shape/pentagone gris.svg b/resources/library/shape/grey_pentagon.svg similarity index 100% rename from resources/library/shape/pentagone gris.svg rename to resources/library/shape/grey_pentagon.svg diff --git a/resources/library/shape/rectangle gris.svg b/resources/library/shape/grey_rectangle.svg similarity index 100% rename from resources/library/shape/rectangle gris.svg rename to resources/library/shape/grey_rectangle.svg diff --git a/resources/library/shape/rectangle gris arr.svg b/resources/library/shape/grey_rectangle_rnd.svg similarity index 100% rename from resources/library/shape/rectangle gris arr.svg rename to resources/library/shape/grey_rectangle_rnd.svg diff --git a/resources/library/shape/carre gris.svg b/resources/library/shape/grey_square.svg similarity index 100% rename from resources/library/shape/carre gris.svg rename to resources/library/shape/grey_square.svg diff --git a/resources/library/shape/carre gris arr.svg b/resources/library/shape/grey_square_rnd.svg similarity index 100% rename from resources/library/shape/carre gris arr.svg rename to resources/library/shape/grey_square_rnd.svg diff --git a/resources/library/shape/etoile grise.svg b/resources/library/shape/grey_star.svg similarity index 100% rename from resources/library/shape/etoile grise.svg rename to resources/library/shape/grey_star.svg diff --git a/resources/library/shape/etoile grise arr.svg b/resources/library/shape/grey_star_rnd.svg similarity index 100% rename from resources/library/shape/etoile grise arr.svg rename to resources/library/shape/grey_star_rnd.svg diff --git a/resources/library/shape/triangle gris.svg b/resources/library/shape/grey_triangle.svg similarity index 100% rename from resources/library/shape/triangle gris.svg rename to resources/library/shape/grey_triangle.svg diff --git a/resources/library/shape/triangle gris arr.svg b/resources/library/shape/grey_triangle_rnd.svg similarity index 100% rename from resources/library/shape/triangle gris arr.svg rename to resources/library/shape/grey_triangle_rnd.svg diff --git a/resources/library/shape/fleche vide bas.svg b/resources/library/shape/nofill_arrow_down.svg similarity index 100% rename from resources/library/shape/fleche vide bas.svg rename to resources/library/shape/nofill_arrow_down.svg diff --git a/resources/library/shape/fleche vide gauche.svg b/resources/library/shape/nofill_arrow_left.svg similarity index 100% rename from resources/library/shape/fleche vide gauche.svg rename to resources/library/shape/nofill_arrow_left.svg diff --git a/resources/library/shape/fleche vide droite.svg b/resources/library/shape/nofill_arrow_right.svg similarity index 100% rename from resources/library/shape/fleche vide droite.svg rename to resources/library/shape/nofill_arrow_right.svg diff --git a/resources/library/shape/fleche vide haut.svg b/resources/library/shape/nofill_arrow_up.svg similarity index 100% rename from resources/library/shape/fleche vide haut.svg rename to resources/library/shape/nofill_arrow_up.svg diff --git a/resources/library/shape/bulle vide.svg b/resources/library/shape/nofill_bubble_speak.svg similarity index 100% rename from resources/library/shape/bulle vide.svg rename to resources/library/shape/nofill_bubble_speak.svg diff --git a/resources/library/shape/bulle vide gauche.svg b/resources/library/shape/nofill_bubble_speak_left.svg similarity index 100% rename from resources/library/shape/bulle vide gauche.svg rename to resources/library/shape/nofill_bubble_speak_left.svg diff --git a/resources/library/shape/bulle vide idee.svg b/resources/library/shape/nofill_bubble_think.svg similarity index 100% rename from resources/library/shape/bulle vide idee.svg rename to resources/library/shape/nofill_bubble_think.svg diff --git a/resources/library/shape/cylindre vide.svg b/resources/library/shape/nofill_cylinder.svg similarity index 100% rename from resources/library/shape/cylindre vide.svg rename to resources/library/shape/nofill_cylinder.svg diff --git a/resources/library/shape/disque vide.svg b/resources/library/shape/nofill_disk.svg similarity index 100% rename from resources/library/shape/disque vide.svg rename to resources/library/shape/nofill_disk.svg diff --git a/resources/library/shape/hexagone vide.svg b/resources/library/shape/nofill_exagon.svg similarity index 100% rename from resources/library/shape/hexagone vide.svg rename to resources/library/shape/nofill_exagon.svg diff --git a/resources/library/shape/pentagone vide.svg b/resources/library/shape/nofill_pentagon.svg similarity index 100% rename from resources/library/shape/pentagone vide.svg rename to resources/library/shape/nofill_pentagon.svg diff --git a/resources/library/shape/rectangle vide.svg b/resources/library/shape/nofill_rectangle.svg similarity index 100% rename from resources/library/shape/rectangle vide.svg rename to resources/library/shape/nofill_rectangle.svg diff --git a/resources/library/shape/rectangle vide arr.svg b/resources/library/shape/nofill_rectangle_rnd.svg similarity index 100% rename from resources/library/shape/rectangle vide arr.svg rename to resources/library/shape/nofill_rectangle_rnd.svg diff --git a/resources/library/shape/carre vide.svg b/resources/library/shape/nofill_square.svg similarity index 100% rename from resources/library/shape/carre vide.svg rename to resources/library/shape/nofill_square.svg diff --git a/resources/library/shape/carre vide arr.svg b/resources/library/shape/nofill_square_rnd.svg similarity index 100% rename from resources/library/shape/carre vide arr.svg rename to resources/library/shape/nofill_square_rnd.svg diff --git a/resources/library/shape/etoile vide.svg b/resources/library/shape/nofill_star.svg similarity index 100% rename from resources/library/shape/etoile vide.svg rename to resources/library/shape/nofill_star.svg diff --git a/resources/library/shape/etoile vide arr.svg b/resources/library/shape/nofill_star_rnd.svg similarity index 100% rename from resources/library/shape/etoile vide arr.svg rename to resources/library/shape/nofill_star_rnd.svg diff --git a/resources/library/shape/triangle vide.svg b/resources/library/shape/nofill_triangle.svg similarity index 100% rename from resources/library/shape/triangle vide.svg rename to resources/library/shape/nofill_triangle.svg diff --git a/resources/library/shape/triangle vide arr.svg b/resources/library/shape/nofill_triangle_rnd.svg similarity index 100% rename from resources/library/shape/triangle vide arr.svg rename to resources/library/shape/nofill_triangle_rnd.svg diff --git a/resources/library/shape/fleche rouge bas.svg b/resources/library/shape/red_arrow_down.svg similarity index 100% rename from resources/library/shape/fleche rouge bas.svg rename to resources/library/shape/red_arrow_down.svg diff --git a/resources/library/shape/fleche rouge gauche.svg b/resources/library/shape/red_arrow_left.svg similarity index 100% rename from resources/library/shape/fleche rouge gauche.svg rename to resources/library/shape/red_arrow_left.svg diff --git a/resources/library/shape/fleche rouge droite.svg b/resources/library/shape/red_arrow_right.svg similarity index 100% rename from resources/library/shape/fleche rouge droite.svg rename to resources/library/shape/red_arrow_right.svg diff --git a/resources/library/shape/fleche rouge haut.svg b/resources/library/shape/red_arrow_up.svg similarity index 100% rename from resources/library/shape/fleche rouge haut.svg rename to resources/library/shape/red_arrow_up.svg diff --git a/resources/library/shape/bulle rouge.svg b/resources/library/shape/red_bubble_speak.svg similarity index 100% rename from resources/library/shape/bulle rouge.svg rename to resources/library/shape/red_bubble_speak.svg diff --git a/resources/library/shape/bulle rouge gauche.svg b/resources/library/shape/red_bubble_speak_left.svg similarity index 100% rename from resources/library/shape/bulle rouge gauche.svg rename to resources/library/shape/red_bubble_speak_left.svg diff --git a/resources/library/shape/bulle rouge idee.svg b/resources/library/shape/red_bubble_think.svg similarity index 100% rename from resources/library/shape/bulle rouge idee.svg rename to resources/library/shape/red_bubble_think.svg diff --git a/resources/library/shape/cylindre rouge.svg b/resources/library/shape/red_cylinder.svg similarity index 100% rename from resources/library/shape/cylindre rouge.svg rename to resources/library/shape/red_cylinder.svg diff --git a/resources/library/shape/disque rouge.svg b/resources/library/shape/red_disk.svg similarity index 100% rename from resources/library/shape/disque rouge.svg rename to resources/library/shape/red_disk.svg diff --git a/resources/library/shape/hexagone rouge.svg b/resources/library/shape/red_exagon.svg similarity index 100% rename from resources/library/shape/hexagone rouge.svg rename to resources/library/shape/red_exagon.svg diff --git a/resources/library/shape/pentagone rouge.svg b/resources/library/shape/red_pentagon.svg similarity index 100% rename from resources/library/shape/pentagone rouge.svg rename to resources/library/shape/red_pentagon.svg diff --git a/resources/library/shape/rectangle rouge.svg b/resources/library/shape/red_rectangle.svg similarity index 100% rename from resources/library/shape/rectangle rouge.svg rename to resources/library/shape/red_rectangle.svg diff --git a/resources/library/shape/rectangle rouge arr.svg b/resources/library/shape/red_rectangle_rnd.svg similarity index 100% rename from resources/library/shape/rectangle rouge arr.svg rename to resources/library/shape/red_rectangle_rnd.svg diff --git a/resources/library/shape/carre rouge.svg b/resources/library/shape/red_square.svg similarity index 100% rename from resources/library/shape/carre rouge.svg rename to resources/library/shape/red_square.svg diff --git a/resources/library/shape/carre rouge arr.svg b/resources/library/shape/red_square_rnd.svg similarity index 100% rename from resources/library/shape/carre rouge arr.svg rename to resources/library/shape/red_square_rnd.svg diff --git a/resources/library/shape/etoile rouge.svg b/resources/library/shape/red_star.svg similarity index 100% rename from resources/library/shape/etoile rouge.svg rename to resources/library/shape/red_star.svg diff --git a/resources/library/shape/etoile rouge arr.svg b/resources/library/shape/red_star_rnd.svg similarity index 100% rename from resources/library/shape/etoile rouge arr.svg rename to resources/library/shape/red_star_rnd.svg diff --git a/resources/library/shape/triangle rouge.svg b/resources/library/shape/red_triangle.svg similarity index 100% rename from resources/library/shape/triangle rouge.svg rename to resources/library/shape/red_triangle.svg diff --git a/resources/library/shape/triangle rouge arr.svg b/resources/library/shape/red_triangle_rnd.svg similarity index 100% rename from resources/library/shape/triangle rouge arr.svg rename to resources/library/shape/red_triangle_rnd.svg diff --git a/resources/library/shape/fleche blanche bas.svg b/resources/library/shape/white_arrow_down.svg similarity index 100% rename from resources/library/shape/fleche blanche bas.svg rename to resources/library/shape/white_arrow_down.svg diff --git a/resources/library/shape/fleche blanche gauche.svg b/resources/library/shape/white_arrow_left.svg similarity index 100% rename from resources/library/shape/fleche blanche gauche.svg rename to resources/library/shape/white_arrow_left.svg diff --git a/resources/library/shape/fleche blanche droite.svg b/resources/library/shape/white_arrow_right.svg similarity index 100% rename from resources/library/shape/fleche blanche droite.svg rename to resources/library/shape/white_arrow_right.svg diff --git a/resources/library/shape/fleche blanche haut.svg b/resources/library/shape/white_arrow_up.svg similarity index 100% rename from resources/library/shape/fleche blanche haut.svg rename to resources/library/shape/white_arrow_up.svg diff --git a/resources/library/shape/bulle blanche.svg b/resources/library/shape/white_bubble_speak.svg similarity index 100% rename from resources/library/shape/bulle blanche.svg rename to resources/library/shape/white_bubble_speak.svg diff --git a/resources/library/shape/bulle blanche gauche.svg b/resources/library/shape/white_bubble_speak_left.svg similarity index 100% rename from resources/library/shape/bulle blanche gauche.svg rename to resources/library/shape/white_bubble_speak_left.svg diff --git a/resources/library/shape/bulle blanche idee.svg b/resources/library/shape/white_bubble_think.svg similarity index 100% rename from resources/library/shape/bulle blanche idee.svg rename to resources/library/shape/white_bubble_think.svg diff --git a/resources/library/shape/cylindre blanc.svg b/resources/library/shape/white_cylinder.svg similarity index 100% rename from resources/library/shape/cylindre blanc.svg rename to resources/library/shape/white_cylinder.svg diff --git a/resources/library/shape/disque blanc.svg b/resources/library/shape/white_disk.svg similarity index 100% rename from resources/library/shape/disque blanc.svg rename to resources/library/shape/white_disk.svg diff --git a/resources/library/shape/hexagone blanc.svg b/resources/library/shape/white_exagon.svg similarity index 100% rename from resources/library/shape/hexagone blanc.svg rename to resources/library/shape/white_exagon.svg diff --git a/resources/library/shape/pentagone blanc.svg b/resources/library/shape/white_pentagon.svg similarity index 100% rename from resources/library/shape/pentagone blanc.svg rename to resources/library/shape/white_pentagon.svg diff --git a/resources/library/shape/rectangle blanc.svg b/resources/library/shape/white_rectangle.svg similarity index 100% rename from resources/library/shape/rectangle blanc.svg rename to resources/library/shape/white_rectangle.svg diff --git a/resources/library/shape/rectangle blanc arr.svg b/resources/library/shape/white_rectangle_rnd.svg similarity index 100% rename from resources/library/shape/rectangle blanc arr.svg rename to resources/library/shape/white_rectangle_rnd.svg diff --git a/resources/library/shape/carre blanc.svg b/resources/library/shape/white_square.svg similarity index 100% rename from resources/library/shape/carre blanc.svg rename to resources/library/shape/white_square.svg diff --git a/resources/library/shape/carre blanc arr.svg b/resources/library/shape/white_square_rnd.svg similarity index 100% rename from resources/library/shape/carre blanc arr.svg rename to resources/library/shape/white_square_rnd.svg diff --git a/resources/library/shape/etoile blanche.svg b/resources/library/shape/white_star.svg similarity index 100% rename from resources/library/shape/etoile blanche.svg rename to resources/library/shape/white_star.svg diff --git a/resources/library/shape/etoile blanche arr.svg b/resources/library/shape/white_star_rnd.svg similarity index 100% rename from resources/library/shape/etoile blanche arr.svg rename to resources/library/shape/white_star_rnd.svg diff --git a/resources/library/shape/triangle blanc.svg b/resources/library/shape/white_triangle.svg similarity index 100% rename from resources/library/shape/triangle blanc.svg rename to resources/library/shape/white_triangle.svg diff --git a/resources/library/shape/triangle blanc arr.svg b/resources/library/shape/white_triangle_rnd.svg similarity index 100% rename from resources/library/shape/triangle blanc arr.svg rename to resources/library/shape/white_triangle_rnd.svg From 43929f158d35a8b90f16293abaaad7e898aed71d Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 11 Mar 2013 09:51:09 +0100 Subject: [PATCH 04/27] fixed issue with delete --- src/adaptors/UBSvgSubsetAdaptor.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 6303f015..3d755d01 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -1017,10 +1017,9 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mScene->setModified(false); } - if (annotationGroup) - { - if (annotationGroup->polygons().empty()) + if (annotationGroup && annotationGroup->polygons().empty()){ delete annotationGroup; + annotationGroup = 0; } mScene->enableUndoRedoStack(); @@ -2812,6 +2811,7 @@ UBGraphicsTextItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::textItemFromSvg() if (mXmlReader.hasError()) { delete textItem; + textItem = 0; return 0; } From 4ace295a28bf8261ce52d59318362e729c97a1a8 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 11 Mar 2013 13:19:28 +0100 Subject: [PATCH 05/27] imported some fixes by hand from 2.10.b.04 --- src/adaptors/UBSvgSubsetAdaptor.cpp | 29 +- src/board/UBBoardController.cpp | 4 +- src/board/UBBoardView.cpp | 1001 ++++++++++---------- src/board/UBDrawingController.cpp | 12 - src/core/UB.h | 34 +- src/domain/UBGraphicsItemDelegate.cpp | 148 +-- src/domain/UBGraphicsItemDelegate.h | 17 +- src/domain/UBGraphicsMediaItem.cpp | 21 +- src/domain/UBGraphicsMediaItemDelegate.cpp | 5 + src/domain/UBGraphicsScene.cpp | 45 +- src/domain/UBGraphicsWidgetItem.cpp | 4 +- src/frameworks/UBCoreGraphicsScene.cpp | 14 +- src/gui/UBNavigatorPalette.cpp | 8 +- src/gui/UBTeacherGuideWidget.cpp | 4 +- src/gui/UBTeacherGuideWidgetsTools.cpp | 45 +- src/gui/UBTeacherGuideWidgetsTools.h | 2 + src/gui/UBThumbnailWidget.cpp | 8 +- 17 files changed, 711 insertions(+), 690 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 3d755d01..6bc5da91 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -597,12 +597,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() QList polygonItems = polygonItemsFromPolylineSvg(mScene->isDarkBackground() ? Qt::white : Qt::black); + QString newParentId = QUuid::createUuid().toString(); + foreach(UBGraphicsPolygonItem* polygonItem, polygonItems) { if (annotationGroup) - { polygonItem->setStroke(annotationGroup); - } if(strokesGroup){ @@ -614,6 +614,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); QString parentId = mXmlReader.attributes().value(mNamespaceUri, "parent").toString(); + + if(parentId.isEmpty()) + parentId = newParentId; + Q_ASSERT(!parentId.isEmpty()); UBGraphicsStrokesGroup* group; if(!mStrokesList.contains(parentId)){ @@ -623,8 +627,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else group = mStrokesList.value(parentId); + group->addToGroup(polygonItem); polygonItem->show(); } + } else if (mXmlReader.name() == "image") { @@ -984,10 +990,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() { if (mXmlReader.name() == "g") { -// if(strokesGroup && mScene){ -// mScene->addItem(strokesGroup); -// } - if (annotationGroup) { if (!annotationGroup->polygons().empty()) @@ -1010,12 +1012,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() QMapIterator iterator(mStrokesList); while (iterator.hasNext()) { iterator.next(); + qDebug() << "Number of polygons : " << (int)(((UBGraphicsStrokesGroup*)iterator.value())->childItems().count()); mScene->addItem(iterator.value()); } - if (mScene) { + if (mScene) mScene->setModified(false); - } if (annotationGroup && annotationGroup->polygons().empty()){ delete annotationGroup; @@ -1557,17 +1559,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro foreach (QGraphicsItem *item, groupItem->childItems()) { QUuid tmpUuid = UBGraphicsScene::getPersonalUuid(item); if (!tmpUuid.isNull()) { - if (item->type() == UBGraphicsGroupContainerItem::Type && item->childItems().count()) { + if (item->type() == UBGraphicsGroupContainerItem::Type && item->childItems().count()) persistGroupToDom(item, curParent, groupDomDocument); - } -// else if (item->type() == UBGraphicsStrokesGroup::Type) { -// foreach (QGraphicsItem *polygonItem, item->childItems()) { -// QDomElement curPolygonElement = groupDomDocument->createElement(tElement); -// curPolygonElement.setAttribute(aId, tmpUuid.toString() -// + UBGraphicsItem::getOwnUuid(polygonItem).toString()); -// curGroupElement.appendChild(curPolygonElement); -// } -// } else { QDomElement curSubElement = groupDomDocument->createElement(tElement); diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 7d5a42e3..b975eef2 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -357,9 +357,7 @@ void UBBoardController::setupToolbar() void UBBoardController::setToolCursor(int tool) { if (mActiveScene) - { mActiveScene->setToolCursor(tool); - } mControlView->setToolCursor(tool); } @@ -648,7 +646,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item, bool bAsync) QList duplicatedItems; QList children = groupItem->childItems(); - + mActiveScene->setURStackEnable(false); foreach(QGraphicsItem* pIt, children){ UBItem* pItem = dynamic_cast(pIt); diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index 0fef3ac5..01a6ad2f 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -80,217 +80,217 @@ #include "core/memcheck.h" UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool isControl, bool isDesktop) -: QGraphicsView (pParent) -, mController (pController) -, mIsCreatingTextZone (false) -, mIsCreatingSceneGrabZone (false) -, mOkOnWidget(false) -, suspendedMousePressEvent(NULL) -, mLongPressInterval(1000) -, mIsDragInProgress(false) -, mMultipleSelectionIsEnabled(false) -, bIsControl(isControl) -, bIsDesktop(isDesktop) -, mRubberBandInPlayMode(false) //enables rubberband with play tool + : QGraphicsView (pParent) + , mController (pController) + , mIsCreatingTextZone (false) + , mIsCreatingSceneGrabZone (false) + , mOkOnWidget(false) + , suspendedMousePressEvent(NULL) + , mLongPressInterval(1000) + , mIsDragInProgress(false) + , mMultipleSelectionIsEnabled(false) + , bIsControl(isControl) + , bIsDesktop(isDesktop) + , mRubberBandInPlayMode(false) //enables rubberband with play tool { - init (); + init (); - mFilterZIndex = false; + mFilterZIndex = false; - mLongPressTimer.setInterval(mLongPressInterval); - mLongPressTimer.setSingleShot(true); + mLongPressTimer.setInterval(mLongPressInterval); + mLongPressTimer.setSingleShot(true); } UBBoardView::UBBoardView (UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent, bool isControl, bool isDesktop) -: QGraphicsView (pParent) -, mController (pController) -, suspendedMousePressEvent(NULL) -, mLongPressInterval(1000) -, mIsDragInProgress(false) -, mMultipleSelectionIsEnabled(false) -, bIsControl(isControl) -, bIsDesktop(isDesktop) + : QGraphicsView (pParent) + , mController (pController) + , suspendedMousePressEvent(NULL) + , mLongPressInterval(1000) + , mIsDragInProgress(false) + , mMultipleSelectionIsEnabled(false) + , bIsControl(isControl) + , bIsDesktop(isDesktop) { - init (); + init (); - mStartLayer = pStartLayer; - mEndLayer = pEndLayer; + mStartLayer = pStartLayer; + mEndLayer = pEndLayer; - mFilterZIndex = true; + mFilterZIndex = true; - mLongPressTimer.setInterval(mLongPressInterval); - mLongPressTimer.setSingleShot(true); + mLongPressTimer.setInterval(mLongPressInterval); + mLongPressTimer.setSingleShot(true); } UBBoardView::~UBBoardView () { - //NOOP + //NOOP if (suspendedMousePressEvent) delete suspendedMousePressEvent; } void UBBoardView::init () { - connect (UBSettings::settings ()->boardPenPressureSensitive, SIGNAL (changed (QVariant)), - this, SLOT (settingChanged (QVariant))); + connect (UBSettings::settings ()->boardPenPressureSensitive, SIGNAL (changed (QVariant)), + this, SLOT (settingChanged (QVariant))); - connect (UBSettings::settings ()->boardMarkerPressureSensitive, SIGNAL (changed (QVariant)), - this, SLOT (settingChanged (QVariant))); + connect (UBSettings::settings ()->boardMarkerPressureSensitive, SIGNAL (changed (QVariant)), + this, SLOT (settingChanged (QVariant))); - connect (UBSettings::settings ()->boardUseHighResTabletEvent, SIGNAL (changed (QVariant)), - this, SLOT (settingChanged (QVariant))); + connect (UBSettings::settings ()->boardUseHighResTabletEvent, SIGNAL (changed (QVariant)), + this, SLOT (settingChanged (QVariant))); - setWindowFlags (Qt::FramelessWindowHint); - setFrameStyle (QFrame::NoFrame); - setRenderHints (QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing); - setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOff); - setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff); - setAcceptDrops (true); + setWindowFlags (Qt::FramelessWindowHint); + setFrameStyle (QFrame::NoFrame); + setRenderHints (QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing); + setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOff); + setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff); + setAcceptDrops (true); - setOptimizationFlag (QGraphicsView::IndirectPainting); // enable UBBoardView::drawItems filter + setOptimizationFlag (QGraphicsView::IndirectPainting); // enable UBBoardView::drawItems filter - mTabletStylusIsPressed = false; - mMouseButtonIsPressed = false; - mPendingStylusReleaseEvent = false; + mTabletStylusIsPressed = false; + mMouseButtonIsPressed = false; + mPendingStylusReleaseEvent = false; - setCacheMode (QGraphicsView::CacheBackground); + setCacheMode (QGraphicsView::CacheBackground); - mUsingTabletEraser = false; - mIsCreatingTextZone = false; - mRubberBand = 0; - mUBRubberBand = 0; + mUsingTabletEraser = false; + mIsCreatingTextZone = false; + mRubberBand = 0; + mUBRubberBand = 0; - mVirtualKeyboardActive = false; + mVirtualKeyboardActive = false; - settingChanged (QVariant ()); + settingChanged (QVariant ()); - unsetCursor(); + unsetCursor(); - movingItem = NULL; - mWidgetMoved = false; + movingItem = NULL; + mWidgetMoved = false; } UBGraphicsScene* UBBoardView::scene () { - return qobject_cast (QGraphicsView::scene ()); + return qobject_cast (QGraphicsView::scene ()); } void UBBoardView::hideEvent (QHideEvent * event) { - Q_UNUSED (event); - emit hidden (); + Q_UNUSED (event); + emit hidden (); } void UBBoardView::showEvent (QShowEvent * event) { - Q_UNUSED (event); - emit shown (); + Q_UNUSED (event); + emit shown (); } void UBBoardView::keyPressEvent (QKeyEvent *event) { - // send to the scene anyway - QApplication::sendEvent (scene (), event); + // send to the scene anyway + QApplication::sendEvent (scene (), event); - if (!event->isAccepted ()) + if (!event->isAccepted ()) { - switch (event->key ()) + switch (event->key ()) { case Qt::Key_Up: case Qt::Key_PageUp: case Qt::Key_Left: - { + { mController->previousScene (); break; - } + } case Qt::Key_Down: case Qt::Key_PageDown: case Qt::Key_Right: case Qt::Key_Space: - { + { mController->nextScene (); break; - } + } case Qt::Key_Home: - { + { mController->firstScene (); break; - } + } case Qt::Key_End: - { + { mController->lastScene (); break; - } + } case Qt::Key_Insert: - { + { mController->addScene (); break; - } + } case Qt::Key_Control: case Qt::Key_Shift: - { + { setMultiselection(true); - }break; + }break; } - if (event->modifiers () & Qt::ControlModifier) // keep only ctrl/cmd keys + if (event->modifiers () & Qt::ControlModifier) // keep only ctrl/cmd keys { - switch (event->key ()) + switch (event->key ()) { case Qt::Key_Plus: case Qt::Key_I: - { + { mController->zoomIn (); event->accept (); break; - } + } case Qt::Key_Minus: case Qt::Key_O: - { + { mController->zoomOut (); event->accept (); break; - } + } case Qt::Key_0: - { + { mController->zoomRestore (); event->accept (); break; - } + } case Qt::Key_Left: - { + { mController->handScroll (-100, 0); event->accept (); break; - } + } case Qt::Key_Right: - { + { mController->handScroll (100, 0); event->accept (); break; - } + } case Qt::Key_Up: - { + { mController->handScroll (0, -100); event->accept (); break; - } + } case Qt::Key_Down: - { + { mController->handScroll (0, 100); event->accept (); break; - } + } default: - { + { // NOOP - } + } } } } @@ -303,10 +303,10 @@ UBBoardView::keyPressEvent (QKeyEvent *event) void UBBoardView::keyReleaseEvent(QKeyEvent *event) { - // if (!event->isAccepted ()) + // if (!event->isAccepted ()) { if (Qt::Key_Shift == event->key() - ||Qt::Key_Control == event->key()) + ||Qt::Key_Control == event->key()) { setMultiselection(false); } @@ -318,30 +318,30 @@ void UBBoardView::keyReleaseEvent(QKeyEvent *event) bool UBBoardView::event (QEvent * e) { - if (e->type () == QEvent::Gesture) + if (e->type () == QEvent::Gesture) { - QGestureEvent *gestureEvent = dynamic_cast (e); - if (gestureEvent) + QGestureEvent *gestureEvent = dynamic_cast (e); + if (gestureEvent) { - QSwipeGesture* swipe = dynamic_cast (gestureEvent->gesture (Qt::SwipeGesture)); - if (swipe) + QSwipeGesture* swipe = dynamic_cast (gestureEvent->gesture (Qt::SwipeGesture)); + if (swipe) { - if (swipe->horizontalDirection () == QSwipeGesture::Left) + if (swipe->horizontalDirection () == QSwipeGesture::Left) { - mController->previousScene (); - gestureEvent->setAccepted (swipe, true); + mController->previousScene (); + gestureEvent->setAccepted (swipe, true); } - if (swipe->horizontalDirection () == QSwipeGesture::Right) + if (swipe->horizontalDirection () == QSwipeGesture::Right) { - mController->nextScene (); - gestureEvent->setAccepted (swipe, true); + mController->nextScene (); + gestureEvent->setAccepted (swipe, true); } } } } - return QGraphicsView::event (e); + return QGraphicsView::event (e); } void UBBoardView::tabletEvent (QTabletEvent * event) @@ -474,20 +474,20 @@ bool UBBoardView::isUBItem(QGraphicsItem *item) bool UBBoardView::isCppTool(QGraphicsItem *item) { return (item->type() == UBGraphicsItemType::CompassItemType - || item->type() == UBGraphicsItemType::RulerItemType - || item->type() == UBGraphicsItemType::ProtractorItemType - || item->type() == UBGraphicsItemType::TriangleItemType - || item->type() == UBGraphicsItemType::CurtainItemType); + || item->type() == UBGraphicsItemType::RulerItemType + || item->type() == UBGraphicsItemType::ProtractorItemType + || item->type() == UBGraphicsItemType::TriangleItemType + || item->type() == UBGraphicsItemType::CurtainItemType); } void UBBoardView::handleItemsSelection(QGraphicsItem *item) { -// we need to select new pressed itemOnBoard and deselect all other items. -// the trouble is in: -// some items can has parents (groupped items or strokes, or strokes in groups). -// some items is already selected and we don't need to reselect them -// -// item selection managed by QGraphicsView::mousePressEvent(). It should be called later. + // we need to select new pressed itemOnBoard and deselect all other items. + // the trouble is in: + // some items can has parents (groupped items or strokes, or strokes in groups). + // some items is already selected and we don't need to reselect them + // + // item selection managed by QGraphicsView::mousePressEvent(). It should be called later. if (item) { @@ -530,7 +530,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item) bool UBBoardView::itemShouldReceiveMousePressEvent(QGraphicsItem *item) { -/* + /* Some items should receive mouse press events averytime, some items should receive that events when they are selected, some items shouldn't receive mouse press events at mouse press, but should receive them at mouse release (suspended mouse press event) @@ -570,6 +570,8 @@ Here we determines cases when items should to get mouse press event at pressing case UBGraphicsSvgItem::Type: case UBGraphicsPixmapItem::Type: case UBGraphicsTextItem::Type: + if (currentTool == UBStylusTool::Play) + return true; if ((currentTool == UBStylusTool::Selector) && item->isSelected()) return true; if ((currentTool == UBStylusTool::Selector) && item->parentItem() && item->parentItem()->isSelected()) @@ -577,19 +579,19 @@ Here we determines cases when items should to get mouse press event at pressing if (currentTool != UBStylusTool::Selector) return false; break; - - // Groups shouldn't reacts on any presses and moves for Play tool. + case UBGraphicsItemType::StrokeItemType: + if (currentTool == UBStylusTool::Play) + return true; + break; case UBGraphicsGroupContainerItem::Type: + // Groups shouldn't reacts on any presses and moves for Play tool. if(currentTool == UBStylusTool::Play) { movingItem = NULL; + return true; } return false; break; - - //case UBToolWidget::Type: - // return true; - case QGraphicsWebView::Type: return true; @@ -693,9 +695,9 @@ QGraphicsItem* UBBoardView::determineItemToPress(QGraphicsItem *item) // if item is on group and group is not selected - group should take press. if (UBStylusTool::Selector == currentTool - && item->parentItem() - && UBGraphicsGroupContainerItem::Type == item->parentItem()->type() - && !item->parentItem()->isSelected()) + && item->parentItem() + && UBGraphicsGroupContainerItem::Type == item->parentItem()->type() + && !item->parentItem()->isSelected()) return item->parentItem(); // items like polygons placed in two groups nested, so we need to recursive call. @@ -715,7 +717,7 @@ QGraphicsItem* UBBoardView::determineItemToMove(QGraphicsItem *item) //W3C widgets should take mouse move events from play tool. if ((UBStylusTool::Play == currentTool) && (UBGraphicsWidgetItem::Type == item->type())) - return item; + return item; // if item is in group if(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type()) @@ -759,12 +761,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event) if (isMultipleSelectionEnabled()) return; - if (itemShouldReceiveMousePressEvent(movingItem)) - { + if (itemShouldReceiveMousePressEvent(movingItem)) { QGraphicsView::mousePressEvent (event); } - else - { + else { if (movingItem) { UBGraphicsItem *graphicsItem = dynamic_cast(movingItem); @@ -813,7 +813,7 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event) QGraphicsView::mouseMoveEvent (event); if (movingItem) - posAfterMove = movingItem->pos(); + posAfterMove = movingItem->pos(); mWidgetMoved = ((posAfterMove-posBeforeMove).manhattanLength() != 0); @@ -845,14 +845,14 @@ void UBBoardView::moveRubberedItems(QPointF movingVector) { 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) + || item->type() == UBGraphicsPixmapItem::Type + || item->type() == UBGraphicsMediaItem::Type + || item->type() == UBGraphicsSvgItem::Type + || item->type() == UBGraphicsTextItem::Type + || item->type() == UBGraphicsStrokesGroup::Type + || item->type() == UBGraphicsGroupContainerItem::Type) { - item->setPos(item->pos()+movingVector); + item->setPos(item->pos()+movingVector); } } @@ -866,26 +866,26 @@ void UBBoardView::setMultiselection(bool enable) void UBBoardView::longPressEvent() { - UBDrawingController *drawingController = UBDrawingController::drawingController(); - UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); + UBDrawingController *drawingController = UBDrawingController::drawingController(); + UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); - disconnect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); + disconnect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); - if (UBStylusTool::Selector == currentTool) - { + if (UBStylusTool::Selector == currentTool) + { drawingController->setStylusTool(UBStylusTool::Play); - } - else - if (currentTool == UBStylusTool::Play) - { - drawingController->setStylusTool(UBStylusTool::Selector); - } - else - if (UBStylusTool::Eraser == currentTool) - { - UBApplication::boardController->paletteManager()->toggleErasePalette(true); - } + } + else + if (currentTool == UBStylusTool::Play) + { + drawingController->setStylusTool(UBStylusTool::Selector); + } + else + if (UBStylusTool::Eraser == currentTool) + { + UBApplication::boardController->paletteManager()->toggleErasePalette(true); + } } @@ -898,8 +898,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) mIsDragInProgress = false; - if (isAbsurdPoint (event->pos ())) - { + if (isAbsurdPoint (event->pos ())) { event->accept (); return; } @@ -935,8 +934,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) mPreviousPoint = event->posF (); event->accept (); } - else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play) - { + else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play) { if (bIsDesktop) { event->ignore(); return; @@ -957,8 +955,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) mUBRubberBand->setGeometry (QRect (mMouseDownPos, QSize ())); mUBRubberBand->show(); } - else - { + else { if(mUBRubberBand) mUBRubberBand->hide(); } @@ -1035,110 +1032,110 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) void UBBoardView::mouseMoveEvent (QMouseEvent *event) { - if(!mIsDragInProgress && ((mapToScene(event->pos()) - mLastPressedMousePos).manhattanLength() < QApplication::startDragDistance())) - { - return; - } + if(!mIsDragInProgress && ((mapToScene(event->pos()) - mLastPressedMousePos).manhattanLength() < QApplication::startDragDistance())) + { + return; + } - mIsDragInProgress = true; - UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); + mIsDragInProgress = true; + UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); - mLongPressTimer.stop(); + mLongPressTimer.stop(); - if (isAbsurdPoint (event->pos ())) + if (isAbsurdPoint (event->pos ())) { - event->accept (); - return; + event->accept (); + return; } - if (currentTool == UBStylusTool::Hand && (mMouseButtonIsPressed || mTabletStylusIsPressed)) + if (currentTool == UBStylusTool::Hand && (mMouseButtonIsPressed || mTabletStylusIsPressed)) { - QPointF eventPosition = event->posF (); - qreal dx = eventPosition.x () - mPreviousPoint.x (); - qreal dy = eventPosition.y () - mPreviousPoint.y (); - mController->handScroll (dx, dy); - mPreviousPoint = eventPosition; - event->accept (); + QPointF eventPosition = event->posF (); + qreal dx = eventPosition.x () - mPreviousPoint.x (); + qreal dy = eventPosition.y () - mPreviousPoint.y (); + mController->handScroll (dx, dy); + mPreviousPoint = eventPosition; + event->accept (); } - else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play) - { - if((event->pos() - mLastPressedMousePos).manhattanLength() < QApplication::startDragDistance()) { - return; - } - - if (bIsDesktop) { - event->ignore(); - return; - } - - if (currentTool != UBStylusTool::Play || mRubberBandInPlayMode) { - - if (!movingItem && (mMouseButtonIsPressed || mTabletStylusIsPressed) && mUBRubberBand && mUBRubberBand->isVisible()) { - - QRect bandRect(mMouseDownPos, event->pos()); - - bandRect = bandRect.normalized(); - - mUBRubberBand->setGeometry(bandRect); - - 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); - } - } - } - } - } - - handleItemMouseMove(event); + else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play) + { + if((event->pos() - mLastPressedMousePos).manhattanLength() < QApplication::startDragDistance()) { + return; + } + + if (bIsDesktop) { + event->ignore(); + return; + } + + if (currentTool != UBStylusTool::Play || mRubberBandInPlayMode) { + + if (!movingItem && (mMouseButtonIsPressed || mTabletStylusIsPressed) && mUBRubberBand && mUBRubberBand->isVisible()) { + + QRect bandRect(mMouseDownPos, event->pos()); + + bandRect = bandRect.normalized(); + + mUBRubberBand->setGeometry(bandRect); + + 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); + } + } + } + } + } + + handleItemMouseMove(event); + } + else if ((UBDrawingController::drawingController()->isDrawingTool()) + && !mMouseButtonIsPressed) + { + QGraphicsView::mouseMoveEvent (event); } - else if ((UBDrawingController::drawingController()->isDrawingTool()) - && !mMouseButtonIsPressed) - { - QGraphicsView::mouseMoveEvent (event); - } - else if (currentTool == UBStylusTool::Text || currentTool == UBStylusTool::Capture) + else if (currentTool == UBStylusTool::Text || currentTool == UBStylusTool::Capture) { - if (mRubberBand && (mIsCreatingTextZone || mIsCreatingSceneGrabZone)) + if (mRubberBand && (mIsCreatingTextZone || mIsCreatingSceneGrabZone)) { - mRubberBand->setGeometry (QRect (mMouseDownPos, event->pos ()).normalized ()); - event->accept (); + mRubberBand->setGeometry (QRect (mMouseDownPos, event->pos ()).normalized ()); + event->accept (); } - else + else { - QGraphicsView::mouseMoveEvent (event); + QGraphicsView::mouseMoveEvent (event); } } - else + else { - if (!mTabletStylusIsPressed && scene ()) - { - scene ()->inputDeviceMove (mapToScene (UBGeometryUtils::pointConstrainedInRect (event->pos (), rect ())), mMouseButtonIsPressed); - } - event->accept (); + if (!mTabletStylusIsPressed && scene ()) + { + scene ()->inputDeviceMove (mapToScene (UBGeometryUtils::pointConstrainedInRect (event->pos (), rect ())), mMouseButtonIsPressed); + } + event->accept (); } - if((event->pos() - mLastPressedMousePos).manhattanLength() < QApplication::startDragDistance()) - mWidgetMoved = true; + if((event->pos() - mLastPressedMousePos).manhattanLength() < QApplication::startDragDistance()) + mWidgetMoved = true; } void @@ -1146,207 +1143,199 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event) { UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); - setToolCursor (currentTool); - // first/ propagate device release to the scene - if (scene ()) - scene ()->inputDeviceRelease (); - - if (currentTool == UBStylusTool::Selector) - { - if (bIsDesktop) { - event->ignore(); - return; - } - - UBGraphicsItem *graphicsItem = dynamic_cast(movingItem); - if (graphicsItem) - graphicsItem->Delegate()->commitUndoStep(); - - bool bReleaseIsNeed = true; - if (movingItem != determineItemToPress(scene()->itemAt(this->mapToScene(event->posF().toPoint())))) - { - movingItem = NULL; - bReleaseIsNeed = false; - } - if (mWidgetMoved) - { - mWidgetMoved = false; - movingItem = NULL; - } - else - if (movingItem && (!isCppTool(movingItem) || UBGraphicsCurtainItem::Type == movingItem->type())) - { - if (suspendedMousePressEvent) - { - QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop - movingItem = NULL; - delete suspendedMousePressEvent; - suspendedMousePressEvent = NULL; - bReleaseIsNeed = true; - } - else - { - if (isUBItem(movingItem) && - DelegateButton::Type != movingItem->type() && - QGraphicsSvgItem::Type != movingItem->type() && - UBGraphicsDelegateFrame::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())) - { - bReleaseIsNeed = false; - if (movingItem->isSelected() && isMultipleSelectionEnabled()) - movingItem->setSelected(false); - else - if (movingItem->parentItem() && movingItem->parentItem()->isSelected() && isMultipleSelectionEnabled()) - movingItem->parentItem()->setSelected(false); - else - { - if (movingItem->isSelected()) - bReleaseIsNeed = true; - - movingItem->setSelected(true); - } - - } - } - } - else - bReleaseIsNeed = true; - - if (mUBRubberBand && mUBRubberBand->isVisible()) { - mUBRubberBand->hide(); - } - - if (bReleaseIsNeed) - { - QGraphicsView::mouseReleaseEvent (event); - } - } - else if (currentTool == UBStylusTool::Play) - { - if (bIsDesktop) { - event->ignore(); - return; - } - - if (mWidgetMoved) - { - movingItem = NULL; - mWidgetMoved = false; - } - else - { - if (suspendedMousePressEvent) - { - QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop - movingItem = NULL; - delete suspendedMousePressEvent; - suspendedMousePressEvent = NULL; - } - } - QGraphicsView::mouseReleaseEvent (event); - } - else if (currentTool == UBStylusTool::Text) + setToolCursor (currentTool); + // first/ propagate device release to the scene + if (scene ()) + scene ()->inputDeviceRelease (); + + if (currentTool == UBStylusTool::Selector) { - if (mRubberBand) - mRubberBand->hide (); + if (bIsDesktop) { + event->ignore(); + return; + } - if (scene () && mRubberBand && mIsCreatingTextZone) - { - QRect rubberRect = mRubberBand->geometry (); + UBGraphicsItem *graphicsItem = dynamic_cast(movingItem); + if (graphicsItem) + graphicsItem->Delegate()->commitUndoStep(); - UBGraphicsTextItem* textItem = scene()->addTextHtml ("", mapToScene (rubberRect.topLeft ())); - event->accept (); + bool bReleaseIsNeed = true; + if (movingItem != determineItemToPress(scene()->itemAt(this->mapToScene(event->posF().toPoint())))) + { + movingItem = NULL; + bReleaseIsNeed = false; + } + if (mWidgetMoved) + { + mWidgetMoved = false; + movingItem = NULL; + } + else + if (movingItem && (!isCppTool(movingItem) || UBGraphicsCurtainItem::Type == movingItem->type())) + { + if (suspendedMousePressEvent) + { + QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop + movingItem = NULL; + delete suspendedMousePressEvent; + suspendedMousePressEvent = NULL; + bReleaseIsNeed = true; + } + else + { + if (isUBItem(movingItem) && + DelegateButton::Type != movingItem->type() && + QGraphicsSvgItem::Type != movingItem->type() && + UBGraphicsDelegateFrame::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())) + { + bReleaseIsNeed = false; + if (movingItem->isSelected() && isMultipleSelectionEnabled()) + movingItem->setSelected(false); + else + if (movingItem->parentItem() && movingItem->parentItem()->isSelected() && isMultipleSelectionEnabled()) + movingItem->parentItem()->setSelected(false); + else + { + if (movingItem->isSelected()) + bReleaseIsNeed = true; + + movingItem->setSelected(true); + } - UBDrawingController::drawingController ()->setStylusTool (UBStylusTool::Selector); + } + } + } + else + bReleaseIsNeed = true; - textItem->setSelected (true); - textItem->setFocus(); + if (mUBRubberBand && mUBRubberBand->isVisible()) { + mUBRubberBand->hide(); } - else + + if (bReleaseIsNeed) { - QGraphicsView::mouseReleaseEvent (event); + QGraphicsView::mouseReleaseEvent (event); + } + } + else if (currentTool == UBStylusTool::Play) { + if (bIsDesktop) { + event->ignore(); + return; } - mIsCreatingTextZone = false; + if (mWidgetMoved) { + movingItem = NULL; + mWidgetMoved = false; + } + else { + if (suspendedMousePressEvent) { + QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop + movingItem = NULL; + delete suspendedMousePressEvent; + suspendedMousePressEvent = NULL; + } + } + QGraphicsView::mouseReleaseEvent (event); + } + else if (currentTool == UBStylusTool::Text) { + if (mRubberBand) + mRubberBand->hide (); + + if (scene () && mRubberBand && mIsCreatingTextZone) { + QRect rubberRect = mRubberBand->geometry (); + + UBGraphicsTextItem* textItem = scene()->addTextHtml ("", mapToScene (rubberRect.topLeft ())); + event->accept (); + + UBDrawingController::drawingController ()->setStylusTool (UBStylusTool::Selector); + + textItem->setSelected (true); + textItem->setFocus(); + } + else + QGraphicsView::mouseReleaseEvent (event); + + mIsCreatingTextZone = false; } - else if (currentTool == UBStylusTool::Capture) + else if (currentTool == UBStylusTool::Capture) { - if (mRubberBand) - mRubberBand->hide (); + if (mRubberBand) + mRubberBand->hide (); - if (scene () && mRubberBand && mIsCreatingSceneGrabZone && mRubberBand->geometry ().width () > 16) + if (scene () && mRubberBand && mIsCreatingSceneGrabZone && mRubberBand->geometry ().width () > 16) { - QRect rect = mRubberBand->geometry (); - QPointF sceneTopLeft = mapToScene (rect.topLeft ()); - QPointF sceneBottomRight = mapToScene (rect.bottomRight ()); - QRectF sceneRect (sceneTopLeft, sceneBottomRight); + QRect rect = mRubberBand->geometry (); + QPointF sceneTopLeft = mapToScene (rect.topLeft ()); + QPointF sceneBottomRight = mapToScene (rect.bottomRight ()); + QRectF sceneRect (sceneTopLeft, sceneBottomRight); - mController->grabScene (sceneRect); + mController->grabScene (sceneRect); - event->accept (); + event->accept (); } - else + else { - QGraphicsView::mouseReleaseEvent (event); + QGraphicsView::mouseReleaseEvent (event); } - mIsCreatingSceneGrabZone = false; + mIsCreatingSceneGrabZone = false; } - else + else { - if (mPendingStylusReleaseEvent || mMouseButtonIsPressed) + if (mPendingStylusReleaseEvent || mMouseButtonIsPressed) { - event->accept (); + event->accept (); } } - mMouseButtonIsPressed = false; - mPendingStylusReleaseEvent = false; - mTabletStylusIsPressed = false; - movingItem = NULL; + mMouseButtonIsPressed = false; + mPendingStylusReleaseEvent = false; + mTabletStylusIsPressed = false; + movingItem = NULL; - mLongPressTimer.stop(); + mLongPressTimer.stop(); } void UBBoardView::forcedTabletRelease () { - if (mMouseButtonIsPressed || mTabletStylusIsPressed || mPendingStylusReleaseEvent) + if (mMouseButtonIsPressed || mTabletStylusIsPressed || mPendingStylusReleaseEvent) { - qWarning () << "dirty mouse/tablet state:"; - qWarning () << "mMouseButtonIsPressed =" << mMouseButtonIsPressed; - qWarning () << "mTabletStylusIsPressed = " << mTabletStylusIsPressed; - qWarning () << "mPendingStylusReleaseEvent" << mPendingStylusReleaseEvent; - qWarning () << "forcing device release"; + qWarning () << "dirty mouse/tablet state:"; + qWarning () << "mMouseButtonIsPressed =" << mMouseButtonIsPressed; + qWarning () << "mTabletStylusIsPressed = " << mTabletStylusIsPressed; + qWarning () << "mPendingStylusReleaseEvent" << mPendingStylusReleaseEvent; + qWarning () << "forcing device release"; - scene ()->inputDeviceRelease (); + scene ()->inputDeviceRelease (); - mMouseButtonIsPressed = false; - mTabletStylusIsPressed = false; - mPendingStylusReleaseEvent = false; + mMouseButtonIsPressed = false; + mTabletStylusIsPressed = false; + mPendingStylusReleaseEvent = false; } } void UBBoardView::mouseDoubleClickEvent (QMouseEvent *event) { - // We don't want a double click, we want two clicks - mousePressEvent (event); + // We don't want a double click, we want two clicks + mousePressEvent (event); } void UBBoardView::wheelEvent (QWheelEvent *wheelEvent) { - if (isInteractive () && wheelEvent->orientation () == Qt::Vertical) + if (isInteractive () && wheelEvent->orientation () == Qt::Vertical) { - // Too many wheelEvent are sent, how should we handle them to "smoothly" zoom ? - // something like zoom( pow(zoomFactor, event->delta() / 120) ) + // Too many wheelEvent are sent, how should we handle them to "smoothly" zoom ? + // something like zoom( pow(zoomFactor, event->delta() / 120) ) - // use DateTime man, store last event time, and if if less than 300ms than this is one big scroll - // and move scroll with one const speed. + // use DateTime man, store last event time, and if if less than 300ms than this is one big scroll + // and move scroll with one const speed. // so, you no will related with scroll event count } @@ -1375,10 +1364,10 @@ UBBoardView::wheelEvent (QWheelEvent *wheelEvent) void UBBoardView::leaveEvent (QEvent * event) { - if (scene ()) - scene ()->leaveEvent (event); + if (scene ()) + scene ()->leaveEvent (event); - QGraphicsView::leaveEvent (event); + QGraphicsView::leaveEvent (event); } void @@ -1386,39 +1375,39 @@ UBBoardView::drawItems (QPainter *painter, int numItems, QGraphicsItem* items[], const QStyleOptionGraphicsItem options[]) { - if (!mFilterZIndex) + if (!mFilterZIndex) { - QGraphicsView::drawItems (painter, numItems, items, options); + QGraphicsView::drawItems (painter, numItems, items, options); } - else + else { - int count = 0; + int count = 0; - QGraphicsItem** itemsFiltered = new QGraphicsItem*[numItems]; - QStyleOptionGraphicsItem *optionsFiltered = new QStyleOptionGraphicsItem[numItems]; + QGraphicsItem** itemsFiltered = new QGraphicsItem*[numItems]; + QStyleOptionGraphicsItem *optionsFiltered = new QStyleOptionGraphicsItem[numItems]; - for (int i = 0; i < numItems; i++) + for (int i = 0; i < numItems; i++) { - if (shouldDisplayItem (items[i])) + if (shouldDisplayItem (items[i])) { - itemsFiltered[count] = items[i]; - optionsFiltered[count] = options[i]; - count++; + itemsFiltered[count] = items[i]; + optionsFiltered[count] = options[i]; + count++; } } - QGraphicsView::drawItems (painter, count, itemsFiltered, optionsFiltered); + QGraphicsView::drawItems (painter, count, itemsFiltered, optionsFiltered); - delete[] optionsFiltered; - delete[] itemsFiltered; + delete[] optionsFiltered; + delete[] itemsFiltered; } } void UBBoardView::dragMoveEvent(QDragMoveEvent *event) { - QGraphicsView::dragMoveEvent(event); - event->acceptProposedAction(); + QGraphicsView::dragMoveEvent(event); + event->acceptProposedAction(); } void UBBoardView::dropEvent (QDropEvent *event) @@ -1447,94 +1436,94 @@ void UBBoardView::dropEvent (QDropEvent *event) void UBBoardView::resizeEvent (QResizeEvent * event) { - const qreal maxWidth = width () * 10; - const qreal maxHeight = height () * 10; + const qreal maxWidth = width () * 10; + const qreal maxHeight = height () * 10; - setSceneRect (-(maxWidth / 2), -(maxHeight / 2), maxWidth, maxHeight); - centerOn (0, 0); + setSceneRect (-(maxWidth / 2), -(maxHeight / 2), maxWidth, maxHeight); + centerOn (0, 0); - emit resized (event); + emit resized (event); } void UBBoardView::drawBackground (QPainter *painter, const QRectF &rect) { - if (testAttribute (Qt::WA_TranslucentBackground)) + if (testAttribute (Qt::WA_TranslucentBackground)) { - QGraphicsView::drawBackground (painter, rect); - return; + QGraphicsView::drawBackground (painter, rect); + return; } - bool darkBackground = scene () && scene ()->isDarkBackground (); + bool darkBackground = scene () && scene ()->isDarkBackground (); - if (darkBackground) + if (darkBackground) { - painter->fillRect (rect, QBrush (QColor (Qt::black))); + painter->fillRect (rect, QBrush (QColor (Qt::black))); } - else + else { - painter->fillRect (rect, QBrush (QColor (Qt::white))); + painter->fillRect (rect, QBrush (QColor (Qt::white))); } - if (transform ().m11 () > 0.5) + if (transform ().m11 () > 0.5) { - QColor bgCrossColor; + QColor bgCrossColor; - if (darkBackground) - bgCrossColor = UBSettings::crossDarkBackground; - else - bgCrossColor = UBSettings::crossLightBackground; + if (darkBackground) + bgCrossColor = UBSettings::crossDarkBackground; + else + bgCrossColor = UBSettings::crossLightBackground; - if (transform ().m11 () < 1.0) + if (transform ().m11 () < 1.0) { - int alpha = 255 * transform ().m11 () / 2; - bgCrossColor.setAlpha (alpha); // fade the crossing on small zooms + int alpha = 255 * transform ().m11 () / 2; + bgCrossColor.setAlpha (alpha); // fade the crossing on small zooms } - painter->setPen (bgCrossColor); + painter->setPen (bgCrossColor); - if (scene () && scene ()->isCrossedBackground ()) + if (scene () && scene ()->isCrossedBackground ()) { - qreal firstY = ((int) (rect.y () / UBSettings::crossSize)) * UBSettings::crossSize; + qreal firstY = ((int) (rect.y () / UBSettings::crossSize)) * UBSettings::crossSize; - for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += UBSettings::crossSize) + for (qreal yPos = firstY; yPos < rect.y () + rect.height (); yPos += UBSettings::crossSize) { - painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos); + painter->drawLine (rect.x (), yPos, rect.x () + rect.width (), yPos); } - qreal firstX = ((int) (rect.x () / UBSettings::crossSize)) * UBSettings::crossSize; + qreal firstX = ((int) (rect.x () / UBSettings::crossSize)) * UBSettings::crossSize; - for (qreal xPos = firstX; xPos < rect.x () + rect.width (); xPos += UBSettings::crossSize) + for (qreal xPos = firstX; xPos < rect.x () + rect.width (); xPos += UBSettings::crossSize) { - painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ()); + painter->drawLine (xPos, rect.y (), xPos, rect.y () + rect.height ()); } } } - if (!mFilterZIndex && scene ()) + if (!mFilterZIndex && scene ()) { - QSize pageNominalSize = scene ()->nominalSize (); + QSize pageNominalSize = scene ()->nominalSize (); - if (pageNominalSize.isValid ()) + if (pageNominalSize.isValid ()) { - qreal penWidth = 8.0 / transform ().m11 (); + qreal penWidth = 8.0 / transform ().m11 (); - QRectF pageRect (pageNominalSize.width () / -2, pageNominalSize.height () / -2 - , pageNominalSize.width (), pageNominalSize.height ()); + QRectF pageRect (pageNominalSize.width () / -2, pageNominalSize.height () / -2 + , pageNominalSize.width (), pageNominalSize.height ()); - pageRect.adjust (-penWidth / 2, -penWidth / 2, penWidth / 2, penWidth / 2); + pageRect.adjust (-penWidth / 2, -penWidth / 2, penWidth / 2, penWidth / 2); - QColor docSizeColor; + QColor docSizeColor; - if (darkBackground) - docSizeColor = UBSettings::documentSizeMarkColorDarkBackground; - else - docSizeColor = UBSettings::documentSizeMarkColorLightBackground; + if (darkBackground) + docSizeColor = UBSettings::documentSizeMarkColorDarkBackground; + else + docSizeColor = UBSettings::documentSizeMarkColorLightBackground; - QPen pen (docSizeColor); - pen.setWidth (penWidth); - painter->setPen (pen); - painter->drawRect (pageRect); + QPen pen (docSizeColor); + pen.setWidth (penWidth); + painter->setPen (pen); + painter->drawRect (pageRect); } } } @@ -1542,11 +1531,11 @@ UBBoardView::drawBackground (QPainter *painter, const QRectF &rect) void UBBoardView::settingChanged (QVariant newValue) { - Q_UNUSED (newValue); + Q_UNUSED (newValue); - mPenPressureSensitive = UBSettings::settings ()->boardPenPressureSensitive->get ().toBool (); - mMarkerPressureSensitive = UBSettings::settings ()->boardMarkerPressureSensitive->get ().toBool (); - mUseHighResTabletEvent = UBSettings::settings ()->boardUseHighResTabletEvent->get ().toBool (); + mPenPressureSensitive = UBSettings::settings ()->boardPenPressureSensitive->get ().toBool (); + mMarkerPressureSensitive = UBSettings::settings ()->boardMarkerPressureSensitive->get ().toBool (); + mUseHighResTabletEvent = UBSettings::settings ()->boardUseHighResTabletEvent->get ().toBool (); } void UBBoardView::virtualKeyboardActivated(bool b) @@ -1566,8 +1555,8 @@ bool UBBoardView::isAbsurdPoint(QPoint point) for (int i = 0; i < desktop->numScreens (); i++) { - QRect screenRect = desktop->screenGeometry (i); - isValidPoint = isValidPoint || screenRect.contains (mapToGlobal(point)); + QRect screenRect = desktop->screenGeometry (i); + isValidPoint = isValidPoint || screenRect.contains (mapToGlobal(point)); } return !isValidPoint; @@ -1576,56 +1565,56 @@ bool UBBoardView::isAbsurdPoint(QPoint point) void UBBoardView::focusOutEvent (QFocusEvent * event) { - Q_UNUSED (event); + Q_UNUSED (event); } void UBBoardView::setToolCursor (int tool) { - QWidget *controlViewport = viewport (); - switch (tool) + QWidget *controlViewport = viewport (); + switch (tool) { case UBStylusTool::Pen: - controlViewport->setCursor (UBResources::resources ()->penCursor); - break; + controlViewport->setCursor (UBResources::resources ()->penCursor); + break; case UBStylusTool::Eraser: - controlViewport->setCursor (UBResources::resources ()->eraserCursor); - scene()->hideEraser(); - break; + controlViewport->setCursor (UBResources::resources ()->eraserCursor); + scene()->hideEraser(); + break; case UBStylusTool::Marker: - controlViewport->setCursor (UBResources::resources ()->markerCursor); - break; + controlViewport->setCursor (UBResources::resources ()->markerCursor); + break; case UBStylusTool::Pointer: - controlViewport->setCursor (UBResources::resources ()->pointerCursor); - break; + controlViewport->setCursor (UBResources::resources ()->pointerCursor); + break; case UBStylusTool::Hand: - controlViewport->setCursor (UBResources::resources ()->handCursor); - break; + controlViewport->setCursor (UBResources::resources ()->handCursor); + break; case UBStylusTool::ZoomIn: - controlViewport->setCursor (UBResources::resources ()->zoomInCursor); - break; + controlViewport->setCursor (UBResources::resources ()->zoomInCursor); + break; case UBStylusTool::ZoomOut: - controlViewport->setCursor (UBResources::resources ()->zoomOutCursor); - break; + controlViewport->setCursor (UBResources::resources ()->zoomOutCursor); + break; case UBStylusTool::Selector: - controlViewport->setCursor (UBResources::resources ()->arrowCursor); - break; + controlViewport->setCursor (UBResources::resources ()->arrowCursor); + break; case UBStylusTool::Play: - controlViewport->setCursor (UBResources::resources ()->playCursor); - break; + controlViewport->setCursor (UBResources::resources ()->playCursor); + break; case UBStylusTool::Line: - controlViewport->setCursor (UBResources::resources ()->penCursor); - break; + controlViewport->setCursor (UBResources::resources ()->penCursor); + break; case UBStylusTool::Text: - controlViewport->setCursor (UBResources::resources ()->textCursor); - break; + controlViewport->setCursor (UBResources::resources ()->textCursor); + break; case UBStylusTool::Capture: - controlViewport->setCursor (UBResources::resources ()->penCursor); - break; + controlViewport->setCursor (UBResources::resources ()->penCursor); + break; default: - Q_ASSERT (false); - //failsafe - controlViewport->setCursor (UBResources::resources ()->penCursor); + Q_ASSERT (false); + //failsafe + controlViewport->setCursor (UBResources::resources ()->penCursor); } } diff --git a/src/board/UBDrawingController.cpp b/src/board/UBDrawingController.cpp index ec8af0d9..c07fcbd7 100644 --- a/src/board/UBDrawingController.cpp +++ b/src/board/UBDrawingController.cpp @@ -159,35 +159,23 @@ bool UBDrawingController::isDrawingTool() int UBDrawingController::currentToolWidthIndex() { if (stylusTool() == UBStylusTool::Pen || stylusTool() == UBStylusTool::Line) - { return UBSettings::settings()->penWidthIndex(); - } else if (stylusTool() == UBStylusTool::Marker) - { return UBSettings::settings()->markerWidthIndex(); - } else - { return -1; - } } qreal UBDrawingController::currentToolWidth() { if (stylusTool() == UBStylusTool::Pen || stylusTool() == UBStylusTool::Line) - { return UBSettings::settings()->currentPenWidth(); - } else if (stylusTool() == UBStylusTool::Marker) - { return UBSettings::settings()->currentMarkerWidth(); - } else - { //failsafe return UBSettings::settings()->currentPenWidth(); - } } diff --git a/src/core/UB.h b/src/core/UB.h index ec6bb00a..2f8615dc 100644 --- a/src/core/UB.h +++ b/src/core/UB.h @@ -50,17 +50,17 @@ struct UBStylusTool { enum Enum { - Pen = 0, - Eraser, - Marker, - Selector, + Pen = 0, + Eraser, + Marker, + Selector, Play, - Hand, - ZoomIn, - ZoomOut, - Pointer, - Line, - Text, + Hand, + ZoomIn, + ZoomOut, + Pointer, + Line, + Text, Capture }; }; @@ -138,17 +138,17 @@ struct UBGraphicsItemType { enum Enum { - PolygonItemType = QGraphicsItem::UserType + 1, + PolygonItemType = QGraphicsItem::UserType + 1, PixmapItemType, - SvgItemType, + SvgItemType, DelegateButtonType, - MediaItemType, - PDFItemType, + MediaItemType, + PDFItemType, TextItemType, CurtainItemType, - RulerItemType, - CompassItemType, - ProtractorItemType, + RulerItemType, + CompassItemType, + ProtractorItemType, StrokeItemType, TriangleItemType, MagnifierItemType, diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 1ec52624..a6a93f12 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -236,9 +236,7 @@ UBGraphicsItemDelegate::~UBGraphicsItemDelegate() QVariant UBGraphicsItemDelegate::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) { - if(change == QGraphicsItem::ItemChildAddedChange){ - - }else if (change == QGraphicsItem::ItemSelectedHasChanged) { + if (change == QGraphicsItem::ItemSelectedHasChanged) { bool ok; bool selected = value.toUInt(&ok); if (ok) { @@ -286,6 +284,8 @@ bool UBGraphicsItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *event) { mDragStartPosition = event->pos(); + mMoved = false; + startUndoStep(); if (!delegated()->isSelected()) @@ -315,6 +315,7 @@ bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event) } mDrag->exec(); mDragPixmap = QPixmap(); + mMoved = true; return true; } return false; @@ -439,22 +440,9 @@ void UBGraphicsItemDelegate::setZOrderButtonsVisible(bool visible) void UBGraphicsItemDelegate::remove(bool canUndo) { - /*UBGraphicsScene* scene = dynamic_cast(mDelegated->scene()); - if (scene && canUndo) - { - UBGraphicsItemUndoCommand *uc = new UBGraphicsItemUndoCommand(scene, mDelegated, 0); - UBApplication::undoStack->push(uc); - } - mDelegated->hide(); */ - UBGraphicsScene* scene = dynamic_cast(mDelegated->scene()); if (scene) { -// bool shownOnDisplay = mDelegated->data(UBGraphicsItemData::ItemLayerType).toInt() != UBItemLayerType::Control; -// showHide(shownOnDisplay); -// updateFrame(); -// updateButtons(); - if (mFrame && !mFrame->scene() && mDelegated->scene()) { mDelegated->scene()->addItem(mFrame); @@ -734,7 +722,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated) mDelegated->scene()->addItem(mDeleteButton); } - if (showUpdated /*&& mFrame->isResizing()*/) + if (showUpdated) mDeleteButton->show(); int i = 1, j = 0, k = 0; @@ -772,7 +760,7 @@ void UBGraphicsItemDelegate::setButtonsVisible(bool visible) } -UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) : +UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) : QGraphicsRectItem(parent), mShifting(true), mVisible(false), @@ -785,7 +773,6 @@ UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) : rect.setWidth(parent->boundingRect().width()); this->setRect(rect); - // setBrush(QColor(UBSettings::paletteColor)); setPen(Qt::NoPen); hide(); @@ -815,36 +802,40 @@ void UBGraphicsToolBarItem::paint(QPainter *painter, const QStyleOptionGraphicsI Q_UNUSED(widget); QPainterPath path; - path.addRoundedRect(rect(), 10, 10); + path.addRoundedRect(rect(), 10, 10); setBrush(QBrush(UBSettings::paletteColor)); painter->fillPath(path, brush()); } -MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent) +MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent) { val = 0; smallPoint = false; - setNumDigits(4); + setNumDigits(6); } MediaTimer::~MediaTimer() {} +void MediaTimer::positionHandles() +{ + digitSpace = smallPoint ? 2 : 1; + ySegLen = rect().height()*5/12; + xSegLen = ySegLen*2/3; + segLen = xSegLen; + xAdvance = segLen*(5 + digitSpace)/5; + xOffset = (rect().width() - ndigits*xAdvance + segLen/5)/2; + yOffset = rect().height() - ySegLen*2; + + setRect(rect().x(), rect().y(), xOffset + xAdvance*ndigits, rect().height()); +} + void MediaTimer::drawString(const QString &s, QPainter &p, QBitArray *newPoints, bool newString) { QPoint pos; - - int digitSpace = smallPoint ? 2 : 1; - int xSegLen = (rect().width()/1)*5/(ndigits*(5 + digitSpace) + digitSpace); - int ySegLen = rect().height()*5/12; - int segLen = ySegLen > xSegLen ? xSegLen : ySegLen; - int xAdvance = segLen*(5 + digitSpace)/5; - int xOffset = rect().x() + (rect().width()/1 - ndigits*xAdvance + segLen/5)/2; - int yOffset = (rect().height() - segLen*2)/2; - for (int i=0; ifont(); - f.setPointSizeF(f.pointSizeF()); - p->setFont(f); - if (smallPoint) drawString(digitStr, *p, &points, false); else @@ -1178,7 +1165,7 @@ void MediaTimer::setNumDigits(int numDigits) numDigits = 0; } if (digitStr.isNull()) { // from constructor - ndigits = numDigits; + ndigits = numDigits + numDigits/2 - 1; digitStr.fill(QLatin1Char(' '), ndigits); points.fill(0, ndigits); digitStr[ndigits - 1] = QLatin1Char('0'); // "0" is the default number @@ -1208,6 +1195,7 @@ void MediaTimer::setNumDigits(int numDigits) ndigits = numDigits; update(); } + positionHandles(); } DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGraphicsItem * parent) @@ -1235,15 +1223,8 @@ void DelegateMediaControl::paint(QPainter *painter, { Q_UNUSED(option); Q_UNUSED(widget); - - QPainterPath path; - mLCDTimerArea.setHeight(rect().height()); - mLCDTimerArea.setWidth(rect().height()); - - mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()-2); - mSeecArea.setHeight(rect().height()-2*mSeecAreaBorderHeight); - mSeecArea.setY(mSeecAreaBorderHeight); + QPainterPath path; path.addRoundedRect(mSeecArea, mSeecArea.height()/2, mSeecArea.height()/2); painter->fillPath(path, brush()); @@ -1274,28 +1255,59 @@ QPainterPath DelegateMediaControl::shape() const void DelegateMediaControl::positionHandles() { - mLCDTimerArea.setWidth(parentItem()->boundingRect().height()); + QRectF selfRect = rect(); + selfRect.setHeight(parentItem()->boundingRect().height()); + setRect(selfRect); + + QTime tTotal; + tTotal = tTotal.addMSecs(mTotalTimeInMs); + mLCDTimerArea.setHeight(parentItem()->boundingRect().height()); + + int digitsCount = 2; + int timerWidth = mLCDTimerArea.height(); + + mDisplayFormat = "ss"; + + if (tTotal.minute() > 0) + { + mDisplayFormat = "mm:" + mDisplayFormat; + digitsCount += 3; + timerWidth += mLCDTimerArea.height()*0.5; + } + + if (tTotal.hour() > 0) + { + mDisplayFormat = "hh:" + mDisplayFormat; + digitsCount += 3; + timerWidth += mLCDTimerArea.height(); + } + + lcdTimer->setNumDigits(digitsCount); + + mLCDTimerArea.setWidth(timerWidth); + lcdTimer->setRect(mLCDTimerArea); - lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); + + // not the best solution, but it works. + lcdTimer->positionHandles(); + mLCDTimerArea = lcdTimer->rect(); + // ------------------------------------- + + lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); mSeecAreaBorderHeight = rect().height()/20; mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()-2); mSeecArea.setHeight(rect().height()-2*mSeecAreaBorderHeight); mSeecArea.setY(mSeecAreaBorderHeight); - - QRectF selfRect = rect(); - selfRect.setHeight(parentItem()->boundingRect().height()); - setRect(selfRect); - - lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); } void DelegateMediaControl::update() { - QTime t; - t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); - lcdTimer->display(t.toString("m:ss")); + QTime tCurrent; + tCurrent = tCurrent.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); + + lcdTimer->display(tCurrent.toString(mDisplayFormat)); QGraphicsRectItem::update(); } @@ -1309,17 +1321,21 @@ void DelegateMediaControl::updateTicker(qint64 time ) void DelegateMediaControl::totalTimeChanged(qint64 newTotalTime) { - mTotalTimeInMs = newTotalTime; - update(); + if (mTotalTimeInMs != newTotalTime) + { + mTotalTimeInMs = newTotalTime; + positionHandles(); + update(); + } } void DelegateMediaControl::mousePressEvent(QGraphicsSceneMouseEvent *event) { qreal frameWidth = mSeecArea.height()/2; - if (boundingRect().contains(event->pos() - QPointF(frameWidth,0)) + if (boundingRect().contains(event->pos() - QPointF(frameWidth,0)) && boundingRect().contains(event->pos() + QPointF(frameWidth,0))) - { + { mDisplayCurrentTime = true; seekToMousePos(event->pos()); this->update(); @@ -1331,9 +1347,9 @@ void DelegateMediaControl::mousePressEvent(QGraphicsSceneMouseEvent *event) void DelegateMediaControl::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { qreal frameWidth = mSeecArea.height() / 2; - if (boundingRect().contains(event->pos() - QPointF(frameWidth,0)) + if (boundingRect().contains(event->pos() - QPointF(frameWidth,0)) && boundingRect().contains(event->pos() + QPointF(frameWidth,0))) - { + { seekToMousePos(event->pos()); this->update(); event->accept(); @@ -1347,7 +1363,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos) qreal frameWidth = rect().height() / 2; minX = frameWidth; - length = mSeecArea.width() - lcdTimer->rect().width(); + length = mSeecArea.width() - mSeecArea.height(); qreal mouseX = mousePos.x(); if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2)) diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index abe83f4e..2d3acab1 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -104,10 +104,12 @@ public: MediaTimer(QGraphicsItem * parent = 0); ~MediaTimer(); + void positionHandles(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); void display(const QString &str); + void setNumDigits(int nDigits); private: @@ -117,7 +119,6 @@ private: void drawSegment(const QPoint &, char, QPainter &, int, bool = false); void addPoint(QPolygon&, const QPoint&); void internalSetString(const QString& s); - void setNumDigits(int nDigits); static char segments [][8]; @@ -128,6 +129,14 @@ private: uint shadow : 1; uint smallPoint : 1; + + int digitSpace; + int xSegLen; + int ySegLen; + int segLen; + int xAdvance; + int xOffset; + int yOffset; }; class DelegateMediaControl: public QObject, public QGraphicsRectItem @@ -178,6 +187,8 @@ class DelegateMediaControl: public QObject, public QGraphicsRectItem QRectF mLCDTimerArea; MediaTimer *lcdTimer; + + QString mDisplayFormat; }; class UBGraphicsToolBarItem : public QGraphicsRectItem, public QObject @@ -189,7 +200,7 @@ class UBGraphicsToolBarItem : public QGraphicsRectItem, public QObject bool isVisibleOnBoard() const { return mVisible; } void setVisibleOnBoard(bool visible) { mVisible = visible; } bool isShifting() const { return mShifting; } - void setShifting(bool shifting) { mShifting = shifting; } + void setShifting(bool shifting) { mShifting = shifting; } QList itemsOnToolBar() const { return mItemsOnToolBar; } void setItemsOnToolBar(QList itemsOnToolBar) { mItemsOnToolBar = itemsOnToolBar;} int minWidth() { return mMinWidth; } @@ -340,6 +351,8 @@ private: bool mToolBarUsed; bool mShowGoContentButton; + + bool mMoved; }; diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index 5c71fdc2..e84bfb21 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -85,7 +85,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte if ("" == mediaPath) mediaPath = pMediaFileUrl.toLocalFile(); - if (mediaPath.toLower().contains("videos")) + if (mediaPath.toLower().contains("videos")) { mMediaType = mediaType_Video; @@ -102,8 +102,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte haveLinkedImage = true; } - else - if (mediaPath.toLower().contains("audios")) + else if (mediaPath.toLower().contains("audios")) { mMediaType = mediaType_Audio; mAudioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this); @@ -117,20 +116,20 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte borderSize = pAudioWidget->borderSize(); } - mAudioWidget->resize(320,26+3*borderSize); + mAudioWidget->resize(320,26+2*borderSize); //3*border size with enabled title mAudioWidget->setMinimumSize(150,26+borderSize); haveLinkedImage = false; } Phonon::createPath(mMediaObject, mAudioOutput); - + mSource = Phonon::MediaSource(pMediaFileUrl); mMediaObject->setCurrentSource(mSource); // we should create delegate after media objects because delegate uses his properties at creation. setDelegate(new UBGraphicsMediaItemDelegate(this, mMediaObject)); - + // delegate should be created earler because we setWidget calls resize event for graphics proxy widgt. // resize uses delegate. if (mediaType_Video == mMediaType) @@ -320,13 +319,13 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { QGraphicsItem *curItem = group->getCurrentItem(); if (curItem && this != curItem) - { - group->deselectCurrentItem(); - } + { + group->deselectCurrentItem(); + } group->setCurrentItem(this); this->setSelected(true); Delegate()->positionHandles(); - } + } } } @@ -339,7 +338,7 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event) event->accept(); } } - else + else { mShouldMove = (event->buttons() & Qt::LeftButton); mMousePressPos = event->scenePos(); diff --git a/src/domain/UBGraphicsMediaItemDelegate.cpp b/src/domain/UBGraphicsMediaItemDelegate.cpp index c22a3e21..ea1ae07f 100644 --- a/src/domain/UBGraphicsMediaItemDelegate.cpp +++ b/src/domain/UBGraphicsMediaItemDelegate.cpp @@ -255,6 +255,11 @@ void UBGraphicsMediaItemDelegate::mediaStateChanged ( Phonon::State newstate, Ph { Q_UNUSED(newstate); Q_UNUSED(oldstate); + + if (oldstate == Phonon::LoadingState) + { + mMediaControl->totalTimeChanged(delegated()->mediaObject()->totalTime()); + } updatePlayPauseState(); } diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index a6a9b6fa..61330bf6 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -335,8 +335,8 @@ void UBGraphicsScene::updateGroupButtonState() { UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); - if (UBStylusTool::Selector != currentTool) - UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector); + if (UBStylusTool::Selector != currentTool && UBStylusTool::Play != currentTool) + return; QAction *groupAction = UBApplication::mainWindow->actionGroupItems; QList selItems = selectedItems(); @@ -362,24 +362,18 @@ void UBGraphicsScene::updateGroupButtonState() bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pressure) { - //mMesure1Ms = 0; - //mMesure2Ms = 0; - bool accepted = false; - if (mInputDeviceIsPressed) - { + if (mInputDeviceIsPressed) { qWarning() << "scene received input device pressed, without input device release, muting event as input device move"; accepted = inputDeviceMove(scenePos, pressure); } - else - { + else { mInputDeviceIsPressed = true; UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); - if (UBDrawingController::drawingController()->isDrawingTool()) - { + if (UBDrawingController::drawingController()->isDrawingTool()) { // ----------------------------------------------------------------- // We fall here if we are using the Pen, the Marker or the Line tool // ----------------------------------------------------------------- @@ -399,7 +393,8 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre if (currentTool != UBStylusTool::Line){ // Handle the pressure width = UBDrawingController::drawingController()->currentToolWidth() * pressure; - }else{ + } + else{ // Ignore pressure for the line tool width = UBDrawingController::drawingController()->currentToolWidth(); } @@ -411,18 +406,14 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre mRemovedItems.clear(); if (UBDrawingController::drawingController()->mActiveRuler) - { UBDrawingController::drawingController()->mActiveRuler->StartLine(scenePos, width); - } - else - { + else { moveTo(scenePos); drawLineTo(scenePos, width, UBDrawingController::drawingController()->stylusTool() == UBStylusTool::Line); } accepted = true; } - else if (currentTool == UBStylusTool::Eraser) - { + else if (currentTool == UBStylusTool::Eraser) { mAddedItems.clear(); mRemovedItems.clear(); moveTo(scenePos); @@ -436,8 +427,7 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre accepted = true; } - else if (currentTool == UBStylusTool::Pointer) - { + else if (currentTool == UBStylusTool::Pointer) { drawPointer(scenePos, true); accepted = true; } @@ -516,7 +506,8 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres if(dc->mActiveRuler){ dc->mActiveRuler->DrawLine(position, width); - }else{ + } + else{ drawLineTo(position, width, UBDrawingController::drawingController()->stylusTool() == UBStylusTool::Line); } } @@ -1487,15 +1478,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c if(!textItem){ textItem = addTextWithFont(pString,QPointF(0,0) ,72,UBSettings::settings()->fontFamily(),true,false); textItem->setObjectName(objectName); - QSizeF size = textItem->size(); - textItem->setPos(QPointF(-size.width()/2.0,-size.height()/2.0)); textItem->setData(UBGraphicsItemData::ItemEditable,QVariant(false)); + textItem->adjustSize(); + textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); } textItem->setPlainText(pString); - textItem->adjustSize(); + textItem->clearFocus(); - textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); return textItem; } @@ -2286,9 +2276,8 @@ void UBGraphicsScene::createPointer() void UBGraphicsScene::setToolCursor(int tool) { if (tool == (int)UBStylusTool::Selector || - tool == (int)UBStylusTool::Text || - tool == (int)UBStylusTool::Play) - { + tool == (int)UBStylusTool::Text || + tool == (int)UBStylusTool::Play) { deselectAllItems(); } diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index 32c10fe3..62e5b891 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -609,7 +609,9 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok) { mLoadIsErronous = !ok; update(boundingRect()); - takeSnapshot(); + + if (mInitialLoadDone && scene() && scene()->renderingContext() == UBGraphicsScene::Screen) + takeSnapshot(); } void UBGraphicsWidgetItem::wheelEvent(QGraphicsSceneWheelEvent *event) diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index 9f0cd120..03637a22 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -40,15 +40,9 @@ UBCoreGraphicsScene::~UBCoreGraphicsScene() { //we must delete removed items that are no more in any scene //at groups deleting some items can be added to mItemsToDelete, so we need to use iterators. - foreach(QGraphicsItem* item, mItemsToDelete) - { - if (item) - { - if (item->scene() == NULL || item->scene() == this) - { - delete item; - } - } + foreach(QGraphicsItem* item, mItemsToDelete){ + if (item && item->type() != UBGraphicsItemType::PolygonItemType && item->type() != QGraphicsItem::UserType && item->type() != UBGraphicsItemType::groupContainerType && (item->scene() == NULL || item->scene() == this)) + delete item; } mItemsToDelete.clear(); } @@ -62,7 +56,7 @@ void UBCoreGraphicsScene::addItem(QGraphicsItem* item) removeItemFromDeletion(curItem); } } - + if (item->scene() != this) QGraphicsScene::addItem(item); diff --git a/src/gui/UBNavigatorPalette.cpp b/src/gui/UBNavigatorPalette.cpp index f29f69e6..5be18c8e 100644 --- a/src/gui/UBNavigatorPalette.cpp +++ b/src/gui/UBNavigatorPalette.cpp @@ -98,13 +98,13 @@ UBNavigatorPalette::~UBNavigatorPalette() } if(NULL != mLayout) { - delete mLayout; - mLayout = NULL; + delete mLayout; + mLayout = NULL; } if(NULL != mNavigator) { - delete mNavigator; - mNavigator = NULL; + delete mNavigator; + mNavigator = NULL; } } diff --git a/src/gui/UBTeacherGuideWidget.cpp b/src/gui/UBTeacherGuideWidget.cpp index 443ec9d2..025466fe 100644 --- a/src/gui/UBTeacherGuideWidget.cpp +++ b/src/gui/UBTeacherGuideWidget.cpp @@ -273,8 +273,8 @@ void UBTeacherGuideEditionWidget::onActiveSceneChanged() void UBTeacherGuideEditionWidget::cleanData() { - mpPageTitle->setText(""); - mpComment->setText(""); + mpPageTitle->resetText(); + mpComment->resetText(); QList children = mpAddAnActionItem->takeChildren(); children << mpAddAMediaItem->takeChildren(); children << mpAddALinkItem->takeChildren(); diff --git a/src/gui/UBTeacherGuideWidgetsTools.cpp b/src/gui/UBTeacherGuideWidgetsTools.cpp index 77ef3add..4a96d7b7 100644 --- a/src/gui/UBTeacherGuideWidgetsTools.cpp +++ b/src/gui/UBTeacherGuideWidgetsTools.cpp @@ -224,6 +224,19 @@ void UBTGAdaptableText::setInitialText(const QString& text) onTextChanged(); } +void UBTGAdaptableText::resetText() +{ + if(mHasPlaceHolder && !mPlaceHolderText.isEmpty()){ + setTextColor(QColor(Qt::lightGray)); + setText(mPlaceHolderText); + } + else{ + setText(""); + setTextColor(QColor(Qt::black)); + } + onTextChanged(); +} + void UBTGAdaptableText::showText(const QString & text) { setText(text); @@ -252,14 +265,40 @@ void UBTGAdaptableText::focusOutEvent(QFocusEvent* e) QTextEdit::focusOutEvent(e); } +void UBTGAdaptableText::insertFromMimeData(const QMimeData *source) +{ + QMimeData editedMimeData; + QTextDocument textDoc; + QString plainText; + + if (source->hasHtml()) + { + textDoc.setHtml(source->html()); + plainText += textDoc.toPlainText(); + } + if (source->hasText()) + if (textDoc.toPlainText() != source->text()) + plainText += source->text(); + if (source->hasUrls()) + { + foreach(QUrl url, source->urls()) + { + plainText += url.toString(); + } + } + + editedMimeData.setText(plainText); + QTextEdit::insertFromMimeData(&editedMimeData); +} + void UBTGAdaptableText::managePlaceholder(bool focus) { if(focus){ if(toPlainText() == mPlaceHolderText){ setTextColor(QColor(Qt::black)); setPlainText(""); + setCursorToTheEnd(); } - setCursorToTheEnd(); } else{ if(toPlainText().isEmpty()){ @@ -537,9 +576,9 @@ void UBTGMediaWidget::createWorkWidget(bool forceFlashMediaType) mpMediaLayout = new QHBoxLayout(mpWorkWidget); mpWorkWidget->setLayout(mpMediaLayout); } - + mpMediaLayout->addStretch(1); - + if(mpMediaLabelWidget){ mpMediaLabelWidget->setFixedHeight(mMediaWidgetHeight); mpMediaLabelWidget->setParent(mpWorkWidget); diff --git a/src/gui/UBTeacherGuideWidgetsTools.h b/src/gui/UBTeacherGuideWidgetsTools.h index 50e671dc..9ed6252c 100644 --- a/src/gui/UBTeacherGuideWidgetsTools.h +++ b/src/gui/UBTeacherGuideWidgetsTools.h @@ -103,6 +103,7 @@ class UBTGAdaptableText : public QTextEdit public: explicit UBTGAdaptableText(QTreeWidgetItem* widget = 0, QWidget *parent = 0, const char* name = "UBTGAdaptableText"); void showText(const QString & text); + void resetText(); void bottomMargin(int newValue); void setPlaceHolderText(QString text); QString text(); @@ -118,6 +119,7 @@ protected: void showEvent(QShowEvent* e); void focusInEvent(QFocusEvent* e); void focusOutEvent(QFocusEvent* e); + virtual void insertFromMimeData(const QMimeData *source); private: void setCursorToTheEnd(); diff --git a/src/gui/UBThumbnailWidget.cpp b/src/gui/UBThumbnailWidget.cpp index c67f14f8..4ef5af24 100644 --- a/src/gui/UBThumbnailWidget.cpp +++ b/src/gui/UBThumbnailWidget.cpp @@ -87,6 +87,7 @@ void UBThumbnailWidget::setGraphicsItems(const QList& pGraphicsI , const QStringList pLabels , const QString& pMimeType) { + Q_ASSERT(pItemsPaths.count() == pLabels.count()); mGraphicItems = pGraphicsItems; mItemsPaths = pItemsPaths; mMimeType = pMimeType; @@ -224,13 +225,6 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event) event->ignore(); return; } - //if(sceneItem){ - // int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneItem->sceneIndex()); - // if(pageIndex == 0){ - // event->ignore(); - // return; - // } - //} mMousePressScenePos = mapToScene(mMousePressPos); QGraphicsItem* underlyingItem = itemAt(mMousePressPos); From fa6eb88ff520021973da12ef48afb654e7ce7710 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 11 Mar 2013 15:18:42 +0100 Subject: [PATCH 06/27] removed unused classes --- src/domain/UBGraphicsVideoItem.cpp | 22 ---------------------- src/domain/UBGraphicsVideoItem.h | 22 ---------------------- src/domain/domain.pri | 1 - 3 files changed, 45 deletions(-) delete mode 100644 src/domain/UBGraphicsVideoItem.cpp delete mode 100644 src/domain/UBGraphicsVideoItem.h diff --git a/src/domain/UBGraphicsVideoItem.cpp b/src/domain/UBGraphicsVideoItem.cpp deleted file mode 100644 index fc7ee6ba..00000000 --- a/src/domain/UBGraphicsVideoItem.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/UBGraphicsVideoItem.h b/src/domain/UBGraphicsVideoItem.h deleted file mode 100644 index fc7ee6ba..00000000 --- a/src/domain/UBGraphicsVideoItem.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/domain.pri b/src/domain/domain.pri index bb3751e4..953533d7 100644 --- a/src/domain/domain.pri +++ b/src/domain/domain.pri @@ -37,7 +37,6 @@ SOURCES += src/domain/UBGraphicsScene.cpp \ src/domain/UBGraphicsSvgItem.cpp \ src/domain/UBGraphicsPolygonItem.cpp \ src/domain/UBItem.cpp \ - src/domain/UBGraphicsVideoItem.cpp \ src/domain/UBGraphicsWidgetItem.cpp \ src/domain/UBGraphicsPDFItem.cpp \ src/domain/UBGraphicsTextItem.cpp \ From b3c94fd3d07f2fa25725d2b49218a93fcc595af9 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 11 Mar 2013 15:19:42 +0100 Subject: [PATCH 07/27] removed obsolete include --- src/board/UBFeaturesController.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 79a2760c..12dc9b96 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -37,7 +37,6 @@ #include "domain/UBGraphicsScene.h" #include "domain/UBGraphicsSvgItem.h" #include "domain/UBGraphicsPixmapItem.h" -#include "domain/UBGraphicsVideoItem.h" #include "domain/UBGraphicsWidgetItem.h" #include "gui/UBFeaturesWidget.h" From dad668683f593211348fd6373625707e18f557b4 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Tue, 12 Mar 2013 15:34:13 +0100 Subject: [PATCH 08/27] removed unsed code --- src/domain/UBGraphicsAudioItem.h | 22 -------------- src/domain/UBGraphicsMediaItem.cpp | 34 +++------------------- src/domain/UBGraphicsMediaItem.h | 1 - src/domain/UBGraphicsMediaItemDelegate.cpp | 20 +++++-------- 4 files changed, 11 insertions(+), 66 deletions(-) delete mode 100644 src/domain/UBGraphicsAudioItem.h diff --git a/src/domain/UBGraphicsAudioItem.h b/src/domain/UBGraphicsAudioItem.h deleted file mode 100644 index fc7ee6ba..00000000 --- a/src/domain/UBGraphicsAudioItem.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index e84bfb21..87356f38 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -35,7 +35,6 @@ UBAudioPresentationWidget::UBAudioPresentationWidget(QWidget *parent) : QWidget(parent) , mBorderSize(10) - , mTitleSize(10) { } @@ -44,7 +43,7 @@ void UBAudioPresentationWidget::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.fillRect(rect(), QBrush(Qt::white)); - + QPen borderPen; borderPen.setWidth(2); borderPen.setColor(QColor(Qt::black)); @@ -52,16 +51,6 @@ void UBAudioPresentationWidget::paintEvent(QPaintEvent *event) painter.setPen(borderPen); painter.drawRect(0,0, width(), height()); - if (QString() != mTitle) - { - painter.setPen(QPen(Qt::black)); - QRect titleRect = rect(); - titleRect.setX(mBorderSize); - titleRect.setY(2); - titleRect.setHeight(15); - painter.drawText(titleRect, mTitle); - } - QWidget::paintEvent(event); } @@ -112,9 +101,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte int borderSize = 0; UBAudioPresentationWidget* pAudioWidget = dynamic_cast(mAudioWidget); if (pAudioWidget) - { borderSize = pAudioWidget->borderSize(); - } mAudioWidget->resize(320,26+2*borderSize); //3*border size with enabled title mAudioWidget->setMinimumSize(150,26+borderSize); @@ -166,26 +153,19 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria || (change == QGraphicsItem::ItemVisibleChange)) { if (mMediaObject && (!isEnabled() || !isVisible() || !scene())) - { mMediaObject->pause(); - } } else if (change == QGraphicsItem::ItemSceneHasChanged) { if (!scene()) - { mMediaObject->stop(); - } - else - { + else { QString absoluteMediaFilename; - if(mMediaFileUrl.toLocalFile().startsWith("audios/") || mMediaFileUrl.toLocalFile().startsWith("videos/")){ + if(mMediaFileUrl.toLocalFile().startsWith("audios/") || mMediaFileUrl.toLocalFile().startsWith("videos/")) absoluteMediaFilename = scene()->document()->persistencePath() + "/" + mMediaFileUrl.toLocalFile(); - } - else{ + else absoluteMediaFilename = mMediaFileUrl.toLocalFile(); - } if (absoluteMediaFilename.length() > 0) mMediaObject->setCurrentSource(Phonon::MediaSource(absoluteMediaFilename)); @@ -199,12 +179,6 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria void UBGraphicsMediaItem::setSourceUrl(const QUrl &pSourceUrl) { - UBAudioPresentationWidget* pAudioWidget = dynamic_cast(mAudioWidget); - if (pAudioWidget) - { - pAudioWidget->setTitle(UBFileSystemUtils::lastPathComponent(pSourceUrl.toString())); - } - UBItem::setSourceUrl(pSourceUrl); } diff --git a/src/domain/UBGraphicsMediaItem.h b/src/domain/UBGraphicsMediaItem.h index 63a63a7b..880725bc 100644 --- a/src/domain/UBGraphicsMediaItem.h +++ b/src/domain/UBGraphicsMediaItem.h @@ -45,7 +45,6 @@ private: virtual void paintEvent(QPaintEvent *event); int mBorderSize; - int mTitleSize; QString mTitle; }; diff --git a/src/domain/UBGraphicsMediaItemDelegate.cpp b/src/domain/UBGraphicsMediaItemDelegate.cpp index ea1ae07f..17a14152 100644 --- a/src/domain/UBGraphicsMediaItemDelegate.cpp +++ b/src/domain/UBGraphicsMediaItemDelegate.cpp @@ -60,10 +60,9 @@ UBGraphicsMediaItemDelegate::UBGraphicsMediaItemDelegate(UBGraphicsMediaItem* pD connect(mToolBarShowTimer, SIGNAL(timeout()), this, SLOT(hideToolBar())); mToolBarShowTimer->setInterval(m_iToolBarShowingInterval); } + if (delegated()->isMuted()) - { delegated()->setMute(true); - } //Wrapper function. Use it to set correct data() to QGraphicsItem as well setFlippable(false); @@ -97,13 +96,13 @@ void UBGraphicsMediaItemDelegate::buildButtons() mMediaControl = new DelegateMediaControl(delegated(), mToolBarItem); mMediaControl->setFlag(QGraphicsItem::ItemIsSelectable, true); UBGraphicsItem::assignZValue(mMediaControl, delegated()->zValue()); - + if (delegated()->isMuted()) mMuteButton = new DelegateButton(":/images/soundOff.svg", mDelegated, mToolBarItem, Qt::TitleBarArea); else mMuteButton = new DelegateButton(":/images/soundOn.svg", mDelegated, mToolBarItem, Qt::TitleBarArea); - connect(mMuteButton, SIGNAL(clicked(bool)), delegated(), SLOT(toggleMute())); + connect(mMuteButton, SIGNAL(clicked(bool)), delegated(), SLOT(toggleMute())); connect(mMuteButton, SIGNAL(clicked(bool)), this, SLOT(toggleMute())); // for changing button image mToolBarButtons << mPlayPauseButton << mStopButton << mMuteButton; @@ -145,7 +144,7 @@ void UBGraphicsMediaItemDelegate::positionHandles() { QRectF toolBarRect = mToolBarItem->rect(); if (mediaItem->getMediaType() == UBGraphicsMediaItem::mediaType_Video) - { + { mToolBarItem->setPos(0, delegated()->boundingRect().height()-mToolBarItem->rect().height()); toolBarRect.setWidth(delegated()->boundingRect().width()); @@ -186,15 +185,10 @@ void UBGraphicsMediaItemDelegate::positionHandles() mMediaControl->setRect(mediaItemRect); mToolBarItem->positionHandles(); - mMediaControl->positionHandles(); + mMediaControl->positionHandles(); - if (mediaItem) - { - if (mediaItem->getMediaType() == UBGraphicsMediaItem::mediaType_Audio) - { - mToolBarItem->show(); - } - } + if (mediaItem && mediaItem->getMediaType() == UBGraphicsMediaItem::mediaType_Audio) + mToolBarItem->show(); } void UBGraphicsMediaItemDelegate::remove(bool canUndo) From 219089a20f560d2aa752120e452cfa5ef12773f6 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 29 Apr 2013 12:21:16 +0200 Subject: [PATCH 09/27] update license and mac pkg script --- LICENSE.txt | 4 ++-- Open-Sankore.packproj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 6560f040..c60ab7c9 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ -Copyright (C) 2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) +Copyright (C) 2013 Groupement d'Intert Public pour l'Education Numrique en Afrique (GIP ENA) -Open-Sankoré is free software: you can redistribute it and/or modify +Open-Sankor is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License, with a specific linking exception for the OpenSSL project's diff --git a/Open-Sankore.packproj b/Open-Sankore.packproj index 45ec0cb4..f443040f 100644 --- a/Open-Sankore.packproj +++ b/Open-Sankore.packproj @@ -26,9 +26,9 @@ International Mode - 0 + 1 Path - + LICENSE.txt Path Type 2 From f1ea5c342679e70d9edd05a528e97dbfb926a650 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 29 Apr 2013 13:31:24 +0200 Subject: [PATCH 10/27] update copyright on headers --- plugins/cffadaptor/src/UBCFFAdaptor.cpp | 2 +- plugins/cffadaptor/src/UBCFFAdaptor.h | 4 +- plugins/cffadaptor/src/UBCFFAdaptor_global.h | 2 +- plugins/cffadaptor/src/UBCFFConstants.h | 2 +- plugins/cffadaptor/src/UBGlobals.h | 2 +- src/adaptors/UBCFFSubsetAdaptor.cpp | 2 +- src/adaptors/UBCFFSubsetAdaptor.h | 2 +- src/adaptors/UBExportAdaptor.cpp | 2 +- src/adaptors/UBExportAdaptor.h | 2 +- src/adaptors/UBExportCFF.cpp | 2 +- src/adaptors/UBExportCFF.h | 2 +- src/adaptors/UBExportDocument.cpp | 2 +- src/adaptors/UBExportDocument.h | 2 +- src/adaptors/UBExportFullPDF.cpp | 2 +- src/adaptors/UBExportFullPDF.h | 2 +- src/adaptors/UBExportPDF.cpp | 2 +- src/adaptors/UBExportPDF.h | 2 +- src/adaptors/UBExportWeb.cpp | 2 +- src/adaptors/UBExportWeb.h | 2 +- src/adaptors/UBImportAdaptor.cpp | 2 +- src/adaptors/UBImportAdaptor.h | 2 +- src/adaptors/UBImportCFF.cpp | 2 +- src/adaptors/UBImportCFF.h | 2 +- src/adaptors/UBImportDocument.cpp | 2 +- src/adaptors/UBImportDocument.h | 2 +- src/adaptors/UBImportImage.cpp | 2 +- src/adaptors/UBImportImage.h | 2 +- src/adaptors/UBImportPDF.cpp | 2 +- src/adaptors/UBImportPDF.h | 2 +- src/adaptors/UBImportVirtualPrinter.cpp | 2 +- src/adaptors/UBIniFileParser.cpp | 2 +- src/adaptors/UBIniFileParser.h | 2 +- src/adaptors/UBMetadataDcSubsetAdaptor.cpp | 2 +- src/adaptors/UBMetadataDcSubsetAdaptor.h | 2 +- src/adaptors/UBSvgSubsetAdaptor.cpp | 2 +- src/adaptors/UBSvgSubsetAdaptor.h | 2 +- src/adaptors/UBThumbnailAdaptor.cpp | 2 +- src/adaptors/UBThumbnailAdaptor.h | 2 +- src/adaptors/UBWebPublisher.cpp | 2 +- src/adaptors/UBWebPublisher.h | 2 +- .../publishing/UBDocumentPublisher.cpp | 2 +- src/adaptors/publishing/UBDocumentPublisher.h | 2 +- .../publishing/UBSvgSubsetRasterizer.cpp | 2 +- .../publishing/UBSvgSubsetRasterizer.h | 2 +- src/api/UBLibraryAPI.cpp | 2 +- src/api/UBLibraryAPI.h | 2 +- src/api/UBW3CWidgetAPI.cpp | 2 +- src/api/UBW3CWidgetAPI.h | 2 +- src/api/UBWidgetMessageAPI.cpp | 2 +- src/api/UBWidgetMessageAPI.h | 2 +- src/api/UBWidgetUniboardAPI.cpp | 2 +- src/api/UBWidgetUniboardAPI.h | 2 +- src/board/UBBoardController.cpp | 2 +- src/board/UBBoardController.h | 2 +- src/board/UBBoardPaletteManager.cpp | 2 +- src/board/UBBoardPaletteManager.h | 2 +- src/board/UBBoardView.cpp | 2 +- src/board/UBBoardView.h | 2 +- src/board/UBDrawingController.cpp | 2 +- src/board/UBDrawingController.h | 2 +- src/board/UBFeaturesController.cpp | 2 +- src/board/UBFeaturesController.h | 2 +- src/core/UB.h | 2 +- src/core/UBApplication.cpp | 2 +- src/core/UBApplication.h | 2 +- src/core/UBApplicationController.cpp | 2 +- src/core/UBApplicationController.h | 2 +- src/core/UBDisplayManager.cpp | 3 +- src/core/UBDisplayManager.h | 2 +- src/core/UBDocumentManager.cpp | 2 +- src/core/UBDocumentManager.h | 2 +- src/core/UBDownloadManager.cpp | 2 +- src/core/UBDownloadManager.h | 2 +- src/core/UBDownloadThread.cpp | 2 +- src/core/UBDownloadThread.h | 2 +- src/core/UBIdleTimer.cpp | 2 +- src/core/UBIdleTimer.h | 2 +- src/core/UBMimeData.cpp | 2 +- src/core/UBMimeData.h | 2 +- src/core/UBPersistenceManager.cpp | 2 +- src/core/UBPersistenceManager.h | 2 +- src/core/UBPreferencesController.cpp | 2 +- src/core/UBPreferencesController.h | 2 +- src/core/UBSceneCache.cpp | 2 +- src/core/UBSceneCache.h | 2 +- src/core/UBSetting.cpp | 2 +- src/core/UBSetting.h | 2 +- src/core/UBSettings.cpp | 2 +- src/core/UBSettings.h | 2 +- src/core/main.cpp | 2 +- src/core/memcheck.h | 2 +- src/customWidgets/UBActionableWidget.cpp | 2 +- src/customWidgets/UBActionableWidget.h | 2 +- src/customWidgets/UBMediaWidget.cpp | 2 +- src/customWidgets/UBMediaWidget.h | 2 +- src/desktop/UBCustomCaptureWindow.cpp | 2 +- src/desktop/UBCustomCaptureWindow.h | 2 +- src/desktop/UBDesktopAnnotationController.cpp | 2 +- src/desktop/UBDesktopAnnotationController.h | 2 +- src/desktop/UBDesktopPalette.cpp | 2 +- src/desktop/UBDesktopPalette.h | 2 +- src/desktop/UBDesktopPropertyPalette.cpp | 2 +- src/desktop/UBDesktopPropertyPalette.h | 2 +- src/desktop/UBWindowCapture.h | 2 +- src/desktop/UBWindowCaptureDelegate_win.cpp | 2 +- src/desktop/UBWindowCaptureDelegate_win.h | 2 +- src/desktop/UBWindowCapture_linux.cpp | 2 +- src/desktop/UBWindowCapture_mac.mm | 2 +- src/desktop/UBWindowCapture_win.cpp | 2 +- src/document/UBDocumentContainer.cpp | 2 +- src/document/UBDocumentContainer.h | 2 +- src/document/UBDocumentController.cpp | 2 +- src/document/UBDocumentController.h | 2 +- src/document/UBDocumentProxy.cpp | 2 +- src/document/UBDocumentProxy.h | 2 +- src/domain/UBAbstractUndoCommand.cpp | 2 +- src/domain/UBAbstractUndoCommand.h | 2 +- src/domain/UBDocumentUndoCommand.cpp | 2 +- src/domain/UBDocumentUndoCommand.h | 2 +- src/domain/UBGraphicsAudioItem.h | 22 -- src/domain/UBGraphicsDelegateFrame.cpp | 2 +- src/domain/UBGraphicsDelegateFrame.h | 2 +- src/domain/UBGraphicsGroupContainerItem.cpp | 2 +- src/domain/UBGraphicsGroupContainerItem.h | 2 +- .../UBGraphicsGroupContainerItemDelegate.cpp | 2 +- .../UBGraphicsGroupContainerItemDelegate.h | 2 +- src/domain/UBGraphicsItemDelegate.cpp | 2 +- src/domain/UBGraphicsItemDelegate.h | 2 +- src/domain/UBGraphicsItemGroupUndoCommand.cpp | 2 +- src/domain/UBGraphicsItemGroupUndoCommand.h | 2 +- .../UBGraphicsItemTransformUndoCommand.cpp | 2 +- .../UBGraphicsItemTransformUndoCommand.h | 2 +- src/domain/UBGraphicsItemUndoCommand.cpp | 2 +- src/domain/UBGraphicsItemUndoCommand.h | 2 +- src/domain/UBGraphicsMediaItem.cpp | 2 +- src/domain/UBGraphicsMediaItem.h | 2 +- src/domain/UBGraphicsMediaItemDelegate.cpp | 2 +- src/domain/UBGraphicsMediaItemDelegate.h | 2 +- src/domain/UBGraphicsPDFItem.cpp | 2 +- src/domain/UBGraphicsPDFItem.h | 2 +- src/domain/UBGraphicsPixmapItem.cpp | 2 +- src/domain/UBGraphicsPixmapItem.h | 2 +- src/domain/UBGraphicsPolygonItem.cpp | 2 +- src/domain/UBGraphicsPolygonItem.h | 2 +- src/domain/UBGraphicsProxyWidget.cpp | 2 +- src/domain/UBGraphicsProxyWidget.h | 2 +- src/domain/UBGraphicsScene.cpp | 2 +- src/domain/UBGraphicsScene.h | 2 +- src/domain/UBGraphicsStroke.cpp | 2 +- src/domain/UBGraphicsStroke.h | 2 +- src/domain/UBGraphicsStrokesGroup.cpp | 2 +- src/domain/UBGraphicsStrokesGroup.h | 2 +- src/domain/UBGraphicsSvgItem.cpp | 2 +- src/domain/UBGraphicsSvgItem.h | 2 +- src/domain/UBGraphicsTextItem.cpp | 2 +- src/domain/UBGraphicsTextItem.h | 2 +- src/domain/UBGraphicsTextItemDelegate.cpp | 2 +- src/domain/UBGraphicsTextItemDelegate.h | 2 +- src/domain/UBGraphicsTextItemUndoCommand.cpp | 2 +- src/domain/UBGraphicsTextItemUndoCommand.h | 2 +- src/domain/UBGraphicsVideoItem.cpp | 2 +- src/domain/UBGraphicsVideoItem.h | 22 -- src/domain/UBGraphicsVideoItemDelegate.cpp | 22 -- src/domain/UBGraphicsVideoItemDelegate.h | 124 ------- src/domain/UBGraphicsWidgetItem.cpp | 2 +- src/domain/UBGraphicsWidgetItem.h | 2 +- src/domain/UBGraphicsWidgetItemDelegate.cpp | 2 +- src/domain/UBGraphicsWidgetItemDelegate.h | 2 +- src/domain/UBItem.cpp | 2 +- src/domain/UBItem.h | 2 +- src/domain/UBPageSizeUndoCommand.cpp | 2 +- src/domain/UBPageSizeUndoCommand.h | 2 +- src/domain/UBResizableGraphicsItem.cpp | 2 +- src/domain/UBResizableGraphicsItem.h | 2 +- src/frameworks/MacUtils.h | 2 +- src/frameworks/UBBase32.cpp | 2 +- src/frameworks/UBBase32.h | 2 +- src/frameworks/UBCoreGraphicsScene.cpp | 2 +- src/frameworks/UBCoreGraphicsScene.h | 2 +- src/frameworks/UBCryptoUtils.cpp | 2 +- src/frameworks/UBCryptoUtils.h | 2 +- src/frameworks/UBFileSystemUtils.cpp | 2 +- src/frameworks/UBFileSystemUtils.h | 2 +- src/frameworks/UBGeometryUtils.cpp | 2 +- src/frameworks/UBGeometryUtils.h | 2 +- src/frameworks/UBPlatformUtils.cpp | 2 +- src/frameworks/UBPlatformUtils.h | 2 +- src/frameworks/UBPlatformUtils_linux.cpp | 2 +- src/frameworks/UBPlatformUtils_mac.mm | 2 +- src/frameworks/UBPlatformUtils_win.cpp | 2 +- src/frameworks/UBStringUtils.cpp | 2 +- src/frameworks/UBStringUtils.h | 2 +- src/frameworks/UBVersion.cpp | 2 +- src/frameworks/UBVersion.h | 2 +- src/globals/UBGlobals.h | 2 +- src/gui/UBActionPalette.cpp | 2 +- src/gui/UBActionPalette.h | 2 +- src/gui/UBBlackoutWidget.cpp | 2 +- src/gui/UBBlackoutWidget.h | 2 +- src/gui/UBCachePropertiesWidget.cpp | 2 +- src/gui/UBCachePropertiesWidget.h | 2 +- src/gui/UBCircleFrame.cpp | 2 +- src/gui/UBCircleFrame.h | 2 +- src/gui/UBClockPalette.h | 2 +- src/gui/UBColorPicker.cpp | 2 +- src/gui/UBColorPicker.h | 2 +- src/gui/UBDockDownloadWidget.cpp | 2 +- src/gui/UBDockDownloadWidget.h | 2 +- src/gui/UBDockPalette.cpp | 2 +- src/gui/UBDockPalette.h | 2 +- src/gui/UBDockPaletteWidget.cpp | 2 +- src/gui/UBDockPaletteWidget.h | 2 +- src/gui/UBDockTeacherGuideWidget.cpp | 2 +- src/gui/UBDockTeacherGuideWidget.h | 2 +- src/gui/UBDocumentNavigator.cpp | 2 +- src/gui/UBDocumentNavigator.h | 2 +- src/gui/UBDocumentThumbnailWidget.cpp | 2 +- src/gui/UBDocumentThumbnailWidget.h | 2 +- src/gui/UBDocumentToolsPalette.cpp | 2 +- src/gui/UBDocumentToolsPalette.h | 2 +- src/gui/UBDocumentTreeWidget.cpp | 2 +- src/gui/UBDocumentTreeWidget.h | 2 +- src/gui/UBDownloadWidget.cpp | 2 +- src/gui/UBDownloadWidget.h | 2 +- src/gui/UBFavoriteToolPalette.cpp | 2 +- src/gui/UBFavoriteToolPalette.h | 2 +- src/gui/UBFeaturesActionBar.cpp | 2 +- src/gui/UBFeaturesActionBar.h | 2 +- src/gui/UBFeaturesWidget.cpp | 2 +- src/gui/UBFeaturesWidget.h | 2 +- src/gui/UBFloatingPalette.cpp | 2 +- src/gui/UBFloatingPalette.h | 2 +- src/gui/UBIconButton.cpp | 2 +- src/gui/UBIconButton.h | 2 +- src/gui/UBKeyboardPalette.cpp | 2 +- src/gui/UBKeyboardPalette.h | 2 +- src/gui/UBKeyboardPalette_linux.cpp | 2 +- src/gui/UBKeyboardPalette_mac.cpp | 2 +- src/gui/UBKeyboardPalette_win.cpp | 2 +- src/gui/UBLeftPalette.cpp | 2 +- src/gui/UBLeftPalette.h | 2 +- src/gui/UBMagnifer.cpp | 2 +- src/gui/UBMagnifer.h | 2 +- src/gui/UBMainWindow.cpp | 2 +- src/gui/UBMainWindow.h | 2 +- src/gui/UBMessageWindow.cpp | 2 +- src/gui/UBMessageWindow.h | 2 +- src/gui/UBMessagesDialog.cpp | 2 +- src/gui/UBMessagesDialog.h | 2 +- src/gui/UBMousePressFilter.cpp | 2 +- src/gui/UBMousePressFilter.h | 2 +- src/gui/UBNavigatorPalette.cpp | 2 +- src/gui/UBNavigatorPalette.h | 2 +- src/gui/UBPageNavigationWidget.cpp | 2 +- src/gui/UBPageNavigationWidget.h | 2 +- src/gui/UBPropertyPalette.cpp | 2 +- src/gui/UBPropertyPalette.h | 2 +- src/gui/UBResources.cpp | 2 +- src/gui/UBResources.h | 2 +- src/gui/UBRightPalette.cpp | 2 +- src/gui/UBRightPalette.h | 2 +- src/gui/UBRubberBand.cpp | 2 +- src/gui/UBRubberBand.h | 2 +- src/gui/UBScreenMirror.cpp | 2 +- src/gui/UBScreenMirror.h | 2 +- src/gui/UBSpinningWheel.cpp | 2 +- src/gui/UBSpinningWheel.h | 2 +- src/gui/UBStylusPalette.cpp | 2 +- src/gui/UBStylusPalette.h | 2 +- src/gui/UBTeacherGuideWidget.cpp | 2 +- src/gui/UBTeacherGuideWidget.h | 2 +- src/gui/UBTeacherGuideWidgetsTools.cpp | 2 +- src/gui/UBTeacherGuideWidgetsTools.h | 2 +- src/gui/UBThumbnailView.cpp | 2 +- src/gui/UBThumbnailView.h | 2 +- src/gui/UBThumbnailWidget.cpp | 2 +- src/gui/UBThumbnailWidget.h | 2 +- src/gui/UBToolWidget.cpp | 2 +- src/gui/UBToolWidget.h | 2 +- src/gui/UBToolbarButtonGroup.cpp | 2 +- src/gui/UBToolbarButtonGroup.h | 2 +- src/gui/UBUpdateDlg.cpp | 2 +- src/gui/UBUpdateDlg.h | 2 +- src/gui/UBVideoPlayer.cpp | 2 +- src/gui/UBVideoPlayer.h | 2 +- src/gui/UBWebToolsPalette.cpp | 2 +- src/gui/UBWebToolsPalette.h | 2 +- src/gui/UBWidgetMirror.cpp | 2 +- src/gui/UBWidgetMirror.h | 2 +- src/gui/UBZoomPalette.cpp | 2 +- src/gui/UBZoomPalette.h | 2 +- src/interfaces/IDataStorage.h | 2 +- src/network/UBAutoSaver.cpp | 2 +- src/network/UBAutoSaver.h | 2 +- src/network/UBCookieJar.cpp | 2 +- src/network/UBCookieJar.h | 2 +- src/network/UBHttpFileDownloader.cpp | 2 +- src/network/UBHttpFileDownloader.h | 2 +- src/network/UBHttpGet.cpp | 2 +- src/network/UBHttpGet.h | 2 +- src/network/UBNetworkAccessManager.cpp | 2 +- src/network/UBNetworkAccessManager.h | 2 +- src/network/UBServerXMLHttpRequest.cpp | 2 +- src/network/UBServerXMLHttpRequest.h | 2 +- src/pdf-merger/ASCII85Decode.cpp | 2 +- src/pdf-merger/ASCII85Decode.h | 2 +- src/pdf-merger/ASCIIHexDecode.cpp | 2 +- src/pdf-merger/ASCIIHexDecode.h | 2 +- src/pdf-merger/AbstractBoxElementHandler.h | 2 +- src/pdf-merger/AnnotsHandler.cpp | 2 +- src/pdf-merger/AnnotsHandler.h | 2 +- src/pdf-merger/CCITTFaxDecode.cpp | 2 +- src/pdf-merger/CCITTFaxDecode.h | 2 +- src/pdf-merger/Config.h | 2 +- src/pdf-merger/ContentHandler.cpp | 2 +- src/pdf-merger/ContentHandler.h | 2 +- src/pdf-merger/CropBoxElementHandler.h | 2 +- src/pdf-merger/DCTDecode.cpp | 2 +- src/pdf-merger/DCTDecode.h | 2 +- src/pdf-merger/Decoder.h | 2 +- src/pdf-merger/Document.cpp | 2 +- src/pdf-merger/Document.h | 2 +- src/pdf-merger/Exception.h | 2 +- src/pdf-merger/FileIsAbsentException.h | 2 +- src/pdf-merger/Filter.cpp | 2 +- src/pdf-merger/Filter.h | 2 +- src/pdf-merger/FilterPredictor.cpp | 2 +- src/pdf-merger/FilterPredictor.h | 2 +- src/pdf-merger/FlateDecode.cpp | 2 +- src/pdf-merger/FlateDecode.h | 2 +- src/pdf-merger/JBIG2Decode.cpp | 2 +- src/pdf-merger/JBIG2Decode.h | 2 +- src/pdf-merger/LZWDecode.cpp | 2 +- src/pdf-merger/LZWDecode.h | 2 +- src/pdf-merger/MediaBoxElementHandler.h | 2 +- src/pdf-merger/MergePageDescription.h | 2 +- src/pdf-merger/Merger.cpp | 2 +- src/pdf-merger/Merger.h | 2 +- src/pdf-merger/Object.cpp | 2 +- src/pdf-merger/Object.h | 2 +- src/pdf-merger/OverlayDocumentParser.cpp | 2 +- src/pdf-merger/OverlayDocumentParser.h | 2 +- src/pdf-merger/Page.cpp | 2 +- src/pdf-merger/Page.h | 2 +- src/pdf-merger/PageElementHandler.cpp | 2 +- src/pdf-merger/PageElementHandler.h | 2 +- src/pdf-merger/PageParser.h | 2 +- src/pdf-merger/Parser.cpp | 2 +- src/pdf-merger/Parser.h | 2 +- src/pdf-merger/Rectangle.cpp | 2 +- src/pdf-merger/Rectangle.h | 2 +- src/pdf-merger/RemoveHimSelfHandler.h | 2 +- src/pdf-merger/RemoveHimselfHandler.cpp | 2 +- src/pdf-merger/RotationHandler.h | 2 +- src/pdf-merger/RunLengthDecode.cpp | 2 +- src/pdf-merger/RunLengthDecode.h | 2 +- src/pdf-merger/Transformation.h | 2 +- src/pdf-merger/TypeElementHandler.h | 2 +- src/pdf-merger/Utils.cpp | 2 +- src/pdf-merger/Utils.h | 2 +- src/pdf/GraphicsPDFItem.cpp | 2 +- src/pdf/GraphicsPDFItem.h | 2 +- src/pdf/PDFRenderer.cpp | 2 +- src/pdf/PDFRenderer.h | 2 +- src/pdf/UBWebPluginPDFWidget.cpp | 2 +- src/pdf/UBWebPluginPDFWidget.h | 2 +- src/pdf/XPDFRenderer.cpp | 2 +- src/pdf/XPDFRenderer.h | 2 +- src/podcast/UBAbstractVideoEncoder.cpp | 2 +- src/podcast/UBAbstractVideoEncoder.h | 2 +- src/podcast/UBPodcastController.cpp | 2 +- src/podcast/UBPodcastController.h | 2 +- src/podcast/UBPodcastRecordingPalette.cpp | 2 +- src/podcast/UBPodcastRecordingPalette.h | 2 +- .../intranet/UBIntranetPodcastPublisher.cpp | 2 +- .../intranet/UBIntranetPodcastPublisher.h | 2 +- .../quicktime/UBAudioQueueRecorder.cpp | 2 +- src/podcast/quicktime/UBAudioQueueRecorder.h | 2 +- src/podcast/quicktime/UBQuickTimeFile.cpp | 2 +- src/podcast/quicktime/UBQuickTimeFile.h | 2 +- .../quicktime/UBQuickTimeVideoEncoder.cpp | 2 +- .../quicktime/UBQuickTimeVideoEncoder.h | 2 +- src/podcast/windowsmedia/UBWaveRecorder.cpp | 2 +- src/podcast/windowsmedia/UBWaveRecorder.h | 2 +- .../windowsmedia/UBWindowsMediaFile.cpp | 2 +- src/podcast/windowsmedia/UBWindowsMediaFile.h | 2 +- .../UBWindowsMediaVideoEncoder.cpp | 2 +- .../windowsmedia/UBWindowsMediaVideoEncoder.h | 2 +- src/podcast/youtube/UBYouTubePublisher.cpp | 2 +- src/podcast/youtube/UBYouTubePublisher.h | 2 +- src/tools/UBAbstractDrawRuler.cpp | 2 +- src/tools/UBAbstractDrawRuler.h | 2 +- src/tools/UBGraphicsCache.cpp | 2 +- src/tools/UBGraphicsCache.h | 2 +- src/tools/UBGraphicsCompass.cpp | 2 +- src/tools/UBGraphicsCompass.h | 2 +- src/tools/UBGraphicsCurtainItem.cpp | 2 +- src/tools/UBGraphicsCurtainItem.h | 2 +- src/tools/UBGraphicsCurtainItemDelegate.cpp | 2 +- src/tools/UBGraphicsCurtainItemDelegate.h | 2 +- src/tools/UBGraphicsProtractor.cpp | 2 +- src/tools/UBGraphicsProtractor.h | 2 +- src/tools/UBGraphicsRuler.cpp | 2 +- src/tools/UBGraphicsRuler.h | 2 +- src/tools/UBGraphicsTriangle.cpp | 2 +- src/tools/UBGraphicsTriangle.h | 2 +- src/tools/UBToolsManager.cpp | 2 +- src/tools/UBToolsManager.h | 2 +- src/web/UBOEmbedParser.cpp | 2 +- src/web/UBOEmbedParser.h | 2 +- src/web/UBTrapFlashController.cpp | 2 +- src/web/UBTrapFlashController.h | 2 +- src/web/UBWebController.cpp | 2 +- src/web/UBWebController.h | 2 +- src/web/UBWebKitUtils.cpp | 2 +- src/web/UBWebKitUtils.h | 2 +- src/web/UBWebPage.cpp | 2 +- src/web/UBWebPage.h | 2 +- src/web/UBWebPluginWidget.cpp | 2 +- src/web/UBWebPluginWidget.h | 2 +- src/web/browser/WBBrowserWindow.cpp | 2 +- src/web/browser/WBBrowserWindow.h | 2 +- src/web/browser/WBChaseWidget.cpp | 2 +- src/web/browser/WBChaseWidget.h | 2 +- src/web/browser/WBDownloadManager.cpp | 2 +- src/web/browser/WBDownloadManager.h | 2 +- src/web/browser/WBEditTableView.cpp | 2 +- src/web/browser/WBEditTableView.h | 2 +- src/web/browser/WBHistory.cpp | 2 +- src/web/browser/WBHistory.h | 2 +- src/web/browser/WBModelMenu.cpp | 2 +- src/web/browser/WBModelMenu.h | 2 +- src/web/browser/WBSearchLineEdit.cpp | 2 +- src/web/browser/WBSearchLineEdit.h | 2 +- src/web/browser/WBSqueezeLabel.cpp | 2 +- src/web/browser/WBSqueezeLabel.h | 2 +- src/web/browser/WBTabWidget.cpp | 2 +- src/web/browser/WBTabWidget.h | 2 +- src/web/browser/WBToolBarSearch.cpp | 2 +- src/web/browser/WBToolBarSearch.h | 2 +- src/web/browser/WBUrlLineEdit.cpp | 2 +- src/web/browser/WBUrlLineEdit.h | 2 +- src/web/browser/WBWebTrapWebView.cpp | 2 +- src/web/browser/WBWebTrapWebView.h | 2 +- src/web/browser/WBWebView.cpp | 2 +- src/web/browser/WBWebView.h | 2 +- tools/CrashReportViewer/Bug.icns | Bin 41512 -> 0 bytes tools/CrashReportViewer/CrashReportViewer.pro | 28 -- tools/CrashReportViewer/CrashReportViewer.ui | 106 ------ .../CrashReporterSymbolSupplier.cpp | 71 ---- .../CrashReporterSymbolSupplier.h | 52 --- tools/CrashReportViewer/CrashWindow.cpp | 325 ------------------ tools/CrashReportViewer/CrashWindow.h | 82 ----- tools/CrashReportViewer/Info.plist | 35 -- tools/CrashReportViewer/main.cpp | 53 --- tools/CrashReportViewer/release.macx.sh | 69 ---- tools/pdf2image/core/UBPlatformUtils.cpp | 31 -- tools/pdf2image/core/UBPlatformUtils.h | 29 -- tools/pdf2image/pdf2image.cpp | 107 ------ tools/pdf2image/pdf2image.pro | 40 --- tools/pdf2image/resources/pdf2image | 4 - 461 files changed, 444 insertions(+), 1665 deletions(-) delete mode 100644 src/domain/UBGraphicsAudioItem.h delete mode 100644 src/domain/UBGraphicsVideoItem.h delete mode 100644 src/domain/UBGraphicsVideoItemDelegate.cpp delete mode 100644 src/domain/UBGraphicsVideoItemDelegate.h delete mode 100644 tools/CrashReportViewer/Bug.icns delete mode 100644 tools/CrashReportViewer/CrashReportViewer.pro delete mode 100644 tools/CrashReportViewer/CrashReportViewer.ui delete mode 100644 tools/CrashReportViewer/CrashReporterSymbolSupplier.cpp delete mode 100644 tools/CrashReportViewer/CrashReporterSymbolSupplier.h delete mode 100644 tools/CrashReportViewer/CrashWindow.cpp delete mode 100644 tools/CrashReportViewer/CrashWindow.h delete mode 100644 tools/CrashReportViewer/Info.plist delete mode 100644 tools/CrashReportViewer/main.cpp delete mode 100644 tools/CrashReportViewer/release.macx.sh delete mode 100644 tools/pdf2image/core/UBPlatformUtils.cpp delete mode 100644 tools/pdf2image/core/UBPlatformUtils.h delete mode 100644 tools/pdf2image/pdf2image.cpp delete mode 100644 tools/pdf2image/pdf2image.pro delete mode 100644 tools/pdf2image/resources/pdf2image diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp index 431c46e8..b9a135a4 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.h b/plugins/cffadaptor/src/UBCFFAdaptor.h index 93eb6166..10ac6366 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.h +++ b/plugins/cffadaptor/src/UBCFFAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * @@ -100,7 +100,7 @@ private: bool parseUBZPolygon(const QDomElement &element, QMultiMap &dstSvgList); bool parseUBZPolyline(const QDomElement &element, QMultiMap &dstSvgList); - bool parseUBZLine(const QDomElement &element, QMultiMap &dstSvgList); + bool parseUBZLine(const QDomElement &element, QMultiMap &dstSvgList); void addSVGElementToResultModel(const QDomElement &element, QMultiMap &dstList, int layer = DEFAULT_LAYER); void addIWBElementToResultModel(const QDomElement &element); diff --git a/plugins/cffadaptor/src/UBCFFAdaptor_global.h b/plugins/cffadaptor/src/UBCFFAdaptor_global.h index 182a649a..3f060b96 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor_global.h +++ b/plugins/cffadaptor/src/UBCFFAdaptor_global.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/plugins/cffadaptor/src/UBCFFConstants.h b/plugins/cffadaptor/src/UBCFFConstants.h index 7d03d55f..588ea699 100644 --- a/plugins/cffadaptor/src/UBCFFConstants.h +++ b/plugins/cffadaptor/src/UBCFFConstants.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/plugins/cffadaptor/src/UBGlobals.h b/plugins/cffadaptor/src/UBGlobals.h index 309004c2..1c2864d3 100644 --- a/plugins/cffadaptor/src/UBGlobals.h +++ b/plugins/cffadaptor/src/UBGlobals.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 6f26472d..73a81c5b 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBCFFSubsetAdaptor.h b/src/adaptors/UBCFFSubsetAdaptor.h index 5e6e7df3..68f741e9 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.h +++ b/src/adaptors/UBCFFSubsetAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportAdaptor.cpp b/src/adaptors/UBExportAdaptor.cpp index 787d95da..d36de637 100644 --- a/src/adaptors/UBExportAdaptor.cpp +++ b/src/adaptors/UBExportAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportAdaptor.h b/src/adaptors/UBExportAdaptor.h index 38c896fd..a4986137 100644 --- a/src/adaptors/UBExportAdaptor.h +++ b/src/adaptors/UBExportAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportCFF.cpp b/src/adaptors/UBExportCFF.cpp index aebd5341..3d3b94c9 100644 --- a/src/adaptors/UBExportCFF.cpp +++ b/src/adaptors/UBExportCFF.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportCFF.h b/src/adaptors/UBExportCFF.h index 82c08e31..62743aa3 100644 --- a/src/adaptors/UBExportCFF.h +++ b/src/adaptors/UBExportCFF.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportDocument.cpp b/src/adaptors/UBExportDocument.cpp index a69b8cf7..745cf998 100644 --- a/src/adaptors/UBExportDocument.cpp +++ b/src/adaptors/UBExportDocument.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportDocument.h b/src/adaptors/UBExportDocument.h index 43a62cec..9fbb5b69 100644 --- a/src/adaptors/UBExportDocument.h +++ b/src/adaptors/UBExportDocument.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportFullPDF.cpp b/src/adaptors/UBExportFullPDF.cpp index ce416bce..b68b92da 100644 --- a/src/adaptors/UBExportFullPDF.cpp +++ b/src/adaptors/UBExportFullPDF.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportFullPDF.h b/src/adaptors/UBExportFullPDF.h index a1fc9111..a3110c14 100644 --- a/src/adaptors/UBExportFullPDF.h +++ b/src/adaptors/UBExportFullPDF.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportPDF.cpp b/src/adaptors/UBExportPDF.cpp index 6b4aa685..b62d35c7 100644 --- a/src/adaptors/UBExportPDF.cpp +++ b/src/adaptors/UBExportPDF.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportPDF.h b/src/adaptors/UBExportPDF.h index a598c10f..537c8d81 100644 --- a/src/adaptors/UBExportPDF.h +++ b/src/adaptors/UBExportPDF.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportWeb.cpp b/src/adaptors/UBExportWeb.cpp index b026da75..ad9e0c89 100644 --- a/src/adaptors/UBExportWeb.cpp +++ b/src/adaptors/UBExportWeb.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBExportWeb.h b/src/adaptors/UBExportWeb.h index 74bf309e..bf52cc1c 100644 --- a/src/adaptors/UBExportWeb.h +++ b/src/adaptors/UBExportWeb.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportAdaptor.cpp b/src/adaptors/UBImportAdaptor.cpp index 22716f70..0a842f3e 100644 --- a/src/adaptors/UBImportAdaptor.cpp +++ b/src/adaptors/UBImportAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportAdaptor.h b/src/adaptors/UBImportAdaptor.h index c5854f23..a99a991c 100644 --- a/src/adaptors/UBImportAdaptor.h +++ b/src/adaptors/UBImportAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportCFF.cpp b/src/adaptors/UBImportCFF.cpp index f8b2cca6..4845e653 100644 --- a/src/adaptors/UBImportCFF.cpp +++ b/src/adaptors/UBImportCFF.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportCFF.h b/src/adaptors/UBImportCFF.h index 7748f5f3..d06b9d18 100644 --- a/src/adaptors/UBImportCFF.h +++ b/src/adaptors/UBImportCFF.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportDocument.cpp b/src/adaptors/UBImportDocument.cpp index 14b33ccf..f155385d 100644 --- a/src/adaptors/UBImportDocument.cpp +++ b/src/adaptors/UBImportDocument.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportDocument.h b/src/adaptors/UBImportDocument.h index d2b7ed6b..8ac246fd 100644 --- a/src/adaptors/UBImportDocument.h +++ b/src/adaptors/UBImportDocument.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportImage.cpp b/src/adaptors/UBImportImage.cpp index 1ddfbd01..ce0648e3 100644 --- a/src/adaptors/UBImportImage.cpp +++ b/src/adaptors/UBImportImage.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportImage.h b/src/adaptors/UBImportImage.h index 24acd3bc..c7273086 100644 --- a/src/adaptors/UBImportImage.h +++ b/src/adaptors/UBImportImage.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportPDF.cpp b/src/adaptors/UBImportPDF.cpp index 1114fa7e..4f76c50e 100644 --- a/src/adaptors/UBImportPDF.cpp +++ b/src/adaptors/UBImportPDF.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportPDF.h b/src/adaptors/UBImportPDF.h index 6eb777c8..bed1ada9 100644 --- a/src/adaptors/UBImportPDF.h +++ b/src/adaptors/UBImportPDF.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBImportVirtualPrinter.cpp b/src/adaptors/UBImportVirtualPrinter.cpp index 54344060..68fd5376 100644 --- a/src/adaptors/UBImportVirtualPrinter.cpp +++ b/src/adaptors/UBImportVirtualPrinter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBIniFileParser.cpp b/src/adaptors/UBIniFileParser.cpp index 62672d76..67e2bf38 100644 --- a/src/adaptors/UBIniFileParser.cpp +++ b/src/adaptors/UBIniFileParser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBIniFileParser.h b/src/adaptors/UBIniFileParser.h index 6bd5fd05..b60178ab 100644 --- a/src/adaptors/UBIniFileParser.h +++ b/src/adaptors/UBIniFileParser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBMetadataDcSubsetAdaptor.cpp b/src/adaptors/UBMetadataDcSubsetAdaptor.cpp index 217c93a2..676bbca8 100644 --- a/src/adaptors/UBMetadataDcSubsetAdaptor.cpp +++ b/src/adaptors/UBMetadataDcSubsetAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBMetadataDcSubsetAdaptor.h b/src/adaptors/UBMetadataDcSubsetAdaptor.h index 10c34175..303c8f3e 100644 --- a/src/adaptors/UBMetadataDcSubsetAdaptor.h +++ b/src/adaptors/UBMetadataDcSubsetAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 2b65af19..6054573b 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBSvgSubsetAdaptor.h b/src/adaptors/UBSvgSubsetAdaptor.h index 24f54444..8805cd80 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.h +++ b/src/adaptors/UBSvgSubsetAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBThumbnailAdaptor.cpp b/src/adaptors/UBThumbnailAdaptor.cpp index 858e3247..97c53852 100644 --- a/src/adaptors/UBThumbnailAdaptor.cpp +++ b/src/adaptors/UBThumbnailAdaptor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBThumbnailAdaptor.h b/src/adaptors/UBThumbnailAdaptor.h index 52305dc1..88c39bf7 100644 --- a/src/adaptors/UBThumbnailAdaptor.h +++ b/src/adaptors/UBThumbnailAdaptor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBWebPublisher.cpp b/src/adaptors/UBWebPublisher.cpp index 47ec6cc3..a979515a 100644 --- a/src/adaptors/UBWebPublisher.cpp +++ b/src/adaptors/UBWebPublisher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/UBWebPublisher.h b/src/adaptors/UBWebPublisher.h index f47516d8..99409373 100644 --- a/src/adaptors/UBWebPublisher.h +++ b/src/adaptors/UBWebPublisher.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/publishing/UBDocumentPublisher.cpp b/src/adaptors/publishing/UBDocumentPublisher.cpp index 33e9b58e..4edeffdf 100644 --- a/src/adaptors/publishing/UBDocumentPublisher.cpp +++ b/src/adaptors/publishing/UBDocumentPublisher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/publishing/UBDocumentPublisher.h b/src/adaptors/publishing/UBDocumentPublisher.h index 6b4b5f27..5e8768bf 100644 --- a/src/adaptors/publishing/UBDocumentPublisher.h +++ b/src/adaptors/publishing/UBDocumentPublisher.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/publishing/UBSvgSubsetRasterizer.cpp b/src/adaptors/publishing/UBSvgSubsetRasterizer.cpp index 98eb2cfc..458eb1c9 100644 --- a/src/adaptors/publishing/UBSvgSubsetRasterizer.cpp +++ b/src/adaptors/publishing/UBSvgSubsetRasterizer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/adaptors/publishing/UBSvgSubsetRasterizer.h b/src/adaptors/publishing/UBSvgSubsetRasterizer.h index a208c121..fcc40cff 100644 --- a/src/adaptors/publishing/UBSvgSubsetRasterizer.h +++ b/src/adaptors/publishing/UBSvgSubsetRasterizer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBLibraryAPI.cpp b/src/api/UBLibraryAPI.cpp index bd69bb4b..94f4908d 100644 --- a/src/api/UBLibraryAPI.cpp +++ b/src/api/UBLibraryAPI.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBLibraryAPI.h b/src/api/UBLibraryAPI.h index 9fbdce19..0a55c943 100644 --- a/src/api/UBLibraryAPI.h +++ b/src/api/UBLibraryAPI.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBW3CWidgetAPI.cpp b/src/api/UBW3CWidgetAPI.cpp index a1a4b7e3..3295ba03 100644 --- a/src/api/UBW3CWidgetAPI.cpp +++ b/src/api/UBW3CWidgetAPI.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBW3CWidgetAPI.h b/src/api/UBW3CWidgetAPI.h index 3778c647..cd41cbdb 100644 --- a/src/api/UBW3CWidgetAPI.h +++ b/src/api/UBW3CWidgetAPI.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBWidgetMessageAPI.cpp b/src/api/UBWidgetMessageAPI.cpp index 94ae18c9..674aec7c 100644 --- a/src/api/UBWidgetMessageAPI.cpp +++ b/src/api/UBWidgetMessageAPI.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBWidgetMessageAPI.h b/src/api/UBWidgetMessageAPI.h index 5e0d3747..366dbe96 100644 --- a/src/api/UBWidgetMessageAPI.h +++ b/src/api/UBWidgetMessageAPI.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBWidgetUniboardAPI.cpp b/src/api/UBWidgetUniboardAPI.cpp index e9ff6996..69eb953c 100644 --- a/src/api/UBWidgetUniboardAPI.cpp +++ b/src/api/UBWidgetUniboardAPI.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/api/UBWidgetUniboardAPI.h b/src/api/UBWidgetUniboardAPI.h index e022af4e..76758fa9 100644 --- a/src/api/UBWidgetUniboardAPI.h +++ b/src/api/UBWidgetUniboardAPI.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 99f234ed..5bfa3e32 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index c0549707..66dd1de3 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 086da59b..79af4994 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h index 7526e081..416a1374 100644 --- a/src/board/UBBoardPaletteManager.h +++ b/src/board/UBBoardPaletteManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index eb7834e5..fdff78a7 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h index 52883447..4f86e02f 100644 --- a/src/board/UBBoardView.h +++ b/src/board/UBBoardView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBDrawingController.cpp b/src/board/UBDrawingController.cpp index ec8af0d9..1b18206d 100644 --- a/src/board/UBDrawingController.cpp +++ b/src/board/UBDrawingController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBDrawingController.h b/src/board/UBDrawingController.h index 1e6a8af3..d3f5586f 100644 --- a/src/board/UBDrawingController.h +++ b/src/board/UBDrawingController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 79a2760c..b7324a1c 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/board/UBFeaturesController.h b/src/board/UBFeaturesController.h index 667fd83f..f2b0f774 100644 --- a/src/board/UBFeaturesController.h +++ b/src/board/UBFeaturesController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UB.h b/src/core/UB.h index ec6bb00a..97886998 100644 --- a/src/core/UB.h +++ b/src/core/UB.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index 7936148a..5338c288 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBApplication.h b/src/core/UBApplication.h index 618538b0..6f76c1db 100644 --- a/src/core/UBApplication.h +++ b/src/core/UBApplication.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp index 3922a385..b358b32c 100644 --- a/src/core/UBApplicationController.cpp +++ b/src/core/UBApplicationController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBApplicationController.h b/src/core/UBApplicationController.h index 77f6433f..66eb03e4 100644 --- a/src/core/UBApplicationController.h +++ b/src/core/UBApplicationController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDisplayManager.cpp b/src/core/UBDisplayManager.cpp index 51577ae3..f1d3a865 100644 --- a/src/core/UBDisplayManager.cpp +++ b/src/core/UBDisplayManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * @@ -19,6 +19,7 @@ * along with Open-Sankoré. If not, see . */ + #include "UBDisplayManager.h" #include "frameworks/UBPlatformUtils.h" diff --git a/src/core/UBDisplayManager.h b/src/core/UBDisplayManager.h index 2ce27459..9f5283a9 100644 --- a/src/core/UBDisplayManager.h +++ b/src/core/UBDisplayManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDocumentManager.cpp b/src/core/UBDocumentManager.cpp index b7566eed..bfaa2368 100644 --- a/src/core/UBDocumentManager.cpp +++ b/src/core/UBDocumentManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDocumentManager.h b/src/core/UBDocumentManager.h index 99e1fb23..d20baae0 100644 --- a/src/core/UBDocumentManager.h +++ b/src/core/UBDocumentManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDownloadManager.cpp b/src/core/UBDownloadManager.cpp index cb3f8735..d631917e 100644 --- a/src/core/UBDownloadManager.cpp +++ b/src/core/UBDownloadManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDownloadManager.h b/src/core/UBDownloadManager.h index f4992ce7..77afad84 100644 --- a/src/core/UBDownloadManager.h +++ b/src/core/UBDownloadManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDownloadThread.cpp b/src/core/UBDownloadThread.cpp index 0dabd5dd..48e158bf 100644 --- a/src/core/UBDownloadThread.cpp +++ b/src/core/UBDownloadThread.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBDownloadThread.h b/src/core/UBDownloadThread.h index 301ace12..a9b38630 100644 --- a/src/core/UBDownloadThread.h +++ b/src/core/UBDownloadThread.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBIdleTimer.cpp b/src/core/UBIdleTimer.cpp index 223db330..cc214d4c 100644 --- a/src/core/UBIdleTimer.cpp +++ b/src/core/UBIdleTimer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBIdleTimer.h b/src/core/UBIdleTimer.h index 7916cf96..e0963f68 100644 --- a/src/core/UBIdleTimer.h +++ b/src/core/UBIdleTimer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBMimeData.cpp b/src/core/UBMimeData.cpp index 3d0da1e7..42a835fc 100644 --- a/src/core/UBMimeData.cpp +++ b/src/core/UBMimeData.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBMimeData.h b/src/core/UBMimeData.h index efb2b4f6..2e01d32f 100644 --- a/src/core/UBMimeData.h +++ b/src/core/UBMimeData.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp index 156709b9..9001d17d 100644 --- a/src/core/UBPersistenceManager.cpp +++ b/src/core/UBPersistenceManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBPersistenceManager.h b/src/core/UBPersistenceManager.h index 3d840ff1..a8e17bff 100644 --- a/src/core/UBPersistenceManager.h +++ b/src/core/UBPersistenceManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp index 84b4b369..b10e85cc 100644 --- a/src/core/UBPreferencesController.cpp +++ b/src/core/UBPreferencesController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBPreferencesController.h b/src/core/UBPreferencesController.h index 23656086..3ba0ae96 100644 --- a/src/core/UBPreferencesController.h +++ b/src/core/UBPreferencesController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBSceneCache.cpp b/src/core/UBSceneCache.cpp index 67593360..bb2f2189 100644 --- a/src/core/UBSceneCache.cpp +++ b/src/core/UBSceneCache.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBSceneCache.h b/src/core/UBSceneCache.h index 561982b7..116a0bfd 100644 --- a/src/core/UBSceneCache.h +++ b/src/core/UBSceneCache.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBSetting.cpp b/src/core/UBSetting.cpp index 08242dc8..23f12fee 100644 --- a/src/core/UBSetting.cpp +++ b/src/core/UBSetting.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBSetting.h b/src/core/UBSetting.h index c8cc4054..0c545157 100644 --- a/src/core/UBSetting.h +++ b/src/core/UBSetting.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp index f563dc13..73ba20a5 100644 --- a/src/core/UBSettings.cpp +++ b/src/core/UBSettings.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h index 745d2970..74e89691 100644 --- a/src/core/UBSettings.h +++ b/src/core/UBSettings.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/main.cpp b/src/core/main.cpp index 20e3402d..af7c60e1 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/core/memcheck.h b/src/core/memcheck.h index 5a4ac095..2c90405e 100644 --- a/src/core/memcheck.h +++ b/src/core/memcheck.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/customWidgets/UBActionableWidget.cpp b/src/customWidgets/UBActionableWidget.cpp index 8ec8043b..ba334aca 100644 --- a/src/customWidgets/UBActionableWidget.cpp +++ b/src/customWidgets/UBActionableWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/customWidgets/UBActionableWidget.h b/src/customWidgets/UBActionableWidget.h index 44f16561..cdc8e767 100644 --- a/src/customWidgets/UBActionableWidget.h +++ b/src/customWidgets/UBActionableWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/customWidgets/UBMediaWidget.cpp b/src/customWidgets/UBMediaWidget.cpp index 221ce6a8..fc57d6ed 100644 --- a/src/customWidgets/UBMediaWidget.cpp +++ b/src/customWidgets/UBMediaWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/customWidgets/UBMediaWidget.h b/src/customWidgets/UBMediaWidget.h index ea524c67..973b9226 100644 --- a/src/customWidgets/UBMediaWidget.h +++ b/src/customWidgets/UBMediaWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBCustomCaptureWindow.cpp b/src/desktop/UBCustomCaptureWindow.cpp index bb0606a5..7c5cbd2f 100644 --- a/src/desktop/UBCustomCaptureWindow.cpp +++ b/src/desktop/UBCustomCaptureWindow.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBCustomCaptureWindow.h b/src/desktop/UBCustomCaptureWindow.h index a53d14d3..65703593 100644 --- a/src/desktop/UBCustomCaptureWindow.h +++ b/src/desktop/UBCustomCaptureWindow.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 82ff1440..64e49223 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h index 02f345de..bb2c8b1d 100644 --- a/src/desktop/UBDesktopAnnotationController.h +++ b/src/desktop/UBDesktopAnnotationController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp index e1e68fd8..4a531322 100644 --- a/src/desktop/UBDesktopPalette.cpp +++ b/src/desktop/UBDesktopPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h index 321bbfc7..0d9bb593 100644 --- a/src/desktop/UBDesktopPalette.h +++ b/src/desktop/UBDesktopPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBDesktopPropertyPalette.cpp b/src/desktop/UBDesktopPropertyPalette.cpp index 436f6ab9..f5d88bc8 100644 --- a/src/desktop/UBDesktopPropertyPalette.cpp +++ b/src/desktop/UBDesktopPropertyPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBDesktopPropertyPalette.h b/src/desktop/UBDesktopPropertyPalette.h index 9acd05f7..dc3c7963 100644 --- a/src/desktop/UBDesktopPropertyPalette.h +++ b/src/desktop/UBDesktopPropertyPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBWindowCapture.h b/src/desktop/UBWindowCapture.h index 9adc3735..77375042 100644 --- a/src/desktop/UBWindowCapture.h +++ b/src/desktop/UBWindowCapture.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBWindowCaptureDelegate_win.cpp b/src/desktop/UBWindowCaptureDelegate_win.cpp index b93c193a..1b63803a 100644 --- a/src/desktop/UBWindowCaptureDelegate_win.cpp +++ b/src/desktop/UBWindowCaptureDelegate_win.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBWindowCaptureDelegate_win.h b/src/desktop/UBWindowCaptureDelegate_win.h index f6b104bd..081e1e68 100644 --- a/src/desktop/UBWindowCaptureDelegate_win.h +++ b/src/desktop/UBWindowCaptureDelegate_win.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBWindowCapture_linux.cpp b/src/desktop/UBWindowCapture_linux.cpp index 3e099850..e7c22c63 100644 --- a/src/desktop/UBWindowCapture_linux.cpp +++ b/src/desktop/UBWindowCapture_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBWindowCapture_mac.mm b/src/desktop/UBWindowCapture_mac.mm index 62a60b40..4d0b802a 100644 --- a/src/desktop/UBWindowCapture_mac.mm +++ b/src/desktop/UBWindowCapture_mac.mm @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/desktop/UBWindowCapture_win.cpp b/src/desktop/UBWindowCapture_win.cpp index 526b3d96..4394698a 100644 --- a/src/desktop/UBWindowCapture_win.cpp +++ b/src/desktop/UBWindowCapture_win.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/document/UBDocumentContainer.cpp b/src/document/UBDocumentContainer.cpp index cb92fb67..b2ba4664 100644 --- a/src/document/UBDocumentContainer.cpp +++ b/src/document/UBDocumentContainer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/document/UBDocumentContainer.h b/src/document/UBDocumentContainer.h index d2b7b045..681fdae3 100644 --- a/src/document/UBDocumentContainer.h +++ b/src/document/UBDocumentContainer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index d06c11cc..f9921590 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/document/UBDocumentController.h b/src/document/UBDocumentController.h index a77c05e6..75608f41 100644 --- a/src/document/UBDocumentController.h +++ b/src/document/UBDocumentController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/document/UBDocumentProxy.cpp b/src/document/UBDocumentProxy.cpp index 707cc1e5..05360dd7 100644 --- a/src/document/UBDocumentProxy.cpp +++ b/src/document/UBDocumentProxy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/document/UBDocumentProxy.h b/src/document/UBDocumentProxy.h index dd55fdb4..43adc634 100644 --- a/src/document/UBDocumentProxy.h +++ b/src/document/UBDocumentProxy.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBAbstractUndoCommand.cpp b/src/domain/UBAbstractUndoCommand.cpp index f1ecd8aa..54083211 100644 --- a/src/domain/UBAbstractUndoCommand.cpp +++ b/src/domain/UBAbstractUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBAbstractUndoCommand.h b/src/domain/UBAbstractUndoCommand.h index 95133cf4..15c25ae3 100644 --- a/src/domain/UBAbstractUndoCommand.h +++ b/src/domain/UBAbstractUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBDocumentUndoCommand.cpp b/src/domain/UBDocumentUndoCommand.cpp index 75376836..880afcd6 100644 --- a/src/domain/UBDocumentUndoCommand.cpp +++ b/src/domain/UBDocumentUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBDocumentUndoCommand.h b/src/domain/UBDocumentUndoCommand.h index a393d015..a839b153 100644 --- a/src/domain/UBDocumentUndoCommand.h +++ b/src/domain/UBDocumentUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsAudioItem.h b/src/domain/UBGraphicsAudioItem.h deleted file mode 100644 index fc7ee6ba..00000000 --- a/src/domain/UBGraphicsAudioItem.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/UBGraphicsDelegateFrame.cpp b/src/domain/UBGraphicsDelegateFrame.cpp index dddc56b4..9305d018 100644 --- a/src/domain/UBGraphicsDelegateFrame.cpp +++ b/src/domain/UBGraphicsDelegateFrame.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsDelegateFrame.h b/src/domain/UBGraphicsDelegateFrame.h index 27b17ace..296846aa 100644 --- a/src/domain/UBGraphicsDelegateFrame.h +++ b/src/domain/UBGraphicsDelegateFrame.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index 9d72432a..8d55177c 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsGroupContainerItem.h b/src/domain/UBGraphicsGroupContainerItem.h index ef92b253..0912b85d 100644 --- a/src/domain/UBGraphicsGroupContainerItem.h +++ b/src/domain/UBGraphicsGroupContainerItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsGroupContainerItemDelegate.cpp b/src/domain/UBGraphicsGroupContainerItemDelegate.cpp index 4f533b9b..b0922814 100644 --- a/src/domain/UBGraphicsGroupContainerItemDelegate.cpp +++ b/src/domain/UBGraphicsGroupContainerItemDelegate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsGroupContainerItemDelegate.h b/src/domain/UBGraphicsGroupContainerItemDelegate.h index 00523236..2494ee8d 100644 --- a/src/domain/UBGraphicsGroupContainerItemDelegate.h +++ b/src/domain/UBGraphicsGroupContainerItemDelegate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 440c4c15..a52f868c 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index 6715cf99..ab77d2e9 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemGroupUndoCommand.cpp b/src/domain/UBGraphicsItemGroupUndoCommand.cpp index d640359b..25a3ebed 100644 --- a/src/domain/UBGraphicsItemGroupUndoCommand.cpp +++ b/src/domain/UBGraphicsItemGroupUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemGroupUndoCommand.h b/src/domain/UBGraphicsItemGroupUndoCommand.h index 0f7ff1e5..981ebb33 100644 --- a/src/domain/UBGraphicsItemGroupUndoCommand.h +++ b/src/domain/UBGraphicsItemGroupUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.cpp b/src/domain/UBGraphicsItemTransformUndoCommand.cpp index dd6a5fed..a40d9919 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.cpp +++ b/src/domain/UBGraphicsItemTransformUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.h b/src/domain/UBGraphicsItemTransformUndoCommand.h index ab68c90e..aa586ec2 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.h +++ b/src/domain/UBGraphicsItemTransformUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemUndoCommand.cpp b/src/domain/UBGraphicsItemUndoCommand.cpp index 1b70b76c..1fb1bd3d 100644 --- a/src/domain/UBGraphicsItemUndoCommand.cpp +++ b/src/domain/UBGraphicsItemUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsItemUndoCommand.h b/src/domain/UBGraphicsItemUndoCommand.h index 72404a68..f349938f 100644 --- a/src/domain/UBGraphicsItemUndoCommand.h +++ b/src/domain/UBGraphicsItemUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index 5c71fdc2..4f2fcf89 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsMediaItem.h b/src/domain/UBGraphicsMediaItem.h index 63a63a7b..af3ed56a 100644 --- a/src/domain/UBGraphicsMediaItem.h +++ b/src/domain/UBGraphicsMediaItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsMediaItemDelegate.cpp b/src/domain/UBGraphicsMediaItemDelegate.cpp index c22a3e21..8ed7fd4b 100644 --- a/src/domain/UBGraphicsMediaItemDelegate.cpp +++ b/src/domain/UBGraphicsMediaItemDelegate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsMediaItemDelegate.h b/src/domain/UBGraphicsMediaItemDelegate.h index ad04e168..9ac65c93 100644 --- a/src/domain/UBGraphicsMediaItemDelegate.h +++ b/src/domain/UBGraphicsMediaItemDelegate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsPDFItem.cpp b/src/domain/UBGraphicsPDFItem.cpp index 09379e98..0acc8abe 100644 --- a/src/domain/UBGraphicsPDFItem.cpp +++ b/src/domain/UBGraphicsPDFItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsPDFItem.h b/src/domain/UBGraphicsPDFItem.h index 0a49bf29..9a1a42da 100644 --- a/src/domain/UBGraphicsPDFItem.h +++ b/src/domain/UBGraphicsPDFItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsPixmapItem.cpp b/src/domain/UBGraphicsPixmapItem.cpp index e46149a5..69e28e7e 100644 --- a/src/domain/UBGraphicsPixmapItem.cpp +++ b/src/domain/UBGraphicsPixmapItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsPixmapItem.h b/src/domain/UBGraphicsPixmapItem.h index 1c66bebb..3ef6b846 100644 --- a/src/domain/UBGraphicsPixmapItem.h +++ b/src/domain/UBGraphicsPixmapItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index b210786f..52b09954 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsPolygonItem.h b/src/domain/UBGraphicsPolygonItem.h index 512a2346..78c973b8 100644 --- a/src/domain/UBGraphicsPolygonItem.h +++ b/src/domain/UBGraphicsPolygonItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsProxyWidget.cpp b/src/domain/UBGraphicsProxyWidget.cpp index 4bc4e331..250304ea 100644 --- a/src/domain/UBGraphicsProxyWidget.cpp +++ b/src/domain/UBGraphicsProxyWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsProxyWidget.h b/src/domain/UBGraphicsProxyWidget.h index af43ac7b..37c13d94 100644 --- a/src/domain/UBGraphicsProxyWidget.h +++ b/src/domain/UBGraphicsProxyWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 2e0f44c9..e3c92ec2 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index f0a38752..2dc79fb7 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsStroke.cpp b/src/domain/UBGraphicsStroke.cpp index 130243f5..8cf92cbe 100644 --- a/src/domain/UBGraphicsStroke.cpp +++ b/src/domain/UBGraphicsStroke.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsStroke.h b/src/domain/UBGraphicsStroke.h index ed9c3168..6d246d76 100644 --- a/src/domain/UBGraphicsStroke.h +++ b/src/domain/UBGraphicsStroke.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index 3b2322df..8ccf622b 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsStrokesGroup.h b/src/domain/UBGraphicsStrokesGroup.h index 0009da13..846051df 100644 --- a/src/domain/UBGraphicsStrokesGroup.h +++ b/src/domain/UBGraphicsStrokesGroup.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index 5b45b460..adfbac33 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsSvgItem.h b/src/domain/UBGraphicsSvgItem.h index d4e319cc..ef805bd6 100644 --- a/src/domain/UBGraphicsSvgItem.h +++ b/src/domain/UBGraphicsSvgItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsTextItem.cpp b/src/domain/UBGraphicsTextItem.cpp index 2e724cbe..a45b74bd 100644 --- a/src/domain/UBGraphicsTextItem.cpp +++ b/src/domain/UBGraphicsTextItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsTextItem.h b/src/domain/UBGraphicsTextItem.h index 0eeaadb1..06d4133b 100644 --- a/src/domain/UBGraphicsTextItem.h +++ b/src/domain/UBGraphicsTextItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsTextItemDelegate.cpp b/src/domain/UBGraphicsTextItemDelegate.cpp index 92dbc62d..17b4dd28 100644 --- a/src/domain/UBGraphicsTextItemDelegate.cpp +++ b/src/domain/UBGraphicsTextItemDelegate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsTextItemDelegate.h b/src/domain/UBGraphicsTextItemDelegate.h index 44b718b3..8d62c278 100644 --- a/src/domain/UBGraphicsTextItemDelegate.h +++ b/src/domain/UBGraphicsTextItemDelegate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsTextItemUndoCommand.cpp b/src/domain/UBGraphicsTextItemUndoCommand.cpp index ef937def..879626b4 100644 --- a/src/domain/UBGraphicsTextItemUndoCommand.cpp +++ b/src/domain/UBGraphicsTextItemUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsTextItemUndoCommand.h b/src/domain/UBGraphicsTextItemUndoCommand.h index 5d736d1f..5b1d8c53 100644 --- a/src/domain/UBGraphicsTextItemUndoCommand.h +++ b/src/domain/UBGraphicsTextItemUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsVideoItem.cpp b/src/domain/UBGraphicsVideoItem.cpp index fc7ee6ba..98cdbdba 100644 --- a/src/domain/UBGraphicsVideoItem.cpp +++ b/src/domain/UBGraphicsVideoItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsVideoItem.h b/src/domain/UBGraphicsVideoItem.h deleted file mode 100644 index fc7ee6ba..00000000 --- a/src/domain/UBGraphicsVideoItem.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/UBGraphicsVideoItemDelegate.cpp b/src/domain/UBGraphicsVideoItemDelegate.cpp deleted file mode 100644 index fc7ee6ba..00000000 --- a/src/domain/UBGraphicsVideoItemDelegate.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/UBGraphicsVideoItemDelegate.h b/src/domain/UBGraphicsVideoItemDelegate.h deleted file mode 100644 index 29ffd4f5..00000000 --- a/src/domain/UBGraphicsVideoItemDelegate.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - - -#ifndef UBGRAPHICSVIDEOITEMDELEGATE_H_ -#define UBGRAPHICSVIDEOITEMDELEGATE_H_ - -#include -#include - -#include "core/UB.h" -#include "UBGraphicsItemDelegate.h" - -class QGraphicsSceneMouseEvent; -class QGraphicsItem; -class UBGraphicsVideoItem; - -class DelegateVideoControl: public QGraphicsRectItem -{ - public: - - DelegateVideoControl(UBGraphicsVideoItem* pDelegated, QGraphicsItem * parent = 0); - - virtual ~DelegateVideoControl() - { - // NOOP - } - - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, - QWidget *widget); - - QPainterPath shape() const; - - void setAntiScale(qreal antiScale){ mAntiScale = antiScale; } - - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); - virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - - void updateTicker(qint64 time); - void totalTimeChanged( qint64 newTotalTime); - - protected: - - - void seekToMousePos(QPointF mousePos); - - UBGraphicsVideoItem* mDelegate; - bool mDisplayCurrentTime; - - qreal mAntiScale; - qint64 mCurrentTimeInMs; - qint64 mTotalTimeInMs; - - private: - int mStartWidth; - QRectF mBalloon; -}; - - -class UBGraphicsVideoItemDelegate : public UBGraphicsItemDelegate -{ - Q_OBJECT - - public: - UBGraphicsVideoItemDelegate(UBGraphicsVideoItem* pDelegated, Phonon::MediaObject* pMedia, QObject * parent = 0); - virtual ~UBGraphicsVideoItemDelegate(); - - virtual void positionHandles(); - - public slots: - - void toggleMute(); - void updateTicker(qint64 time); - - protected slots: - - virtual void remove(bool canUndo = true); - - void togglePlayPause(); - - void mediaStateChanged ( Phonon::State newstate, Phonon::State oldstate ); - - void updatePlayPauseState(); - - void totalTimeChanged( qint64 newTotalTime); - - protected: - - virtual void buildButtons(); - - private: - - UBGraphicsVideoItem* delegated(); - - DelegateButton* mPlayPauseButton; - DelegateButton* mStopButton; - DelegateButton* mMuteButton; - DelegateVideoControl *mVideoControl; - - Phonon::MediaObject* mMedia; -}; - - -#endif /* UBGRAPHICSVIDEOITEMDELEGATE_H_ */ diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index 32c10fe3..1a024fce 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsWidgetItem.h b/src/domain/UBGraphicsWidgetItem.h index eaf28f76..65da2bd7 100644 --- a/src/domain/UBGraphicsWidgetItem.h +++ b/src/domain/UBGraphicsWidgetItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsWidgetItemDelegate.cpp b/src/domain/UBGraphicsWidgetItemDelegate.cpp index 2964fff7..840da663 100644 --- a/src/domain/UBGraphicsWidgetItemDelegate.cpp +++ b/src/domain/UBGraphicsWidgetItemDelegate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBGraphicsWidgetItemDelegate.h b/src/domain/UBGraphicsWidgetItemDelegate.h index ac4e1f87..642dbfea 100644 --- a/src/domain/UBGraphicsWidgetItemDelegate.h +++ b/src/domain/UBGraphicsWidgetItemDelegate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBItem.cpp b/src/domain/UBItem.cpp index 712a7cbe..ffa3962a 100644 --- a/src/domain/UBItem.cpp +++ b/src/domain/UBItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBItem.h b/src/domain/UBItem.h index 31834df3..0aea3a23 100644 --- a/src/domain/UBItem.h +++ b/src/domain/UBItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBPageSizeUndoCommand.cpp b/src/domain/UBPageSizeUndoCommand.cpp index 47ab6693..adde99e1 100644 --- a/src/domain/UBPageSizeUndoCommand.cpp +++ b/src/domain/UBPageSizeUndoCommand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBPageSizeUndoCommand.h b/src/domain/UBPageSizeUndoCommand.h index d18b3b65..35e46bda 100644 --- a/src/domain/UBPageSizeUndoCommand.h +++ b/src/domain/UBPageSizeUndoCommand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBResizableGraphicsItem.cpp b/src/domain/UBResizableGraphicsItem.cpp index 944ab4f7..a16884c1 100644 --- a/src/domain/UBResizableGraphicsItem.cpp +++ b/src/domain/UBResizableGraphicsItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/domain/UBResizableGraphicsItem.h b/src/domain/UBResizableGraphicsItem.h index 0002d8e4..74f4ed87 100644 --- a/src/domain/UBResizableGraphicsItem.h +++ b/src/domain/UBResizableGraphicsItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/MacUtils.h b/src/frameworks/MacUtils.h index b43f7150..b8d4cedd 100644 --- a/src/frameworks/MacUtils.h +++ b/src/frameworks/MacUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBBase32.cpp b/src/frameworks/UBBase32.cpp index 12dae141..0dc02f42 100644 --- a/src/frameworks/UBBase32.cpp +++ b/src/frameworks/UBBase32.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBBase32.h b/src/frameworks/UBBase32.h index 591f2707..dbbc64f8 100644 --- a/src/frameworks/UBBase32.h +++ b/src/frameworks/UBBase32.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index 44dc13f0..3f590f0c 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBCoreGraphicsScene.h b/src/frameworks/UBCoreGraphicsScene.h index 5e99f60b..5e4f8104 100644 --- a/src/frameworks/UBCoreGraphicsScene.h +++ b/src/frameworks/UBCoreGraphicsScene.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBCryptoUtils.cpp b/src/frameworks/UBCryptoUtils.cpp index c62cdff6..b5df8ccd 100644 --- a/src/frameworks/UBCryptoUtils.cpp +++ b/src/frameworks/UBCryptoUtils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBCryptoUtils.h b/src/frameworks/UBCryptoUtils.h index f514ab91..c286f70b 100644 --- a/src/frameworks/UBCryptoUtils.h +++ b/src/frameworks/UBCryptoUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBFileSystemUtils.cpp b/src/frameworks/UBFileSystemUtils.cpp index 17268d63..49f37cbd 100644 --- a/src/frameworks/UBFileSystemUtils.cpp +++ b/src/frameworks/UBFileSystemUtils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBFileSystemUtils.h b/src/frameworks/UBFileSystemUtils.h index 610018be..70f543f0 100644 --- a/src/frameworks/UBFileSystemUtils.h +++ b/src/frameworks/UBFileSystemUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBGeometryUtils.cpp b/src/frameworks/UBGeometryUtils.cpp index a006b191..d35ba652 100644 --- a/src/frameworks/UBGeometryUtils.cpp +++ b/src/frameworks/UBGeometryUtils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBGeometryUtils.h b/src/frameworks/UBGeometryUtils.h index 49ca8843..6cf68d31 100644 --- a/src/frameworks/UBGeometryUtils.h +++ b/src/frameworks/UBGeometryUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBPlatformUtils.cpp b/src/frameworks/UBPlatformUtils.cpp index 40e9a1e1..dbfc9d2f 100644 --- a/src/frameworks/UBPlatformUtils.cpp +++ b/src/frameworks/UBPlatformUtils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBPlatformUtils.h b/src/frameworks/UBPlatformUtils.h index e9c681cb..27b3ed34 100644 --- a/src/frameworks/UBPlatformUtils.h +++ b/src/frameworks/UBPlatformUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBPlatformUtils_linux.cpp b/src/frameworks/UBPlatformUtils_linux.cpp index 45cc853b..e9fd62e3 100644 --- a/src/frameworks/UBPlatformUtils_linux.cpp +++ b/src/frameworks/UBPlatformUtils_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBPlatformUtils_mac.mm b/src/frameworks/UBPlatformUtils_mac.mm index 02782e5f..517e38d2 100644 --- a/src/frameworks/UBPlatformUtils_mac.mm +++ b/src/frameworks/UBPlatformUtils_mac.mm @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBPlatformUtils_win.cpp b/src/frameworks/UBPlatformUtils_win.cpp index 2436edf7..e56974f4 100644 --- a/src/frameworks/UBPlatformUtils_win.cpp +++ b/src/frameworks/UBPlatformUtils_win.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBStringUtils.cpp b/src/frameworks/UBStringUtils.cpp index 849d01e5..1e17b01e 100644 --- a/src/frameworks/UBStringUtils.cpp +++ b/src/frameworks/UBStringUtils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBStringUtils.h b/src/frameworks/UBStringUtils.h index 070fdbbb..587a628a 100644 --- a/src/frameworks/UBStringUtils.h +++ b/src/frameworks/UBStringUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBVersion.cpp b/src/frameworks/UBVersion.cpp index 332600a4..854101dd 100644 --- a/src/frameworks/UBVersion.cpp +++ b/src/frameworks/UBVersion.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/frameworks/UBVersion.h b/src/frameworks/UBVersion.h index ed132384..b2aed9bc 100644 --- a/src/frameworks/UBVersion.h +++ b/src/frameworks/UBVersion.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/globals/UBGlobals.h b/src/globals/UBGlobals.h index 643ca5bc..6072d27c 100644 --- a/src/globals/UBGlobals.h +++ b/src/globals/UBGlobals.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBActionPalette.cpp b/src/gui/UBActionPalette.cpp index 53fd25e1..a6c061fe 100644 --- a/src/gui/UBActionPalette.cpp +++ b/src/gui/UBActionPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBActionPalette.h b/src/gui/UBActionPalette.h index 8307fc97..ab53b573 100644 --- a/src/gui/UBActionPalette.h +++ b/src/gui/UBActionPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBBlackoutWidget.cpp b/src/gui/UBBlackoutWidget.cpp index 476e9639..da2aef3b 100644 --- a/src/gui/UBBlackoutWidget.cpp +++ b/src/gui/UBBlackoutWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBBlackoutWidget.h b/src/gui/UBBlackoutWidget.h index 551d05e6..bb606fdb 100644 --- a/src/gui/UBBlackoutWidget.h +++ b/src/gui/UBBlackoutWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBCachePropertiesWidget.cpp b/src/gui/UBCachePropertiesWidget.cpp index 5c75db1e..f97043bf 100644 --- a/src/gui/UBCachePropertiesWidget.cpp +++ b/src/gui/UBCachePropertiesWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBCachePropertiesWidget.h b/src/gui/UBCachePropertiesWidget.h index 3cb6d101..0660576a 100644 --- a/src/gui/UBCachePropertiesWidget.h +++ b/src/gui/UBCachePropertiesWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBCircleFrame.cpp b/src/gui/UBCircleFrame.cpp index fc77105d..e4cfe83c 100644 --- a/src/gui/UBCircleFrame.cpp +++ b/src/gui/UBCircleFrame.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBCircleFrame.h b/src/gui/UBCircleFrame.h index cfc7cfa8..d7ee9b22 100644 --- a/src/gui/UBCircleFrame.h +++ b/src/gui/UBCircleFrame.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBClockPalette.h b/src/gui/UBClockPalette.h index c35aceca..efb517ff 100644 --- a/src/gui/UBClockPalette.h +++ b/src/gui/UBClockPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBColorPicker.cpp b/src/gui/UBColorPicker.cpp index 99e6dccc..38f9fa90 100644 --- a/src/gui/UBColorPicker.cpp +++ b/src/gui/UBColorPicker.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBColorPicker.h b/src/gui/UBColorPicker.h index 02ceb488..008a0d0b 100644 --- a/src/gui/UBColorPicker.h +++ b/src/gui/UBColorPicker.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockDownloadWidget.cpp b/src/gui/UBDockDownloadWidget.cpp index 08f0765d..191c8a39 100644 --- a/src/gui/UBDockDownloadWidget.cpp +++ b/src/gui/UBDockDownloadWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockDownloadWidget.h b/src/gui/UBDockDownloadWidget.h index 6f64a28b..5aac7f7e 100644 --- a/src/gui/UBDockDownloadWidget.h +++ b/src/gui/UBDockDownloadWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockPalette.cpp b/src/gui/UBDockPalette.cpp index 4b857220..f9c218e6 100644 --- a/src/gui/UBDockPalette.cpp +++ b/src/gui/UBDockPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockPalette.h b/src/gui/UBDockPalette.h index 5b1f48ac..297b3ebc 100644 --- a/src/gui/UBDockPalette.h +++ b/src/gui/UBDockPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockPaletteWidget.cpp b/src/gui/UBDockPaletteWidget.cpp index 25a5e73a..4ffbbcf8 100644 --- a/src/gui/UBDockPaletteWidget.cpp +++ b/src/gui/UBDockPaletteWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockPaletteWidget.h b/src/gui/UBDockPaletteWidget.h index 5d2b3015..64e86ecf 100644 --- a/src/gui/UBDockPaletteWidget.h +++ b/src/gui/UBDockPaletteWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockTeacherGuideWidget.cpp b/src/gui/UBDockTeacherGuideWidget.cpp index db28bc92..7a1401a9 100644 --- a/src/gui/UBDockTeacherGuideWidget.cpp +++ b/src/gui/UBDockTeacherGuideWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDockTeacherGuideWidget.h b/src/gui/UBDockTeacherGuideWidget.h index 5c223c60..fe33410c 100644 --- a/src/gui/UBDockTeacherGuideWidget.h +++ b/src/gui/UBDockTeacherGuideWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentNavigator.cpp b/src/gui/UBDocumentNavigator.cpp index 1a7e6289..ccf5d518 100644 --- a/src/gui/UBDocumentNavigator.cpp +++ b/src/gui/UBDocumentNavigator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentNavigator.h b/src/gui/UBDocumentNavigator.h index c7696595..ad5fcf31 100644 --- a/src/gui/UBDocumentNavigator.h +++ b/src/gui/UBDocumentNavigator.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentThumbnailWidget.cpp b/src/gui/UBDocumentThumbnailWidget.cpp index f21df274..667e91f3 100644 --- a/src/gui/UBDocumentThumbnailWidget.cpp +++ b/src/gui/UBDocumentThumbnailWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentThumbnailWidget.h b/src/gui/UBDocumentThumbnailWidget.h index 364e1ba4..2a7e1e8a 100644 --- a/src/gui/UBDocumentThumbnailWidget.h +++ b/src/gui/UBDocumentThumbnailWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentToolsPalette.cpp b/src/gui/UBDocumentToolsPalette.cpp index 9ba2941b..18f2738d 100644 --- a/src/gui/UBDocumentToolsPalette.cpp +++ b/src/gui/UBDocumentToolsPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentToolsPalette.h b/src/gui/UBDocumentToolsPalette.h index 4032dee7..8796f106 100644 --- a/src/gui/UBDocumentToolsPalette.h +++ b/src/gui/UBDocumentToolsPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentTreeWidget.cpp b/src/gui/UBDocumentTreeWidget.cpp index 3688618c..6c1409f6 100644 --- a/src/gui/UBDocumentTreeWidget.cpp +++ b/src/gui/UBDocumentTreeWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDocumentTreeWidget.h b/src/gui/UBDocumentTreeWidget.h index a0577539..e0ffd216 100644 --- a/src/gui/UBDocumentTreeWidget.h +++ b/src/gui/UBDocumentTreeWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDownloadWidget.cpp b/src/gui/UBDownloadWidget.cpp index b83aac8b..d097c481 100644 --- a/src/gui/UBDownloadWidget.cpp +++ b/src/gui/UBDownloadWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBDownloadWidget.h b/src/gui/UBDownloadWidget.h index eb457c06..6f9a53f1 100644 --- a/src/gui/UBDownloadWidget.h +++ b/src/gui/UBDownloadWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFavoriteToolPalette.cpp b/src/gui/UBFavoriteToolPalette.cpp index ce4ca385..114fba33 100644 --- a/src/gui/UBFavoriteToolPalette.cpp +++ b/src/gui/UBFavoriteToolPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFavoriteToolPalette.h b/src/gui/UBFavoriteToolPalette.h index 0c52860a..8c6341a7 100644 --- a/src/gui/UBFavoriteToolPalette.h +++ b/src/gui/UBFavoriteToolPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFeaturesActionBar.cpp b/src/gui/UBFeaturesActionBar.cpp index 3c31d21f..19627e28 100644 --- a/src/gui/UBFeaturesActionBar.cpp +++ b/src/gui/UBFeaturesActionBar.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFeaturesActionBar.h b/src/gui/UBFeaturesActionBar.h index 812d359a..cddb9c84 100644 --- a/src/gui/UBFeaturesActionBar.h +++ b/src/gui/UBFeaturesActionBar.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index 831a4a94..812405e5 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index eef4321d..1320ee5c 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFloatingPalette.cpp b/src/gui/UBFloatingPalette.cpp index 7b566283..fe380c6c 100644 --- a/src/gui/UBFloatingPalette.cpp +++ b/src/gui/UBFloatingPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBFloatingPalette.h b/src/gui/UBFloatingPalette.h index 2586dedd..7f21b9aa 100644 --- a/src/gui/UBFloatingPalette.h +++ b/src/gui/UBFloatingPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBIconButton.cpp b/src/gui/UBIconButton.cpp index 08c54140..335db35a 100644 --- a/src/gui/UBIconButton.cpp +++ b/src/gui/UBIconButton.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBIconButton.h b/src/gui/UBIconButton.h index 32a86791..710e637d 100644 --- a/src/gui/UBIconButton.h +++ b/src/gui/UBIconButton.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBKeyboardPalette.cpp b/src/gui/UBKeyboardPalette.cpp index fe8301bc..d287bc0d 100644 --- a/src/gui/UBKeyboardPalette.cpp +++ b/src/gui/UBKeyboardPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBKeyboardPalette.h b/src/gui/UBKeyboardPalette.h index 1b5d59b9..5267f7cb 100644 --- a/src/gui/UBKeyboardPalette.h +++ b/src/gui/UBKeyboardPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBKeyboardPalette_linux.cpp b/src/gui/UBKeyboardPalette_linux.cpp index 7e4e9f8a..13c95a25 100644 --- a/src/gui/UBKeyboardPalette_linux.cpp +++ b/src/gui/UBKeyboardPalette_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBKeyboardPalette_mac.cpp b/src/gui/UBKeyboardPalette_mac.cpp index 119a31b7..06c43528 100644 --- a/src/gui/UBKeyboardPalette_mac.cpp +++ b/src/gui/UBKeyboardPalette_mac.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBKeyboardPalette_win.cpp b/src/gui/UBKeyboardPalette_win.cpp index d30236c2..fb9a65de 100644 --- a/src/gui/UBKeyboardPalette_win.cpp +++ b/src/gui/UBKeyboardPalette_win.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBLeftPalette.cpp b/src/gui/UBLeftPalette.cpp index 6f63e176..c2f6ea15 100644 --- a/src/gui/UBLeftPalette.cpp +++ b/src/gui/UBLeftPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBLeftPalette.h b/src/gui/UBLeftPalette.h index 5925cfbc..6ba12c91 100644 --- a/src/gui/UBLeftPalette.h +++ b/src/gui/UBLeftPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMagnifer.cpp b/src/gui/UBMagnifer.cpp index 76796b77..e40752e3 100644 --- a/src/gui/UBMagnifer.cpp +++ b/src/gui/UBMagnifer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMagnifer.h b/src/gui/UBMagnifer.h index f69a4610..3f2b8fd9 100644 --- a/src/gui/UBMagnifer.h +++ b/src/gui/UBMagnifer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMainWindow.cpp b/src/gui/UBMainWindow.cpp index dc0497bf..61f77f9d 100644 --- a/src/gui/UBMainWindow.cpp +++ b/src/gui/UBMainWindow.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMainWindow.h b/src/gui/UBMainWindow.h index f4d11ba3..c5cbc9b6 100644 --- a/src/gui/UBMainWindow.h +++ b/src/gui/UBMainWindow.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMessageWindow.cpp b/src/gui/UBMessageWindow.cpp index 73a1a60c..16b467f3 100644 --- a/src/gui/UBMessageWindow.cpp +++ b/src/gui/UBMessageWindow.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMessageWindow.h b/src/gui/UBMessageWindow.h index 0522b815..33e7d4d0 100644 --- a/src/gui/UBMessageWindow.h +++ b/src/gui/UBMessageWindow.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMessagesDialog.cpp b/src/gui/UBMessagesDialog.cpp index fad98a3b..09fd9045 100644 --- a/src/gui/UBMessagesDialog.cpp +++ b/src/gui/UBMessagesDialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMessagesDialog.h b/src/gui/UBMessagesDialog.h index 79b361bf..cefce272 100644 --- a/src/gui/UBMessagesDialog.h +++ b/src/gui/UBMessagesDialog.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMousePressFilter.cpp b/src/gui/UBMousePressFilter.cpp index 6da92f13..a1a74e9c 100644 --- a/src/gui/UBMousePressFilter.cpp +++ b/src/gui/UBMousePressFilter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBMousePressFilter.h b/src/gui/UBMousePressFilter.h index d9220d25..4dc6f90c 100644 --- a/src/gui/UBMousePressFilter.h +++ b/src/gui/UBMousePressFilter.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBNavigatorPalette.cpp b/src/gui/UBNavigatorPalette.cpp index f29f69e6..df86a4ce 100644 --- a/src/gui/UBNavigatorPalette.cpp +++ b/src/gui/UBNavigatorPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBNavigatorPalette.h b/src/gui/UBNavigatorPalette.h index 060252e3..b09cd08a 100644 --- a/src/gui/UBNavigatorPalette.h +++ b/src/gui/UBNavigatorPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBPageNavigationWidget.cpp b/src/gui/UBPageNavigationWidget.cpp index 7366709e..9d1646ee 100644 --- a/src/gui/UBPageNavigationWidget.cpp +++ b/src/gui/UBPageNavigationWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBPageNavigationWidget.h b/src/gui/UBPageNavigationWidget.h index 1ff4aab0..1299a9f4 100644 --- a/src/gui/UBPageNavigationWidget.h +++ b/src/gui/UBPageNavigationWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBPropertyPalette.cpp b/src/gui/UBPropertyPalette.cpp index 15871037..b085b355 100644 --- a/src/gui/UBPropertyPalette.cpp +++ b/src/gui/UBPropertyPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBPropertyPalette.h b/src/gui/UBPropertyPalette.h index 69798c2d..1388bad2 100644 --- a/src/gui/UBPropertyPalette.h +++ b/src/gui/UBPropertyPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBResources.cpp b/src/gui/UBResources.cpp index 08869868..02e23bfe 100644 --- a/src/gui/UBResources.cpp +++ b/src/gui/UBResources.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBResources.h b/src/gui/UBResources.h index 180f6304..5d5455c5 100644 --- a/src/gui/UBResources.h +++ b/src/gui/UBResources.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBRightPalette.cpp b/src/gui/UBRightPalette.cpp index 0724b87e..4363d5f5 100644 --- a/src/gui/UBRightPalette.cpp +++ b/src/gui/UBRightPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBRightPalette.h b/src/gui/UBRightPalette.h index f1ae40f8..fea60ec9 100644 --- a/src/gui/UBRightPalette.h +++ b/src/gui/UBRightPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBRubberBand.cpp b/src/gui/UBRubberBand.cpp index a889f8af..ee9d430c 100644 --- a/src/gui/UBRubberBand.cpp +++ b/src/gui/UBRubberBand.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBRubberBand.h b/src/gui/UBRubberBand.h index 968b0d28..931639e9 100644 --- a/src/gui/UBRubberBand.h +++ b/src/gui/UBRubberBand.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBScreenMirror.cpp b/src/gui/UBScreenMirror.cpp index 12d090bd..285c5ec8 100644 --- a/src/gui/UBScreenMirror.cpp +++ b/src/gui/UBScreenMirror.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBScreenMirror.h b/src/gui/UBScreenMirror.h index 15db32fc..1ab9fbae 100644 --- a/src/gui/UBScreenMirror.h +++ b/src/gui/UBScreenMirror.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBSpinningWheel.cpp b/src/gui/UBSpinningWheel.cpp index 46cbe9fa..828293fc 100644 --- a/src/gui/UBSpinningWheel.cpp +++ b/src/gui/UBSpinningWheel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBSpinningWheel.h b/src/gui/UBSpinningWheel.h index 310bc0d2..5dfec9cd 100644 --- a/src/gui/UBSpinningWheel.h +++ b/src/gui/UBSpinningWheel.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBStylusPalette.cpp b/src/gui/UBStylusPalette.cpp index a6fe1f7f..1cf47b63 100644 --- a/src/gui/UBStylusPalette.cpp +++ b/src/gui/UBStylusPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBStylusPalette.h b/src/gui/UBStylusPalette.h index 4af6ee56..b3542667 100644 --- a/src/gui/UBStylusPalette.h +++ b/src/gui/UBStylusPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBTeacherGuideWidget.cpp b/src/gui/UBTeacherGuideWidget.cpp index 443ec9d2..51a69216 100644 --- a/src/gui/UBTeacherGuideWidget.cpp +++ b/src/gui/UBTeacherGuideWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBTeacherGuideWidget.h b/src/gui/UBTeacherGuideWidget.h index b25e4a74..5c445cec 100644 --- a/src/gui/UBTeacherGuideWidget.h +++ b/src/gui/UBTeacherGuideWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBTeacherGuideWidgetsTools.cpp b/src/gui/UBTeacherGuideWidgetsTools.cpp index 77ef3add..85ceeba9 100644 --- a/src/gui/UBTeacherGuideWidgetsTools.cpp +++ b/src/gui/UBTeacherGuideWidgetsTools.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBTeacherGuideWidgetsTools.h b/src/gui/UBTeacherGuideWidgetsTools.h index 50e671dc..a7cdf0a8 100644 --- a/src/gui/UBTeacherGuideWidgetsTools.h +++ b/src/gui/UBTeacherGuideWidgetsTools.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBThumbnailView.cpp b/src/gui/UBThumbnailView.cpp index 6ad45336..e77c940e 100644 --- a/src/gui/UBThumbnailView.cpp +++ b/src/gui/UBThumbnailView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBThumbnailView.h b/src/gui/UBThumbnailView.h index 68673c42..1e585480 100644 --- a/src/gui/UBThumbnailView.h +++ b/src/gui/UBThumbnailView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBThumbnailWidget.cpp b/src/gui/UBThumbnailWidget.cpp index c67f14f8..aef7237a 100644 --- a/src/gui/UBThumbnailWidget.cpp +++ b/src/gui/UBThumbnailWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBThumbnailWidget.h b/src/gui/UBThumbnailWidget.h index bf235c61..e4bf3ec0 100644 --- a/src/gui/UBThumbnailWidget.h +++ b/src/gui/UBThumbnailWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBToolWidget.cpp b/src/gui/UBToolWidget.cpp index ae80bb78..4f9667e6 100644 --- a/src/gui/UBToolWidget.cpp +++ b/src/gui/UBToolWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBToolWidget.h b/src/gui/UBToolWidget.h index b12a22c3..699fc47c 100644 --- a/src/gui/UBToolWidget.h +++ b/src/gui/UBToolWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBToolbarButtonGroup.cpp b/src/gui/UBToolbarButtonGroup.cpp index e2696d59..4a4a17f5 100644 --- a/src/gui/UBToolbarButtonGroup.cpp +++ b/src/gui/UBToolbarButtonGroup.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBToolbarButtonGroup.h b/src/gui/UBToolbarButtonGroup.h index 1826df3b..74398e1d 100644 --- a/src/gui/UBToolbarButtonGroup.h +++ b/src/gui/UBToolbarButtonGroup.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBUpdateDlg.cpp b/src/gui/UBUpdateDlg.cpp index f17ca9a5..76af8c25 100644 --- a/src/gui/UBUpdateDlg.cpp +++ b/src/gui/UBUpdateDlg.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBUpdateDlg.h b/src/gui/UBUpdateDlg.h index 7b0b1e1f..fdf509d6 100644 --- a/src/gui/UBUpdateDlg.h +++ b/src/gui/UBUpdateDlg.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBVideoPlayer.cpp b/src/gui/UBVideoPlayer.cpp index e78a1248..e1831895 100644 --- a/src/gui/UBVideoPlayer.cpp +++ b/src/gui/UBVideoPlayer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBVideoPlayer.h b/src/gui/UBVideoPlayer.h index d0d567b2..27c5f575 100644 --- a/src/gui/UBVideoPlayer.h +++ b/src/gui/UBVideoPlayer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBWebToolsPalette.cpp b/src/gui/UBWebToolsPalette.cpp index d7a7a3ae..797c4501 100644 --- a/src/gui/UBWebToolsPalette.cpp +++ b/src/gui/UBWebToolsPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBWebToolsPalette.h b/src/gui/UBWebToolsPalette.h index f1cde31d..974d2f6e 100644 --- a/src/gui/UBWebToolsPalette.h +++ b/src/gui/UBWebToolsPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBWidgetMirror.cpp b/src/gui/UBWidgetMirror.cpp index 7bcc4301..4d833d3e 100644 --- a/src/gui/UBWidgetMirror.cpp +++ b/src/gui/UBWidgetMirror.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBWidgetMirror.h b/src/gui/UBWidgetMirror.h index e172c28b..dee30378 100644 --- a/src/gui/UBWidgetMirror.h +++ b/src/gui/UBWidgetMirror.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBZoomPalette.cpp b/src/gui/UBZoomPalette.cpp index f5e4b1c6..c3bce63a 100644 --- a/src/gui/UBZoomPalette.cpp +++ b/src/gui/UBZoomPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/gui/UBZoomPalette.h b/src/gui/UBZoomPalette.h index 20bb50fb..f8c3fc92 100644 --- a/src/gui/UBZoomPalette.h +++ b/src/gui/UBZoomPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/interfaces/IDataStorage.h b/src/interfaces/IDataStorage.h index d3ce687a..35921dbc 100644 --- a/src/interfaces/IDataStorage.h +++ b/src/interfaces/IDataStorage.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBAutoSaver.cpp b/src/network/UBAutoSaver.cpp index e81a7c35..b2760e1c 100644 --- a/src/network/UBAutoSaver.cpp +++ b/src/network/UBAutoSaver.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBAutoSaver.h b/src/network/UBAutoSaver.h index 15904fa1..d886f1fa 100644 --- a/src/network/UBAutoSaver.h +++ b/src/network/UBAutoSaver.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBCookieJar.cpp b/src/network/UBCookieJar.cpp index 01559402..4ec2d58e 100644 --- a/src/network/UBCookieJar.cpp +++ b/src/network/UBCookieJar.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBCookieJar.h b/src/network/UBCookieJar.h index 8ed99139..0a4cea14 100644 --- a/src/network/UBCookieJar.h +++ b/src/network/UBCookieJar.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBHttpFileDownloader.cpp b/src/network/UBHttpFileDownloader.cpp index 8948ccef..35ea75e4 100644 --- a/src/network/UBHttpFileDownloader.cpp +++ b/src/network/UBHttpFileDownloader.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBHttpFileDownloader.h b/src/network/UBHttpFileDownloader.h index 91fd7009..5bc4c3dd 100644 --- a/src/network/UBHttpFileDownloader.h +++ b/src/network/UBHttpFileDownloader.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBHttpGet.cpp b/src/network/UBHttpGet.cpp index 0fcb5a2f..30c09419 100644 --- a/src/network/UBHttpGet.cpp +++ b/src/network/UBHttpGet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBHttpGet.h b/src/network/UBHttpGet.h index 5a00b67d..08a0abd2 100644 --- a/src/network/UBHttpGet.h +++ b/src/network/UBHttpGet.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBNetworkAccessManager.cpp b/src/network/UBNetworkAccessManager.cpp index 3c6b9073..71f8d0c9 100644 --- a/src/network/UBNetworkAccessManager.cpp +++ b/src/network/UBNetworkAccessManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBNetworkAccessManager.h b/src/network/UBNetworkAccessManager.h index 6b6e32e2..cc4e578c 100644 --- a/src/network/UBNetworkAccessManager.h +++ b/src/network/UBNetworkAccessManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBServerXMLHttpRequest.cpp b/src/network/UBServerXMLHttpRequest.cpp index a5088e38..b3ae2b9f 100644 --- a/src/network/UBServerXMLHttpRequest.cpp +++ b/src/network/UBServerXMLHttpRequest.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/network/UBServerXMLHttpRequest.h b/src/network/UBServerXMLHttpRequest.h index 1e34b32e..6905bcf7 100644 --- a/src/network/UBServerXMLHttpRequest.h +++ b/src/network/UBServerXMLHttpRequest.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/ASCII85Decode.cpp b/src/pdf-merger/ASCII85Decode.cpp index 634ecb0e..fd26a4c4 100644 --- a/src/pdf-merger/ASCII85Decode.cpp +++ b/src/pdf-merger/ASCII85Decode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/ASCII85Decode.h b/src/pdf-merger/ASCII85Decode.h index b605e2a0..85c1ecd5 100644 --- a/src/pdf-merger/ASCII85Decode.h +++ b/src/pdf-merger/ASCII85Decode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/ASCIIHexDecode.cpp b/src/pdf-merger/ASCIIHexDecode.cpp index 84b127d5..c2c6bbae 100644 --- a/src/pdf-merger/ASCIIHexDecode.cpp +++ b/src/pdf-merger/ASCIIHexDecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/ASCIIHexDecode.h b/src/pdf-merger/ASCIIHexDecode.h index 60ca682e..ef0a89d2 100644 --- a/src/pdf-merger/ASCIIHexDecode.h +++ b/src/pdf-merger/ASCIIHexDecode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/AbstractBoxElementHandler.h b/src/pdf-merger/AbstractBoxElementHandler.h index 9e315088..9e662623 100644 --- a/src/pdf-merger/AbstractBoxElementHandler.h +++ b/src/pdf-merger/AbstractBoxElementHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/AnnotsHandler.cpp b/src/pdf-merger/AnnotsHandler.cpp index 83aa94e2..34794b5c 100644 --- a/src/pdf-merger/AnnotsHandler.cpp +++ b/src/pdf-merger/AnnotsHandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/AnnotsHandler.h b/src/pdf-merger/AnnotsHandler.h index 93c5a4fa..8f7270f9 100644 --- a/src/pdf-merger/AnnotsHandler.h +++ b/src/pdf-merger/AnnotsHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/CCITTFaxDecode.cpp b/src/pdf-merger/CCITTFaxDecode.cpp index 7793af87..7da883c4 100644 --- a/src/pdf-merger/CCITTFaxDecode.cpp +++ b/src/pdf-merger/CCITTFaxDecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/CCITTFaxDecode.h b/src/pdf-merger/CCITTFaxDecode.h index 24a5c5a0..a69b2a0b 100644 --- a/src/pdf-merger/CCITTFaxDecode.h +++ b/src/pdf-merger/CCITTFaxDecode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Config.h b/src/pdf-merger/Config.h index a443a915..dac1d4cf 100644 --- a/src/pdf-merger/Config.h +++ b/src/pdf-merger/Config.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/ContentHandler.cpp b/src/pdf-merger/ContentHandler.cpp index de376906..973cda88 100644 --- a/src/pdf-merger/ContentHandler.cpp +++ b/src/pdf-merger/ContentHandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/ContentHandler.h b/src/pdf-merger/ContentHandler.h index 2cec0640..b8e4a022 100644 --- a/src/pdf-merger/ContentHandler.h +++ b/src/pdf-merger/ContentHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/CropBoxElementHandler.h b/src/pdf-merger/CropBoxElementHandler.h index bd053b3e..4b9881c4 100644 --- a/src/pdf-merger/CropBoxElementHandler.h +++ b/src/pdf-merger/CropBoxElementHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/DCTDecode.cpp b/src/pdf-merger/DCTDecode.cpp index 5dbd64b1..029dc62b 100644 --- a/src/pdf-merger/DCTDecode.cpp +++ b/src/pdf-merger/DCTDecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/DCTDecode.h b/src/pdf-merger/DCTDecode.h index 47d4636b..06ff0f6e 100644 --- a/src/pdf-merger/DCTDecode.h +++ b/src/pdf-merger/DCTDecode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Decoder.h b/src/pdf-merger/Decoder.h index bd1afaaf..2988b2b0 100644 --- a/src/pdf-merger/Decoder.h +++ b/src/pdf-merger/Decoder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Document.cpp b/src/pdf-merger/Document.cpp index 372e3ba4..175436a3 100644 --- a/src/pdf-merger/Document.cpp +++ b/src/pdf-merger/Document.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Document.h b/src/pdf-merger/Document.h index ed8a0924..227bfc27 100644 --- a/src/pdf-merger/Document.h +++ b/src/pdf-merger/Document.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Exception.h b/src/pdf-merger/Exception.h index 415018c6..c83c6e8b 100644 --- a/src/pdf-merger/Exception.h +++ b/src/pdf-merger/Exception.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/FileIsAbsentException.h b/src/pdf-merger/FileIsAbsentException.h index 36b2198a..b6649714 100644 --- a/src/pdf-merger/FileIsAbsentException.h +++ b/src/pdf-merger/FileIsAbsentException.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Filter.cpp b/src/pdf-merger/Filter.cpp index 3e1b9e57..3800bf04 100644 --- a/src/pdf-merger/Filter.cpp +++ b/src/pdf-merger/Filter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Filter.h b/src/pdf-merger/Filter.h index 85932e98..0a1f2029 100644 --- a/src/pdf-merger/Filter.h +++ b/src/pdf-merger/Filter.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/FilterPredictor.cpp b/src/pdf-merger/FilterPredictor.cpp index 0b595821..a31d0231 100644 --- a/src/pdf-merger/FilterPredictor.cpp +++ b/src/pdf-merger/FilterPredictor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/FilterPredictor.h b/src/pdf-merger/FilterPredictor.h index d826e9b7..28afbd6d 100644 --- a/src/pdf-merger/FilterPredictor.h +++ b/src/pdf-merger/FilterPredictor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/FlateDecode.cpp b/src/pdf-merger/FlateDecode.cpp index 49f6229e..a2215c48 100644 --- a/src/pdf-merger/FlateDecode.cpp +++ b/src/pdf-merger/FlateDecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/FlateDecode.h b/src/pdf-merger/FlateDecode.h index a9a4dd70..8ec75e91 100644 --- a/src/pdf-merger/FlateDecode.h +++ b/src/pdf-merger/FlateDecode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/JBIG2Decode.cpp b/src/pdf-merger/JBIG2Decode.cpp index b4826754..92f1c7d9 100644 --- a/src/pdf-merger/JBIG2Decode.cpp +++ b/src/pdf-merger/JBIG2Decode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/JBIG2Decode.h b/src/pdf-merger/JBIG2Decode.h index e31ed2b1..4d9b72fc 100644 --- a/src/pdf-merger/JBIG2Decode.h +++ b/src/pdf-merger/JBIG2Decode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/LZWDecode.cpp b/src/pdf-merger/LZWDecode.cpp index 5ef46779..ad1b486f 100644 --- a/src/pdf-merger/LZWDecode.cpp +++ b/src/pdf-merger/LZWDecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/LZWDecode.h b/src/pdf-merger/LZWDecode.h index c7ce79ea..748e65dc 100644 --- a/src/pdf-merger/LZWDecode.h +++ b/src/pdf-merger/LZWDecode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/MediaBoxElementHandler.h b/src/pdf-merger/MediaBoxElementHandler.h index e5479624..b1d390c0 100644 --- a/src/pdf-merger/MediaBoxElementHandler.h +++ b/src/pdf-merger/MediaBoxElementHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/MergePageDescription.h b/src/pdf-merger/MergePageDescription.h index 6ad7af77..f9fee166 100644 --- a/src/pdf-merger/MergePageDescription.h +++ b/src/pdf-merger/MergePageDescription.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Merger.cpp b/src/pdf-merger/Merger.cpp index ab607b5a..8ba52d33 100644 --- a/src/pdf-merger/Merger.cpp +++ b/src/pdf-merger/Merger.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Merger.h b/src/pdf-merger/Merger.h index 5b004d01..34172baf 100644 --- a/src/pdf-merger/Merger.h +++ b/src/pdf-merger/Merger.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Object.cpp b/src/pdf-merger/Object.cpp index 00f88647..93439cd4 100644 --- a/src/pdf-merger/Object.cpp +++ b/src/pdf-merger/Object.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Object.h b/src/pdf-merger/Object.h index e1bdad6a..ff742c40 100644 --- a/src/pdf-merger/Object.h +++ b/src/pdf-merger/Object.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/OverlayDocumentParser.cpp b/src/pdf-merger/OverlayDocumentParser.cpp index e237a252..956cec82 100644 --- a/src/pdf-merger/OverlayDocumentParser.cpp +++ b/src/pdf-merger/OverlayDocumentParser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/OverlayDocumentParser.h b/src/pdf-merger/OverlayDocumentParser.h index 7829a0d6..14775a90 100644 --- a/src/pdf-merger/OverlayDocumentParser.h +++ b/src/pdf-merger/OverlayDocumentParser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Page.cpp b/src/pdf-merger/Page.cpp index e92a7e66..7dfbfd81 100644 --- a/src/pdf-merger/Page.cpp +++ b/src/pdf-merger/Page.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Page.h b/src/pdf-merger/Page.h index 4b67cfdb..fba3dfea 100644 --- a/src/pdf-merger/Page.h +++ b/src/pdf-merger/Page.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/PageElementHandler.cpp b/src/pdf-merger/PageElementHandler.cpp index 4b6bff77..f45544f7 100644 --- a/src/pdf-merger/PageElementHandler.cpp +++ b/src/pdf-merger/PageElementHandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/PageElementHandler.h b/src/pdf-merger/PageElementHandler.h index b12060a6..e927d3cf 100644 --- a/src/pdf-merger/PageElementHandler.h +++ b/src/pdf-merger/PageElementHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/PageParser.h b/src/pdf-merger/PageParser.h index b8f9c7a7..f723cb29 100644 --- a/src/pdf-merger/PageParser.h +++ b/src/pdf-merger/PageParser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Parser.cpp b/src/pdf-merger/Parser.cpp index 426efb22..78f9fe92 100644 --- a/src/pdf-merger/Parser.cpp +++ b/src/pdf-merger/Parser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Parser.h b/src/pdf-merger/Parser.h index 92673277..89917146 100644 --- a/src/pdf-merger/Parser.h +++ b/src/pdf-merger/Parser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Rectangle.cpp b/src/pdf-merger/Rectangle.cpp index 674fb8d7..722a45d8 100644 --- a/src/pdf-merger/Rectangle.cpp +++ b/src/pdf-merger/Rectangle.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Rectangle.h b/src/pdf-merger/Rectangle.h index 0d3fad63..db14d5b0 100644 --- a/src/pdf-merger/Rectangle.h +++ b/src/pdf-merger/Rectangle.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/RemoveHimSelfHandler.h b/src/pdf-merger/RemoveHimSelfHandler.h index 69a436b2..64e41ada 100644 --- a/src/pdf-merger/RemoveHimSelfHandler.h +++ b/src/pdf-merger/RemoveHimSelfHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/RemoveHimselfHandler.cpp b/src/pdf-merger/RemoveHimselfHandler.cpp index 0bc91cab..2abc473b 100644 --- a/src/pdf-merger/RemoveHimselfHandler.cpp +++ b/src/pdf-merger/RemoveHimselfHandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/RotationHandler.h b/src/pdf-merger/RotationHandler.h index 10dcbd34..bbba9b6d 100644 --- a/src/pdf-merger/RotationHandler.h +++ b/src/pdf-merger/RotationHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/RunLengthDecode.cpp b/src/pdf-merger/RunLengthDecode.cpp index 223b8735..48da4cda 100644 --- a/src/pdf-merger/RunLengthDecode.cpp +++ b/src/pdf-merger/RunLengthDecode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/RunLengthDecode.h b/src/pdf-merger/RunLengthDecode.h index 6bc76b1b..b29b01e0 100644 --- a/src/pdf-merger/RunLengthDecode.h +++ b/src/pdf-merger/RunLengthDecode.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Transformation.h b/src/pdf-merger/Transformation.h index 67f2e4a7..9be96d2f 100644 --- a/src/pdf-merger/Transformation.h +++ b/src/pdf-merger/Transformation.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/TypeElementHandler.h b/src/pdf-merger/TypeElementHandler.h index f9ed9843..7c01456b 100644 --- a/src/pdf-merger/TypeElementHandler.h +++ b/src/pdf-merger/TypeElementHandler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Utils.cpp b/src/pdf-merger/Utils.cpp index 926e90f8..305c8e07 100644 --- a/src/pdf-merger/Utils.cpp +++ b/src/pdf-merger/Utils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf-merger/Utils.h b/src/pdf-merger/Utils.h index af5f54b5..2857df8e 100644 --- a/src/pdf-merger/Utils.h +++ b/src/pdf-merger/Utils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/GraphicsPDFItem.cpp b/src/pdf/GraphicsPDFItem.cpp index 2bbbc232..b4c71edc 100644 --- a/src/pdf/GraphicsPDFItem.cpp +++ b/src/pdf/GraphicsPDFItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/GraphicsPDFItem.h b/src/pdf/GraphicsPDFItem.h index 5045e487..3c4b6f38 100644 --- a/src/pdf/GraphicsPDFItem.h +++ b/src/pdf/GraphicsPDFItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/PDFRenderer.cpp b/src/pdf/PDFRenderer.cpp index d2def0ed..16b8821f 100644 --- a/src/pdf/PDFRenderer.cpp +++ b/src/pdf/PDFRenderer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/PDFRenderer.h b/src/pdf/PDFRenderer.h index feb12a80..0daa0e03 100644 --- a/src/pdf/PDFRenderer.h +++ b/src/pdf/PDFRenderer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/UBWebPluginPDFWidget.cpp b/src/pdf/UBWebPluginPDFWidget.cpp index 1867cde4..0419713b 100644 --- a/src/pdf/UBWebPluginPDFWidget.cpp +++ b/src/pdf/UBWebPluginPDFWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/UBWebPluginPDFWidget.h b/src/pdf/UBWebPluginPDFWidget.h index d409dfed..681f2237 100644 --- a/src/pdf/UBWebPluginPDFWidget.h +++ b/src/pdf/UBWebPluginPDFWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/XPDFRenderer.cpp b/src/pdf/XPDFRenderer.cpp index 6bb666f6..d50e559e 100644 --- a/src/pdf/XPDFRenderer.cpp +++ b/src/pdf/XPDFRenderer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/pdf/XPDFRenderer.h b/src/pdf/XPDFRenderer.h index 4254773f..ab9f3de2 100644 --- a/src/pdf/XPDFRenderer.h +++ b/src/pdf/XPDFRenderer.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/UBAbstractVideoEncoder.cpp b/src/podcast/UBAbstractVideoEncoder.cpp index 1475e5b1..d038fd11 100644 --- a/src/podcast/UBAbstractVideoEncoder.cpp +++ b/src/podcast/UBAbstractVideoEncoder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/UBAbstractVideoEncoder.h b/src/podcast/UBAbstractVideoEncoder.h index 312856e9..cd7bb9d3 100644 --- a/src/podcast/UBAbstractVideoEncoder.h +++ b/src/podcast/UBAbstractVideoEncoder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/UBPodcastController.cpp b/src/podcast/UBPodcastController.cpp index 90b00dcb..01fd9246 100644 --- a/src/podcast/UBPodcastController.cpp +++ b/src/podcast/UBPodcastController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/UBPodcastController.h b/src/podcast/UBPodcastController.h index 5b02c7f8..14ae312e 100644 --- a/src/podcast/UBPodcastController.h +++ b/src/podcast/UBPodcastController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/UBPodcastRecordingPalette.cpp b/src/podcast/UBPodcastRecordingPalette.cpp index 220f3529..bbea18c1 100644 --- a/src/podcast/UBPodcastRecordingPalette.cpp +++ b/src/podcast/UBPodcastRecordingPalette.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/UBPodcastRecordingPalette.h b/src/podcast/UBPodcastRecordingPalette.h index 44eb9944..aece20c6 100644 --- a/src/podcast/UBPodcastRecordingPalette.h +++ b/src/podcast/UBPodcastRecordingPalette.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/intranet/UBIntranetPodcastPublisher.cpp b/src/podcast/intranet/UBIntranetPodcastPublisher.cpp index 7e914441..512d087d 100644 --- a/src/podcast/intranet/UBIntranetPodcastPublisher.cpp +++ b/src/podcast/intranet/UBIntranetPodcastPublisher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/intranet/UBIntranetPodcastPublisher.h b/src/podcast/intranet/UBIntranetPodcastPublisher.h index 26652e38..5a764aa7 100644 --- a/src/podcast/intranet/UBIntranetPodcastPublisher.h +++ b/src/podcast/intranet/UBIntranetPodcastPublisher.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/quicktime/UBAudioQueueRecorder.cpp b/src/podcast/quicktime/UBAudioQueueRecorder.cpp index 1f5c11f5..46d7d9b9 100644 --- a/src/podcast/quicktime/UBAudioQueueRecorder.cpp +++ b/src/podcast/quicktime/UBAudioQueueRecorder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/quicktime/UBAudioQueueRecorder.h b/src/podcast/quicktime/UBAudioQueueRecorder.h index c5744abb..31e7aa80 100644 --- a/src/podcast/quicktime/UBAudioQueueRecorder.h +++ b/src/podcast/quicktime/UBAudioQueueRecorder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/quicktime/UBQuickTimeFile.cpp b/src/podcast/quicktime/UBQuickTimeFile.cpp index b47198f8..8b6451de 100644 --- a/src/podcast/quicktime/UBQuickTimeFile.cpp +++ b/src/podcast/quicktime/UBQuickTimeFile.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/quicktime/UBQuickTimeFile.h b/src/podcast/quicktime/UBQuickTimeFile.h index be5ef9ed..996e25a9 100644 --- a/src/podcast/quicktime/UBQuickTimeFile.h +++ b/src/podcast/quicktime/UBQuickTimeFile.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/quicktime/UBQuickTimeVideoEncoder.cpp b/src/podcast/quicktime/UBQuickTimeVideoEncoder.cpp index 03f9a192..a43849fb 100644 --- a/src/podcast/quicktime/UBQuickTimeVideoEncoder.cpp +++ b/src/podcast/quicktime/UBQuickTimeVideoEncoder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/quicktime/UBQuickTimeVideoEncoder.h b/src/podcast/quicktime/UBQuickTimeVideoEncoder.h index 6127d2db..67262d62 100644 --- a/src/podcast/quicktime/UBQuickTimeVideoEncoder.h +++ b/src/podcast/quicktime/UBQuickTimeVideoEncoder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/windowsmedia/UBWaveRecorder.cpp b/src/podcast/windowsmedia/UBWaveRecorder.cpp index 527426cd..c347093e 100644 --- a/src/podcast/windowsmedia/UBWaveRecorder.cpp +++ b/src/podcast/windowsmedia/UBWaveRecorder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/windowsmedia/UBWaveRecorder.h b/src/podcast/windowsmedia/UBWaveRecorder.h index a7cce208..d136c579 100644 --- a/src/podcast/windowsmedia/UBWaveRecorder.h +++ b/src/podcast/windowsmedia/UBWaveRecorder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/windowsmedia/UBWindowsMediaFile.cpp b/src/podcast/windowsmedia/UBWindowsMediaFile.cpp index 7011e21f..3b8f6b98 100644 --- a/src/podcast/windowsmedia/UBWindowsMediaFile.cpp +++ b/src/podcast/windowsmedia/UBWindowsMediaFile.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/windowsmedia/UBWindowsMediaFile.h b/src/podcast/windowsmedia/UBWindowsMediaFile.h index 97278ce7..2bcb20ad 100644 --- a/src/podcast/windowsmedia/UBWindowsMediaFile.h +++ b/src/podcast/windowsmedia/UBWindowsMediaFile.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.cpp b/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.cpp index f814485b..659f1cf2 100644 --- a/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.cpp +++ b/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.h b/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.h index f5f55fba..adb24a23 100644 --- a/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.h +++ b/src/podcast/windowsmedia/UBWindowsMediaVideoEncoder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/youtube/UBYouTubePublisher.cpp b/src/podcast/youtube/UBYouTubePublisher.cpp index 10342d2f..e6d22126 100644 --- a/src/podcast/youtube/UBYouTubePublisher.cpp +++ b/src/podcast/youtube/UBYouTubePublisher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/podcast/youtube/UBYouTubePublisher.h b/src/podcast/youtube/UBYouTubePublisher.h index 7381649a..9b0a52d0 100644 --- a/src/podcast/youtube/UBYouTubePublisher.h +++ b/src/podcast/youtube/UBYouTubePublisher.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBAbstractDrawRuler.cpp b/src/tools/UBAbstractDrawRuler.cpp index dab62567..b5aad3bd 100644 --- a/src/tools/UBAbstractDrawRuler.cpp +++ b/src/tools/UBAbstractDrawRuler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBAbstractDrawRuler.h b/src/tools/UBAbstractDrawRuler.h index 7015f708..d286ed87 100644 --- a/src/tools/UBAbstractDrawRuler.h +++ b/src/tools/UBAbstractDrawRuler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCache.cpp b/src/tools/UBGraphicsCache.cpp index 537e17e7..bd923d78 100644 --- a/src/tools/UBGraphicsCache.cpp +++ b/src/tools/UBGraphicsCache.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCache.h b/src/tools/UBGraphicsCache.h index 89510b66..2aa87bbd 100644 --- a/src/tools/UBGraphicsCache.h +++ b/src/tools/UBGraphicsCache.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCompass.cpp b/src/tools/UBGraphicsCompass.cpp index d9b7a47d..c575e16d 100644 --- a/src/tools/UBGraphicsCompass.cpp +++ b/src/tools/UBGraphicsCompass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCompass.h b/src/tools/UBGraphicsCompass.h index 2af6c2e7..7f08c65e 100644 --- a/src/tools/UBGraphicsCompass.h +++ b/src/tools/UBGraphicsCompass.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCurtainItem.cpp b/src/tools/UBGraphicsCurtainItem.cpp index 116205f3..30f92eee 100644 --- a/src/tools/UBGraphicsCurtainItem.cpp +++ b/src/tools/UBGraphicsCurtainItem.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCurtainItem.h b/src/tools/UBGraphicsCurtainItem.h index 2dbd4d62..1d0ce652 100644 --- a/src/tools/UBGraphicsCurtainItem.h +++ b/src/tools/UBGraphicsCurtainItem.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCurtainItemDelegate.cpp b/src/tools/UBGraphicsCurtainItemDelegate.cpp index 06f24a27..0a3da8d9 100644 --- a/src/tools/UBGraphicsCurtainItemDelegate.cpp +++ b/src/tools/UBGraphicsCurtainItemDelegate.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsCurtainItemDelegate.h b/src/tools/UBGraphicsCurtainItemDelegate.h index 40bf047d..36040ba9 100644 --- a/src/tools/UBGraphicsCurtainItemDelegate.h +++ b/src/tools/UBGraphicsCurtainItemDelegate.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsProtractor.cpp b/src/tools/UBGraphicsProtractor.cpp index 26f01f39..ae54063d 100644 --- a/src/tools/UBGraphicsProtractor.cpp +++ b/src/tools/UBGraphicsProtractor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsProtractor.h b/src/tools/UBGraphicsProtractor.h index d47e5bae..1fd8929c 100644 --- a/src/tools/UBGraphicsProtractor.h +++ b/src/tools/UBGraphicsProtractor.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsRuler.cpp b/src/tools/UBGraphicsRuler.cpp index 801f829a..cdccebde 100644 --- a/src/tools/UBGraphicsRuler.cpp +++ b/src/tools/UBGraphicsRuler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsRuler.h b/src/tools/UBGraphicsRuler.h index 9a4f3066..8201045d 100644 --- a/src/tools/UBGraphicsRuler.h +++ b/src/tools/UBGraphicsRuler.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsTriangle.cpp b/src/tools/UBGraphicsTriangle.cpp index 262c657a..5dbba7c5 100644 --- a/src/tools/UBGraphicsTriangle.cpp +++ b/src/tools/UBGraphicsTriangle.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBGraphicsTriangle.h b/src/tools/UBGraphicsTriangle.h index 7fd83c55..e8a2fdb0 100644 --- a/src/tools/UBGraphicsTriangle.h +++ b/src/tools/UBGraphicsTriangle.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBToolsManager.cpp b/src/tools/UBToolsManager.cpp index 64125be0..f6c4cb17 100644 --- a/src/tools/UBToolsManager.cpp +++ b/src/tools/UBToolsManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/tools/UBToolsManager.h b/src/tools/UBToolsManager.h index 0da57e90..a7aa539e 100644 --- a/src/tools/UBToolsManager.h +++ b/src/tools/UBToolsManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBOEmbedParser.cpp b/src/web/UBOEmbedParser.cpp index 8c60e167..8f8b5a63 100644 --- a/src/web/UBOEmbedParser.cpp +++ b/src/web/UBOEmbedParser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBOEmbedParser.h b/src/web/UBOEmbedParser.h index 98107f2a..2be41508 100644 --- a/src/web/UBOEmbedParser.h +++ b/src/web/UBOEmbedParser.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBTrapFlashController.cpp b/src/web/UBTrapFlashController.cpp index 6fb6f7d0..1487f91c 100644 --- a/src/web/UBTrapFlashController.cpp +++ b/src/web/UBTrapFlashController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBTrapFlashController.h b/src/web/UBTrapFlashController.h index 4491e164..7fa4d060 100644 --- a/src/web/UBTrapFlashController.h +++ b/src/web/UBTrapFlashController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebController.cpp b/src/web/UBWebController.cpp index 87837e34..acf98e07 100644 --- a/src/web/UBWebController.cpp +++ b/src/web/UBWebController.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebController.h b/src/web/UBWebController.h index 3f239402..7c9f2872 100644 --- a/src/web/UBWebController.h +++ b/src/web/UBWebController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebKitUtils.cpp b/src/web/UBWebKitUtils.cpp index 514f4a6d..fad27116 100644 --- a/src/web/UBWebKitUtils.cpp +++ b/src/web/UBWebKitUtils.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebKitUtils.h b/src/web/UBWebKitUtils.h index fbda8b73..c00fcf22 100644 --- a/src/web/UBWebKitUtils.h +++ b/src/web/UBWebKitUtils.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebPage.cpp b/src/web/UBWebPage.cpp index d48666ae..6597317b 100644 --- a/src/web/UBWebPage.cpp +++ b/src/web/UBWebPage.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebPage.h b/src/web/UBWebPage.h index d8340dbd..e470039e 100644 --- a/src/web/UBWebPage.h +++ b/src/web/UBWebPage.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebPluginWidget.cpp b/src/web/UBWebPluginWidget.cpp index a8d120ee..7128b460 100644 --- a/src/web/UBWebPluginWidget.cpp +++ b/src/web/UBWebPluginWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/UBWebPluginWidget.h b/src/web/UBWebPluginWidget.h index 0a752a2b..333783ba 100644 --- a/src/web/UBWebPluginWidget.h +++ b/src/web/UBWebPluginWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBBrowserWindow.cpp b/src/web/browser/WBBrowserWindow.cpp index 2649da32..74286edc 100644 --- a/src/web/browser/WBBrowserWindow.cpp +++ b/src/web/browser/WBBrowserWindow.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBBrowserWindow.h b/src/web/browser/WBBrowserWindow.h index e4885148..a26530a8 100644 --- a/src/web/browser/WBBrowserWindow.h +++ b/src/web/browser/WBBrowserWindow.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBChaseWidget.cpp b/src/web/browser/WBChaseWidget.cpp index 582d0ac3..7d7c841c 100644 --- a/src/web/browser/WBChaseWidget.cpp +++ b/src/web/browser/WBChaseWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBChaseWidget.h b/src/web/browser/WBChaseWidget.h index 0577c449..7252fe8f 100644 --- a/src/web/browser/WBChaseWidget.h +++ b/src/web/browser/WBChaseWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBDownloadManager.cpp b/src/web/browser/WBDownloadManager.cpp index cfad8b50..6692cc48 100644 --- a/src/web/browser/WBDownloadManager.cpp +++ b/src/web/browser/WBDownloadManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBDownloadManager.h b/src/web/browser/WBDownloadManager.h index d1af7a36..16fdb961 100644 --- a/src/web/browser/WBDownloadManager.h +++ b/src/web/browser/WBDownloadManager.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBEditTableView.cpp b/src/web/browser/WBEditTableView.cpp index f7357f16..88bede00 100644 --- a/src/web/browser/WBEditTableView.cpp +++ b/src/web/browser/WBEditTableView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBEditTableView.h b/src/web/browser/WBEditTableView.h index 7b0ff700..691d44cf 100644 --- a/src/web/browser/WBEditTableView.h +++ b/src/web/browser/WBEditTableView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBHistory.cpp b/src/web/browser/WBHistory.cpp index 2d46dce0..7cd455f5 100644 --- a/src/web/browser/WBHistory.cpp +++ b/src/web/browser/WBHistory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBHistory.h b/src/web/browser/WBHistory.h index 9510da9d..e8a6afd6 100644 --- a/src/web/browser/WBHistory.h +++ b/src/web/browser/WBHistory.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBModelMenu.cpp b/src/web/browser/WBModelMenu.cpp index 66da00d6..4561baa5 100644 --- a/src/web/browser/WBModelMenu.cpp +++ b/src/web/browser/WBModelMenu.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBModelMenu.h b/src/web/browser/WBModelMenu.h index 50c794a4..71a58bf2 100644 --- a/src/web/browser/WBModelMenu.h +++ b/src/web/browser/WBModelMenu.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBSearchLineEdit.cpp b/src/web/browser/WBSearchLineEdit.cpp index 8562fb71..a74d12d1 100644 --- a/src/web/browser/WBSearchLineEdit.cpp +++ b/src/web/browser/WBSearchLineEdit.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBSearchLineEdit.h b/src/web/browser/WBSearchLineEdit.h index 2b1d2d7f..af160508 100644 --- a/src/web/browser/WBSearchLineEdit.h +++ b/src/web/browser/WBSearchLineEdit.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBSqueezeLabel.cpp b/src/web/browser/WBSqueezeLabel.cpp index fa8041d1..e1de11d1 100644 --- a/src/web/browser/WBSqueezeLabel.cpp +++ b/src/web/browser/WBSqueezeLabel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBSqueezeLabel.h b/src/web/browser/WBSqueezeLabel.h index 96105ead..f1ac5305 100644 --- a/src/web/browser/WBSqueezeLabel.h +++ b/src/web/browser/WBSqueezeLabel.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBTabWidget.cpp b/src/web/browser/WBTabWidget.cpp index d4e85e6a..141e73c1 100644 --- a/src/web/browser/WBTabWidget.cpp +++ b/src/web/browser/WBTabWidget.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBTabWidget.h b/src/web/browser/WBTabWidget.h index 15292389..bb416cbf 100644 --- a/src/web/browser/WBTabWidget.h +++ b/src/web/browser/WBTabWidget.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBToolBarSearch.cpp b/src/web/browser/WBToolBarSearch.cpp index f78ebe81..d21f98cc 100644 --- a/src/web/browser/WBToolBarSearch.cpp +++ b/src/web/browser/WBToolBarSearch.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBToolBarSearch.h b/src/web/browser/WBToolBarSearch.h index ac465334..e639118b 100644 --- a/src/web/browser/WBToolBarSearch.h +++ b/src/web/browser/WBToolBarSearch.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBUrlLineEdit.cpp b/src/web/browser/WBUrlLineEdit.cpp index 0649f806..50df2226 100644 --- a/src/web/browser/WBUrlLineEdit.cpp +++ b/src/web/browser/WBUrlLineEdit.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBUrlLineEdit.h b/src/web/browser/WBUrlLineEdit.h index dcd5490a..a98dfa9b 100644 --- a/src/web/browser/WBUrlLineEdit.h +++ b/src/web/browser/WBUrlLineEdit.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBWebTrapWebView.cpp b/src/web/browser/WBWebTrapWebView.cpp index 30373cf9..3b06ce89 100644 --- a/src/web/browser/WBWebTrapWebView.cpp +++ b/src/web/browser/WBWebTrapWebView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBWebTrapWebView.h b/src/web/browser/WBWebTrapWebView.h index b838f9b5..0167be14 100644 --- a/src/web/browser/WBWebTrapWebView.h +++ b/src/web/browser/WBWebTrapWebView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBWebView.cpp b/src/web/browser/WBWebView.cpp index ec5d1b7a..e943e5ff 100644 --- a/src/web/browser/WBWebView.cpp +++ b/src/web/browser/WBWebView.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/src/web/browser/WBWebView.h b/src/web/browser/WBWebView.h index d9119e84..413506f0 100644 --- a/src/web/browser/WBWebView.h +++ b/src/web/browser/WBWebView.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Webdoc SA + * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) * * This file is part of Open-Sankoré. * diff --git a/tools/CrashReportViewer/Bug.icns b/tools/CrashReportViewer/Bug.icns deleted file mode 100644 index 07c91b546750a7d36bb15df27643338fceb17d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41512 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 Q^YyoN;#}0yd&wpL2f_Vy8vp - - UniboardCrashreporter - - - - 0 - 0 - 874 - 515 - - - - Uniboard Crash Reporter - - - - - - - - - - - - Dump File Path - - - - - - - UB Sym File Path - - - - - - - - - - - - - - - - - - - - - - - - - - - ... - - - - - - - ... - - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - View report - - - - - - - - - - - - - diff --git a/tools/CrashReportViewer/CrashReporterSymbolSupplier.cpp b/tools/CrashReportViewer/CrashReporterSymbolSupplier.cpp deleted file mode 100644 index 4b126d98..00000000 --- a/tools/CrashReportViewer/CrashReporterSymbolSupplier.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#include -#include -#include - -#include "CrashReporterSymbolSupplier.h" -#include "google_breakpad/processor/basic_source_line_resolver.h" -#include "google_breakpad/processor/minidump.h" -#include "google_breakpad/processor/system_info.h" -#include "processor/pathname_stripper.h" - - - -CrashReporterSymbolSupplier::CrashReporterSymbolSupplier(QString pUniboardSymFiles) { - mUniboardSymFile.setFileName(pUniboardSymFiles); -} -// Returns the path to the symbol file for the given module. -google_breakpad::SymbolSupplier::SymbolResult CrashReporterSymbolSupplier::GetSymbolFile(const google_breakpad::CodeModule *module, - const google_breakpad::SystemInfo *system_info, - string *symbol_file) -{ - QString moduleName = QString::fromStdString(module->code_file()); - if (moduleName.contains("Uniboard")) - { - *symbol_file = mUniboardSymFile.fileName().toStdString(); - return FOUND; - } - return NOT_FOUND; -} - -// Returns the path to the symbol file for the given module. -google_breakpad::SymbolSupplier::SymbolResult CrashReporterSymbolSupplier::GetSymbolFile(const google_breakpad::CodeModule *module, - const google_breakpad::SystemInfo *system_info, - string *symbol_file, - string *symbol_data) -{ - SymbolSupplier::SymbolResult s = GetSymbolFile(module, - system_info, - symbol_file); - - - if (s == FOUND) { - std::ifstream in(symbol_file->c_str()); - getline(in, *symbol_data, std::string::traits_type::to_char_type( - std::string::traits_type::eof())); - in.close(); - } - - return s; -} diff --git a/tools/CrashReportViewer/CrashReporterSymbolSupplier.h b/tools/CrashReportViewer/CrashReporterSymbolSupplier.h deleted file mode 100644 index db0095df..00000000 --- a/tools/CrashReportViewer/CrashReporterSymbolSupplier.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#ifndef CRASHREPORTERSYMBOLSUPPLIER_H_ -#define CRASHREPORTERSYMBOLSUPPLIER_H_ - -#include -#include "google_breakpad/processor/symbol_supplier.h" - -using std::string; - -class CrashReporterSymbolSupplier : public google_breakpad::SymbolSupplier -{ -public: - CrashReporterSymbolSupplier(QString pUniboardSymFiles); - virtual ~CrashReporterSymbolSupplier() {} - - // Returns the path to the symbol file for the given module. - SymbolResult GetSymbolFile(const google_breakpad::CodeModule *module, - const google_breakpad::SystemInfo *system_info, - string *symbol_file); - - // Returns the path to the symbol file for the given module. - SymbolResult GetSymbolFile(const google_breakpad::CodeModule *module, - const google_breakpad::SystemInfo *system_info, - string *symbol_file, - string *symbol_data); - -private: - QFile mUniboardSymFile; - -}; -#endif /* CRASHREPORTERSYMBOLSUPPLIER_H_ */ diff --git a/tools/CrashReportViewer/CrashWindow.cpp b/tools/CrashReportViewer/CrashWindow.cpp deleted file mode 100644 index d5c93f0c..00000000 --- a/tools/CrashReportViewer/CrashWindow.cpp +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#include "CrashWindow.h" -#include "ui_CrashReportViewer.h" -#include "CrashReporterSymbolSupplier.h" - -CrashWindow::CrashWindow(QWidget* parent) : QDialog(parent) -{ - mCrashReporterUi = new Ui::UniboardCrashreporter(); - mCrashReporterUi->setupUi(this); - mCrashReporterUi->crashReportResult->setFont(QFont("Monaco", 11)); - - connect(mCrashReporterUi->viewReportButton, SIGNAL(clicked(bool)), this, SLOT(showReport())); - connect(mCrashReporterUi->dumpFileButton, SIGNAL(clicked(bool)), this, SLOT(chooseDumpFile())); - connect(mCrashReporterUi->symFileButton, SIGNAL(clicked(bool)), this, SLOT(chooseSymboleFile())); -} - -CrashWindow::~CrashWindow() -{ - // NOOP -} - -void CrashWindow::setDumpFilePath(const QString &fileName) -{ - mCrashReporterUi->dumpFilePath->setText(fileName); -} - -void CrashWindow::chooseDumpFile() -{ - QSettings settings("Mnemis", "CrashReporter"); - QString dumpFileName = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); - if (settings.contains("DumpFileName")) - { - dumpFileName = settings.value("DumpFileName").toString(); - } - QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), - dumpFileName, - tr("Dump file (*.dmp)")); - settings.setValue("DumpFileName", QVariant(fileName)); - setDumpFilePath(fileName); -} - -void CrashWindow::chooseSymboleFile() -{ - QSettings settings("Mnemis", "CrashReporter"); - QString symFileName = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); - if (settings.contains("SymFileName")) - { - symFileName = settings.value("SymFileName").toString(); - } - QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), - symFileName, - tr("Symbol file (*.sym)")); - settings.setValue("SymFileName", QVariant(fileName)); - mCrashReporterUi->symFilePath->setText(fileName); -} - -//============================================================================= -int CrashWindow::PrintRegister(const char *name, u_int32_t value, int sequence) { - if (sequence % 4 == 0) { - mReport.append("\n"); - } - // string should not exceed 200 byte!!! - size_t BufSize = 2000; - char buf[BufSize]; - - snprintf(buf, BufSize, "%6s = 0x%08x ", name, value); - QString str = QString::fromAscii(buf); - mReport.append(str); - return ++sequence; -} - -//============================================================================= -void CrashWindow::PrintStack(const CallStack* stack, const string &cpu) { - int frame_count = stack->frames()->size(); - char buffer[1024]; - - for (int frame_index = 0; frame_index < frame_count; ++frame_index) { - const StackFrame *frame = stack->frames()->at(frame_index); - const CodeModule *module = frame->module; - // string should not exceed 200 byte!!! - size_t BufSize = 2000; - char buf[BufSize]; - snprintf(buf, BufSize, "%2d ", frame_index); - mReport.append(QString::fromAscii(buf)); - - if (module) { - // Module name (20 chars max) - strcpy(buffer, PathnameStripper::File(module->code_file()).c_str()); - int maxStr = 20; - buffer[maxStr] = 0; - snprintf(buf, BufSize, "%-*s", maxStr, buffer); - mReport.append(QString::fromAscii(buf)); - - - strcpy(buffer, module->version().c_str()); - buffer[maxStr] = 0; - snprintf(buf, BufSize, "%-*s",maxStr, buffer); - mReport.append(QString::fromAscii(buf)); - - u_int64_t instruction = frame->instruction; - - // PPC only: Adjust the instruction to match that of Crash reporter. The - // instruction listed is actually the return address. See the detailed - // comments in stackwalker_ppc.cc for more information. - if (cpu == "ppc" && frame_index) - instruction += 4; - snprintf(buf, BufSize, " 0x%08llx ", instruction); - mReport.append(QString::fromAscii(buf)); - - // Function name - if (!frame->function_name.empty()) { - snprintf(buf, BufSize, "%s", frame->function_name.c_str()); - mReport.append(QString::fromAscii(buf)); - if (!frame->source_file_name.empty()) { - string source_file = PathnameStripper::File(frame->source_file_name); - snprintf(buf, BufSize, " + 0x%llx (%s:%d)", - instruction - frame->source_line_base, - source_file.c_str(), frame->source_line); - mReport.append(QString::fromAscii(buf)); - } else { - snprintf(buf, BufSize, " + 0x%llx", instruction - frame->function_base); - mReport.append(QString::fromAscii(buf)); - } - } - } - mReport.append("\n"); - } -} - -//============================================================================= -void CrashWindow::PrintRegisters(const CallStack *stack, const string &cpu) { - int sequence = 0; - const StackFrame *frame = stack->frames()->at(0); - if (cpu == "x86") { - const StackFrameX86 *frame_x86 = - reinterpret_cast(frame); - - if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EIP) - sequence = PrintRegister("eip", frame_x86->context.eip, sequence); - if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESP) - sequence = PrintRegister("esp", frame_x86->context.esp, sequence); - if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EBP) - sequence = PrintRegister("ebp", frame_x86->context.ebp, sequence); - if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EBX) - sequence = PrintRegister("ebx", frame_x86->context.ebx, sequence); - if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_ESI) - sequence = PrintRegister("esi", frame_x86->context.esi, sequence); - if (frame_x86->context_validity & StackFrameX86::CONTEXT_VALID_EDI) - sequence = PrintRegister("edi", frame_x86->context.edi, sequence); - if (frame_x86->context_validity == StackFrameX86::CONTEXT_VALID_ALL) { - sequence = PrintRegister("eax", frame_x86->context.eax, sequence); - sequence = PrintRegister("ecx", frame_x86->context.ecx, sequence); - sequence = PrintRegister("edx", frame_x86->context.edx, sequence); - sequence = PrintRegister("efl", frame_x86->context.eflags, sequence); - } - } else if (cpu == "ppc") { - const StackFramePPC *frame_ppc = - reinterpret_cast(frame); - - if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_ALL == - StackFramePPC::CONTEXT_VALID_ALL) { - sequence = PrintRegister("srr0", frame_ppc->context.srr0, sequence); - sequence = PrintRegister("srr1", frame_ppc->context.srr1, sequence); - sequence = PrintRegister("cr", frame_ppc->context.cr, sequence); - sequence = PrintRegister("xer", frame_ppc->context.xer, sequence); - sequence = PrintRegister("lr", frame_ppc->context.lr, sequence); - sequence = PrintRegister("ctr", frame_ppc->context.ctr, sequence); - sequence = PrintRegister("mq", frame_ppc->context.mq, sequence); - sequence = PrintRegister("vrsave", frame_ppc->context.vrsave, sequence); - - sequence = 0; - char buffer[5]; - for (int i = 0; i < MD_CONTEXT_PPC_GPR_COUNT; ++i) { - sprintf(buffer, "r%d", i); - sequence = PrintRegister(buffer, frame_ppc->context.gpr[i], sequence); - } - } else { - if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_SRR0) - sequence = PrintRegister("srr0", frame_ppc->context.srr0, sequence); - if (frame_ppc->context_validity & StackFramePPC::CONTEXT_VALID_GPR1) - sequence = PrintRegister("r1", frame_ppc->context.gpr[1], sequence); - } - } - - mReport.append("\n"); -} - -void CrashWindow::PrintModules(const CodeModules *modules) { - if (!modules) - return; - - mReport.append("\n"); - mReport.append("Loaded modules:\n"); - - u_int64_t main_address = 0; - const CodeModule *main_module = modules->GetMainModule(); - if (main_module) { - main_address = main_module->base_address(); - } - - unsigned int module_count = modules->module_count(); - for (unsigned int module_sequence = 0; - module_sequence < module_count; - ++module_sequence) { - const CodeModule *module = modules->GetModuleAtSequence(module_sequence); - assert(module); - u_int64_t base_address = module->base_address(); - // string should not exceed 200 byte!!! - size_t BufSize = 2000; - char buf[BufSize]; - - snprintf(buf, BufSize, "0x%08llx - 0x%08llx %s %s%s %s\n", - base_address, base_address + module->size() - 1, - PathnameStripper::File(module->code_file()).c_str(), - module->version().empty() ? "???" : module->version().c_str(), - main_module != NULL && base_address == main_address ? - " (main)" : "", - module->code_file().c_str()); - mReport.append(QString::fromAscii(buf)); - } -} - -void CrashWindow::showReport() -{ - qDebug() << "compute report"; - mReport.clear(); - QString minidump_file = mCrashReporterUi->dumpFilePath->text(); - BasicSourceLineResolver resolver; - - scoped_ptr symbol_supplier( - - new CrashReporterSymbolSupplier(mCrashReporterUi->symFilePath->text())); - scoped_ptr - minidump_processor(new MinidumpProcessor(symbol_supplier.get(), &resolver)); - ProcessState process_state; - if (minidump_processor->Process(minidump_file.toStdString(), &process_state) != - MinidumpProcessor::PROCESS_OK) { - mReport += "MinidumpProcessor::Process failed\n"; - return; - } - const SystemInfo *system_info = process_state.system_info(); - string cpu = system_info->cpu; - // Convert the time to a string - u_int32_t time_date_stamp = process_state.time_date_stamp(); - struct tm timestruct; - gmtime_r(reinterpret_cast(&time_date_stamp), ×truct); - char timestr[20]; - // string should not exceed 200 byte!!! - size_t BufSize = 2000; - char buf[BufSize]; - strftime(timestr, 20, "%Y-%m-%d %H:%M:%S", ×truct); - snprintf(buf, BufSize, "Date: %s GMT\n", timestr); - mReport.append(QString::fromAscii(buf)); - snprintf(buf, BufSize, "Operating system: %s (%s)\n", system_info->os.c_str(), - system_info->os_version.c_str()); - mReport.append(QString::fromAscii(buf)); - snprintf(buf, BufSize, "Architecture: %s\n", cpu.c_str()); - mReport.append(QString::fromAscii(buf)); - - if (process_state.crashed()) { - snprintf(buf, BufSize, "Crash reason: %s\n", process_state.crash_reason().c_str()); - mReport.append(QString::fromAscii(buf)); - snprintf(buf, BufSize, "Crash address: 0x%llx\n", process_state.crash_address()); - mReport.append(QString::fromAscii(buf)); - } else { - mReport.append("No crash\n"); - } - - int requesting_thread = process_state.requesting_thread(); - if (requesting_thread != -1) { - mReport.append("\n"); - snprintf(buf, BufSize, "Thread %d (%s)\n", - requesting_thread, - process_state.crashed() ? "crashed" : - "requested dump, did not crash"); - mReport.append(QString::fromAscii(buf)); - PrintStack(process_state.threads()->at(requesting_thread), cpu); - } - - // Print all of the threads in the dump. - int thread_count = process_state.threads()->size(); - for (int thread_index = 0; thread_index < thread_count; ++thread_index) { - if (thread_index != requesting_thread) { - // Don't print the crash thread again, it was already printed. - mReport.append("\n"); - snprintf(buf, BufSize,"Thread %d\n", thread_index); - mReport.append(QString::fromAscii(buf)); - PrintStack(process_state.threads()->at(thread_index), cpu); - } - } - - // Print the crashed registers - if (requesting_thread != -1) { - snprintf(buf, BufSize,"\nThread %d:", requesting_thread); - mReport.append(QString::fromAscii(buf)); - PrintRegisters(process_state.threads()->at(requesting_thread), cpu); - } - - // Print information about modules - PrintModules(process_state.modules()); - mCrashReporterUi->crashReportResult->setPlainText(mReport); -} - - diff --git a/tools/CrashReportViewer/CrashWindow.h b/tools/CrashReportViewer/CrashWindow.h deleted file mode 100644 index 89a5907a..00000000 --- a/tools/CrashReportViewer/CrashWindow.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#ifndef CRASHWINDOW_H_ -#define CRASHWINDOW_H_ - -#include -#include "google_breakpad/processor/basic_source_line_resolver.h" -#include "google_breakpad/processor/call_stack.h" -#include "google_breakpad/processor/code_module.h" -#include "google_breakpad/processor/minidump.h" -#include "google_breakpad/processor/minidump_processor.h" -#include "google_breakpad/processor/process_state.h" -#include "google_breakpad/processor/stack_frame_cpu.h" -#include "google_breakpad/processor/system_info.h" -#include "processor/pathname_stripper.h" -#include "processor/scoped_ptr.h" -#include "processor/simple_symbol_supplier.h" - -using std::string; - -using google_breakpad::BasicSourceLineResolver; -using google_breakpad::CallStack; -using google_breakpad::CodeModule; -using google_breakpad::CodeModules; -using google_breakpad::MinidumpProcessor; -using google_breakpad::PathnameStripper; -using google_breakpad::ProcessState; -using google_breakpad::scoped_ptr; -using google_breakpad::StackFrame; -using google_breakpad::StackFramePPC; -using google_breakpad::StackFrameX86; -using google_breakpad::SystemInfo; - -namespace Ui -{ - class UniboardCrashreporter; -} - -class CrashWindow : public QDialog -{ - Q_OBJECT; -public: - CrashWindow(QWidget* parent = 0); - virtual ~CrashWindow(); - - void setDumpFilePath(const QString &fileName); - -private slots: - void showReport(); - void chooseDumpFile(); - void chooseSymboleFile(); - -private: - int PrintRegister(const char *name, u_int32_t value, int sequence); - void PrintStack(const CallStack* stack, const string &cpu); - void PrintRegisters(const CallStack *stack, const string &cpu); - void PrintModules(const CodeModules *modules); - Ui::UniboardCrashreporter* mCrashReporterUi; - QString mReport; -}; - -#endif /* CRASHWINDOW_H_ */ diff --git a/tools/CrashReportViewer/Info.plist b/tools/CrashReportViewer/Info.plist deleted file mode 100644 index 25a3d4b6..00000000 --- a/tools/CrashReportViewer/Info.plist +++ /dev/null @@ -1,35 +0,0 @@ - - - - - CFBundleDocumentTypes - - - CFBundleTypeName - com.microsoft.minidump - CFBundleTypeRole - Viewer - LSHandlerRank - Alternate - CFBundleTypeExtensions - - dmp - - - - CFBundleExecutable - Crash Report Viewer - CFBundleGetInfoString - Crash Report Viewer 1.0 - CFBundleIconFile - Bug.icns - CFBundleIdentifier - com.mnemis.uniboard.CrashReportViewer - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - UBCv - - diff --git a/tools/CrashReportViewer/main.cpp b/tools/CrashReportViewer/main.cpp deleted file mode 100644 index a3a00122..00000000 --- a/tools/CrashReportViewer/main.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#include -#include "CrashWindow.h" -#include "client/mac/handler/exception_handler.h" - -class CRVApplication : public QApplication -{ -public: - - CRVApplication(int &argc, char **argv) : QApplication(argc, argv) {} - - bool event(QEvent *e) - { - if (e->type() == QEvent::FileOpen) - { - window.setDumpFilePath(static_cast(e)->file()); - return true; - } - return QApplication::event(e); - } - - CrashWindow window; -}; - -int main(int argc, char *argv[]) -{ - CRVApplication app(argc, argv); - - app.window.show(); - - app.exec(); -} diff --git a/tools/CrashReportViewer/release.macx.sh b/tools/CrashReportViewer/release.macx.sh deleted file mode 100644 index c6e6247c..00000000 --- a/tools/CrashReportViewer/release.macx.sh +++ /dev/null @@ -1,69 +0,0 @@ -# -------------------------------------------------------------------- -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# --------------------------------------------------------------------- - -#!/bin/bash - -# Qt base directory -QTDIR=/usr/local/Trolltech/Qt-4.6.1 - -# Executables -MACDEPLOYQT="$QTDIR/bin/macdeployqt" -QMAKE="$QTDIR/bin/qmake" - -# Directories -BUILD_DIR="build/macx" - -function abort { - printf "\033[31merror:\033[0m $1\n" - exit 1 -} - -function warn { - if [ $testMode == 1 ]; then - printf "\033[33mwarning:\033[0m $1\n" - else - abort "$1" - fi -} - -function checkExecutable { - if [ ! -x "$1" ]; then - abort "$1 not found" - fi -} - -# Check for executables -checkExecutable "$MACDEPLOYQT" -checkExecutable "$QMAKE" - - -# delete the build directory -rm -rf "$BUILD_DIR" - -# generate Makefile (makefile.macx) -$QMAKE -spec macx-g++ -config release - -# build -make - -if [ $? != 0 ]; then - abort "compilation failed" -fi - -APP="$BUILD_DIR/Crash Report Viewer.app" - -# bundle Qt Frameorks (/Library/Framworks) into the app bundle -$MACDEPLOYQT "$APP" - diff --git a/tools/pdf2image/core/UBPlatformUtils.cpp b/tools/pdf2image/core/UBPlatformUtils.cpp deleted file mode 100644 index 8a09fd5e..00000000 --- a/tools/pdf2image/core/UBPlatformUtils.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#include - -#include "UBPlatformUtils.h" - - -QString UBPlatformUtils::applicationResourcesDirectory() -{ - return QCoreApplication::applicationDirPath() + "/resources"; -} diff --git a/tools/pdf2image/core/UBPlatformUtils.h b/tools/pdf2image/core/UBPlatformUtils.h deleted file mode 100644 index 58739593..00000000 --- a/tools/pdf2image/core/UBPlatformUtils.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#include - -class UBPlatformUtils -{ - public: - static QString applicationResourcesDirectory(); -}; diff --git a/tools/pdf2image/pdf2image.cpp b/tools/pdf2image/pdf2image.cpp deleted file mode 100644 index ae47b5f8..00000000 --- a/tools/pdf2image/pdf2image.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2012 Webdoc SA - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - -#include -#include -#include "core/UBPlatformUtils.h" - -void usage(QString progName) -{ - qDebug() << "usage:" << progName << "pdfFile pageNumber width height outputDir [imageFormat=png]"; - qDebug() << "pdfFile is the path to the pdf file"; - qDebug() << "imageFormat must be one of " << QImageWriter::supportedImageFormats(); -} - -int main(int argc, char *argv[]) -{ - QCoreApplication app(argc, argv); - - QPixmapCache::setCacheLimit(0); - - QStringList args = app.arguments(); - - qreal width, height; - QString pdfFile; - QString imageFormat = "png"; - QString outputDir = "."; - int pageNumber = 1; - qDebug() << UBPlatformUtils::applicationResourcesDirectory(); - if (args.count() >= 6 && args.count() <= 7) { - pdfFile = args.at(1); - pageNumber = args.at(2).toInt(); - width = args.at(3).toDouble(); - height = args.at(4).toDouble(); - outputDir = args.at(5); - if (args.count() == 7) { - imageFormat = args.at(6); - } - } else { - usage(args.at(0)); - return 1; - } - - QString fileName = QFileInfo(pdfFile).completeBaseName(); - - if (!QImageWriter::supportedImageFormats().contains(imageFormat.toAscii())) { - usage(args.at(0)); - return 1; - } - - XPDFRenderer pdf(pdfFile); - - if (!pdf.isValid()) { - qCritical() << fileName << "appears to be an invalid pdf file"; - return 1; - } - - if (pageNumber < 1 || pageNumber > pdf.pageCount()) { - qCritical() << fileName << "has" << pdf.pageCount() << "pages"; - return 1; - } - - //qDebug() << "Converting" << pdfFile << "(" << pageNumber << ") into" << imageFormat; - - QImage image(width, height, QImage::Format_ARGB32); - - QPainter p(&image); - - p.setBackground(Qt::transparent); - p.eraseRect(0, 0, width, height); - - qreal pdfWidth = pdf.pageSize(pageNumber).width(); - qreal pdfHeight = pdf.pageSize(pageNumber).height(); - qreal ratio = qMin(width / pdfWidth, height / pdfHeight); - p.scale(ratio, ratio); - if (width > pdfWidth) { - p.translate((pdfWidth - (width / ratio)) / -2, 0); - } - if (height > pdfHeight) { - p.translate(0, (pdfHeight - (height / ratio)) / -2); - } - pdf.render(&p, pageNumber); - - QString pageStr = QString("%1").arg(pageNumber, 5, 10, QChar('0')); - QString outputPath = outputDir + "/" + fileName + pageStr + "." + imageFormat; - bool ok = image.save(outputPath, imageFormat.toAscii().constData()); - - return ok ? 0 : 1; -} diff --git a/tools/pdf2image/pdf2image.pro b/tools/pdf2image/pdf2image.pro deleted file mode 100644 index 3ef307a4..00000000 --- a/tools/pdf2image/pdf2image.pro +++ /dev/null @@ -1,40 +0,0 @@ -TARGET = "pdf2image.bin" -TEMPLATE = app -CONFIG += console warn_off - -UNIBOARD_SRC = ../../src -DESTDIR = "build/Product" -OBJECTS_DIR = "build/objects" -MOC_DIR = "build/moc" -RCC_DIR = "build/rcc" -UI_DIR = "build/ui" - -PDF_FONTS.path = $$DESTDIR/resources -PDF_FONTS.files = ../../resources/fonts - -SCRIPT.path = $$DESTDIR -SCRIPT.files = resources/** - -QT_CORE.path = $$DESTDIR -QT_CORE.files = /home/mnemis/qtsdk-2009.02/qt/lib/libQtCore.so.4.5.1 - -QT_GUI.path = $$DESTDIR/ -QT_GUI.files = /home/mnemis/qtsdk-2009.02/qt/lib/libQtGui.so.4.5.1 - -SOURCES = pdf2image.cpp \ - core/UBPlatformUtils.cpp \ - $$UNIBOARD_SRC/pdf/PDFRenderer.cpp \ - $$UNIBOARD_SRC/pdf/XPDFRenderer.cpp - -HEADERS = $$UNIBOARD_SRC/pdf/PDFRenderer.h \ - $$UNIBOARD_SRC/pdf/XPDFRenderer.h - -include(../../thirdparty/libs.pri) - -INCLUDEPATH += $$UNIBOARD_SRC/pdf - -macx { - CONFIG -= app_bundle -} - -INSTALLS = PDF_FONTS QT_CORE QT_GUI SCRIPT diff --git a/tools/pdf2image/resources/pdf2image b/tools/pdf2image/resources/pdf2image deleted file mode 100644 index 6e0f9b1b..00000000 --- a/tools/pdf2image/resources/pdf2image +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -LD_LIBRARY_PATH=`dirname $0`:$LD_LIBRARY_PATH -export LD_LIBRARY_PATH -`dirname $0`/pdf2image $* From a9ea6b917f323ac092d93106352c7c528d949619 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 29 Apr 2013 14:17:30 +0200 Subject: [PATCH 11/27] some cosmetics --- src/board/UBFeaturesController.cpp | 1 - src/domain/UBGraphicsVideoItem.cpp | 22 ---------------------- src/domain/domain.pri | 1 - 3 files changed, 24 deletions(-) delete mode 100644 src/domain/UBGraphicsVideoItem.cpp diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index b7324a1c..fe44b8c1 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -37,7 +37,6 @@ #include "domain/UBGraphicsScene.h" #include "domain/UBGraphicsSvgItem.h" #include "domain/UBGraphicsPixmapItem.h" -#include "domain/UBGraphicsVideoItem.h" #include "domain/UBGraphicsWidgetItem.h" #include "gui/UBFeaturesWidget.h" diff --git a/src/domain/UBGraphicsVideoItem.cpp b/src/domain/UBGraphicsVideoItem.cpp deleted file mode 100644 index 98cdbdba..00000000 --- a/src/domain/UBGraphicsVideoItem.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) - * - * This file is part of Open-Sankoré. - * - * Open-Sankoré is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 3 of the License, - * with a specific linking exception for the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the - * same license as the "OpenSSL" library). - * - * Open-Sankoré is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Open-Sankoré. If not, see . - */ - - diff --git a/src/domain/domain.pri b/src/domain/domain.pri index bb3751e4..953533d7 100644 --- a/src/domain/domain.pri +++ b/src/domain/domain.pri @@ -37,7 +37,6 @@ SOURCES += src/domain/UBGraphicsScene.cpp \ src/domain/UBGraphicsSvgItem.cpp \ src/domain/UBGraphicsPolygonItem.cpp \ src/domain/UBItem.cpp \ - src/domain/UBGraphicsVideoItem.cpp \ src/domain/UBGraphicsWidgetItem.cpp \ src/domain/UBGraphicsPDFItem.cpp \ src/domain/UBGraphicsTextItem.cpp \ From c55bf2af537d3ba08810a57162632912639203d7 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 29 Apr 2013 14:27:15 +0200 Subject: [PATCH 12/27] restored smoothing line --- src/domain/UBGraphicsScene.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index e3c92ec2..32e07bf6 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -742,7 +742,7 @@ void UBGraphicsScene::drawLineTo(const QPointF &pEndPoint, const qreal &pWidth, mCurrentStroke = new UBGraphicsStroke(); - QPolygonF newPolygon = UBGeometryUtils::lineToPolygon(QLineF(mPreviousPoint, pEndPoint), pWidth); + QPolygonF newPolygon = UBGeometryUtils::lineToPolygon(QLineF(mPreviousPoint, pEndPoint), mPreviousWidth, pWidth); if (!mCurrentPolygon) { @@ -767,12 +767,6 @@ void UBGraphicsScene::drawLineTo(const QPointF &pEndPoint, const qreal &pWidth, QPolygonF oldPolygons = strokePainterPath.simplified().toFillPolygon(mCurrentPolygon->sceneTransform().inverted()); newPolygon = oldPolygons.united(newPolygon); - /* foreach(QPolygonF polygon, oldPolygons) - { - newPolygon = polygon.united(newPolygon); - } - */ - mpLastPolygon = mCurrentPolygon; mCurrentPolygon->setPolygon(newPolygon); From f4ccb26909642753a0f545616be4d269371dfe1a Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 29 Apr 2013 14:49:06 +0200 Subject: [PATCH 13/27] fixed new version check --- src/document/UBDocumentController.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index f9921590..d24282a4 100644 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -1412,7 +1412,7 @@ bool UBDocumentController::isOKToOpenDocument(UBDocumentProxy* proxy) if (docVersion.isEmpty() || docVersion.startsWith("4.1") || docVersion.startsWith("4.2") || docVersion.startsWith("4.3") || docVersion.startsWith("4.4") || docVersion.startsWith("4.5") - || docVersion.startsWith("4.6")) // TODO UB 4.7 update if necessary + || docVersion.startsWith("4.6") || docVersion.startsWith("4.8")) // TODO UB 4.7 update if necessary { return true; } From ecf7c7b75d1be1ca5e869296007a8f7ea2f4e945 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Fri, 3 May 2013 09:17:42 +0200 Subject: [PATCH 14/27] fixed issue with lost of transform for strokes --- src/adaptors/UBSvgSubsetAdaptor.cpp | 18 ++++-------------- src/core/UBApplicationController.cpp | 18 +++++++++--------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 6054573b..3aa28859 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -574,7 +574,8 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else group = mStrokesList.value(parentId); - polygonItem->setTransform(group->transform()); + if(polygonItem->transform().isIdentity()) + polygonItem->setTransform(group->transform()); group->addToGroup(polygonItem); polygonItem->setStrokesGroup(group); polygonItem->setStroke(currentStroke); @@ -604,7 +605,8 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else group = mStrokesList.value(parentId); - polygonItem->setTransform(group->transform()); + if(polygonItem->transform().isIdentity()) + polygonItem->setTransform(group->transform()); group->addToGroup(polygonItem); polygonItem->setStrokesGroup(group); polygonItem->setStroke(currentStroke); @@ -1700,18 +1702,6 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol if (!svgPoints.isNull()) { -// int lenght = strlen(svgPoints.toUtf8().constData()) + 1; -// char pippo[lenght]; -// memcpy(pippo,svgPoints.toUtf8().constData(),lenght); -// char* localPosition = (char*) &pippo[0]; -// do{ -// float x = atof(localPosition); -// localPosition = strchr(localPosition,',') + 1; -// float y = atof(localPosition); -// localPosition = strchrnul(localPosition,' '); -// polygon << QPointF(x,y); -// }while(localPosition - pippo > lenght - 5); - QStringList ts = svgPoints.toString().split(QLatin1Char(' '), QString::SkipEmptyParts); diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp index b358b32c..c4d7cfc2 100644 --- a/src/core/UBApplicationController.cpp +++ b/src/core/UBApplicationController.cpp @@ -68,9 +68,9 @@ #include "core/memcheck.h" -UBApplicationController::UBApplicationController(UBBoardView *pControlView, +UBApplicationController::UBApplicationController(UBBoardView *pControlView, UBBoardView *pDisplayView, - UBMainWindow* pMainWindow, + UBMainWindow* pMainWindow, QObject* parent, UBRightPalette* rightPalette) : QObject(parent) @@ -371,7 +371,7 @@ void UBApplicationController::showBoard() UBPlatformUtils::setDesktopMode(false); mUninoteController->hideWindow(); - + mMainWindow->show(); emit mainModeChanged(Board); @@ -543,12 +543,12 @@ void UBApplicationController::showSankoreEditor() void UBApplicationController::checkUpdate() { - if(mHttp) - delete mHttp; - QUrl url("http://ftp.open-sankore.org/update.json"); - mHttp = new QHttp(url.host()); - connect(mHttp, SIGNAL(requestFinished(int,bool)), this, SLOT(updateRequestFinished(int,bool))); - mHttp->get(url.path()); +// if(mHttp) +// delete mHttp; +// QUrl url("http://ftp.open-sankore.org/update.json"); +// mHttp = new QHttp(url.host()); +// connect(mHttp, SIGNAL(requestFinished(int,bool)), this, SLOT(updateRequestFinished(int,bool))); +// mHttp->get(url.path()); } void UBApplicationController::updateRequestFinished(int id, bool error) From cbf10a0a22500e99c4e6e345a1855dfece934137 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Fri, 3 May 2013 13:49:52 +0200 Subject: [PATCH 15/27] debian package owner is now root --- buildDebianPackage.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/buildDebianPackage.sh b/buildDebianPackage.sh index e2be330f..877f4f8c 100755 --- a/buildDebianPackage.sh +++ b/buildDebianPackage.sh @@ -19,6 +19,15 @@ # functions #********************** +checkUser() +{ + if [ `id -u` -ne 0 ]; then + echo "Please run the script as root, may be using fakeroot command as follow" + echo "fakeroot ./buildDebianPackage.sh [options]" + exit 1 + fi +} + initializeVariables() { MAKE_TAG=true @@ -120,6 +129,7 @@ buildWithStandardQt(){ #********************** # script #********************** +checkUser initializeVariables buildWithStandardQt @@ -375,12 +385,13 @@ chmod 755 "$BASE_WORKING_DIR/DEBIAN/postint" mkdir -p "install/linux" DEBIAN_PACKAGE_NAME="Open-Sankore_${VERSION}_$ARCHITECTURE.deb" -fakeroot chown -R root:root $BASE_WORKING_DIR +chown -R root:root $BASE_WORKING_DIR dpkg -b "$BASE_WORKING_DIR" "install/linux/$DEBIAN_PACKAGE_NAME" -notifyProgress "Open-Sankore" "Package built" #clean up mess -fakeroot rm -rf $BASE_WORKING_DIR +rm -rf $BASE_WORKING_DIR + +notifyProgress "Open-Sankore" "Package built" if [ $CREATE_DIENA_DISTRIBUTION_ZIP == true ]; then @@ -392,3 +403,4 @@ if [ $CREATE_DIENA_DISTRIBUTION_ZIP == true ]; then notifyProgress "Open-Sankore" "Build Diena zip file for distribution" fi +exit 0 From 0bae231b1524391a7768935988489ed8cca80de3 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 6 May 2013 09:24:43 +0200 Subject: [PATCH 16/27] fixed issue with strait line strokes --- src/board/UBBoardView.cpp | 2 - src/domain/UBGraphicsScene.cpp | 84 +++++++++++++++++++++------------- 2 files changed, 52 insertions(+), 34 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index bef60522..c617900e 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -1069,9 +1069,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event) else { if(UBDrawingController::drawingController()->mActiveRuler==NULL) - { viewport()->setCursor (QCursor (Qt::BlankCursor)); - } if (scene () && !mTabletStylusIsPressed) { diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index f9a68f0d..9cb4f8e5 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -558,6 +558,7 @@ bool UBGraphicsScene::inputDeviceRelease() // Add the center cross foreach(QGraphicsItem* item, mAddedItems){ + mAddedItems.remove(item); removeItem(item); UBCoreGraphicsScene::removeItemFromDeletion(item); mArcPolygonItem->setStrokesGroup(pStrokes); @@ -732,38 +733,17 @@ void UBGraphicsScene::drawLineTo(const QPointF &pEndPoint, const qreal &pWidth, mAddedItems.clear(); } + mpLastPolygon = polygonItem; + mAddedItems.insert(polygonItem); + + // Here we add the item to the scene + addItem(polygonItem); if (!mCurrentStroke) mCurrentStroke = new UBGraphicsStroke(); + polygonItem->setStroke(mCurrentStroke); - QPolygonF newPolygon = UBGeometryUtils::lineToPolygon(QLineF(mPreviousPoint, pEndPoint), mPreviousWidth, pWidth); - - if (!mCurrentPolygon) - { - mCurrentPolygon = new UBGraphicsPolygonItem(); - mCurrentPolygon->setPolygon(newPolygon); - initPolygonItem(mCurrentPolygon); - addItem(mCurrentPolygon); - mAddedItems.insert(mCurrentPolygon); - mCurrentPolygon->setStroke(mCurrentStroke); - mpLastPolygon = mCurrentPolygon; - } - - - //newPolygon = newPolygon.united(mCurrentPolygon->polygon()); - - QPainterPath strokePainterPath; - - - strokePainterPath.addPolygon(mCurrentPolygon->sceneTransform().map(mCurrentPolygon->polygon())); - - //QList - QPolygonF oldPolygons = strokePainterPath.simplified().toFillPolygon(mCurrentPolygon->sceneTransform().inverted()); - newPolygon = oldPolygons.united(newPolygon); - - mpLastPolygon = mCurrentPolygon; - - mCurrentPolygon->setPolygon(newPolygon); + mPreviousPolygonItems.append(polygonItem); if (!bLineStyle) @@ -845,10 +825,29 @@ void UBGraphicsScene::eraseLineTo(const QPointF &pEndPoint, const qreal &pWidth) } } - //remove full polygon item for replace it by couple of polygons who creates the same stroke without a part which intersects with eraser - mRemovedItems << intersectedPolygonItem; - intersectedPolygonItem->strokesGroup()->removeFromGroup(intersectedPolygonItem); + //remove full polygon item for replace it by couple of polygons which creates the same stroke without a part intersects with eraser + mRemovedItems << intersectedPolygonItem; + + QTransform t; + bool bApplyTransform = false; + if (intersectedPolygonItem->strokesGroup()) + { + if (intersectedPolygonItem->strokesGroup()->parentItem()) + { + bApplyTransform = true; + t = intersectedPolygonItem->sceneTransform(); + } + intersectedPolygonItem->strokesGroup()->removeFromGroup(intersectedPolygonItem); + } + removeItem(intersectedPolygonItem); + if (bApplyTransform) + intersectedPolygonItem->setTransform(t); + + removeItem(intersectedPolygonItem); + + if (bApplyTransform) + intersectedPolygonItem->setTransform(t); } if (!intersectedItems.empty()) @@ -1505,9 +1504,30 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c textItem->setData(UBGraphicsItemData::ItemEditable,QVariant(false)); textItem->adjustSize(); textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + textItem->setPlainText(pString); } + else{ + textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); + if (pString == textItem->toPlainText()) + return textItem; - textItem->setPlainText(pString); + QTextCursor curCursor = textItem->textCursor(); + QFont font = textItem->font(); + QColor color = curCursor.charFormat().foreground().color(); + + textItem->setPlainText(pString); + textItem->clearFocus(); + textItem->setFont(font); + + + QTextCharFormat format; + format.setForeground(QBrush(color)); + curCursor.mergeCharFormat(format); + textItem->setTextCursor(curCursor); +// textItem->setSelected(true); + textItem->contentsChanged(); + + } textItem->clearFocus(); return textItem; From 646684e57ad2f1b52cf8bfd8bd61e8ba230d20fd Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 6 May 2013 10:57:19 +0200 Subject: [PATCH 17/27] fixed issue with magic finger --- src/domain/UBGraphicsTextItem.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/domain/UBGraphicsTextItem.cpp b/src/domain/UBGraphicsTextItem.cpp index a45b74bd..c4d401b4 100644 --- a/src/domain/UBGraphicsTextItem.cpp +++ b/src/domain/UBGraphicsTextItem.cpp @@ -93,6 +93,7 @@ void UBGraphicsTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event) // It is a cludge... if (UBStylusTool::Play == UBDrawingController::drawingController()->stylusTool()) { + QGraphicsTextItem::mousePressEvent(event); event->accept(); clearFocus(); return; From c1423f9b940ac768f006594949debc40e85afdea Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 6 May 2013 10:59:11 +0200 Subject: [PATCH 18/27] created the thumbnail on dnd from the board --- src/domain/UBGraphicsSvgItem.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index adfbac33..37f123e5 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -98,14 +98,17 @@ QVariant UBGraphicsSvgItem::itemChange(GraphicsItemChange change, const QVariant void UBGraphicsSvgItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (Delegate()->mousePressEvent(event)) - { - //NOOP - } - else - { + QMimeData* pMime = new QMimeData(); + QPixmap pixmap = toPixmapItem()->pixmap(); + pMime->setImageData(pixmap.toImage()); + Delegate()->setMimeData(pMime); + qreal k = (qreal)pixmap.width() / 100.0; + + QSize newSize((int)(pixmap.width() / k), (int)(pixmap.height() / k)); + + Delegate()->setDragPixmap(pixmap.scaled(newSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + if (!Delegate()->mousePressEvent(event)) QGraphicsSvgItem::mousePressEvent(event); - } } From 59725062a9948e68eb8691930cd320c20d240042 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 6 May 2013 11:00:44 +0200 Subject: [PATCH 19/27] some cosmetics --- src/domain/UBGraphicsItemDelegate.cpp | 97 +++++++++++++++++---------- 1 file changed, 61 insertions(+), 36 deletions(-) diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index a52f868c..47e25284 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -718,7 +718,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated) mDelegated->scene()->addItem(mDeleteButton); } - if (showUpdated /*&& mFrame->isResizing()*/) + if (showUpdated) mDeleteButton->show(); int i = 1, j = 0, k = 0; @@ -810,25 +810,29 @@ MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent) { val = 0; smallPoint = false; - setNumDigits(4); + setNumDigits(6); } MediaTimer::~MediaTimer() {} +void MediaTimer::positionHandles() +{ + digitSpace = smallPoint ? 2 : 1; + ySegLen = rect().height()*5/12; + xSegLen = ySegLen*2/3; + segLen = xSegLen; + xAdvance = segLen*(5 + digitSpace)/5; + xOffset = (rect().width() - ndigits*xAdvance + segLen/5)/2; + yOffset = rect().height() - ySegLen*2; + + setRect(rect().x(), rect().y(), xOffset + xAdvance*ndigits, rect().height()); +} void MediaTimer::drawString(const QString &s, QPainter &p, QBitArray *newPoints, bool newString) { QPoint pos; - int digitSpace = smallPoint ? 2 : 1; - int xSegLen = (rect().width()/1)*5/(ndigits*(5 + digitSpace) + digitSpace); - int ySegLen = rect().height()*5/12; - int segLen = ySegLen > xSegLen ? xSegLen : ySegLen; - int xAdvance = segLen*(5 + digitSpace)/5; - int xOffset = rect().x() + (rect().width()/1 - ndigits*xAdvance + segLen/5)/2; - int yOffset = (rect().height() - segLen*2)/2; - for (int i=0; ifont(); - f.setPointSizeF(f.pointSizeF()); - p->setFont(f); - if (smallPoint) drawString(digitStr, *p, &points, false); else @@ -1162,7 +1162,7 @@ void MediaTimer::setNumDigits(int numDigits) numDigits = 0; } if (digitStr.isNull()) { // from constructor - ndigits = numDigits; + ndigits = numDigits + numDigits/2 - 1; digitStr.fill(QLatin1Char(' '), ndigits); points.fill(0, ndigits); digitStr[ndigits - 1] = QLatin1Char('0'); // "0" is the default number @@ -1192,6 +1192,7 @@ void MediaTimer::setNumDigits(int numDigits) ndigits = numDigits; update(); } + positionHandles(); } DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGraphicsItem * parent) @@ -1222,13 +1223,6 @@ void DelegateMediaControl::paint(QPainter *painter, QPainterPath path; - mLCDTimerArea.setHeight(rect().height()); - mLCDTimerArea.setWidth(rect().height()); - - mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()-2); - mSeecArea.setHeight(rect().height()-2*mSeecAreaBorderHeight); - mSeecArea.setY(mSeecAreaBorderHeight); - path.addRoundedRect(mSeecArea, mSeecArea.height()/2, mSeecArea.height()/2); painter->fillPath(path, brush()); @@ -1258,28 +1252,55 @@ QPainterPath DelegateMediaControl::shape() const void DelegateMediaControl::positionHandles() { - mLCDTimerArea.setWidth(parentItem()->boundingRect().height()); + QRectF selfRect = rect(); + selfRect.setHeight(parentItem()->boundingRect().height()); + setRect(selfRect); + + QTime tTotal; + tTotal = tTotal.addMSecs(mTotalTimeInMs); mLCDTimerArea.setHeight(parentItem()->boundingRect().height()); + int digitsCount = 2; + int timerWidth = mLCDTimerArea.height(); + + mDisplayFormat = "ss"; + + if (tTotal.minute() > 0) + { + mDisplayFormat = "mm:" + mDisplayFormat; + digitsCount += 3; + timerWidth += mLCDTimerArea.height()*0.5; + } + + if (tTotal.hour() > 0) + { + mDisplayFormat = "hh:" + mDisplayFormat; + digitsCount += 3; + timerWidth += mLCDTimerArea.height(); + } + + lcdTimer->setNumDigits(digitsCount); + + mLCDTimerArea.setWidth(timerWidth); lcdTimer->setRect(mLCDTimerArea); - lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0); + // not the best solution, but it works. + lcdTimer->positionHandles(); + mLCDTimerArea = lcdTimer->rect(); + // ------------------------------------- + + lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); mSeecAreaBorderHeight = rect().height()/20; mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()-2); mSeecArea.setHeight(rect().height()-2*mSeecAreaBorderHeight); mSeecArea.setY(mSeecAreaBorderHeight); - - QRectF selfRect = rect(); - selfRect.setHeight(parentItem()->boundingRect().height()); - setRect(selfRect); - - lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0); } void DelegateMediaControl::update() { - QTime t; - t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); - lcdTimer->display(t.toString("m:ss")); + QTime tCurrent; + tCurrent = tCurrent.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs); + + lcdTimer->display(tCurrent.toString(mDisplayFormat)); QGraphicsRectItem::update(); } @@ -1293,8 +1314,12 @@ void DelegateMediaControl::updateTicker(qint64 time ) void DelegateMediaControl::totalTimeChanged(qint64 newTotalTime) { - mTotalTimeInMs = newTotalTime; - update(); + if (mTotalTimeInMs != newTotalTime) + { + mTotalTimeInMs = newTotalTime; + positionHandles(); + update(); + } } @@ -1331,7 +1356,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos) qreal frameWidth = rect().height() / 2; minX = frameWidth; - length = mSeecArea.width() - lcdTimer->rect().width(); + length = mSeecArea.width() - mSeecArea.height(); qreal mouseX = mousePos.x(); if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2)) From 68db0058c1cc5bec6cb5a3f75846a9065e9d2e16 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 8 May 2013 15:05:59 +0200 Subject: [PATCH 20/27] fixed issue with bad transfrom matrix --- src/adaptors/UBSvgSubsetAdaptor.cpp | 92 ++++++++++++++--------------- 1 file changed, 45 insertions(+), 47 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index bb5cf7be..79cd9f80 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -97,12 +97,12 @@ QMap UBSvgSubsetAdaptor::additionalElementToStore; QString UBSvgSubsetAdaptor::toSvgTransform(const QMatrix& matrix) { return QString("matrix(%1, %2, %3, %4, %5, %6)") - .arg(matrix.m11(), 0 , 'g') - .arg(matrix.m12(), 0 , 'g') - .arg(matrix.m21(), 0 , 'g') - .arg(matrix.m22(), 0 , 'g') - .arg(matrix.dx(), 0 , 'g') - .arg(matrix.dy(), 0 , 'g'); + .arg(matrix.m11(), 0 , 'g') + .arg(matrix.m12(), 0 , 'g') + .arg(matrix.m21(), 0 , 'g') + .arg(matrix.m22(), 0 , 'g') + .arg(matrix.dx(), 0 , 'g') + .arg(matrix.dy(), 0 , 'g'); } @@ -117,12 +117,12 @@ QMatrix UBSvgSubsetAdaptor::fromSvgTransform(const QString& transform) if (sl.size() >= 6) { matrix.setMatrix( - sl.at(0).toFloat(), - sl.at(1).toFloat(), - sl.at(2).toFloat(), - sl.at(3).toFloat(), - sl.at(4).toFloat(), - sl.at(5).toFloat()); + sl.at(0).toFloat(), + sl.at(1).toFloat(), + sl.at(2).toFloat(), + sl.at(3).toFloat(), + sl.at(4).toFloat(), + sl.at(5).toFloat()); } return matrix; @@ -340,7 +340,7 @@ QString UBSvgSubsetAdaptor::readTeacherGuideNode(int sceneIndex) mXmlReader.readNext(); if (mXmlReader.isStartElement()) { - if (mXmlReader.name() == "teacherBar" || mXmlReader.name() == "teacherGuide"){ + if (mXmlReader.name() == "teacherBar" || mXmlReader.name() == "teacherGuide"){ result.clear(); result += ""; result += "\n"; @@ -372,10 +372,10 @@ QString UBSvgSubsetAdaptor::readTeacherGuideNode(int sceneIndex) UBSvgSubsetAdaptor::UBSvgSubsetReader::UBSvgSubsetReader(UBDocumentProxy* pProxy, const QByteArray& pXmlData) - : mXmlReader(pXmlData) - , mProxy(pProxy) - , mDocumentPath(pProxy->persistencePath()) - , mGroupHasInfo(false) + : mXmlReader(pXmlData) + , mProxy(pProxy) + , mDocumentPath(pProxy->persistencePath()) + , mGroupHasInfo(false) { // NOOP } @@ -588,7 +588,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (mXmlReader.name() == "polyline") { QList polygonItems - = polygonItemsFromPolylineSvg(mScene->isDarkBackground() ? Qt::white : Qt::black); + = polygonItemsFromPolylineSvg(mScene->isDarkBackground() ? Qt::white : Qt::black); QString parentId = QUuid::createUuid().toString(); @@ -1111,9 +1111,9 @@ void UBSvgSubsetAdaptor::persistScene(UBDocumentProxy* proxy, UBGraphicsScene* p UBSvgSubsetAdaptor::UBSvgSubsetWriter::UBSvgSubsetWriter(UBDocumentProxy* proxy, UBGraphicsScene* pScene, const int pageIndex) - : mScene(pScene) - , mDocumentPath(proxy->persistencePath()) - , mPageIndex(pageIndex) + : mScene(pScene) + , mDocumentPath(proxy->persistencePath()) + , mPageIndex(pageIndex) { // NOOP @@ -1216,23 +1216,23 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex) foreach(QGraphicsItem* item, strokesGroupItem->childItems()) { UBGraphicsPolygonItem* poly = qgraphicsitem_cast(item); - if (!poly) { + if (!poly) continue; - } else if (!resultPoly) { + if (!resultPoly) { resultPoly = poly; continue; } - QPolygonF newPolygon = poly->sceneTransform().map(poly->polygon()); - QPainterPath strokePainterPath; - strokePainterPath.addPolygon(resultPoly->sceneTransform().map(resultPoly->polygon())); - QPolygonF oldPolygons = strokePainterPath.simplified().toFillPolygon(resultPoly->sceneTransform().inverted()); - newPolygon = oldPolygons.united(newPolygon); - resultPoly->setPolygon(newPolygon); - - // + + QPolygonF unitedPolygon = resultPoly->polygon().united(poly->polygon()); + resultPoly->setPolygon(unitedPolygon); items.removeOne(poly); } if (resultPoly) { + //Claudio: the painter path simplification remove all the polygons overlap + QPainterPath painterPath; + painterPath.addPolygon(resultPoly->polygon()); + painterPath = painterPath.simplified(); + resultPoly->setPolygon(painterPath.toFillPolygon()); polygonItemToSvgPolygon(resultPoly, true); items.removeOne(resultPoly); } @@ -1242,9 +1242,7 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex) UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast (item); if (polygonItem && polygonItem->isVisible()) { - UBGraphicsStroke* currentStroke = polygonItem->stroke(); - if (openStroke && (currentStroke != openStroke)) { mXmlWriter.writeEndElement(); //g @@ -1703,7 +1701,7 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol if (!svgPoints.isNull()) { QStringList ts = svgPoints.toString().split(QLatin1Char(' '), - QString::SkipEmptyParts); + QString::SkipEmptyParts); foreach(const QString sPoint, ts) { @@ -1998,7 +1996,7 @@ QList UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItem if (!svgPoints.isNull()) { QStringList ts = svgPoints.toString().split(QLatin1Char(' '), - QString::SkipEmptyParts); + QString::SkipEmptyParts); QList points; @@ -2370,9 +2368,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g { if (!svgX.isNull() && !svgY.isNull()) { - #ifdef Q_WS_WIN - gItem->setPos(svgX.toString().toFloat(), svgY.toString().toFloat()); - #endif +#ifdef Q_WS_WIN + gItem->setPos(svgX.toString().toFloat(), svgY.toString().toFloat()); +#endif } } @@ -2749,7 +2747,7 @@ UBGraphicsTextItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::textItemFromSvg() color.setNamedColor(ubFillOnLightBackground.toString()); if (!color.isValid()) color = Qt::black; - textItem->setColorOnLightBackground(color); + textItem->setColorOnLightBackground(color); } QString text; @@ -2779,7 +2777,7 @@ UBGraphicsTextItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::textItemFromSvg() return textItem; } - //tracking for backward capability with older versions + //tracking for backward capability with older versions } else if (mXmlReader.name() == "font") { QFont font = textItem->font(); @@ -2794,18 +2792,18 @@ UBGraphicsTextItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::textItemFromSvg() styleToken = styleToken.trimmed(); if (styleToken.startsWith(sFontSizePrefix) && styleToken.endsWith(sPixelUnit)) { int fontSize = styleToken.mid( - sFontSizePrefix.length(), - styleToken.length() - sFontSizePrefix.length() - sPixelUnit.length()).toInt(); + sFontSizePrefix.length(), + styleToken.length() - sFontSizePrefix.length() - sPixelUnit.length()).toInt(); font.setPixelSize(fontSize); } else if (styleToken.startsWith(sFontWeightPrefix)) { QString fontWeight = styleToken.mid( - sFontWeightPrefix.length(), - styleToken.length() - sFontWeightPrefix.length()); + sFontWeightPrefix.length(), + styleToken.length() - sFontWeightPrefix.length()); font.setBold(fontWeight.contains("bold")); } else if (styleToken.startsWith(sFontStylePrefix)) { QString fontStyle = styleToken.mid( - sFontStylePrefix.length(), - styleToken.length() - sFontStylePrefix.length()); + sFontStylePrefix.length(), + styleToken.length() - sFontStylePrefix.length()); font.setItalic(fontStyle.contains("italic")); } } @@ -3159,7 +3157,7 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() UBGraphicsTriangle::UBGraphicsTriangleOrientation orientation = UBGraphicsTriangle::orientationFromStr(orientationStringRef); triangle->setOrientation(orientation); - if (!svgX.isNull() && !svgY.isNull() && !svgWidth.isNull() && !svgHeight.isNull()) + if (!svgX.isNull() && !svgY.isNull() && !svgWidth.isNull() && !svgHeight.isNull()) { triangle->setRect(svgX.toString().toFloat(), svgY.toString().toFloat(), svgWidth.toString().toFloat(), svgHeight.toString().toFloat(), orientation); } From 849ed076a266f621655725037507150a631127f8 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Mon, 13 May 2013 12:59:29 +0200 Subject: [PATCH 21/27] on 'stroke' load the transformation is set to the stroke group too. This allows to erase a stroke on a loaded document --- src/adaptors/UBSvgSubsetAdaptor.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 79cd9f80..1db7c029 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -570,6 +570,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() group = new UBGraphicsStrokesGroup(); mStrokesList.insert(parentId,group); currentStroke = new UBGraphicsStroke(); + group->setTransform(polygonItem->transform()); } else group = mStrokesList.value(parentId); @@ -582,7 +583,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() polygonItem->show(); group->addToGroup(polygonItem); - } } else if (mXmlReader.name() == "polyline") @@ -601,6 +601,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() group = new UBGraphicsStrokesGroup(); mStrokesList.insert(parentId,group); currentStroke = new UBGraphicsStroke(); + group->setTransform(polygonItem->transform()); } else group = mStrokesList.value(parentId); From 26f96b7619565e454af4480a560278358681a342 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Tue, 14 May 2013 10:53:57 +0200 Subject: [PATCH 22/27] zvalue for strokes handled correctly --- src/adaptors/UBSvgSubsetAdaptor.cpp | 13 ++- .../UBGraphicsItemTransformUndoCommand.cpp | 3 - src/domain/UBGraphicsScene.cpp | 92 ++++++++++--------- src/domain/UBGraphicsStrokesGroup.cpp | 1 + src/gui/UBThumbnailWidget.h | 3 +- 5 files changed, 59 insertions(+), 53 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 1db7c029..435b6373 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -571,12 +571,14 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mStrokesList.insert(parentId,group); currentStroke = new UBGraphicsStroke(); group->setTransform(polygonItem->transform()); + UBGraphicsItem::assignZValue(group, zFromSvg); } else group = mStrokesList.value(parentId); if(polygonItem->transform().isIdentity()) polygonItem->setTransform(group->transform()); + group->addToGroup(polygonItem); polygonItem->setStrokesGroup(group); polygonItem->setStroke(currentStroke); @@ -602,12 +604,14 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mStrokesList.insert(parentId,group); currentStroke = new UBGraphicsStroke(); group->setTransform(polygonItem->transform()); + UBGraphicsItem::assignZValue(group, zFromSvg); } else group = mStrokesList.value(parentId); if(polygonItem->transform().isIdentity()) polygonItem->setTransform(group->transform()); + group->addToGroup(polygonItem); polygonItem->setStrokesGroup(group); polygonItem->setStroke(currentStroke); @@ -990,10 +994,13 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() qDebug() << "Number of detected strokes: " << mStrokesList.count(); QHashIterator iterator(mStrokesList); + qreal zValue = 0; while (iterator.hasNext()) { iterator.next(); + zValue = iterator.value()->zValue(); qDebug() << "Number of polygons : " << (int)(((UBGraphicsStrokesGroup*)iterator.value())->childItems().count()); mScene->addItem(iterator.value()); + iterator.value()->setZValue(zValue); } if (mScene) @@ -1229,12 +1236,13 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex) items.removeOne(poly); } if (resultPoly) { + resultPoly->setZValue(strokesGroupItem->zValue()); //Claudio: the painter path simplification remove all the polygons overlap QPainterPath painterPath; painterPath.addPolygon(resultPoly->polygon()); painterPath = painterPath.simplified(); resultPoly->setPolygon(painterPath.toFillPolygon()); - polygonItemToSvgPolygon(resultPoly, true); + polygonItemToSvgPolygon(resultPoly, false); items.removeOne(resultPoly); } } @@ -1701,8 +1709,7 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol if (!svgPoints.isNull()) { - QStringList ts = svgPoints.toString().split(QLatin1Char(' '), - QString::SkipEmptyParts); + QStringList ts = svgPoints.toString().split(QLatin1Char(' '), QString::SkipEmptyParts); foreach(const QString sPoint, ts) { diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.cpp b/src/domain/UBGraphicsItemTransformUndoCommand.cpp index a40d9919..316eb703 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.cpp +++ b/src/domain/UBGraphicsItemTransformUndoCommand.cpp @@ -58,7 +58,6 @@ void UBGraphicsItemTransformUndoCommand::undo() mItem->setPos(mPreviousPosition); mItem->setTransform(mPreviousTransform); mItem->setZValue(mPreviousZValue); -// UBGraphicsItem::assignZValue(mItem, mPreviousZValue); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); @@ -72,8 +71,6 @@ void UBGraphicsItemTransformUndoCommand::redo() mItem->setTransform(mCurrentTransform); mItem->setZValue(mCurrentZValue); -// UBGraphicsItem::assignZValue(mItem, /*mCurrentZValue*/mItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); - UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); if (resizableItem) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 9cb4f8e5..d6d90363 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -80,17 +80,17 @@ UBZLayerController::UBZLayerController(QGraphicsScene *scene) : { scopeMap.insert(itemLayerType::NoLayer, ItemLayerTypeData( errorNumber, errorNumber)); - scopeMap.insert(itemLayerType::BackgroundItem, ItemLayerTypeData(-10000000.0, -10000000.0 )); - scopeMap.insert(itemLayerType::ObjectItem, ItemLayerTypeData(-10000000.0, 0.0 )); - scopeMap.insert(itemLayerType::DrawingItem, ItemLayerTypeData( 0.0, 10000000.0 )); - scopeMap.insert(itemLayerType::ToolItem, ItemLayerTypeData( 10000000.0, 10000100.0 )); - scopeMap.insert(itemLayerType::CppTool, ItemLayerTypeData( 10000100.0, 10000200.0 )); - scopeMap.insert(itemLayerType::Curtain, ItemLayerTypeData( 10000200.0, 10001000.0 )); - scopeMap.insert(itemLayerType::Eraiser, ItemLayerTypeData( 10001000.0, 10001100.0 )); - scopeMap.insert(itemLayerType::Pointer, ItemLayerTypeData( 10001100.0, 10001200.0 )); - scopeMap.insert(itemLayerType::Cache, ItemLayerTypeData( 10001300.0, 10001400.0 )); + scopeMap.insert(itemLayerType::BackgroundItem, ItemLayerTypeData(-1000000.0, -1000000.0 )); + scopeMap.insert(itemLayerType::ObjectItem, ItemLayerTypeData(-1000000.0, 0.0 )); + scopeMap.insert(itemLayerType::DrawingItem, ItemLayerTypeData( 0.0, 1000000.0 )); + scopeMap.insert(itemLayerType::ToolItem, ItemLayerTypeData( 1000000.0, 1000100.0 )); + scopeMap.insert(itemLayerType::CppTool, ItemLayerTypeData( 1000100.0, 1000200.0 )); + scopeMap.insert(itemLayerType::Curtain, ItemLayerTypeData( 1000200.0, 1001000.0 )); + scopeMap.insert(itemLayerType::Eraiser, ItemLayerTypeData( 1001000.0, 1001100.0 )); + scopeMap.insert(itemLayerType::Pointer, ItemLayerTypeData( 1001100.0, 1001200.0 )); + scopeMap.insert(itemLayerType::Cache, ItemLayerTypeData( 1001300.0, 1001400.0 )); - scopeMap.insert(itemLayerType::SelectedItem, ItemLayerTypeData( 10001000.0, 10001000.0 )); + scopeMap.insert(itemLayerType::SelectedItem, ItemLayerTypeData( 1001000.0, 1001000.0 )); } qreal UBZLayerController::generateZLevel(itemLayerType::Enum key) @@ -547,47 +547,47 @@ bool UBGraphicsScene::inputDeviceRelease() { if(mArcPolygonItem){ - UBGraphicsStrokesGroup* pStrokes = new UBGraphicsStrokesGroup(); + UBGraphicsStrokesGroup* pStrokes = new UBGraphicsStrokesGroup(); - // Add the arc - mAddedItems.remove(mArcPolygonItem); - removeItem(mArcPolygonItem); - UBCoreGraphicsScene::removeItemFromDeletion(mArcPolygonItem); + // Add the arc + mAddedItems.remove(mArcPolygonItem); + removeItem(mArcPolygonItem); + UBCoreGraphicsScene::removeItemFromDeletion(mArcPolygonItem); + mArcPolygonItem->setStrokesGroup(pStrokes); + pStrokes->addToGroup(mArcPolygonItem); + + // Add the center cross + foreach(QGraphicsItem* item, mAddedItems){ + mAddedItems.remove(item); + removeItem(item); + UBCoreGraphicsScene::removeItemFromDeletion(item); mArcPolygonItem->setStrokesGroup(pStrokes); - pStrokes->addToGroup(mArcPolygonItem); - - // Add the center cross - foreach(QGraphicsItem* item, mAddedItems){ - mAddedItems.remove(item); - removeItem(item); - UBCoreGraphicsScene::removeItemFromDeletion(item); - mArcPolygonItem->setStrokesGroup(pStrokes); - pStrokes->addToGroup(item); - } + pStrokes->addToGroup(item); + } - mAddedItems.clear(); - mAddedItems << pStrokes; - addItem(pStrokes); - mDrawWithCompass = false; + mAddedItems.clear(); + mAddedItems << pStrokes; + addItem(pStrokes); + mDrawWithCompass = false; } else if (mCurrentStroke){ - UBGraphicsStrokesGroup* pStrokes = new UBGraphicsStrokesGroup(); - - // Remove the strokes that were just drawn here and replace them by a stroke item - foreach(UBGraphicsPolygonItem* poly, mCurrentStroke->polygons()){ - mPreviousPolygonItems.removeAll(poly); - removeItem(poly); - UBCoreGraphicsScene::removeItemFromDeletion(poly); - poly->setStrokesGroup(pStrokes); - pStrokes->addToGroup(poly); - } + UBGraphicsStrokesGroup* pStrokes = new UBGraphicsStrokesGroup(); + + // Remove the strokes that were just drawn here and replace them by a stroke item + foreach(UBGraphicsPolygonItem* poly, mCurrentStroke->polygons()){ + mPreviousPolygonItems.removeAll(poly); + removeItem(poly); + UBCoreGraphicsScene::removeItemFromDeletion(poly); + poly->setStrokesGroup(pStrokes); + pStrokes->addToGroup(poly); + } - // TODO LATER : Generate well pressure-interpolated polygons and create the line group with them + // TODO LATER : Generate well pressure-interpolated polygons and create the line group with them - mAddedItems.clear(); - mAddedItems << pStrokes; - addItem(pStrokes); + mAddedItems.clear(); + mAddedItems << pStrokes; + addItem(pStrokes); if (mCurrentStroke->polygons().empty()){ delete mCurrentStroke; @@ -1524,7 +1524,6 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c format.setForeground(QBrush(color)); curCursor.mergeCharFormat(format); textItem->setTextCursor(curCursor); -// textItem->setSelected(true); textItem->contentsChanged(); } @@ -1619,7 +1618,10 @@ void UBGraphicsScene::addItem(QGraphicsItem* item) { UBCoreGraphicsScene::addItem(item); - UBGraphicsItem::assignZValue(item, mZLayerController->generateZLevel(item)); + qDebug() << item->zValue(); + + qreal zvalue = mZLayerController->generateZLevel(item); + UBGraphicsItem::assignZValue(item, zvalue); if (!mTools.contains(item)) ++mItemCount; diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index 8ccf622b..c22a6ddc 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -43,6 +43,7 @@ UBGraphicsStrokesGroup::UBGraphicsStrokesGroup(QGraphicsItem *parent) setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); setFlag(QGraphicsItem::ItemIsSelectable, true); setFlag(QGraphicsItem::ItemIsMovable, true); + } UBGraphicsStrokesGroup::~UBGraphicsStrokesGroup() diff --git a/src/gui/UBThumbnailWidget.h b/src/gui/UBThumbnailWidget.h index e4bf3ec0..76a8a24e 100644 --- a/src/gui/UBThumbnailWidget.h +++ b/src/gui/UBThumbnailWidget.h @@ -97,7 +97,7 @@ class UBThumbnailWidget : public QGraphicsView QList mItemsPaths; QStringList mLabels; bool bSelectionInProgress; - bool bCanDrag; + bool bCanDrag; private: void selectAll(); @@ -161,7 +161,6 @@ class UBThumbnail { item->scene()->addItem(mSelectionItem); mSelectionItem->setZValue(item->zValue() - 1); -// UBGraphicsItem::assignZValue(mSelectionItem, item->zValue() - 1); mAddedToScene = true; } From a3881ce570ca99c84d95f1babace7f3b3ed5589d Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 15 May 2013 08:51:15 +0200 Subject: [PATCH 23/27] version upgraded --- Sankore_3.1.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index bd80f275..49dfb0de 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -10,8 +10,8 @@ CONFIG += debug_and_release \ VERSION_MAJ = 2 VERSION_MIN = 00 -VERSION_TYPE = r # a = alpha, b = beta, r = release, other => error -VERSION_PATCH = 05 +VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error +VERSION_PATCH = 06 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = $$replace(VERSION, "\\.r", "") From 33c6e11732c94351e374217ce491a40b8fe2efb1 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 15 May 2013 09:46:49 +0200 Subject: [PATCH 24/27] some storage rework --- src/adaptors/UBSvgSubsetAdaptor.cpp | 125 +++++++--------------------- src/domain/UBGraphicsScene.cpp | 17 ++-- 2 files changed, 43 insertions(+), 99 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 435b6373..f61c918f 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -443,9 +443,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() QStringRef svgSceneUuid = mXmlReader.attributes().value(mNamespaceUri, "uuid"); if (!svgSceneUuid.isNull()) - { mScene->setUuid(QUuid(svgSceneUuid.toString())); - } // introduced in UB 4.0 @@ -475,9 +473,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() QStringRef pageDpi = mXmlReader.attributes().value("pageDpi"); if (!pageDpi.isNull()) - { UBSettings::settings()->pageDpi->set(pageDpi.toString()); - } bool darkBackground = false; bool crossedBackground = false; @@ -562,7 +558,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() { polygonItem->setUuid(uuidFromSvg); - polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); UBGraphicsStrokesGroup* group; @@ -589,8 +584,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() } else if (mXmlReader.name() == "polyline") { - QList polygonItems - = polygonItemsFromPolylineSvg(mScene->isDarkBackground() ? Qt::white : Qt::black); + QList polygonItems = polygonItemsFromPolylineSvg(mScene->isDarkBackground() ? Qt::white : Qt::black); QString parentId = QUuid::createUuid().toString(); @@ -639,17 +633,13 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsPixmapItem* pixmapItem = pixmapItemFromSvg(); if (pixmapItem) { + UBGraphicsItem::assignZValue(pixmapItem, zFromSvg); + pixmapItem->setUuid(uuidFromSvg); pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); mScene->addItem(pixmapItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(pixmapItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - pixmapItem->setUuid(uuidFromSvg); - if (isBackground) mScene->setAsBackgroundObject(pixmapItem); @@ -659,17 +649,15 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (href.contains("svg")) { UBGraphicsSvgItem* svgItem = svgItemFromSvg(); - if (svgItem) { + UBGraphicsItem::assignZValue(svgItem, zFromSvg); + svgItem->setUuid(uuidFromSvg); svgItem->setFlag(QGraphicsItem::ItemIsMovable, true); svgItem->setFlag(QGraphicsItem::ItemIsSelectable, true); mScene->addItem(svgItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(svgItem, zFromSvg); - if (isBackground) mScene->setAsBackgroundObject(svgItem); @@ -685,20 +673,15 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (mXmlReader.name() == "audio") { UBGraphicsMediaItem* audioItem = audioItemFromSvg(); - if (audioItem) { + UBGraphicsItem::assignZValue(audioItem, zFromSvg); + audioItem->setUuid(uuidFromSvg); audioItem->setFlag(QGraphicsItem::ItemIsMovable, true); audioItem->setFlag(QGraphicsItem::ItemIsSelectable, true); mScene->addItem(audioItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(audioItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - audioItem->setUuid(uuidFromSvg); - audioItem->show(); //force start to load the video and display the first frame @@ -709,20 +692,15 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (mXmlReader.name() == "video") { UBGraphicsMediaItem* videoItem = videoItemFromSvg(); - if (videoItem) { + UBGraphicsItem::assignZValue(videoItem, zFromSvg); + videoItem->setUuid(uuidFromSvg); videoItem->setFlag(QGraphicsItem::ItemIsMovable, true); videoItem->setFlag(QGraphicsItem::ItemIsSelectable, true); mScene->addItem(videoItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(videoItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - videoItem->setUuid(uuidFromSvg); - videoItem->show(); //force start to load the video and display the first frame @@ -733,93 +711,73 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (mXmlReader.name() == "text")//This is for backward compatibility with proto text field prior to version 4.3 { UBGraphicsTextItem* textItem = textItemFromSvg(); - if (textItem) { + UBGraphicsItem::assignZValue(textItem, zFromSvg); + textItem->setUuid(uuidFromSvg); textItem->setFlag(QGraphicsItem::ItemIsMovable, true); textItem->setFlag(QGraphicsItem::ItemIsSelectable, true); mScene->addItem(textItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(textItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - textItem->setUuid(uuidFromSvg); - textItem->show(); } } else if (mXmlReader.name() == "curtain") { UBGraphicsCurtainItem* mask = curtainItemFromSvg(); - if (mask) { + UBGraphicsItem::assignZValue(mask, zFromSvg); + mask->setUuid(uuidFromSvg); mScene->addItem(mask); mScene->registerTool(mask); - - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(mask, zFromSvg); - - if (!uuidFromSvg.isNull()) - mask->setUuid(uuidFromSvg); } } else if (mXmlReader.name() == "ruler") { - QString ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value").toString(); UBGraphicsRuler *ruler = rulerFromSvg(); - - ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value").toString(); if (ruler) { + UBGraphicsItem::assignZValue(ruler, zFromSvg); + ruler->setUuid(uuidFromSvg); mScene->addItem(ruler); mScene->registerTool(ruler); - - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(ruler, zFromSvg); } } else if (mXmlReader.name() == "compass") { UBGraphicsCompass *compass = compassFromSvg(); - if (compass) { + UBGraphicsItem::assignZValue(compass, zFromSvg); + compass->setUuid(uuidFromSvg); mScene->addItem(compass); mScene->registerTool(compass); - - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(compass, zFromSvg); } } else if (mXmlReader.name() == "protractor") { UBGraphicsProtractor *protractor = protractorFromSvg(); - if (protractor) { + UBGraphicsItem::assignZValue(protractor, zFromSvg); + protractor->setUuid(uuidFromSvg); mScene->addItem(protractor); mScene->registerTool(protractor); - - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(protractor, zFromSvg); } } else if (mXmlReader.name() == "triangle") { UBGraphicsTriangle *triangle = triangleFromSvg(); - if (triangle) { + UBGraphicsItem::assignZValue(triangle, zFromSvg); + triangle->setUuid(uuidFromSvg); mScene->addItem(triangle); mScene->registerTool(triangle); - - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(triangle, zFromSvg); } } else if (mXmlReader.name() == "cache") @@ -827,12 +785,11 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsCache* cache = cacheFromSvg(); if(cache) { + UBGraphicsItem::assignZValue(cache, zFromSvg); + cache->setUuid(uuidFromSvg); mScene->addItem(cache); mScene->registerTool(cache); UBApplication::boardController->notifyCache(true); - - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(cache, zFromSvg); } } else if (mXmlReader.name() == "foreignObject") @@ -850,6 +807,8 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsPDFItem* pdfItem = pdfItemFromPDF(); if (pdfItem) { + UBGraphicsItem::assignZValue(pdfItem, zFromSvg); + pdfItem->setUuid(uuidFromSvg); QDesktopWidget* desktop = UBApplication::desktop(); qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2; qreal pdfScale = UBSettings::settings()->pageDpi->get().toReal()/currentDpi; @@ -859,9 +818,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mScene->addItem(pdfItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(pdfItem, zFromSvg); - if (isBackground) mScene->setAsBackgroundObject(pdfItem); @@ -875,18 +831,15 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsAppleWidgetItem* appleWidgetItem = graphicsAppleWidgetFromSvg(); if (appleWidgetItem) { + UBGraphicsItem::assignZValue(appleWidgetItem, zFromSvg); + appleWidgetItem->setUuid(uuidFromSvg); + appleWidgetItem->setFlag(QGraphicsItem::ItemIsSelectable, true); appleWidgetItem->resize(foreignObjectWidth, foreignObjectHeight); mScene->addItem(appleWidgetItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(appleWidgetItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - appleWidgetItem->setUuid(uuidFromSvg); - appleWidgetItem->show(); currentWidget = appleWidgetItem; @@ -895,21 +848,16 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (src.contains(".wgt")) { UBGraphicsW3CWidgetItem* w3cWidgetItem = graphicsW3CWidgetFromSvg(); - if (w3cWidgetItem) { + UBGraphicsItem::assignZValue(w3cWidgetItem, zFromSvg); + w3cWidgetItem->setUuid(uuidFromSvg); w3cWidgetItem->setFlag(QGraphicsItem::ItemIsSelectable, true); w3cWidgetItem->resize(foreignObjectWidth, foreignObjectHeight); mScene->addItem(w3cWidgetItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(w3cWidgetItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - w3cWidgetItem->setUuid(uuidFromSvg); - w3cWidgetItem->show(); currentWidget = w3cWidgetItem; @@ -918,7 +866,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() else if (type == "text") { UBGraphicsTextItem* textItem = textItemFromSvg(); - UBGraphicsTextItemDelegate *textDelegate = 0; if (textItem) @@ -934,17 +881,13 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() if (textItem) { + UBGraphicsItem::assignZValue(textItem, zFromSvg); + textItem->setUuid(uuidFromSvg); textItem->setFlag(QGraphicsItem::ItemIsMovable, true); textItem->setFlag(QGraphicsItem::ItemIsSelectable, true); mScene->addItem(textItem); - if (zFromSvg != UBZLayerController::errorNum()) - UBGraphicsItem::assignZValue(textItem, zFromSvg); - - if (!uuidFromSvg.isNull()) - textItem->setUuid(uuidFromSvg); - textItem->show(); } } @@ -994,13 +937,9 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() qDebug() << "Number of detected strokes: " << mStrokesList.count(); QHashIterator iterator(mStrokesList); - qreal zValue = 0; while (iterator.hasNext()) { iterator.next(); - zValue = iterator.value()->zValue(); - qDebug() << "Number of polygons : " << (int)(((UBGraphicsStrokesGroup*)iterator.value())->childItems().count()); mScene->addItem(iterator.value()); - iterator.value()->setZValue(zValue); } if (mScene) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index d6d90363..7b973e30 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -73,6 +73,9 @@ #include "core/memcheck.h" + +#define DEFAULT_Z_VALUE 0.0 + qreal UBZLayerController::errorNumber = -20000001.0; UBZLayerController::UBZLayerController(QGraphicsScene *scene) : @@ -81,8 +84,9 @@ UBZLayerController::UBZLayerController(QGraphicsScene *scene) : { scopeMap.insert(itemLayerType::NoLayer, ItemLayerTypeData( errorNumber, errorNumber)); scopeMap.insert(itemLayerType::BackgroundItem, ItemLayerTypeData(-1000000.0, -1000000.0 )); - scopeMap.insert(itemLayerType::ObjectItem, ItemLayerTypeData(-1000000.0, 0.0 )); - scopeMap.insert(itemLayerType::DrawingItem, ItemLayerTypeData( 0.0, 1000000.0 )); + // DEFAULT_Z_VALUE isn't used because it allows to easily identify new objects + scopeMap.insert(itemLayerType::ObjectItem, ItemLayerTypeData(-1000000.0, DEFAULT_Z_VALUE - 1.0)); + scopeMap.insert(itemLayerType::DrawingItem, ItemLayerTypeData( DEFAULT_Z_VALUE + 1.0, 1000000.0 )); scopeMap.insert(itemLayerType::ToolItem, ItemLayerTypeData( 1000000.0, 1000100.0 )); scopeMap.insert(itemLayerType::CppTool, ItemLayerTypeData( 1000100.0, 1000200.0 )); scopeMap.insert(itemLayerType::Curtain, ItemLayerTypeData( 1000200.0, 1001000.0 )); @@ -1618,10 +1622,11 @@ void UBGraphicsScene::addItem(QGraphicsItem* item) { UBCoreGraphicsScene::addItem(item); - qDebug() << item->zValue(); - - qreal zvalue = mZLayerController->generateZLevel(item); - UBGraphicsItem::assignZValue(item, zvalue); + // the default z value is already set. This is the case when a svg file is read + if(item->zValue() == DEFAULT_Z_VALUE || item->zValue() == UBZLayerController::errorNum()){ + qreal zvalue = mZLayerController->generateZLevel(item); + UBGraphicsItem::assignZValue(item, zvalue); + } if (!mTools.contains(item)) ++mItemCount; From feb346f6443c0fe1c704f877fe916fefef0dbea0 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 15 May 2013 11:23:01 +0200 Subject: [PATCH 25/27] some refactoring --- src/adaptors/UBSvgSubsetAdaptor.cpp | 129 +++------------------------- src/adaptors/UBSvgSubsetAdaptor.h | 3 - 2 files changed, 11 insertions(+), 121 deletions(-) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index f61c918f..546c6ed0 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -399,10 +399,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mXmlReader.readNext(); if (mXmlReader.isStartElement()) { - qreal zFromSvg = getZValueFromSvg(); - QUuid uuidFromSvg = getUuidFromSvg(); - - if (mXmlReader.name() == "svg") { if (!mScene) @@ -556,8 +552,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() if (polygonItem) { - polygonItem->setUuid(uuidFromSvg); - polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); UBGraphicsStrokesGroup* group; @@ -566,7 +560,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mStrokesList.insert(parentId,group); currentStroke = new UBGraphicsStroke(); group->setTransform(polygonItem->transform()); - UBGraphicsItem::assignZValue(group, zFromSvg); + UBGraphicsItem::assignZValue(group, polygonItem->zValue()); } else group = mStrokesList.value(parentId); @@ -598,7 +592,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() mStrokesList.insert(parentId,group); currentStroke = new UBGraphicsStroke(); group->setTransform(polygonItem->transform()); - UBGraphicsItem::assignZValue(group, zFromSvg); + UBGraphicsItem::assignZValue(group, polygonItem->zValue()); } else group = mStrokesList.value(parentId); @@ -633,8 +627,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsPixmapItem* pixmapItem = pixmapItemFromSvg(); if (pixmapItem) { - UBGraphicsItem::assignZValue(pixmapItem, zFromSvg); - pixmapItem->setUuid(uuidFromSvg); pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -651,8 +643,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsSvgItem* svgItem = svgItemFromSvg(); if (svgItem) { - UBGraphicsItem::assignZValue(svgItem, zFromSvg); - svgItem->setUuid(uuidFromSvg); svgItem->setFlag(QGraphicsItem::ItemIsMovable, true); svgItem->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -675,8 +665,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsMediaItem* audioItem = audioItemFromSvg(); if (audioItem) { - UBGraphicsItem::assignZValue(audioItem, zFromSvg); - audioItem->setUuid(uuidFromSvg); audioItem->setFlag(QGraphicsItem::ItemIsMovable, true); audioItem->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -694,8 +682,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsMediaItem* videoItem = videoItemFromSvg(); if (videoItem) { - UBGraphicsItem::assignZValue(videoItem, zFromSvg); - videoItem->setUuid(uuidFromSvg); + videoItem->setFlag(QGraphicsItem::ItemIsMovable, true); videoItem->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -713,8 +700,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsTextItem* textItem = textItemFromSvg(); if (textItem) { - UBGraphicsItem::assignZValue(textItem, zFromSvg); - textItem->setUuid(uuidFromSvg); textItem->setFlag(QGraphicsItem::ItemIsMovable, true); textItem->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -728,8 +713,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsCurtainItem* mask = curtainItemFromSvg(); if (mask) { - UBGraphicsItem::assignZValue(mask, zFromSvg); - mask->setUuid(uuidFromSvg); mScene->addItem(mask); mScene->registerTool(mask); } @@ -740,8 +723,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsRuler *ruler = rulerFromSvg(); if (ruler) { - UBGraphicsItem::assignZValue(ruler, zFromSvg); - ruler->setUuid(uuidFromSvg); mScene->addItem(ruler); mScene->registerTool(ruler); } @@ -752,8 +733,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsCompass *compass = compassFromSvg(); if (compass) { - UBGraphicsItem::assignZValue(compass, zFromSvg); - compass->setUuid(uuidFromSvg); mScene->addItem(compass); mScene->registerTool(compass); } @@ -763,8 +742,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsProtractor *protractor = protractorFromSvg(); if (protractor) { - UBGraphicsItem::assignZValue(protractor, zFromSvg); - protractor->setUuid(uuidFromSvg); mScene->addItem(protractor); mScene->registerTool(protractor); } @@ -774,8 +751,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsTriangle *triangle = triangleFromSvg(); if (triangle) { - UBGraphicsItem::assignZValue(triangle, zFromSvg); - triangle->setUuid(uuidFromSvg); mScene->addItem(triangle); mScene->registerTool(triangle); } @@ -785,8 +760,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsCache* cache = cacheFromSvg(); if(cache) { - UBGraphicsItem::assignZValue(cache, zFromSvg); - cache->setUuid(uuidFromSvg); mScene->addItem(cache); mScene->registerTool(cache); UBApplication::boardController->notifyCache(true); @@ -807,8 +780,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsPDFItem* pdfItem = pdfItemFromPDF(); if (pdfItem) { - UBGraphicsItem::assignZValue(pdfItem, zFromSvg); - pdfItem->setUuid(uuidFromSvg); QDesktopWidget* desktop = UBApplication::desktop(); qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2; qreal pdfScale = UBSettings::settings()->pageDpi->get().toReal()/currentDpi; @@ -831,9 +802,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsAppleWidgetItem* appleWidgetItem = graphicsAppleWidgetFromSvg(); if (appleWidgetItem) { - UBGraphicsItem::assignZValue(appleWidgetItem, zFromSvg); - appleWidgetItem->setUuid(uuidFromSvg); - appleWidgetItem->setFlag(QGraphicsItem::ItemIsSelectable, true); appleWidgetItem->resize(foreignObjectWidth, foreignObjectHeight); @@ -850,8 +818,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsW3CWidgetItem* w3cWidgetItem = graphicsW3CWidgetFromSvg(); if (w3cWidgetItem) { - UBGraphicsItem::assignZValue(w3cWidgetItem, zFromSvg); - w3cWidgetItem->setUuid(uuidFromSvg); w3cWidgetItem->setFlag(QGraphicsItem::ItemIsSelectable, true); w3cWidgetItem->resize(foreignObjectWidth, foreignObjectHeight); @@ -881,8 +847,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() if (textItem) { - UBGraphicsItem::assignZValue(textItem, zFromSvg); - textItem->setUuid(uuidFromSvg); textItem->setFlag(QGraphicsItem::ItemIsMovable, true); textItem->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -1642,6 +1606,8 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol { UBGraphicsPolygonItem* polygonItem = new UBGraphicsPolygonItem(); + graphicsItemFromSvg(polygonItem); + QStringRef svgPoints = mXmlReader.attributes().value("points"); QPolygonF polygon; @@ -1683,26 +1649,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol polygonItem->setPolygon(polygon); - QStringRef svgTransform = mXmlReader.attributes().value("transform"); - - QMatrix itemMatrix; - - if (!svgTransform.isNull()) - { - itemMatrix = fromSvgTransform(svgTransform.toString()); - polygonItem->setMatrix(itemMatrix); - } - QStringRef svgFill = mXmlReader.attributes().value("fill"); QColor brushColor = pDefaultColor; if (!svgFill.isNull()) - { brushColor.setNamedColor(svgFill.toString()); - } - QStringRef svgFillOpacity = mXmlReader.attributes().value("fill-opacity"); qreal opacity = 1.0; @@ -1714,17 +1667,6 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol polygonItem->setColor(brushColor); - QStringRef ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value"); - - if (!ubZValue.isNull()) - { - UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat()); - } - else - { - UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex); - } - QStringRef ubFillOnDarkBackground = mXmlReader.attributes().value(mNamespaceUri, "fill-on-dark-background"); if (!ubFillOnDarkBackground.isNull()) @@ -1799,6 +1741,7 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromLin } UBGraphicsPolygonItem* polygonItem = new UBGraphicsPolygonItem(line, lineWidth); + graphicsItemFromSvg(polygonItem); QStringRef svgStroke = mXmlReader.attributes().value("stroke"); @@ -1821,18 +1764,6 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromLin polygonItem->setColor(brushColor); - QStringRef ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value"); - - if (!ubZValue.isNull()) - { - UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat()); - } - else - { - UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex); - } - - QStringRef ubFillOnDarkBackground = mXmlReader.attributes().value(mNamespaceUri, "fill-on-dark-background"); if (!ubFillOnDarkBackground.isNull()) @@ -2223,24 +2154,21 @@ UBGraphicsMediaItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::audioItemFromSvg() //Claudio this is necessary to fix the absolute path added on Sankore 3.1 1.00.00 //The absoult path doesn't work when you want to share Sankore documents. - if(!href.startsWith("audios/")){ + if(!audioHref.startsWith("audios/")){ int indexOfAudioDirectory = href.lastIndexOf("audios"); href = mDocumentPath + "/" + href.right(href.length() - indexOfAudioDirectory); } UBGraphicsMediaItem* audioItem = new UBGraphicsMediaItem(QUrl::fromLocalFile(href)); - if(audioItem){ + if(audioItem) audioItem->connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), audioItem, SLOT(activeSceneChanged())); - } graphicsItemFromSvg(audioItem); QStringRef ubPos = mXmlReader.attributes().value(mNamespaceUri, "position"); qint64 p = 0; if (!ubPos.isNull()) - { p = ubPos.toString().toLongLong(); - } audioItem->setInitialPos(p); return audioItem; @@ -2261,7 +2189,7 @@ UBGraphicsMediaItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::videoItemFromSvg() //Claudio this is necessary to fix the absolute path added on Sankore 3.1 1.00.00 //The absoult path doesn't work when you want to share Sankore documents. - if(!href.startsWith("videos/")){ + if(!videoHref.startsWith("videos/")){ int indexOfAudioDirectory = href.lastIndexOf("videos"); href = mDocumentPath + "/" + href.right(href.length() - indexOfAudioDirectory); } @@ -2337,9 +2265,7 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g QStringRef ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value"); if (!ubZValue.isNull()) - { UBGraphicsItem::assignZValue(gItem, ubZValue.toString().toFloat()); - } UBItem* ubItem = dynamic_cast(gItem); @@ -2348,16 +2274,14 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g QStringRef ubUuid = mXmlReader.attributes().value(mNamespaceUri, "uuid"); if (!ubUuid.isNull()) - { ubItem->setUuid(QUuid(ubUuid.toString())); - } + else + ubItem->setUuid(QUuid::createUuid()); QStringRef ubSource = mXmlReader.attributes().value(mNamespaceUri, "source"); if (!ubSource.isNull()) - { ubItem->setSourceUrl(QUrl(ubSource.toString())); - } } QStringRef ubLocked = mXmlReader.attributes().value(mNamespaceUri, "locked"); @@ -2384,35 +2308,10 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g int layerAsInt = ubLayer.toString().toInt(&ok); if (ok) - { gItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(layerAsInt)); - } - } -} - -qreal UBSvgSubsetAdaptor::UBSvgSubsetReader::getZValueFromSvg() -{ - qreal result = UBZLayerController::errorNum(); - - QStringRef ubZValue = mXmlReader.attributes().value(mNamespaceUri, "z-value"); - if (!ubZValue.isNull()) { - result = ubZValue.toString().toFloat(); } - - return result; } -QUuid UBSvgSubsetAdaptor::UBSvgSubsetReader::getUuidFromSvg() -{ - QString strUuid = mXmlReader.attributes().value(mNamespaceUri, "uuid").toString(); - QUuid uuid = QUuid(strUuid); - if (!uuid.isNull()) - return uuid; - - return QUuid::createUuid(); -} - - void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsItemToSvg(QGraphicsItem* item) { mXmlWriter.writeAttribute("x", "0"); @@ -3235,9 +3134,3 @@ void UBSvgSubsetAdaptor::convertSvgImagesToImages(UBDocumentProxy* proxy) } } } - - - - - - diff --git a/src/adaptors/UBSvgSubsetAdaptor.h b/src/adaptors/UBSvgSubsetAdaptor.h index 8805cd80..cd241d7e 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.h +++ b/src/adaptors/UBSvgSubsetAdaptor.h @@ -158,9 +158,6 @@ class UBSvgSubsetAdaptor void graphicsItemFromSvg(QGraphicsItem* gItem); - qreal getZValueFromSvg(); - QUuid getUuidFromSvg(); - QXmlStreamReader mXmlReader; int mFileVersion; UBDocumentProxy *mProxy; From b2c05d49e41d7ee04e78665e5d8e350deb598b8b Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Wed, 15 May 2013 15:01:19 +0200 Subject: [PATCH 26/27] removed unused signal --- src/board/UBBoardView.cpp | 39 ++---- src/board/UBBoardView.h | 199 ++++++++++++++--------------- src/tools/UBAbstractDrawRuler.h | 3 - src/tools/UBGraphicsCompass.cpp | 4 +- src/tools/UBGraphicsCompass.h | 4 - src/tools/UBGraphicsProtractor.cpp | 1 - src/tools/UBGraphicsRuler.cpp | 1 - src/tools/UBGraphicsTriangle.cpp | 69 +++++----- 8 files changed, 146 insertions(+), 174 deletions(-) diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp index c617900e..31d1b277 100644 --- a/src/board/UBBoardView.cpp +++ b/src/board/UBBoardView.cpp @@ -176,17 +176,6 @@ UBGraphicsScene* UBBoardView::scene () return qobject_cast (QGraphicsView::scene ()); } -void UBBoardView::hideEvent (QHideEvent * event) -{ - Q_UNUSED (event); - emit hidden (); -} - -void UBBoardView::showEvent (QShowEvent * event) -{ - Q_UNUSED (event); - emit shown (); -} void UBBoardView::keyPressEvent (QKeyEvent *event) { @@ -860,19 +849,19 @@ bool UBBoardView::directTabletEvent(QEvent *event) { QTabletEvent *tEvent = static_cast(event); tEvent = new QTabletEvent(tEvent->type() - , mapFromGlobal(tEvent->pos()) - , tEvent->globalPos() - , tEvent->hiResGlobalPos() - , tEvent->device() - , tEvent->pointerType() - , tEvent->pressure() - , tEvent->xTilt() - , tEvent->yTilt() - , tEvent->tangentialPressure() - , tEvent->rotation() - , tEvent->z() - , tEvent->modifiers() - , tEvent->uniqueId()); + , mapFromGlobal(tEvent->pos()) + , tEvent->globalPos() + , tEvent->hiResGlobalPos() + , tEvent->device() + , tEvent->pointerType() + , tEvent->pressure() + , tEvent->xTilt() + , tEvent->yTilt() + , tEvent->tangentialPressure() + , tEvent->rotation() + , tEvent->z() + , tEvent->modifiers() + , tEvent->uniqueId()); if (geometry().contains(tEvent->pos())) { @@ -928,7 +917,7 @@ void UBBoardView::longPressEvent() UBDrawingController *drawingController = UBDrawingController::drawingController(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController ()->stylusTool (); - disconnect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); + disconnect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent())); if (UBStylusTool::Selector == currentTool) { diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h index 4f86e02f..ad2dcf6d 100644 --- a/src/board/UBBoardView.h +++ b/src/board/UBBoardView.h @@ -36,149 +36,144 @@ class UBBoardView : public QGraphicsView { Q_OBJECT - public: +public: - UBBoardView(UBBoardController* pController, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); - UBBoardView(UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); - virtual ~UBBoardView(); + UBBoardView(UBBoardController* pController, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); + UBBoardView(UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent = 0, bool isControl = false, bool isDesktop = false); + virtual ~UBBoardView(); - UBGraphicsScene* scene(); + UBGraphicsScene* scene(); - void forcedTabletRelease(); + void forcedTabletRelease(); - void setToolCursor(int tool); + void setToolCursor(int tool); - void rubberItems(); - void moveRubberedItems(QPointF movingVector); + void rubberItems(); + void moveRubberedItems(QPointF movingVector); - void setMultiselection(bool enable); - bool isMultipleSelectionEnabled() { return mMultipleSelectionIsEnabled; } -// work around for handling tablet events on MAC OS with Qt 4.8.0 and above + void setMultiselection(bool enable); + bool isMultipleSelectionEnabled() { return mMultipleSelectionIsEnabled; } + // work around for handling tablet events on MAC OS with Qt 4.8.0 and above #if defined(Q_WS_MACX) - bool directTabletEvent(QEvent *event); - QWidget *widgetForTabletEvent(QWidget *w, const QPoint &pos); + bool directTabletEvent(QEvent *event); + QWidget *widgetForTabletEvent(QWidget *w, const QPoint &pos); #endif - signals: +signals: - void resized(QResizeEvent* event); - void hidden(); - void shown(); - void clickOnBoard(); + void resized(QResizeEvent* event); + void shown(); + void clickOnBoard(); - protected: +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. - bool isCppTool(QGraphicsItem *item); - void handleItemsSelection(QGraphicsItem *item); - bool itemShouldReceiveMousePressEvent(QGraphicsItem *item); - bool itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item); - bool itemHaveParentWithType(QGraphicsItem *item, int type); - bool itemShouldBeMoved(QGraphicsItem *item); - QGraphicsItem* determineItemToPress(QGraphicsItem *item); - QGraphicsItem* determineItemToMove(QGraphicsItem *item); - void handleItemMousePress(QMouseEvent *event); - void handleItemMouseMove(QMouseEvent *event); + bool itemIsLocked(QGraphicsItem *item); + bool isUBItem(QGraphicsItem *item); // we should to determine items who is not UB and use general scene behavior for them. + bool isCppTool(QGraphicsItem *item); + void handleItemsSelection(QGraphicsItem *item); + bool itemShouldReceiveMousePressEvent(QGraphicsItem *item); + bool itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item); + bool itemHaveParentWithType(QGraphicsItem *item, int type); + bool itemShouldBeMoved(QGraphicsItem *item); + QGraphicsItem* determineItemToPress(QGraphicsItem *item); + QGraphicsItem* determineItemToMove(QGraphicsItem *item); + void handleItemMousePress(QMouseEvent *event); + void handleItemMouseMove(QMouseEvent *event); - virtual bool event (QEvent * e); + virtual bool event (QEvent * e); - virtual void keyPressEvent(QKeyEvent *event); - virtual void keyReleaseEvent(QKeyEvent *event); - virtual void tabletEvent(QTabletEvent * event); - virtual void mouseDoubleClickEvent(QMouseEvent *event); - virtual void mousePressEvent(QMouseEvent *event); - virtual void mouseMoveEvent(QMouseEvent *event); - virtual void mouseReleaseEvent(QMouseEvent *event); - virtual void wheelEvent(QWheelEvent *event); - virtual void leaveEvent ( QEvent * event); + virtual void keyPressEvent(QKeyEvent *event); + virtual void keyReleaseEvent(QKeyEvent *event); + virtual void tabletEvent(QTabletEvent * event); + virtual void mouseDoubleClickEvent(QMouseEvent *event); + virtual void mousePressEvent(QMouseEvent *event); + virtual void mouseMoveEvent(QMouseEvent *event); + virtual void mouseReleaseEvent(QMouseEvent *event); + virtual void wheelEvent(QWheelEvent *event); + virtual void leaveEvent ( QEvent * event); - virtual void focusOutEvent ( QFocusEvent * event ); + virtual void focusOutEvent ( QFocusEvent * event ); - virtual void drawItems(QPainter *painter, int numItems, - QGraphicsItem *items[], - const QStyleOptionGraphicsItem options[]); + virtual void drawItems(QPainter *painter, int numItems, + QGraphicsItem *items[], + const QStyleOptionGraphicsItem options[]); -// virtual void dragEnterEvent(QDragEnterEvent * event); - virtual void dropEvent(QDropEvent *event); - virtual void dragMoveEvent(QDragMoveEvent *event); + virtual void dropEvent(QDropEvent *event); + virtual void dragMoveEvent(QDragMoveEvent *event); - virtual void resizeEvent(QResizeEvent * event); + virtual void resizeEvent(QResizeEvent * event); - virtual void drawBackground(QPainter *painter, const QRectF &rect); + virtual void drawBackground(QPainter *painter, const QRectF &rect); - virtual void showEvent(QShowEvent * event); - virtual void hideEvent(QHideEvent * event); +private: - private: + void init(); - void init(); + inline bool shouldDisplayItem(QGraphicsItem *item) + { + bool ok; + int itemLayerType = item->data(UBGraphicsItemData::ItemLayerType).toInt(&ok); + return (ok && (itemLayerType >= mStartLayer && itemLayerType <= mEndLayer)); + } - inline bool shouldDisplayItem(QGraphicsItem *item) - { - bool ok; - int itemLayerType = item->data(UBGraphicsItemData::ItemLayerType).toInt(&ok); - return (ok && (itemLayerType >= mStartLayer && itemLayerType <= mEndLayer)); - } + QList processMimeData(const QMimeData* pMimeData); - QList processMimeData(const QMimeData* pMimeData); + UBBoardController* mController; - UBBoardController* mController; + int mStartLayer, mEndLayer; + bool mFilterZIndex; - int mStartLayer, mEndLayer; - bool mFilterZIndex; + bool mTabletStylusIsPressed; + bool mUsingTabletEraser; - bool mTabletStylusIsPressed; - bool mUsingTabletEraser; + bool mPendingStylusReleaseEvent; - bool mPendingStylusReleaseEvent; + bool mMouseButtonIsPressed; + QPointF mPreviousPoint; + QPoint mMouseDownPos; - bool mMouseButtonIsPressed; - QPointF mPreviousPoint; - QPoint mMouseDownPos; + bool mPenPressureSensitive; + bool mMarkerPressureSensitive; + bool mUseHighResTabletEvent; - bool mPenPressureSensitive; - bool mMarkerPressureSensitive; - bool mUseHighResTabletEvent; + QRubberBand *mRubberBand; + bool mIsCreatingTextZone; + bool mIsCreatingSceneGrabZone; - QRubberBand *mRubberBand; - bool mIsCreatingTextZone; - bool mIsCreatingSceneGrabZone; + bool isAbsurdPoint(QPoint point); - bool isAbsurdPoint(QPoint point); + bool mVirtualKeyboardActive; + bool mOkOnWidget; - bool mVirtualKeyboardActive; - bool mOkOnWidget; + bool mWidgetMoved; + QPointF mLastPressedMousePos; + QGraphicsItem *movingItem; + QMouseEvent *suspendedMousePressEvent; - bool mWidgetMoved; - QPointF mLastPressedMousePos; - QGraphicsItem *movingItem; - QMouseEvent *suspendedMousePressEvent; + bool moveRubberBand; + UBRubberBand *mUBRubberBand; - bool moveRubberBand; - UBRubberBand *mUBRubberBand; + QList mRubberedItems; + QSet mJustSelectedItems; - QList mRubberedItems; - QSet mJustSelectedItems; + int mLongPressInterval; + QTimer mLongPressTimer; - int mLongPressInterval; - QTimer mLongPressTimer; + bool mIsDragInProgress; + bool mMultipleSelectionIsEnabled; + bool bIsControl; + bool bIsDesktop; + bool mRubberBandInPlayMode; - bool mIsDragInProgress; - bool mMultipleSelectionIsEnabled; - bool bIsControl; - bool bIsDesktop; - bool mRubberBandInPlayMode; + static bool hasSelectedParents(QGraphicsItem * item); - static bool hasSelectedParents(QGraphicsItem * item); +private slots: - private slots: + void settingChanged(QVariant newValue); - void settingChanged(QVariant newValue); +public slots: - public slots: - - void virtualKeyboardActivated(bool b); - void longPressEvent(); + void virtualKeyboardActivated(bool b); + void longPressEvent(); }; diff --git a/src/tools/UBAbstractDrawRuler.h b/src/tools/UBAbstractDrawRuler.h index d286ed87..f8955381 100644 --- a/src/tools/UBAbstractDrawRuler.h +++ b/src/tools/UBAbstractDrawRuler.h @@ -44,9 +44,6 @@ public: virtual void DrawLine(const QPointF& position, qreal width); virtual void EndLine(); - signals: - void hidden(); - protected: void paint(); diff --git a/src/tools/UBGraphicsCompass.cpp b/src/tools/UBGraphicsCompass.cpp index c575e16d..6d321986 100644 --- a/src/tools/UBGraphicsCompass.cpp +++ b/src/tools/UBGraphicsCompass.cpp @@ -222,7 +222,7 @@ void UBGraphicsCompass::mousePressEvent(QGraphicsSceneMouseEvent *event) } QGraphicsRectItem::mousePressEvent(event); } - else + else closing = true; mResizeSvgItem->setVisible(mShowButtons && mResizing); @@ -299,8 +299,6 @@ void UBGraphicsCompass::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) else if (closeButtonRect().contains(event->pos())) { hide(); - - emit hidden(); event->accept(); } else diff --git a/src/tools/UBGraphicsCompass.h b/src/tools/UBGraphicsCompass.h index 7f08c65e..96263ffe 100644 --- a/src/tools/UBGraphicsCompass.h +++ b/src/tools/UBGraphicsCompass.h @@ -51,10 +51,6 @@ class UBGraphicsCompass: public QObject, public QGraphicsRectItem, public UBItem virtual void copyItemParameters(UBItem *copy) const; - signals: - - void hidden(); - protected: virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *styleOption, QWidget *widget); virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); diff --git a/src/tools/UBGraphicsProtractor.cpp b/src/tools/UBGraphicsProtractor.cpp index ae54063d..e7cd626d 100644 --- a/src/tools/UBGraphicsProtractor.cpp +++ b/src/tools/UBGraphicsProtractor.cpp @@ -240,7 +240,6 @@ void UBGraphicsProtractor::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) case Close : hide(); - emit hidden(); break; case MoveMarker : diff --git a/src/tools/UBGraphicsRuler.cpp b/src/tools/UBGraphicsRuler.cpp index cdccebde..1ecaaf2a 100644 --- a/src/tools/UBGraphicsRuler.cpp +++ b/src/tools/UBGraphicsRuler.cpp @@ -371,7 +371,6 @@ void UBGraphicsRuler::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) else if (closeButtonRect().contains(event->pos())) { hide(); - emit hidden(); event->accept(); } else diff --git a/src/tools/UBGraphicsTriangle.cpp b/src/tools/UBGraphicsTriangle.cpp index 5dbba7c5..ee53dcc9 100644 --- a/src/tools/UBGraphicsTriangle.cpp +++ b/src/tools/UBGraphicsTriangle.cpp @@ -33,7 +33,7 @@ #include "core/memcheck.h" const QRect UBGraphicsTriangle::sDefaultRect = QRect(0, 0, 800, 400); -const UBGraphicsTriangle::UBGraphicsTriangleOrientation UBGraphicsTriangle::sDefaultOrientation = +const UBGraphicsTriangle::UBGraphicsTriangleOrientation UBGraphicsTriangle::sDefaultOrientation = UBGraphicsTriangle::BottomLeft; UBGraphicsTriangle::UBGraphicsTriangle() @@ -114,7 +114,7 @@ void UBGraphicsTriangle::copyItemParameters(UBItem *copy) const { UBGraphicsTriangle* cp = dynamic_cast(copy); if (cp) - { + { cp->setPos(this->pos()); cp->setPolygon(this->polygon()); cp->setTransform(this->transform()); @@ -332,7 +332,7 @@ void UBGraphicsTriangle::paintGraduations(QPainter *painter) if (lineY <= rotationCenter().y() - ky * graduationHeight) break; } - + painter->drawLine(QLine(graduationX, rotationCenter().y(), graduationX, rotationCenter().y() - ky * graduationHeight)); if (0 == millimeters % UBGeometryUtils::millimetersPerCentimeter) { @@ -371,7 +371,7 @@ void UBGraphicsTriangle::paintGraduations(QPainter *painter) if (bText) painter->drawText( - QRectF(graduationX - textWidth / 2, + QRectF(graduationX - textWidth / 2, textY, textWidth, textHeight), Qt::AlignVCenter, text); @@ -418,23 +418,23 @@ QRectF UBGraphicsTriangle::closeButtonRect() const switch(mOrientation) { case BottomLeft: - return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, - B2.y() - mCloseSvgItem->boundingRect().height() - 5, + return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, + B2.y() - mCloseSvgItem->boundingRect().height() - 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); case TopLeft: - return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, - B2.y() + 5, + return QRectF(B2.x() - mCloseSvgItem->boundingRect().width() - 5, + B2.y() + 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); case TopRight: - return QRectF(B2.x() + 5, - B2.y() + 5, + return QRectF(B2.x() + 5, + B2.y() + 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); case BottomRight: - return QRectF(B2.x() + 5, - B2.y() - mCloseSvgItem->boundingRect().height() - 5, + return QRectF(B2.x() + 5, + B2.y() - mCloseSvgItem->boundingRect().height() - 5, mCloseSvgItem->boundingRect().width(), mCloseSvgItem->boundingRect().height()); } @@ -466,7 +466,7 @@ QPolygonF UBGraphicsTriangle::resize1Polygon() const QPointF P1(C1.x() + x1 * sArrowLength, C1.y()); QPointF P2(C1.x() + x1 * sArrowLength * rect().width()/C, C1.y() + y1 * sArrowLength * rect().height() / C); QPolygonF p; - p << C1 << P1 << P2; + p << C1 << P1 << P2; return p; } @@ -493,10 +493,10 @@ QPolygonF UBGraphicsTriangle::resize2Polygon() const break; } QPointF P1(A1.x(), A1.y() + y1 * sArrowLength); - QPointF P2(A1.x() + x1 * sArrowLength * rect().width()/C, + QPointF P2(A1.x() + x1 * sArrowLength * rect().width()/C, A1.y() + y1 * sArrowLength * rect().height() / C); QPolygonF p; - p << A1 << P1 << P2; + p << A1 << P1 << P2; return p; } @@ -506,23 +506,23 @@ QRectF UBGraphicsTriangle::hFlipRect() const switch(mOrientation) { case BottomLeft: - return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, - B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, + B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); case TopLeft: - return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, - B2.y() + 5 + dy, + return QRectF(B2.x() - mHFlipSvgItem->boundingRect().width() - 5, + B2.y() + 5 + dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); case TopRight: - return QRectF(B2.x() + 5, - B2.y() + 5 + dy, + return QRectF(B2.x() + 5, + B2.y() + 5 + dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); case BottomRight: - return QRectF(B2.x() + 5, - B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() + 5, + B2.y() - mHFlipSvgItem->boundingRect().height() - 5 - dy, mHFlipSvgItem->boundingRect().width(), mHFlipSvgItem->boundingRect().height()); } @@ -535,23 +535,23 @@ QRectF UBGraphicsTriangle::vFlipRect() const switch(mOrientation) { case BottomLeft: - return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, - B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, + B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); case TopLeft: - return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, - B2.y() + 5 + dy, + return QRectF(B2.x() - mVFlipSvgItem->boundingRect().width() - 5, + B2.y() + 5 + dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); case TopRight: - return QRectF(B2.x() + 5, - B2.y() + 5 + dy, + return QRectF(B2.x() + 5, + B2.y() + 5 + dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); case BottomRight: - return QRectF(B2.x() + 5, - B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, + return QRectF(B2.x() + 5, + B2.y() - mVFlipSvgItem->boundingRect().height() - 5 - dy, mVFlipSvgItem->boundingRect().width(), mVFlipSvgItem->boundingRect().height()); } @@ -605,13 +605,13 @@ void UBGraphicsTriangle::mousePressEvent(QGraphicsSceneMouseEvent *event) mResizing1 = true; event->accept(); } - else + else if (resize2Polygon().containsPoint(event->pos().toPoint(), Qt::OddEvenFill)) { mResizing2 = true; event->accept(); } - else + else if(rotateRect().contains(event->pos())) { mRotating = true; @@ -631,7 +631,7 @@ void UBGraphicsTriangle::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsTriangle::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - + if (!mResizing1 && !mResizing2 && !mRotating) { QGraphicsItem::mouseMoveEvent(event); @@ -716,7 +716,6 @@ void UBGraphicsTriangle::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) else if (closeButtonRect().contains(event->pos())) { hide(); - emit hidden(); event->accept(); } else if (hFlipRect().contains(event->pos())) From d3ca55c9a16f023698bfe66b4633798f42e0f773 Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Thu, 16 May 2013 15:00:35 +0200 Subject: [PATCH 27/27] fixed some unused signals --- src/board/UBBoardController.cpp | 10 +--------- src/board/UBBoardController.h | 4 +--- src/board/UBBoardPaletteManager.cpp | 7 ------- src/board/UBBoardPaletteManager.h | 5 ----- src/core/UBApplication.cpp | 2 -- src/document/UBDocumentProxy.cpp | 2 -- src/document/UBDocumentProxy.h | 3 --- src/domain/UBGraphicsScene.cpp | 2 -- src/domain/UBGraphicsScene.h | 4 ---- src/gui/UBCachePropertiesWidget.cpp | 5 ----- src/gui/UBCachePropertiesWidget.h | 3 --- 11 files changed, 2 insertions(+), 45 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 33afb520..18e56145 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -1888,10 +1888,7 @@ void UBBoardController::updateSystemScaleFactor() } if (mSystemScaleFactor != newScaleFactor) - { mSystemScaleFactor = newScaleFactor; - emit systemScaleFactorChanged(newScaleFactor); - } UBGraphicsScene::SceneViewState viewState = mActiveScene->viewState(); @@ -1956,13 +1953,8 @@ void UBBoardController::setPageSize(QSize newSize) void UBBoardController::notifyCache(bool visible) { if(visible) - { emit cacheEnabled(); - } - else - { - emit cacheDisabled(); - } + mCacheWidgetIsEnabled = visible; } diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index 66dd1de3..52270050 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -149,7 +149,7 @@ class UBBoardController : public UBDocumentContainer void setBoxing(QRect displayRect); void setToolbarTexts(); static QUrl expandWidgetToTempDir(const QByteArray& pZipedData, const QString& pExtension = QString("wgt")); -// static QRect freeRectInGlobalPos() const {return ;} + void setPageSize(QSize newSize); UBBoardPaletteManager *paletteManager() { @@ -239,12 +239,10 @@ class UBBoardController : public UBDocumentContainer void newPageAdded(); void activeSceneChanged(); void zoomChanged(qreal pZoomFactor); - void systemScaleFactorChanged(qreal pSystemScaleFactor); void penColorChanged(); void controlViewportChanged(); void backgroundChanged(); void cacheEnabled(); - void cacheDisabled(); void documentReorganized(int index); void displayMetadata(QMap metadata); void pageSelectionChanged(int index); diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index fa3eb218..cac33bde 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -821,8 +821,6 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is if( !isInit ) UBApplication::boardController->notifyPageChanged(); - - emit signal_changeMode(newMode); } void UBBoardPaletteManager::addItem(const QPixmap& pPixmap, const QPointF& pos, qreal scaleFactor, const QUrl& sourceUrl) @@ -970,11 +968,6 @@ void UBBoardPaletteManager::changeStylusPaletteOrientation(QVariant var) } -void UBBoardPaletteManager::connectToDocumentController() -{ - emit connectToDocController(); -} - void UBBoardPaletteManager::refreshPalettes() { mRightPalette->update(); diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h index 416a1374..5f05af11 100644 --- a/src/board/UBBoardPaletteManager.h +++ b/src/board/UBBoardPaletteManager.h @@ -64,7 +64,6 @@ class UBBoardPaletteManager : public QObject UBActionPalette *addItemPalette() {return mAddItemPalette;} void showVirtualKeyboard(bool show = true); void initPalettesPosAtStartup(); - void connectToDocumentController(); void refreshPalettes(); UBKeyboardPalette *mKeyboardPalette; @@ -79,10 +78,6 @@ class UBBoardPaletteManager : public QObject void startDownloads(); void stopDownloads(); - signals: - void connectToDocController(); - void signal_changeMode(eUBDockPaletteWidgetMode newMode); - public slots: void activeSceneChanged(); diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index bcb0194c..95abad24 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -317,8 +317,6 @@ int UBApplication::exec(const QString& pFileToImport) webController = new UBWebController(mainWindow); documentController = new UBDocumentController(mainWindow); - boardController->paletteManager()->connectToDocumentController(); - UBDrawingController::drawingController()->setStylusTool((int)UBStylusTool::Pen); applicationController = new UBApplicationController(boardController->controlView(), diff --git a/src/document/UBDocumentProxy.cpp b/src/document/UBDocumentProxy.cpp index 05360dd7..82145959 100644 --- a/src/document/UBDocumentProxy.cpp +++ b/src/document/UBDocumentProxy.cpp @@ -188,8 +188,6 @@ void UBDocumentProxy::setDefaultDocumentSize(QSize pSize) if (defaultDocumentSize() != pSize) { setMetaData(UBSettings::documentSize, QVariant(pSize)); - emit defaultDocumentSizeChanged(); - mIsModified = true; } } diff --git a/src/document/UBDocumentProxy.h b/src/document/UBDocumentProxy.h index 43adc634..e575375a 100644 --- a/src/document/UBDocumentProxy.h +++ b/src/document/UBDocumentProxy.h @@ -76,9 +76,6 @@ class UBDocumentProxy : public QObject int incPageCount(); int decPageCount(); - signals: - void defaultDocumentSizeChanged(); - private: void init(); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 7b973e30..6c5f9f58 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -2075,11 +2075,9 @@ void UBGraphicsScene::setNominalSize(const QSize& pSize) if (nominalSize() != pSize) { mNominalSize = pSize; - emit pageSizeChanged(); if(mDocument) mDocument->setDefaultDocumentSize(pSize); - } } diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index 2dc79fb7..84327c82 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -339,10 +339,6 @@ public slots: void zoomOutMagnifier(); void resizedMagnifier(qreal newPercent); - signals: - - void pageSizeChanged(); - protected: UBGraphicsPolygonItem* lineToPolygonItem(const QLineF& pLine, const qreal& pWidth); diff --git a/src/gui/UBCachePropertiesWidget.cpp b/src/gui/UBCachePropertiesWidget.cpp index f97043bf..5bdcdc3f 100644 --- a/src/gui/UBCachePropertiesWidget.cpp +++ b/src/gui/UBCachePropertiesWidget.cpp @@ -241,11 +241,6 @@ void UBCachePropertiesWidget::onCloseClicked() UBApplication::boardController->activeScene()->removeItem(mpCurrentCache); mpCurrentCache = NULL; - if(mCaches.empty()) - { - emit cacheListEmpty(); - } - emit hideTab(this); } } diff --git a/src/gui/UBCachePropertiesWidget.h b/src/gui/UBCachePropertiesWidget.h index 0660576a..7a6abac4 100644 --- a/src/gui/UBCachePropertiesWidget.h +++ b/src/gui/UBCachePropertiesWidget.h @@ -52,9 +52,6 @@ public: public slots: void updateCurrentCache(); -signals: - void cacheListEmpty(); - private slots: void onCloseClicked(); void updateCacheColor(QColor color);