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 Desktop Editors 7.5.1 - {{DATE}}

- -

New Features

- -

All Editors

- -

Document Editor

- -

Spreadsheet Editor

- -

Presentation Editor

- -

Forms

- +

ONLYOFFICE Desktop Editors 7.5.1 - October 31, 2023

Fixes

All Editors

Document Editor

Spreadsheet Editor

Presentation Editor

-

Forms

+

PDF Editor

diff --git a/common/changes/7.5.1/changes_ru.html b/common/changes/7.5.1/changes_ru.html index ede98fc8d..bbfcff6b4 100644 --- a/common/changes/7.5.1/changes_ru.html +++ b/common/changes/7.5.1/changes_ru.html @@ -1,47 +1,34 @@ -

ONLYOFFICE Desktop Editors 7.5.1 - {{DATE}}

- -

Новые функции

- -

Все редакторы

- -

Редактор документов

- -

Редактор таблиц

- -

Редактор презентаций

- -

Формы

- +

ONLYOFFICE Desktop Editors 7.5.1 - 31 октября, 2023

Исправления

Все редакторы

Редактор документов

Редактор таблиц

Редактор презентаций

-

Формы

+

Редактор PDF

diff --git a/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.html b/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.html index 284dc80c7..9c86a3b99 100644 --- a/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.html +++ b/macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/7.5.1/changes.html @@ -85,7 +85,7 @@
-

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; }