Merge branch 'master' of github.com:Sankore/Sankore-3.1

preferencesAboutTextFull
shibakaneki 14 years ago
commit 7823babd14
  1. 7
      Sankore_3.1.pro
  2. 2
      src/board/UBLibraryController.cpp
  3. 6
      src/core/UBApplication.cpp
  4. 3
      src/core/UBApplication.h
  5. 2
      src/frameworks/UBDesktopServices_mac.cpp
  6. 2
      src/gui/UBUpdateDlg.cpp
  7. 68
      src/transition/UniboardSankoreTransition.cpp
  8. 11
      src/transition/UniboardSankoreTransition.h
  9. 5
      src/transition/transition.pri
  10. 2
      src/web/UBWebController.cpp

@ -47,6 +47,7 @@ include(src/desktop/desktop.pri)
include(src/web/web.pri) include(src/web/web.pri)
include(src/softwareupdate/softwareupdate.pri) include(src/softwareupdate/softwareupdate.pri)
include(src/paraschool/paraschool.pri) include(src/paraschool/paraschool.pri)
include(src/transition/transition.pri)
DEPENDPATH += thirdparty/mera/pdf-merger DEPENDPATH += thirdparty/mera/pdf-merger
INCLUDEPATH += thirdparty/mera/pdf-merger INCLUDEPATH += thirdparty/mera/pdf-merger
@ -346,9 +347,3 @@ INSTALLS = UB_ETC \
UB_THIRDPARTY_INTERACTIVE UB_THIRDPARTY_INTERACTIVE
OTHER_FILES += OTHER_FILES +=
HEADERS += \
src/transition/UniboardSankoreTransition.h
SOURCES += \
src/transition/UniboardSankoreTransition.cpp

@ -321,7 +321,7 @@ QImage* UBLibraryController::thumbnailForFile(UBLibElement* pElement)
QList<UBLibElement*> UBLibraryController::addVirtualElementsForItemPath(const QString& pPath) QList<UBLibElement*> UBLibraryController::addVirtualElementsForItemPath(const QString& pPath)
{ {
QList<UBLibElement*> content; QList<UBLibElement*> content;
if (pPath == mInteractiveCategoryPath.toString()) if (pPath == mInteractiveUserDirectoryPath.toLocalFile())
content << mInternalLibElements; content << mInternalLibElements;
else if (pPath == mPicturesStandardDirectoryPath.toLocalFile()){ else if (pPath == mPicturesStandardDirectoryPath.toLocalFile()){
QUrl path = QUrl::fromLocalFile(UBSettings::settings()->uniboardImageLibraryDirectory()); QUrl path = QUrl::fromLocalFile(UBSettings::settings()->uniboardImageLibraryDirectory());

@ -45,7 +45,6 @@
#include "ui_mainWindow.h" #include "ui_mainWindow.h"
#include "transition/UniboardSankoreTransition.h"
QPointer<QUndoStack> UBApplication::undoStack; QPointer<QUndoStack> UBApplication::undoStack;
@ -54,6 +53,7 @@ UBBoardController* UBApplication::boardController = 0;
UBWebController* UBApplication::webController = 0; UBWebController* UBApplication::webController = 0;
UBDocumentController* UBApplication::documentController = 0; UBDocumentController* UBApplication::documentController = 0;
UBSoftwareUpdateController* UBApplication::softwareUpdateController = 0; UBSoftwareUpdateController* UBApplication::softwareUpdateController = 0;
UniboardSankoreTransition* UBApplication::mUniboardSankoreTransition = 0;
UBMainWindow* UBApplication::mainWindow = 0; UBMainWindow* UBApplication::mainWindow = 0;
@ -299,8 +299,8 @@ int UBApplication::exec(const QString& pFileToImport)
UBLibraryController::preloadFirstOnlineLibrary(); UBLibraryController::preloadFirstOnlineLibrary();
UniboardSankoreTransition* transition = new UniboardSankoreTransition(); mUniboardSankoreTransition = new UniboardSankoreTransition();
transition->backupUniboardDirectory(); mUniboardSankoreTransition->documentTransition();
return QApplication::exec(); return QApplication::exec();
} }

@ -12,12 +12,14 @@
#include "qtsingleapplication.h" #include "qtsingleapplication.h"
#include "transition/UniboardSankoreTransition.h"
namespace Ui namespace Ui
{ {
class MainWindow; class MainWindow;
} }
class UBBoardController; class UBBoardController;
class UBWebController; class UBWebController;
class UBControlView; class UBControlView;
@ -49,6 +51,7 @@ class UBApplication : public QtSingleApplication
static UBWebController* webController; static UBWebController* webController;
static UBDocumentController* documentController; static UBDocumentController* documentController;
static UBSoftwareUpdateController* softwareUpdateController; static UBSoftwareUpdateController* softwareUpdateController;
static UniboardSankoreTransition* mUniboardSankoreTransition;
static UBMainWindow* mainWindow; static UBMainWindow* mainWindow;

@ -82,7 +82,7 @@ QString UBDesktopServices::storageLocation(StandardLocation type)
QString path = getFullPath(ref); QString path = getFullPath(ref);
if (QDesktopServices::DataLocation == type || QDesktopServices::CacheLocation == type) if (QDesktopServices::DataLocation == type || QDesktopServices::CacheLocation == type)
path += "/Sankore"; path += "/Sankore/Sankore 3.1";
return path; return path;
} }

