From e87bd96619fc7f45ea1e9912a27f6af17fc78eab Mon Sep 17 00:00:00 2001 From: Karuma Date: Sat, 27 Jun 2026 19:42:49 +0300 Subject: [PATCH] Rebranding: replace GPL headers with proprietary EULA, remove mnemis/uniboard URIs, rename Sankore references to SaiCore --- C++StandardHeaderFile.txt | 26 +++++--------------- plugins/cffadaptor/src/UBCFFAdaptor.cpp | 24 ++++-------------- plugins/cffadaptor/src/UBCFFAdaptor.h | 24 ++++-------------- plugins/cffadaptor/src/UBCFFAdaptor_global.h | 21 +++++----------- plugins/cffadaptor/src/UBCFFConstants.h | 21 +++++----------- plugins/cffadaptor/src/UBGlobals.h | 24 ++++-------------- src/adaptors/UBSvgSubsetAdaptor.cpp | 4 +-- src/core/UBApplication.cpp | 14 +++++------ src/core/UBApplication.h | 2 +- src/core/UBSettings.cpp | 4 +-- src/domain/UBGraphicsWidgetItem.cpp | 6 ++--- src/frameworks/UBPlatformUtils_linux.cpp | 6 ++--- src/frameworks/UBPlatformUtils_win.cpp | 6 ++--- src/gui/UBFeaturesWidget.cpp | 16 ++++++------ src/gui/UBFeaturesWidget.h | 2 +- src/gui/UBStartupHintsPalette.cpp | 4 +-- src/gui/UBStartupHintsPalette.h | 2 +- src/gui/UBToolWidget.cpp | 2 +- src/web/UBEmbedController.cpp | 4 +-- 19 files changed, 69 insertions(+), 143 deletions(-) diff --git a/C++StandardHeaderFile.txt b/C++StandardHeaderFile.txt index af17dcf..399d762 100644 --- a/C++StandardHeaderFile.txt +++ b/C++StandardHeaderFile.txt @@ -1,25 +1,11 @@ /* - * Copyright (C) 2015-2016 Département de l'Instruction Publique (DIP-SEM) + * Copyright (C) 2025-2026 ООО «КАРУМА» * - * Copyright (C) 2013 Open Education Foundation + * This file is part of SaiCore. * - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour - * l'Education Numérique en Afrique (GIP ENA) + * SaiCore is proprietary software: you can NOT redistribute it and/or modify + * it without the express written permission of ООО «КАРУМА». * - * This file is part of OpenBoard. - * - * OpenBoard 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). - * - * OpenBoard 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 OpenBoard. If not, see . + * SaiCore is distributed under a proprietary EULA license. + * See the LICENSE file for details, or contact support@saicore.ru */ diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp index 17ae681..3946823 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -1,27 +1,13 @@ /* - * Copyright (C) 2015-2022 Département de l'Instruction Publique (DIP-SEM) - * - * Copyright (C) 2013 Open Education Foundation - * - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour - * l'Education Numérique en Afrique (GIP ENA) + * Copyright (C) 2025-2026 ООО «КАРУМА» * * This file is part of SaiCore. * - * SaiCore 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). + * SaiCore is proprietary software: you can NOT redistribute it and/or modify + * it without the express written permission of ООО «КАРУМА». * - * SaiCore 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 SaiCore. If not, see . + * SaiCore is distributed under a proprietary EULA license. + * See the LICENSE file for details, or contact support@saicore.ru */ diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.h b/plugins/cffadaptor/src/UBCFFAdaptor.h index f96e358..9fede55 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.h +++ b/plugins/cffadaptor/src/UBCFFAdaptor.h @@ -1,27 +1,13 @@ /* - * Copyright (C) 2015-2022 Département de l'Instruction Publique (DIP-SEM) - * - * Copyright (C) 2013 Open Education Foundation - * - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour - * l'Education Numérique en Afrique (GIP ENA) + * Copyright (C) 2025-2026 ООО «КАРУМА» * * This file is part of SaiCore. * - * SaiCore 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). + * SaiCore is proprietary software: you can NOT redistribute it and/or modify + * it without the express written permission of ООО «КАРУМА». * - * SaiCore 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 SaiCore. If not, see . + * SaiCore is distributed under a proprietary EULA license. + * See the LICENSE file for details, or contact support@saicore.ru */ diff --git a/plugins/cffadaptor/src/UBCFFAdaptor_global.h b/plugins/cffadaptor/src/UBCFFAdaptor_global.h index 3f060b9..47b4de3 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor_global.h +++ b/plugins/cffadaptor/src/UBCFFAdaptor_global.h @@ -1,22 +1,13 @@ /* - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * Copyright (C) 2025-2026 ООО «КАРУМА» * - * This file is part of Open-Sankoré. + * This file is part of SaiCore. * - * 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). + * SaiCore is proprietary software: you can NOT redistribute it and/or modify + * it without the express written permission of ООО «КАРУМА». * - * 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 . + * SaiCore is distributed under a proprietary EULA license. + * See the LICENSE file for details, or contact support@saicore.ru */ diff --git a/plugins/cffadaptor/src/UBCFFConstants.h b/plugins/cffadaptor/src/UBCFFConstants.h index 276eb75..1e18473 100644 --- a/plugins/cffadaptor/src/UBCFFConstants.h +++ b/plugins/cffadaptor/src/UBCFFConstants.h @@ -1,22 +1,13 @@ /* - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour l'Education Numérique en Afrique (GIP ENA) + * Copyright (C) 2025-2026 ООО «КАРУМА» * - * This file is part of Open-Sankoré. + * This file is part of SaiCore. * - * 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). + * SaiCore is proprietary software: you can NOT redistribute it and/or modify + * it without the express written permission of ООО «КАРУМА». * - * 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 . + * SaiCore is distributed under a proprietary EULA license. + * See the LICENSE file for details, or contact support@saicore.ru */ diff --git a/plugins/cffadaptor/src/UBGlobals.h b/plugins/cffadaptor/src/UBGlobals.h index 46435ac..3e8a25a 100644 --- a/plugins/cffadaptor/src/UBGlobals.h +++ b/plugins/cffadaptor/src/UBGlobals.h @@ -1,27 +1,13 @@ /* - * Copyright (C) 2015-2022 Département de l'Instruction Publique (DIP-SEM) - * - * Copyright (C) 2013 Open Education Foundation - * - * Copyright (C) 2010-2013 Groupement d'Intérêt Public pour - * l'Education Numérique en Afrique (GIP ENA) + * Copyright (C) 2025-2026 ООО «КАРУМА» * * This file is part of SaiCore. * - * SaiCore 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). + * SaiCore is proprietary software: you can NOT redistribute it and/or modify + * it without the express written permission of ООО «КАРУМА». * - * SaiCore 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 SaiCore. If not, see . + * SaiCore is distributed under a proprietary EULA license. + * See the LICENSE file for details, or contact support@saicore.ru */ diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 1da02b3..07d8142 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -76,7 +76,7 @@ const QString UBSvgSubsetAdaptor::sFontSizePrefix = "font-size:"; const QString UBSvgSubsetAdaptor::sPixelUnit = "px"; const QString UBSvgSubsetAdaptor::sFontWeightPrefix = "font-weight:"; const QString UBSvgSubsetAdaptor::sFontStylePrefix = "font-style:"; -const QString UBSvgSubsetAdaptor::sFormerUniboardDocumentNamespaceUri = "http://www.mnemis.com/uniboard"; +const QString UBSvgSubsetAdaptor::sFormerUniboardDocumentNamespaceUri = "https://saicore.ru/document"; const QString tElement = "element"; const QString tGroup = "group"; @@ -307,7 +307,7 @@ QUuid UBSvgSubsetAdaptor::sceneUuid(std::shared_ptr proxy, cons { auto svgSceneUuid = xml.attributes().value(UBSettings::uniboardDocumentNamespaceUri, "uuid"); if (svgSceneUuid.isNull()) - svgSceneUuid = xml.attributes().value("http://www.mnemis.com/uniboard", "uuid"); + svgSceneUuid = xml.attributes().value("https://saicore.ru/document", "uuid"); if (!svgSceneUuid.isNull()) uuid = QUuid(svgSceneUuid.toString()); diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp index 6c96d2c..e39807b 100644 --- a/src/core/UBApplication.cpp +++ b/src/core/UBApplication.cpp @@ -67,10 +67,10 @@ UBMainWindow* UBApplication::mainWindow = 0; bool UBApplication::isClosing = false; -const QString UBApplication::mimeTypeUniboardDocument = QString("application/vnd.mnemis-uniboard-document"); -const QString UBApplication::mimeTypeUniboardPage = QString("application/vnd.mnemis-uniboard-page"); -const QString UBApplication::mimeTypeUniboardPageItem = QString("application/vnd.mnemis-uniboard-page-item"); -const QString UBApplication::mimeTypeUniboardPageThumbnail = QString("application/vnd.mnemis-uniboard-thumbnail"); +const QString UBApplication::mimeTypeUniboardDocument = QString("application/vnd.saicore-document"); +const QString UBApplication::mimeTypeUniboardPage = QString("application/vnd.saicore-page"); +const QString UBApplication::mimeTypeUniboardPageItem = QString("application/vnd.saicore-page-item"); +const QString UBApplication::mimeTypeUniboardPageThumbnail = QString("application/vnd.saicore-thumbnail"); QString UBApplication::fileToOpen = ""; @@ -179,7 +179,7 @@ UBApplication::~UBApplication() staticMemoryCleaner = 0; } -QString UBApplication::checkLanguageAvailabilityForSankore(QString &language) +QString UBApplication::checkLanguageAvailabilityForSaiCore(QString &language) { QStringList availableTranslations = UBPlatformUtils::availableTranslations(); @@ -213,11 +213,11 @@ void UBApplication::setupTranslators(QStringList args) QString language(""); if(!forcedLanguage.isEmpty()) - language = checkLanguageAvailabilityForSankore(forcedLanguage); + language = checkLanguageAvailabilityForSaiCore(forcedLanguage); if(language.isEmpty()){ QString systemLanguage = UBPlatformUtils::systemLanguage(); - language = checkLanguageAvailabilityForSankore(systemLanguage); + language = checkLanguageAvailabilityForSaiCore(systemLanguage); } if(language.isEmpty()){ diff --git a/src/core/UBApplication.h b/src/core/UBApplication.h index 04e4594..15d7116 100644 --- a/src/core/UBApplication.h +++ b/src/core/UBApplication.h @@ -128,7 +128,7 @@ class UBApplication : public SingleApplication void setupTranslators(QStringList args); QList mProtoMenus; bool mIsVerbose; - QString checkLanguageAvailabilityForSankore(QString& language); + QString checkLanguageAvailabilityForSaiCore(QString& language); protected: /* #if defined(Q_OS_MAC) && !defined(QT_MAC_USE_COCOA) diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp index 4666680..fd8f6d8 100644 --- a/src/core/UBSettings.cpp +++ b/src/core/UBSettings.cpp @@ -51,8 +51,8 @@ QString UBSettings::documentDate = QString("date"); QString UBSettings::trashedDocumentGroupNamePrefix = QString("_Trash:"); -QString UBSettings::uniboardDocumentNamespaceUri = "http://uniboard.mnemis.com/document"; -QString UBSettings::uniboardApplicationNamespaceUri = "http://uniboard.mnemis.com/application"; +QString UBSettings::uniboardDocumentNamespaceUri = "https://saicore.ru/document"; +QString UBSettings::uniboardApplicationNamespaceUri = "https://saicore.ru/application"; QString UBSettings::undoCommandTransactionName = "UndoTransaction"; diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index 76fa316..a84a89d 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -869,7 +869,7 @@ void UBGraphicsWidgetItem::registerAPI() if (!mUniboardAPI) { mUniboardAPI = new UBWidgetUniboardAPI(scene(), this); - mWebEngineView->page()->webChannel()->registerObject("sankore", mUniboardAPI); + mWebEngineView->page()->webChannel()->registerObject("saicore", mUniboardAPI); } else { @@ -1354,8 +1354,8 @@ QString UBGraphicsW3CWidgetItem::createHtmlWrapperInDir(const QString& html, con #endif outConfig << "" << '\n'; outConfig << "setObjectName("SearchEngineView"); - mpSankoreAPI = new UBWidgetUniboardAPI(UBApplication::boardController->activeScene()); + mpSaiCoreAPI = new UBWidgetUniboardAPI(UBApplication::boardController->activeScene()); QWebChannel* channel = new QWebChannel(this); mpView->page()->setWebChannel(channel); - mpView->page()->webChannel()->registerObject("sankore", mpSankoreAPI); + mpView->page()->webChannel()->registerObject("saicore", mpSaiCoreAPI); UBWebController::injectScripts(mpView); mpLayout->addWidget(mpView); @@ -800,10 +800,10 @@ UBFeaturesWebView::UBFeaturesWebView(QWidget* parent, const char* name):QWidget( UBFeaturesWebView::~UBFeaturesWebView() { - if( NULL != mpSankoreAPI ) + if( NULL != mpSaiCoreAPI ) { - delete mpSankoreAPI; - mpSankoreAPI = NULL; + delete mpSaiCoreAPI; + mpSaiCoreAPI = NULL; } if( NULL != mpView ) { @@ -1156,7 +1156,7 @@ QMimeData* UBFeaturesModel::mimeData(const QModelIndexList &indexes) const mimeData->setUrls(urlList); mimeData->setFeatures(featuresList); - mimeData->setData(mimeSankoreFeatureTypes, typeData); + mimeData->setData(mimeSaiCoreFeatureTypes, typeData); return mimeData; } diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index 507c074..45cbbfa 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -300,7 +300,7 @@ public: private: QWebEngineView* mpView; QVBoxLayout* mpLayout; - UBWidgetUniboardAPI* mpSankoreAPI; + UBWidgetUniboardAPI* mpSaiCoreAPI; }; class UBFeatureProperties : public QWidget diff --git a/src/gui/UBStartupHintsPalette.cpp b/src/gui/UBStartupHintsPalette.cpp index 62a96c2..01073c5 100644 --- a/src/gui/UBStartupHintsPalette.cpp +++ b/src/gui/UBStartupHintsPalette.cpp @@ -40,10 +40,10 @@ UBStartupHintsPalette::UBStartupHintsPalette(QWidget *parent) : setLayout(mLayout); QString url = UBSettings::settings()->applicationStartupHintsDirectory() + "/index.html"; mpWebView = new UBWebEngineView(this); - mpSankoreAPI = new UBWidgetUniboardAPI(0); + mpSaiCoreAPI = new UBWidgetUniboardAPI(0); QWebChannel* channel = new QWebChannel(this); mpWebView->page()->setWebChannel(channel); - mpWebView->page()->webChannel()->registerObject("sankore", mpSankoreAPI); + mpWebView->page()->webChannel()->registerObject("saicore", mpSaiCoreAPI); UBWebController::injectScripts(mpWebView); if (QFile::exists(url)) mpWebView->setUrl(QUrl::fromLocalFile(url)); diff --git a/src/gui/UBStartupHintsPalette.h b/src/gui/UBStartupHintsPalette.h index 76c2388..ad97a33 100644 --- a/src/gui/UBStartupHintsPalette.h +++ b/src/gui/UBStartupHintsPalette.h @@ -48,7 +48,7 @@ private: QCheckBox* mShowNextTime; QVBoxLayout* mLayout; QHBoxLayout* mButtonLayout; - UBWidgetUniboardAPI *mpSankoreAPI; + UBWidgetUniboardAPI *mpSaiCoreAPI; UBWebEngineView* mpWebView; private slots: diff --git a/src/gui/UBToolWidget.cpp b/src/gui/UBToolWidget.cpp index a229860..1ebe09f 100644 --- a/src/gui/UBToolWidget.cpp +++ b/src/gui/UBToolWidget.cpp @@ -222,7 +222,7 @@ void UBToolWidget::registerAPI() mWebView->page()->setWebChannel(channel); mUniboardAPI = new UBWidgetUniboardAPI(UBApplication::boardController->activeScene(), mToolWidget); - channel->registerObject("sankore", mUniboardAPI); + channel->registerObject("saicore", mUniboardAPI); UBGraphicsW3CWidgetItem *graphicsW3cWidgetItem = dynamic_cast(mToolWidget); if (graphicsW3cWidgetItem) diff --git a/src/web/UBEmbedController.cpp b/src/web/UBEmbedController.cpp index 98fed5c..b3ccc2b 100644 --- a/src/web/UBEmbedController.cpp +++ b/src/web/UBEmbedController.cpp @@ -308,8 +308,8 @@ void UBEmbedController::generateConfig(int pWidth, int pHeight, const QString& p #endif out << "" << '\n'; out << "widgetNameLineEdit->text() << "\"" <<'\n'; + out << " xmlns:ub=\"https://saicore.ru/widgets\"" << '\n'; + out << " id=\"https://saicore.ru/" << mTrapFlashUi->widgetNameLineEdit->text() << "\"" <<'\n'; out << " version=\"2.0\"" << '\n'; out << " width=\"" << pWidth << "\"" << '\n';