diff --git a/common/changes/7.5.1/changes.html b/common/changes/7.5.1/changes.html
index 62400401d..10d17184f 100644
--- a/common/changes/7.5.1/changes.html
+++ b/common/changes/7.5.1/changes.html
@@ -1,47 +1,34 @@
-
-
ONLYOFFICE 7.5.1 - {{DATE}}
+
ONLYOFFICE 7.5.1 - October 31, 2023
Fixes
diff --git a/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.ru.html b/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.ru.html
index e6b2191b2..aa7b92009 100644
--- a/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.ru.html
+++ b/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.ru.html
@@ -85,7 +85,7 @@
-
ONLYOFFICE 7.5.1 - {{DATE}}
+
ONLYOFFICE 7.5.1 - 31 октября, 2023
Исправления
diff --git a/win-linux/package/windows/update/changes/7.5.1/changes.html b/win-linux/package/windows/update/changes/7.5.1/changes.html
index 2f6c1d8ff..f5694b6b5 100644
--- a/win-linux/package/windows/update/changes/7.5.1/changes.html
+++ b/win-linux/package/windows/update/changes/7.5.1/changes.html
@@ -46,7 +46,7 @@
-
ONLYOFFICE Desktop Editors 7.5.1 - {{DATE}}
+
ONLYOFFICE Desktop Editors 7.5.1 - October 31, 2023
Fixes
@@ -56,6 +56,7 @@
All Editors
Fixed some security issues
Fixed opening files with size more than 100MB
Fixed some issues with composite input
+
Fixed issues preventing launch application on MacOS version < 12.0
Document Editor
@@ -64,7 +65,7 @@ Document Editor
Spreadsheet Editor
- Fixed issue when cell border became hidden due to hide row with part of merged cell
- - Fixed equition transformation for Linear/Professional mode switching from context menu
+ - Fixed equation transformation for Linear/Professional mode switching from context menu
- Fixed print issue for Header/Footer
Presentation Editor
@@ -77,7 +78,7 @@ PDF Editor
- Fixed saving document through "Save copy"
- Fixed incorrect processing editor's config (editorType)
- Fixed issue for plugin "Send" when there is no email client installed
- - Fixed issue related to input was disabled on create
+ - Fixed issue related to input disabled on creating
diff --git a/win-linux/package/windows/update/changes/7.5.1/changes_ru.html b/win-linux/package/windows/update/changes/7.5.1/changes_ru.html
index e9beb6f7b..ceddaa60f 100644
--- a/win-linux/package/windows/update/changes/7.5.1/changes_ru.html
+++ b/win-linux/package/windows/update/changes/7.5.1/changes_ru.html
@@ -46,16 +46,17 @@
-
ONLYOFFICE Desktop Editors 7.5.1 - {{DATE}}
+
ONLYOFFICE Desktop Editors 7.5.1 - 31 октября, 2023
Исправления
Все редакторы
- - Исправлено применение настроек печати (диапазо) для документов и презенетаций
+ - Исправлено применение настроек печати (диапазон) для документов и презентаций
- Исправлено несколько уязвимостей, связанных с XSS
- Исправлено открытие файлов размером более 100MБ
- Исправлено несколько проблем, связанных с композитным вводом
+ - Исправлены проблемы, препятствующие запуску приложения на MacOS до версии 12.0
Редактор документов
@@ -70,14 +71,14 @@ Редактор таблиц
Редактор презентаций
- Исправлена ошибка при вставке колонтитула
- - Исправлено падение в режиме докладчика на переключении слайдов с конца демонстарции
+ - Исправлено падение в режиме докладчика на переключении слайдов с конца демонстрации
- PDF Editor
+ Редактор PDF
- Исправлено сохранение файла через опцию "Сохранить копию"
- - Исправлена некорректная обработка конфига радактора (параметр editorType)
- - Исправлено проблема, связанная с плагином "Отправить", если в системе не установлен Email клиент
- - Исправлена проблема, связанная с блокировкной текстового поля при создании
+ - Исправлена некорректная обработка конфига редактора (параметр editorType)
+ - Исправлена проблема, связанная с плагином "Отправить", если в системе не установлен Email клиент
+ - Исправлена проблема, связанная с блокировкой текстового поля при создании
diff --git a/win-linux/src/cascapplicationmanagerwrapper.cpp b/win-linux/src/cascapplicationmanagerwrapper.cpp
index ca265ebf5..c13da8e9d 100644
--- a/win-linux/src/cascapplicationmanagerwrapper.cpp
+++ b/win-linux/src/cascapplicationmanagerwrapper.cpp
@@ -475,7 +475,7 @@ bool CAscApplicationManagerWrapper::processCommonEvent(NSEditorApi::CAscCefMenuE
} else
if ( m_countViews == 1 && mainWindow() && mainWindow()->isAboutToClose() ) { // if only start page exists
emit aboutToQuit();
- DestroyCefView(-1);
+// DestroyCefView(-1);
}
break;
@@ -1253,7 +1253,9 @@ void CAscApplicationManagerWrapper::launchAppClose()
}
} else {
emit aboutToQuit();
- DestroyCefView(-1);
+ QTimer::singleShot(0, this, [=]() {
+ DestroyCefView(-1);
+ });
}
} else {
cancelClose();
diff --git a/win-linux/src/casctabdata.cpp b/win-linux/src/casctabdata.cpp
index b524da9a9..e3309c043 100644
--- a/win-linux/src/casctabdata.cpp
+++ b/win-linux/src/casctabdata.cpp
@@ -176,6 +176,9 @@ void CAscTabData::setFeatures(const wstring& fs)
if ( _str_readonly.isEmpty() )
_str_readonly = " (" + QObject::tr("Read only") + ")";
+ } else
+ if ( hasFeature(L"readonly\":false") ) {
+ _is_readonly = false;
}
}
diff --git a/win-linux/src/ccefeventstransformer.cpp b/win-linux/src/ccefeventstransformer.cpp
index 59c33a11f..ae662429e 100644
--- a/win-linux/src/ccefeventstransformer.cpp
+++ b/win-linux/src/ccefeventstransformer.cpp
@@ -210,6 +210,9 @@ void CCefEventsTransformer::OnEvent(QObject * target, NSEditorApi::CAscCefMenuEv
// if ( !(cmd.find(L"files:check") == std::wstring::npos) ) {
// QMetaObject::invokeMethod( target, "onLocalFilesCheck", Qt::QueuedConnection,
// Q_ARG(QString, QString::fromStdWString(pData->get_Param())) );
+ if ( cmd.compare(L"portal:uitheme") == 0 ) {
+ QMetaObject::invokeMethod(target, "onPortalUITheme", Qt::QueuedConnection, Q_ARG(std::wstring, pData->get_Param()));
+ } else
if ( !(cmd.find(L"files:explore") == std::wstring::npos) ) {
QMetaObject::invokeMethod( target, "onLocalFileLocation", Qt::QueuedConnection,
Q_ARG(QString, QString::fromStdWString(pData->get_Param())) );
diff --git a/win-linux/src/components/asctabwidget.cpp b/win-linux/src/components/asctabwidget.cpp
index ca9a21346..e4207de5e 100644
--- a/win-linux/src/components/asctabwidget.cpp
+++ b/win-linux/src/components/asctabwidget.cpp
@@ -513,15 +513,15 @@ void CAscTabWidget::setTabActiveColor(int index, const std::wstring& color)
{
}
-void CAscTabWidget::setTabThemeType(int index, const QString& type)
+void CAscTabWidget::setTabTheme(int index, const QString& type, const QString& color)
{
if ( !(index < 0) && index < count() ) {
- if ( type == "dark" ) {
- m_pBar->setActiveTabColor(index, "#333");
- m_pBar->setTabThemeType(index, CTabBar::DarkTab);
- } else {
- m_pBar->setActiveTabColor(index, "#fff");
- m_pBar->setTabThemeType(index, CTabBar::LightTab);
+ if ( !type.isEmpty() ) {
+ m_pBar->setTabThemeType(index, type == "dark" ? CTabBar::DarkTab : CTabBar::LightTab);
+ }
+
+ if ( !color.isEmpty() ) {
+ m_pBar->setActiveTabColor(index, color);
}
}
}
diff --git a/win-linux/src/components/asctabwidget.h b/win-linux/src/components/asctabwidget.h
index bdaa57da1..50a8cdd44 100644
--- a/win-linux/src/components/asctabwidget.h
+++ b/win-linux/src/components/asctabwidget.h
@@ -184,7 +184,7 @@ class CAscTabWidget : public QStackedWidget, public CScalingWrapper
void setTabIcons(CTabIconSet&);
void reloadTabIcons();
void setTabActiveColor(int index, const std::wstring& color);
- void setTabThemeType(int index, const QString& type);
+ void setTabTheme(int index, const QString& type, const QString& color);
void setFocusedView(int index = -1);
void setFullScreen(bool, int id = -1);
QWidget * fullScreenWidget();
diff --git a/win-linux/src/platform_win/message.cpp b/win-linux/src/platform_win/message.cpp
index a1a94b39f..4099ecd99 100644
--- a/win-linux/src/platform_win/message.cpp
+++ b/win-linux/src/platform_win/message.cpp
@@ -80,6 +80,8 @@ int WinMsg::showMessage(QWidget *parent,
std::wstring lpText = QTextDocumentFragment::fromHtml(msg).toPlainText().toStdWString();
std::wstring lpCheckBoxText = chekBoxText.toStdWString();
HWND parent_hwnd = (parent) ? (HWND)parent->winId() : nullptr;
+ if (parent_hwnd && IsIconic(parent_hwnd))
+ ShowWindow(parent_hwnd, SW_RESTORE);
int msgboxID = 0;
#ifndef __OS_WIN_XP
diff --git a/win-linux/src/windows/ceditorwindow_p.h b/win-linux/src/windows/ceditorwindow_p.h
index 7c4a0f16a..f809ebf78 100644
--- a/win-linux/src/windows/ceditorwindow_p.h
+++ b/win-linux/src/windows/ceditorwindow_p.h
@@ -769,7 +769,7 @@ class CEditorWindowPrivate : public CCefEventsGate
iconCrypted();
}
- if ( is_read_only != panel()->data()->hasFeature(L"readonly\":") && boxtitlelabel ) {
+ if ( is_read_only != panel()->data()->hasFeature(L"readonly\":true") && boxtitlelabel ) {
window->setWindowTitle(m_panel->data()->title());
window->m_boxTitleBtns->repaint();
}
diff --git a/win-linux/src/windows/cmainwindow.cpp b/win-linux/src/windows/cmainwindow.cpp
index 9daf52c7d..9e22d95c4 100644
--- a/win-linux/src/windows/cmainwindow.cpp
+++ b/win-linux/src/windows/cmainwindow.cpp
@@ -697,11 +697,27 @@ void CMainWindow::onPortalLogin(int viewid, const std::wstring &json)
if( jerror.error == QJsonParseError::NoError ) {
QJsonObject objRoot = jdoc.object();
QString _ui_theme = objRoot["uiTheme"].toString();
- if ( !_ui_theme.isEmpty() ) {
-// onFileLocation(vid, _url);
- if ( _ui_theme == "default-dark" )
- m_pTabs->setTabThemeType(m_pTabs->tabIndexByView(viewid), "dark");
+ if ( !_ui_theme.isEmpty() )
+ onPortalUITheme(viewid, _ui_theme.toStdWString());
+ }
+ }
+}
+
+void CMainWindow::onPortalUITheme(int viewid, const std::wstring& json)
+{
+ if ( !json.empty() ) {
+ if ( json.rfind(L"default-", 0) == 0 ) {
+ if ( json.compare(L"default-dark") == 0 )
+ m_pTabs->setTabTheme(m_pTabs->tabIndexByView(viewid), "dark", "#333");
+ else m_pTabs->setTabTheme(m_pTabs->tabIndexByView(viewid), "light", "#fff");
+ } else {
+ QJsonParseError jerror;
+ QJsonDocument jdoc = QJsonDocument::fromJson(QString::fromStdWString(json).toLatin1(), &jerror);
+
+ if( jerror.error == QJsonParseError::NoError ) {
+ QJsonObject objRoot = jdoc.object();
+ m_pTabs->setTabTheme(m_pTabs->tabIndexByView(viewid), objRoot["type"].toString(), objRoot["color"].toString());
}
}
}
diff --git a/win-linux/src/windows/cmainwindow.h b/win-linux/src/windows/cmainwindow.h
index 0f826a69b..77e04e2c7 100644
--- a/win-linux/src/windows/cmainwindow.h
+++ b/win-linux/src/windows/cmainwindow.h
@@ -137,6 +137,7 @@ public slots:
void onPortalOpen(QString);
void onPortalLogout(std::wstring portal);
void onPortalLogin(int viewid, const std::wstring& json);
+ void onPortalUITheme(int viewid, const std::wstring& json);
void onPortalNew(QString);
void onPortalCreate();
void onOutsideAuth(QString);
diff --git a/win-linux/src/windows/platform_win/cwindowplatform.cpp b/win-linux/src/windows/platform_win/cwindowplatform.cpp
index 60dac85d1..a9e95a629 100644
--- a/win-linux/src/windows/platform_win/cwindowplatform.cpp
+++ b/win-linux/src/windows/platform_win/cwindowplatform.cpp
@@ -192,7 +192,7 @@ bool CWindowPlatform::nativeEvent(const QByteArray &eventType, void *message, lo
mrg.cyTopHeight = 29;
DwmExtendFrameIntoClientArea(m_hWnd, &mrg);
#endif
- return true;
+ break;
}
case WM_DPICHANGED: {
@@ -415,7 +415,7 @@ bool CWindowPlatform::nativeEvent(const QByteArray &eventType, void *message, lo
case WM_NCACTIVATE: {
// Prevent the title bar from being drawn when the window is restored or maximized
if (m_borderless) {
- if (!msg->wParam) {
+ if (!LOWORD(msg->wParam)) {
*result = TRUE;
break;
}