@ -61,7 +61,7 @@ void UBUpdateDlg::onFilesUpdated(bool bResult)
if(bResult) if(bResult)
{ {
qsMsg = tr("Files update successful"); qsMsg = tr("Files update successful!\nPlease reboot the application to access the updated documents.");
} }
else else
{ {

@ -2,28 +2,25 @@
#include "core/UBSettings.h" #include "core/UBSettings.h"
#include "frameworks/UBDesktopServices.h" #include "frameworks/UBDesktopServices.h"
#include "frameworks/UBFileSystemUtils.h" #include "frameworks/UBFileSystemUtils.h"
#include "core/UBApplication.h"
#include "core/UBPersistenceManager.h"
UniboardSankoreTransition::UniboardSankoreTransition(QObject *parent) : UniboardSankoreTransition::UniboardSankoreTransition(QObject *parent) :
QObject(parent) QObject(parent)
{ {
mUniboardSourceDirectory = UBDesktopServices::storageLocation(QDesktopServices::DataLocation); mUniboardSourceDirectory = UBFileSystemUtils::normalizeFilePath(UBDesktopServices::storageLocation(QDesktopServices::DataLocation));
mUniboardSourceDirectory.replace("Sankore", "Mnemis/Uniboard"); #if defined(Q_WS_MACX)
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()
bool UniboardSankoreTransition::backupUniboardDirectory()
{ {
bool result = false; delete mTransitionDlg;
QString destinationDirectory = UBDesktopServices::storageLocation(QDesktopServices::DesktopLocation);
if(QFileInfo(destinationDirectory).exists() && QFileInfo(mUniboardSourceDirectory).exists()){
if(!destinationDirectory.endsWith("/")) destinationDirectory += "/";
result = UBFileSystemUtils::copyDir(mUniboardSourceDirectory, destinationDirectory + QFileInfo(mUniboardSourceDirectory).fileName() + "BackupData/");
if(result) documentTransition();
}
return result;
} }
void UniboardSankoreTransition::rollbackDocumentsTransition(QFileInfoList& fileInfoList) void UniboardSankoreTransition::rollbackDocumentsTransition(QFileInfoList& fileInfoList)
{ {
QFileInfoList::iterator fileInfo; QFileInfoList::iterator fileInfo;
@ -41,26 +38,61 @@ void UniboardSankoreTransition::rollbackDocumentsTransition(QFileInfoList& fileI
void UniboardSankoreTransition::documentTransition() void UniboardSankoreTransition::documentTransition()
{ {
if (QFileInfo(mUniboardSourceDirectory).exists()){
QString uniboardDocumentDirectory = mUniboardSourceDirectory + "/document"; QString uniboardDocumentDirectory = mUniboardSourceDirectory + "/document";
QString sankoreDocumentDirectory = UBSettings::uniboardDocumentDirectory();
QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(uniboardDocumentDirectory); QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(uniboardDocumentDirectory);
QString backupDirectoryPath = UBFileSystemUtils::normalizeFilePath(UBDesktopServices::storageLocation(QDesktopServices::DesktopLocation));
mTransitionDlg = new UBUpdateDlg(0, fileInfoList.count(), backupDirectoryPath);
connect(mTransitionDlg, SIGNAL(updateFiles()), this, SLOT(startDocumentTransition()));
connect(this, SIGNAL(transitionFinished(bool)), mTransitionDlg, SLOT(onFilesUpdated(bool)));
mTransitionDlg->show();
}
}
void UniboardSankoreTransition::startDocumentTransition()
{
bool result = false;
QString backupDestinationPath = mTransitionDlg->backupPath() + "/UniboardBackup";
result = UBFileSystemUtils::copyDir(mUniboardSourceDirectory, backupDestinationPath);
QString uniboardDocumentDirectory = mUniboardSourceDirectory + "/document";
QFileInfoList fileInfoList = UBFileSystemUtils::allElementsInDirectory(uniboardDocumentDirectory);
QFileInfoList::iterator fileInfo; QFileInfoList::iterator fileInfo;
bool result = true; QString sankoreDocumentDirectory = UBSettings::uniboardDocumentDirectory();
QStringList qslNewDocs;
for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) { for (fileInfo = fileInfoList.begin(); fileInfo != fileInfoList.end() && result; fileInfo += 1) {
if (fileInfo->isDir() && fileInfo->fileName().startsWith("Uniboard Document ")){ if (fileInfo->isDir() && fileInfo->fileName().startsWith("Uniboard Document ")){
QString sankoreDocumentName = fileInfo->fileName(); QString sankoreDocumentName = fileInfo->fileName();
sankoreDocumentName.replace("Uniboard","Sankore"); sankoreDocumentName.replace("Uniboard","Sankore");
result = UBFileSystemUtils::copyDir(fileInfo->filePath(),sankoreDocumentDirectory + "/" + sankoreDocumentName); result = UBFileSystemUtils::copyDir(fileInfo->filePath(),sankoreDocumentDirectory + "/" + sankoreDocumentName);
qslNewDocs << sankoreDocumentName;
} }
} }
if (!result){ if (!result){
qWarning() << "The transaction has failed during the copy of the " + fileInfo->filePath() + " document."; qWarning() << "The transaction has failed";
rollbackDocumentsTransition(fileInfoList); rollbackDocumentsTransition(fileInfoList);
UBFileSystemUtils::deleteDir(backupDestinationPath);
} }
else { else
{
UBFileSystemUtils::deleteDir(mUniboardSourceDirectory); UBFileSystemUtils::deleteDir(mUniboardSourceDirectory);
// Notify the application that new documents have been added
// foreach(QString qstr, qslNewDocs)
// {
// UBDocumentProxy* pDoc = new UBDocumentProxy();
// pDoc->setMetaData(UBSettings::documentName, qstr);
// emit docAdded(pDoc);
// }
} }
emit transitionFinished(result);
mTransitionDlg->hide();
} }

@ -3,24 +3,31 @@
#include <QObject> #include <QObject>
#include <QFileInfo> #include <QFileInfo>
#include "gui/UBUpdateDlg.h"
#include "document/UBDocumentProxy.h"
class UniboardSankoreTransition : public QObject class UniboardSankoreTransition : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit UniboardSankoreTransition(QObject *parent = 0); explicit UniboardSankoreTransition(QObject *parent = 0);
bool backupUniboardDirectory(); ~UniboardSankoreTransition();
void documentTransition(); void documentTransition();
private: private:
void rollbackDocumentsTransition(QFileInfoList& fileInfoList); void rollbackDocumentsTransition(QFileInfoList& fileInfoList);
UBUpdateDlg* mTransitionDlg;
protected: protected:
QString mUniboardSourceDirectory; QString mUniboardSourceDirectory;
signals: signals:
void transitionFinished(bool result);
void docAdded(UBDocumentProxy* doc);
public slots: private slots:
void startDocumentTransition();
}; };

@ -0,0 +1,5 @@
HEADERS += src/transition/UniboardSankoreTransition.h
SOURCES += src/transition/UniboardSankoreTransition.cpp

@ -195,7 +195,7 @@ void UBWebController::tutorialWebInstance()
void UBWebController::paraschoolWebInstance() void UBWebController::paraschoolWebInstance()
{ {
QUrl currentUrl("http://apps.dev-paraschool.com/editor"); QUrl currentUrl("http://host9.paraschool.net/editor/#home");
if (UBSettings::settings()->webUseExternalBrowser->get().toBool()) if (UBSettings::settings()->webUseExternalBrowser->get().toBool())
{ {

Loading…
Cancel
Save