mirror of
https://github.com/ONLYOFFICE/desktop-apps.git
synced 2026-02-10 18:05:16 +08:00
Merge branch 'develop' of https://git.onlyoffice.com/ONLYOFFICE/desktop-apps into develop
This commit is contained in:
@ -174,24 +174,25 @@ h4 {
|
||||
|
||||
.switch-svg {
|
||||
@media only screen {
|
||||
@media (-webkit-min-device-pixel-ratio: 1.1) and (-webkit-max-device-pixel-ratio: 1.9),
|
||||
(min-resolution: 1.1dppx) and (max-resolution: 1.9dppx),
|
||||
(min-resolution: 97dpi) and (max-resolution: 191dpi) {
|
||||
@media (-webkit-min-device-pixel-ratio: 1.25) and (-webkit-max-device-pixel-ratio: 1.99),
|
||||
(min-resolution: 1.25dppx) and (max-resolution: 1.99dppx),
|
||||
(min-resolution: 120dpi) and (max-resolution: 191dpi) {
|
||||
svg.icon {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@media (-webkit-device-pixel-ratio: 1),
|
||||
(resolution: 1dppx),
|
||||
(resolution: 96dpi) {
|
||||
i.icon, i.badge {
|
||||
(min-resolution: 1dppx) and (max-resolution: 1.24dppx),
|
||||
(min-resolution: 1dpi) and (max-resolution: 119dpi) {
|
||||
i.icon, i.badge, .icon.img-format {
|
||||
display: none;
|
||||
}
|
||||
|
||||
}
|
||||
@media (-webkit-min-device-pixel-ratio: 2),
|
||||
(min-resolution: 2dppx),
|
||||
(min-resolution: 192dpi) {
|
||||
i.icon, i.badge {
|
||||
i.icon, i.badge, .icon.img-format {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@ -438,7 +439,7 @@ li.menu-item {
|
||||
|
||||
.col-name {
|
||||
height: 32px;
|
||||
.switch-svg();
|
||||
|
||||
|
||||
.icon {
|
||||
// width: 32px;
|
||||
@ -650,6 +651,8 @@ li.menu-item {
|
||||
}
|
||||
}
|
||||
|
||||
.switch-svg();
|
||||
|
||||
.img-el {
|
||||
display: inline-block;
|
||||
&.folder {
|
||||
@ -711,9 +714,9 @@ li.menu-item {
|
||||
opacity: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
|
||||
i.icon {
|
||||
display: block;
|
||||
display: block;
|
||||
}
|
||||
|
||||
button {
|
||||
@ -809,6 +812,7 @@ li.menu-item {
|
||||
|
||||
&.templates {
|
||||
/* padding: 20px;*/
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
// Folders
|
||||
@ -817,7 +821,7 @@ li.menu-item {
|
||||
justify-content: normal;
|
||||
gap: clamp(10px, 6vw, 104px);
|
||||
> div {
|
||||
min-width: 30px;
|
||||
min-width: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -946,7 +950,7 @@ li.menu-item {
|
||||
padding-left: 104px;
|
||||
padding-right: 112px;
|
||||
}
|
||||
|
||||
|
||||
> * {
|
||||
margin-right: 32px;
|
||||
}
|
||||
@ -957,17 +961,17 @@ li.menu-item {
|
||||
}
|
||||
|
||||
> * {
|
||||
margin-bottom: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
> *:last-child {
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.file-list-head,
|
||||
.file-list-body .row {
|
||||
> * {
|
||||
margin-right: 8px;
|
||||
margin-right: 8px;
|
||||
width: 264px;
|
||||
}
|
||||
|
||||
@ -1022,13 +1026,13 @@ li.menu-item {
|
||||
.file-list-body {
|
||||
.row {
|
||||
justify-content: flex-start;
|
||||
|
||||
|
||||
> * {
|
||||
margin-right: calc(8vw);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#area-document-creation-grid {
|
||||
@ -1191,15 +1195,15 @@ li.menu-item {
|
||||
padding: 0 8px 0 0;
|
||||
overflow: visible;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
top: 50%;
|
||||
right: 0;
|
||||
transform: translateY(-50%);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.rtl & {
|
||||
padding: 0 0 0 8px;
|
||||
right: auto;
|
||||
left: 0;
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.hlayout {
|
||||
@ -2182,17 +2186,15 @@ li.menu-item {
|
||||
}
|
||||
|
||||
.templates {
|
||||
padding-left: 35px;
|
||||
.rtl & {
|
||||
padding-left: 40;
|
||||
padding-right: 35px;
|
||||
}
|
||||
.rtl & {
|
||||
padding-left: 40;
|
||||
}
|
||||
|
||||
.flexbox.content-box > * {
|
||||
padding-left: 5px;
|
||||
.rtl & {
|
||||
padding-left: 0;
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
.rtl & {
|
||||
padding-left: 0;
|
||||
padding-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2220,17 +2222,17 @@ li.menu-item {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 5px;
|
||||
right: 0;
|
||||
left: 5px;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
background-color: @border-divider;
|
||||
}
|
||||
|
||||
|
||||
.rtl & {
|
||||
text-align: right;
|
||||
&::after {
|
||||
left: 0;
|
||||
right: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2267,7 +2269,7 @@ li.menu-item {
|
||||
|
||||
#idx-nothing-found-dark {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.no-results-title {
|
||||
@ -2435,8 +2437,8 @@ li.menu-item {
|
||||
position: relative;
|
||||
|
||||
.badge-wrapper {
|
||||
display: flex;
|
||||
.switch-svg();
|
||||
display: flex;
|
||||
.switch-svg();
|
||||
|
||||
.icon,
|
||||
i.badge {
|
||||
@ -2500,7 +2502,7 @@ li.menu-item {
|
||||
.action-panel.templates {
|
||||
.table-templates.list {
|
||||
> * {
|
||||
margin: 8px;
|
||||
margin: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2661,7 +2663,7 @@ li.menu-item {
|
||||
border-bottom-left-radius: @border-radius-sidebar-item;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
&:nth-last-child(2) {
|
||||
border-top-right-radius: @border-radius-sidebar-item;
|
||||
border-bottom-right-radius: @border-radius-sidebar-item;
|
||||
}
|
||||
@ -2674,7 +2676,7 @@ li.menu-item {
|
||||
border-bottom-right-radius: @border-radius-sidebar-item;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
&:nth-last-child(2) {
|
||||
border-top-left-radius: @border-radius-sidebar-item;
|
||||
border-bottom-left-radius: @border-radius-sidebar-item;
|
||||
}
|
||||
@ -2718,12 +2720,12 @@ li.menu-item {
|
||||
.rtl & {
|
||||
margin-right: 0;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.icon {
|
||||
display:none;
|
||||
}
|
||||
|
||||
|
||||
.icon, .icon--default {
|
||||
border: @scaled-one-px solid @border-divider;
|
||||
border-radius: 4px;
|
||||
@ -2739,20 +2741,20 @@ li.menu-item {
|
||||
.description {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
|
||||
.name {
|
||||
color: @text-normal;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
margin: 4px 0 10px;
|
||||
}
|
||||
|
||||
|
||||
.pricing, .descr, .file-info {
|
||||
font-size: 12px;
|
||||
color: @text-normal;
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
|
||||
|
||||
.file-info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -2763,7 +2765,7 @@ li.menu-item {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.btn--landing {
|
||||
.btn--landing {
|
||||
margin-left: auto;
|
||||
margin-top: 10px;
|
||||
border-radius: 4px;
|
||||
@ -2800,6 +2802,6 @@ li.menu-item {
|
||||
.btn--landing {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -102,6 +102,9 @@
|
||||
BE6251BA22BD089100656116 /* dictionaries in Resources */ = {isa = PBXBuildFile; fileRef = BE6251B922BD089100656116 /* dictionaries */; };
|
||||
BE9A63CD2E2A429F0040CE84 /* ascdocumentscore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE9A63CC2E2A429F0040CE84 /* ascdocumentscore.framework */; };
|
||||
BE9A63CF2E2A42A60040CE84 /* ooxmlsignature.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE9A63CE2E2A42A60040CE84 /* ooxmlsignature.framework */; };
|
||||
F10175932EAB756000C6C1B8 /* ASCLicenseController.m in Sources */ = {isa = PBXBuildFile; fileRef = F10175922EAB756000C6C1B8 /* ASCLicenseController.m */; };
|
||||
F10175942EAB756100C6C1B8 /* ASCLicenseController.m in Sources */ = {isa = PBXBuildFile; fileRef = F10175922EAB756000C6C1B8 /* ASCLicenseController.m */; };
|
||||
F10175952EAB756100C6C1B8 /* ASCLicenseController.m in Sources */ = {isa = PBXBuildFile; fileRef = F10175922EAB756000C6C1B8 /* ASCLicenseController.m */; };
|
||||
FC09073E1C1855A400D9E881 /* editors in Resources */ = {isa = PBXBuildFile; fileRef = FC09073D1C1855A400D9E881 /* editors */; };
|
||||
FC0907411C186A7A00D9E881 /* converter in Resources */ = {isa = PBXBuildFile; fileRef = FC0907401C186A7A00D9E881 /* converter */; };
|
||||
FC0BD686258B63F700C47F95 /* NSView+Extensions.m in Sources */ = {isa = PBXBuildFile; fileRef = FC73E6DB207DE3C700EFFD2F /* NSView+Extensions.m */; };
|
||||
@ -829,6 +832,8 @@
|
||||
BE95F0A623E9FF590045E0CB /* mac_cefview.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mac_cefview.h; sourceTree = "<group>"; };
|
||||
BE9A63CC2E2A429F0040CE84 /* ascdocumentscore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ascdocumentscore.framework; path = ../../build_tools/out/mac_arm64/onlyoffice/desktopeditors/ascdocumentscore.framework; sourceTree = "<group>"; };
|
||||
BE9A63CE2E2A42A60040CE84 /* ooxmlsignature.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ooxmlsignature.framework; path = ../../build_tools/out/mac_arm64/onlyoffice/desktopeditors/ooxmlsignature.framework; sourceTree = "<group>"; };
|
||||
F10175912EAB756000C6C1B8 /* ASCLicenseController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASCLicenseController.h; sourceTree = "<group>"; };
|
||||
F10175922EAB756000C6C1B8 /* ASCLicenseController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASCLicenseController.m; sourceTree = "<group>"; };
|
||||
FC033D251BB13B9900F6C55F /* mac_application.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mac_application.h; sourceTree = "<group>"; };
|
||||
FC035A5B24855E8C00AF820F /* ASCTabViewType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASCTabViewType.h; sourceTree = "<group>"; };
|
||||
FC09073D1C1855A400D9E881 /* editors */ = {isa = PBXFileReference; lastKnownFileType = folder; name = editors; path = Vendor/ONLYOFFICE/editors; sourceTree = SOURCE_ROOT; };
|
||||
@ -1157,6 +1162,15 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
F10175902EAB739E00C6C1B8 /* License */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F10175912EAB756000C6C1B8 /* ASCLicenseController.h */,
|
||||
F10175922EAB756000C6C1B8 /* ASCLicenseController.m */,
|
||||
);
|
||||
path = License;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FC035A5A24855E1900AF820F /* Enums */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -1691,6 +1705,7 @@
|
||||
FCF289722150E6A1002FD438 /* Controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F10175902EAB739E00C6C1B8 /* License */,
|
||||
FCF289742150E820002FD438 /* Common */,
|
||||
FCF289762150E904002FD438 /* MainWindow */,
|
||||
FCF289782150E95F002FD438 /* About */,
|
||||
@ -2251,7 +2266,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "#!/bin/sh\n\n#exit 0\n\nCreateDir() {\nif [ ! -d $1 ]; then\nmkdir -p $1\nelse\nrm -Rf $1\nmkdir -p $1\nfi\n}\n\nBASE_DIR=$(pwd)\nDST_DIR=\"${BASE_DIR}/Vendor/ONLYOFFICE\"\nSRC_BASE_DIR=\"${BASE_DIR}/../../build_tools/out/mac_64/onlyoffice/desktopeditors\"\n\n# Copy application resources\necho \"Copy application resources\"\nCreateDir \"${DST_DIR}/login\"\ncp -vR \"${SRC_BASE_DIR}/index.html\" \"${DST_DIR}/login/index.html\"\ncp -vR \"${SRC_BASE_DIR}/editors/webext/noconnect.html\" \"${DST_DIR}/login/noconnect.html\"\ncp -vR \"${SRC_BASE_DIR}/fonts\" \"${DST_DIR}/login/fonts\"\ncp -vR \"${BASE_DIR}/ONLYOFFICE/Resources/acknowledgments.html\" \"${DST_DIR}/login/acknowledgments.html\"\ncp -vR \"${SRC_BASE_DIR}/license\" \"${DST_DIR}\"\ncp -vR \"${SRC_BASE_DIR}/providers\" \"${DST_DIR}\"\n\n# Copy editors and convertor\necho \"Copy editors and convertor\"\ncd \"$BASE_DIR\"\ncp -vR \"${SRC_BASE_DIR}/editors\" \"${DST_DIR}\"\ncp -vR \"${SRC_BASE_DIR}/converter\" \"${DST_DIR}\"\n";
|
||||
shellScript = "#!/bin/sh\n\n#exit 0\n\nCreateDir() {\nif [ ! -d $1 ]; then\nmkdir -p $1\nelse\nrm -Rf $1\nmkdir -p $1\nfi\n}\n\nBASE_DIR=$(pwd)\nDST_DIR=\"${BASE_DIR}/Vendor/ONLYOFFICE\"\nSRC_BASE_DIR=\"${BASE_DIR}/../../build_tools/out/mac_64/onlyoffice/desktopeditors\"\n\n# Copy application resources\necho \"Copy application resources\"\nCreateDir \"${DST_DIR}/login\"\ncp -vR \"${SRC_BASE_DIR}/index.html\" \"${DST_DIR}/login/index.html\"\ncp -vR \"${SRC_BASE_DIR}/editors/webext/noconnect.html\" \"${DST_DIR}/login/noconnect.html\"\ncp -vR \"${SRC_BASE_DIR}/fonts\" \"${DST_DIR}/login/fonts\"\ncp -vR \"${BASE_DIR}/ONLYOFFICE/Resources/acknowledgments.html\" \"${DST_DIR}/login/acknowledgments.html\"\ncp -vR \"${SRC_BASE_DIR}/providers\" \"${DST_DIR}\"\n\nCreateDir \"${DST_DIR}/license\"\n[ -d \"${SRC_BASE_DIR}/license\" ] && cp -vR \"${SRC_BASE_DIR}/license\" \"${DST_DIR}\"\n\n# Copy editors and convertor\necho \"Copy editors and convertor\"\ncd \"$BASE_DIR\"\ncp -vR \"${SRC_BASE_DIR}/editors\" \"${DST_DIR}\"\n# cp -vR \"${SRC_BASE_DIR}/converter\" \"${DST_DIR}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
FCB4C6BB26DD018B0012C20D /* Copy Library */ = {
|
||||
@ -2391,6 +2406,7 @@
|
||||
FC0BD6AC258B63F700C47F95 /* ASCDownloadController.mm in Sources */,
|
||||
FC0BD6AD258B63F700C47F95 /* ASCTabCloseButtonCell.m in Sources */,
|
||||
FC0BD6AE258B63F700C47F95 /* ASCTabTouchBarItem.m in Sources */,
|
||||
F10175952EAB756100C6C1B8 /* ASCLicenseController.m in Sources */,
|
||||
FC0BD6AF258B63F700C47F95 /* ASCTabViewController.m in Sources */,
|
||||
FC2C439625D4356E003A39C4 /* ASCCertificatePreviewTextViewController.m in Sources */,
|
||||
FC0BD6B0258B63F700C47F95 /* ASCPresentationReporter.mm in Sources */,
|
||||
@ -2466,6 +2482,7 @@
|
||||
FCB4C6E526DD018B0012C20D /* ASCDownloadController.mm in Sources */,
|
||||
FCB4C6E626DD018B0012C20D /* ASCTabCloseButtonCell.m in Sources */,
|
||||
FCB4C6E726DD018B0012C20D /* ASCTabTouchBarItem.m in Sources */,
|
||||
F10175932EAB756000C6C1B8 /* ASCLicenseController.m in Sources */,
|
||||
FCB4C6E826DD018B0012C20D /* ASCTabViewController.m in Sources */,
|
||||
FCB4C6E926DD018B0012C20D /* ASCCertificatePreviewTextViewController.m in Sources */,
|
||||
FCB4C6EA26DD018B0012C20D /* ASCPresentationReporter.mm in Sources */,
|
||||
@ -2541,6 +2558,7 @@
|
||||
FCD294691BB97D3300318930 /* ASCDownloadController.mm in Sources */,
|
||||
FCC77C91206CEE85001B7837 /* ASCTabCloseButtonCell.m in Sources */,
|
||||
FCCC2FE121E5E10D00FB9209 /* ASCTabTouchBarItem.m in Sources */,
|
||||
F10175942EAB756100C6C1B8 /* ASCLicenseController.m in Sources */,
|
||||
FC25A1A71C2E844800063A42 /* ASCTabViewController.m in Sources */,
|
||||
FC2C439525D4356E003A39C4 /* ASCCertificatePreviewTextViewController.m in Sources */,
|
||||
FC54A2941F94BCE00086F4FE /* ASCPresentationReporter.mm in Sources */,
|
||||
|
||||
@ -1075,10 +1075,10 @@
|
||||
<buttonCell key="cell" type="bevel" title="License agreement" bezelStyle="regularSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="8Ga-Cu-VGe">
|
||||
<behavior key="behavior" lightByContents="YES"/>
|
||||
<font key="font" metaFont="label" size="12"/>
|
||||
<connections>
|
||||
<action selector="onLicenseButtonClick:" target="kIG-b2-o2F" id="0YB-Fw-bH4"/>
|
||||
</connections>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<segue destination="KRO-Tf-SDi" kind="sheet" id="mDF-Nf-qW8"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
@ -1104,55 +1104,6 @@
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1674" y="1756"/>
|
||||
</scene>
|
||||
<!--About Controller-->
|
||||
<scene sceneID="cTW-F0-aao">
|
||||
<objects>
|
||||
<viewController id="KRO-Tf-SDi" customClass="ASCAboutController" sceneMemberID="viewController">
|
||||
<view key="view" id="5RA-3C-cHz">
|
||||
<rect key="frame" x="0.0" y="0.0" width="800" height="491"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<webView translatesAutoresizingMaskIntoConstraints="NO" id="rxD-dJ-5nd">
|
||||
<rect key="frame" x="10" y="60" width="780" height="421"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="780" id="5L3-pz-emb"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="420" id="CFF-ti-tZ6"/>
|
||||
</constraints>
|
||||
<webPreferences key="preferences" defaultFontSize="12" defaultFixedFontSize="12" minimumFontSize="7" plugInsEnabled="NO" javaEnabled="NO" javaScriptCanOpenWindowsAutomatically="NO">
|
||||
<nil key="identifier"/>
|
||||
</webPreferences>
|
||||
</webView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="UVj-pl-yO9">
|
||||
<rect key="frame" x="366" y="13" width="69" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Close" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Riu-oE-8dj">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
DQ
|
||||
</string>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="dismissController:" target="4Gz-l5-4i0" id="VWc-In-XyJ"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="rxD-dJ-5nd" firstAttribute="leading" secondItem="5RA-3C-cHz" secondAttribute="leading" constant="10" id="ATh-Zd-Bng"/>
|
||||
<constraint firstItem="rxD-dJ-5nd" firstAttribute="top" secondItem="5RA-3C-cHz" secondAttribute="top" constant="10" id="OOn-Cf-86P"/>
|
||||
<constraint firstItem="UVj-pl-yO9" firstAttribute="centerX" secondItem="5RA-3C-cHz" secondAttribute="centerX" id="Rnw-Js-xvO"/>
|
||||
<constraint firstAttribute="trailing" secondItem="rxD-dJ-5nd" secondAttribute="trailing" constant="10" id="SGh-ex-i5C"/>
|
||||
<constraint firstAttribute="bottom" secondItem="UVj-pl-yO9" secondAttribute="bottom" constant="20" id="W90-kj-63m"/>
|
||||
<constraint firstItem="UVj-pl-yO9" firstAttribute="top" secondItem="rxD-dJ-5nd" secondAttribute="bottom" constant="20" symbolic="YES" id="l3C-JB-km4"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="eulaWebView" destination="rxD-dJ-5nd" id="OXX-65-NSp"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="4Gz-l5-4i0" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2693" y="1069.5"/>
|
||||
</scene>
|
||||
<!--Common View Controller-->
|
||||
<scene sceneID="hIz-AP-VOD">
|
||||
<objects>
|
||||
@ -1546,6 +1497,80 @@ DQ
|
||||
</objects>
|
||||
<point key="canvasLocation" x="131" y="34"/>
|
||||
</scene>
|
||||
<!--Window Controller-->
|
||||
<scene sceneID="wU6-OG-e5u">
|
||||
<objects>
|
||||
<windowController storyboardIdentifier="ASCLicenseWindowControllerId" id="quU-PS-Zqh" sceneMemberID="viewController">
|
||||
<window key="window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" titlebarAppearsTransparent="YES" id="ooH-wy-fad">
|
||||
<windowStyleMask key="styleMask" titled="YES" fullSizeContentView="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="294" y="313" width="680" height="340"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
||||
<view key="contentView" id="3dt-ev-Idy">
|
||||
<rect key="frame" x="0.0" y="0.0" width="680" height="340"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="quU-PS-Zqh" id="CHC-gh-jHU"/>
|
||||
</connections>
|
||||
</window>
|
||||
<connections>
|
||||
<segue destination="VpZ-MX-EgL" kind="relationship" relationship="window.shadowedContentViewController" id="90Y-gx-R9D"/>
|
||||
</connections>
|
||||
</windowController>
|
||||
<customObject id="ZmP-al-Equ" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1207" y="2334"/>
|
||||
</scene>
|
||||
<!--License Controller-->
|
||||
<scene sceneID="U8C-hR-HlF">
|
||||
<objects>
|
||||
<viewController id="VpZ-MX-EgL" customClass="ASCLicenseController" sceneMemberID="viewController">
|
||||
<view key="view" id="baa-lw-Js5">
|
||||
<rect key="frame" x="0.0" y="0.0" width="800" height="491"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<webView translatesAutoresizingMaskIntoConstraints="NO" id="nPq-tX-WST">
|
||||
<rect key="frame" x="10" y="60" width="780" height="421"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="780" id="cUr-Iz-0Ec"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="420" id="juy-Wf-L5D"/>
|
||||
</constraints>
|
||||
<webPreferences key="preferences" defaultFontSize="12" defaultFixedFontSize="12" minimumFontSize="7" plugInsEnabled="NO" javaEnabled="NO" javaScriptCanOpenWindowsAutomatically="NO">
|
||||
<nil key="identifier"/>
|
||||
</webPreferences>
|
||||
</webView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="fh8-FG-lR6">
|
||||
<rect key="frame" x="365" y="13" width="70" height="32"/>
|
||||
<buttonCell key="cell" type="push" title="Close" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="3FX-nT-Klk">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
DQ
|
||||
</string>
|
||||
<connections>
|
||||
<action selector="onCloseButtonClick:" target="VpZ-MX-EgL" id="Mvv-jG-hat"/>
|
||||
</connections>
|
||||
</buttonCell>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="fh8-FG-lR6" firstAttribute="centerX" secondItem="baa-lw-Js5" secondAttribute="centerX" id="LoW-y6-Eam"/>
|
||||
<constraint firstItem="fh8-FG-lR6" firstAttribute="top" secondItem="nPq-tX-WST" secondAttribute="bottom" constant="20" symbolic="YES" id="QDY-9x-oev"/>
|
||||
<constraint firstAttribute="trailing" secondItem="nPq-tX-WST" secondAttribute="trailing" constant="10" id="WJE-cY-Yst"/>
|
||||
<constraint firstItem="nPq-tX-WST" firstAttribute="top" secondItem="baa-lw-Js5" secondAttribute="top" constant="10" id="XOh-fP-a5f"/>
|
||||
<constraint firstItem="nPq-tX-WST" firstAttribute="leading" secondItem="baa-lw-Js5" secondAttribute="leading" constant="10" id="h8m-P5-eTK"/>
|
||||
<constraint firstAttribute="bottom" secondItem="fh8-FG-lR6" secondAttribute="bottom" constant="20" id="uz5-gt-aP8"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="eulaWebView" destination="nPq-tX-WST" id="2zB-fJ-pd9"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<customObject id="oty-wv-CAn" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2189" y="2370"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="NSApplicationIcon" width="32" height="32"/>
|
||||
|
||||
@ -41,5 +41,5 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface ASCAboutController : NSViewController
|
||||
|
||||
- (IBAction)onLicenseButtonClick:(id)sender;
|
||||
@end
|
||||
|
||||
@ -40,11 +40,10 @@
|
||||
|
||||
#import "ASCAboutController.h"
|
||||
|
||||
#import <WebKit/WebKit.h>
|
||||
|
||||
#import "ASCConstants.h"
|
||||
#import "ASCExternalController.h"
|
||||
#import "ASCSharedSettings.h"
|
||||
#import "ASCLicenseController.h"
|
||||
|
||||
@interface ASCAboutController () {
|
||||
BOOL isCommercialVersion;
|
||||
@ -53,7 +52,6 @@
|
||||
@property (weak) IBOutlet NSTextField *versionText;
|
||||
@property (weak) IBOutlet NSTextField *copyrightText;
|
||||
@property (weak) IBOutlet NSButton *licenseButton;
|
||||
@property (weak) IBOutlet WebView *eulaWebView;
|
||||
@property (weak) IBOutlet NSStackView *infoStackView;
|
||||
@end
|
||||
|
||||
@ -99,12 +97,6 @@
|
||||
NSURL * eulaUrl = [[NSBundle mainBundle] URLForResource:@"EULA" withExtension:@"html" subdirectory:@"license"];
|
||||
isCommercialVersion = eulaUrl != nil;
|
||||
|
||||
// EULA View
|
||||
if (self.eulaWebView) {
|
||||
if ( !eulaUrl )
|
||||
eulaUrl = [[NSBundle mainBundle] URLForResource:@"LICENSE" withExtension:@"html" subdirectory:@"license"];
|
||||
[[self.eulaWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:eulaUrl]];
|
||||
} else {
|
||||
// About View
|
||||
// Setup license button view
|
||||
NSMutableAttributedString * attrTitle = [[NSMutableAttributedString alloc] initWithAttributedString:[self.licenseButton attributedTitle]];
|
||||
@ -140,27 +132,16 @@
|
||||
|
||||
// Window
|
||||
[self setTitle:[NSString stringWithFormat:NSLocalizedString(@"About %@", nil), locProductName]];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidAppear {
|
||||
[super viewDidAppear];
|
||||
|
||||
// EULA View
|
||||
if (self.eulaWebView) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
[self.view.window setStyleMask:[self.view.window styleMask] & ~NSResizableWindowMask];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear {
|
||||
[super viewDidDisappear];
|
||||
|
||||
// EULA View
|
||||
if (self.eulaWebView) {
|
||||
return;
|
||||
}
|
||||
|
||||
[NSApp stopModal];
|
||||
}
|
||||
@ -184,4 +165,23 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
- (IBAction)onLicenseButtonClick:(id)sender {
|
||||
NSURL * eulaUrl = [[NSBundle mainBundle] URLForResource:@"EULA" withExtension:@"html" subdirectory:@"license"];
|
||||
if ( !eulaUrl )
|
||||
eulaUrl = [[NSBundle mainBundle] URLForResource:@"LICENSE" withExtension:@"html" subdirectory:@"license"];
|
||||
|
||||
NSWindowController * windowController = [self.storyboard instantiateControllerWithIdentifier:@"ASCLicenseWindowControllerId"];
|
||||
ASCLicenseController *licView = (ASCLicenseController *)windowController.contentViewController;
|
||||
[licView setUrl:eulaUrl];
|
||||
NSWindow *licWindow = windowController.window;
|
||||
|
||||
NSRect parentFrame = self.view.window.frame;
|
||||
NSRect childFrame = licWindow.frame;
|
||||
[licWindow setFrameOrigin:NSMakePoint(NSMidX(parentFrame) - childFrame.size.width/2,
|
||||
NSMidY(parentFrame) - childFrame.size.height/2)];
|
||||
[licWindow makeKeyAndOrderFront:nil]; // Show the window first to apply the coordinates
|
||||
|
||||
[NSApp runModalForWindow:licWindow];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@ -71,6 +71,7 @@
|
||||
#import "ASCThemesController.h"
|
||||
#import "ASCEditorJSVariables.h"
|
||||
#import "ASCPresentationReporter.h"
|
||||
#import "ASCLicenseController.h"
|
||||
#import <Carbon/Carbon.h>
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
|
||||
@ -240,21 +241,40 @@
|
||||
}
|
||||
|
||||
- (void)openLocalPage:(NSString *)path query:(NSString *)query title:(NSString *)title {
|
||||
if ( !path ) return;
|
||||
|
||||
NSURLComponents *urlPage = [NSURLComponents componentsWithString:path];
|
||||
urlPage.scheme = NSURLFileScheme;
|
||||
urlPage.query = query;
|
||||
|
||||
ASCTabView * existTab = [self tabWithParam:@"url" value:[urlPage string]];
|
||||
|
||||
if (existTab) {
|
||||
[self.tabsControl selectTab:existTab];
|
||||
} else {
|
||||
ASCTabView *tab = [[ASCTabView alloc] initWithFrame:CGRectZero];
|
||||
tab.title = title;
|
||||
tab.type = ASCTabViewTypePortal;
|
||||
tab.params = [@{@"url" : [urlPage string]} mutableCopy];
|
||||
|
||||
// ASCTabView * existTab = [self tabWithParam:@"url" value:[urlPage string]];
|
||||
//
|
||||
// if (existTab) {
|
||||
// [self.tabsControl selectTab:existTab];
|
||||
// } else {
|
||||
// ASCTabView *tab = [[ASCTabView alloc] initWithFrame:CGRectZero];
|
||||
// tab.title = title;
|
||||
// tab.type = ASCTabViewTypePortal;
|
||||
// tab.params = [@{@"url" : [urlPage string]} mutableCopy];
|
||||
//
|
||||
// [self.tabsControl addTab:tab selected:YES];
|
||||
// }
|
||||
|
||||
[self.tabsControl addTab:tab selected:YES];
|
||||
NSWindow *mainWindow = [[NSApp windows] objectAtIndex:0];
|
||||
if (mainWindow) {
|
||||
ASCCommonViewController * controller = (ASCCommonViewController *)mainWindow.contentViewController;
|
||||
NSWindowController * windowController = [controller.storyboard instantiateControllerWithIdentifier:@"ASCLicenseWindowControllerId"];
|
||||
ASCLicenseController *licView = (ASCLicenseController *)windowController.contentViewController;
|
||||
[licView setUrl:urlPage.URL];
|
||||
NSWindow *licWindow = windowController.window;
|
||||
|
||||
NSRect parentFrame = mainWindow.frame;
|
||||
NSRect childFrame = licWindow.frame;
|
||||
[licWindow setFrameOrigin:NSMakePoint(NSMidX(parentFrame) - childFrame.size.width/2,
|
||||
NSMidY(parentFrame) - childFrame.size.height/2)];
|
||||
[licWindow makeKeyAndOrderFront:nil]; // Show the window first to apply the coordinates
|
||||
|
||||
[NSApp runModalForWindow:licWindow];
|
||||
}
|
||||
}
|
||||
|
||||
@ -343,7 +363,13 @@
|
||||
}
|
||||
|
||||
- (void)openEULA {
|
||||
[self openLocalPage:[[NSBundle mainBundle] pathForResource:@"EULA" ofType:@"html"] title:NSLocalizedString(@"License Agreement", nil)];
|
||||
NSString * eulaUrl = [[NSBundle mainBundle] pathForResource:@"EULA" ofType:@"html" inDirectory:@"license"];
|
||||
if ( !eulaUrl )
|
||||
eulaUrl = [[NSBundle mainBundle] pathForResource:@"LICENSE" ofType:@"html" inDirectory:@"license"];
|
||||
|
||||
if ( eulaUrl ) {
|
||||
[self openLocalPage:eulaUrl title:NSLocalizedString(@"License Agreement", nil)];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)openPreferences {
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
//
|
||||
// ASCLicenseController.h
|
||||
// ONLYOFFICE
|
||||
//
|
||||
// Copyright © 2025 Ascensio System SIA. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface ASCLicenseController : NSViewController
|
||||
- (void)setUrl:(NSURL *)url;
|
||||
- (IBAction)onCloseButtonClick:(id)sender;
|
||||
@end
|
||||
@ -0,0 +1,79 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
//
|
||||
// ASCLicenseController.m
|
||||
// ONLYOFFICE
|
||||
//
|
||||
// Copyright © 2025 Ascensio System SIA. All rights reserved.
|
||||
//
|
||||
|
||||
#import "ASCLicenseController.h"
|
||||
#import <WebKit/WebKit.h>
|
||||
|
||||
@interface ASCLicenseController () {
|
||||
NSURL *_url;
|
||||
}
|
||||
@property (weak) IBOutlet WebView *eulaWebView;
|
||||
@end
|
||||
|
||||
@implementation ASCLicenseController
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
if (_url) {
|
||||
[[self.eulaWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:_url]];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidAppear {
|
||||
[super viewDidAppear];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear {
|
||||
[super viewDidDisappear];
|
||||
}
|
||||
|
||||
- (void)setUrl:(NSURL *)url {
|
||||
_url = url;
|
||||
if (self.isViewLoaded) {
|
||||
[[self.eulaWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:url]];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)onCloseButtonClick:(id)sender {
|
||||
[NSApp stopModal];
|
||||
[self.view.window close];
|
||||
}
|
||||
|
||||
@end
|
||||
@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>ONLYOFFICE Release Notes</title>
|
||||
<style type="text/css">
|
||||
/* variables */
|
||||
:root {
|
||||
--color-black: #141923;
|
||||
--color-white: #fff;
|
||||
--color-gray-100: #f7fafc;
|
||||
--color-gray-200: #edf2f7;
|
||||
--color-gray-300: #e2e8f0;
|
||||
--color-gray-400: #cbd5e0;
|
||||
--color-gray-500: #a0aec0;
|
||||
--color-gray-600: #718096;
|
||||
--color-gray-700: #4a5568;
|
||||
--color-gray-800: #2d3748;
|
||||
--color-gray-900: #1a202c;
|
||||
}
|
||||
body {
|
||||
background: var(--color-white);
|
||||
color: var(--color-gray-800);
|
||||
font: 12px "Lucida Grande", "Lucida Sans Unicode", Verdana, Lucida, Helvetica, sans-serif;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
color: var(--color-gray-800);
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.7em;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.4em;
|
||||
font-weight: lighter;
|
||||
}
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
font-weight: lighter;
|
||||
}
|
||||
code {
|
||||
background: var(--color-gray-200);
|
||||
font-family: monospace;
|
||||
padding: 1px 5px;
|
||||
}
|
||||
ul {
|
||||
padding: 8.1.3 20px;
|
||||
}
|
||||
li {
|
||||
margin-left: 20px;
|
||||
margin-bottom: 0.2em;
|
||||
padding: 0;
|
||||
}
|
||||
hr {
|
||||
margin: 20px 0;
|
||||
border: var(--color-gray-400) solid 0.5px;
|
||||
}
|
||||
.releasedate {
|
||||
color: var(--color-gray-600);
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
/* prefers light mode */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background: var(--color-gray-900);
|
||||
color: var(--color-gray-200);
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
color: var(--color-white);
|
||||
}
|
||||
|
||||
code {
|
||||
background: var(--color-gray-800);
|
||||
color: var(--color-gray-200);
|
||||
}
|
||||
|
||||
.releasedate {
|
||||
color: var(--color-gray-600);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="version">
|
||||
<h1>ONLYOFFICE 9.2.0<span class="releasedate"> - {{DATE}}</span></h1>
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<h4>All Editors</h4>
|
||||
<ul>
|
||||
<li>Added AI Agent, enabling document generation, PDF form filling, document content reading, document analysis, local file operations, MCP Server connection, and online information search</li>
|
||||
<li>Added the ability to customize keyboard shortcuts</li>
|
||||
<li>Added the ability to record some executed actions as a macro in all editors, except for PDF</li>
|
||||
</ul>
|
||||
|
||||
<h4>Presentation Editor</h4>
|
||||
<ul>
|
||||
<li>Implemented insertion of equations from a third-party resource</li>
|
||||
</ul>
|
||||
|
||||
<h4>Forms</h4>
|
||||
<ul>
|
||||
<li>Added local PDF Forms templates</li>
|
||||
<li>Implemented the ability to select the role for which new fields will be added</li>
|
||||
<li>Implemented the ability to add labels for checkboxes and radio buttons. In the filling mode, clicking on the label works like clicking on the checkbox itself.</li>
|
||||
</ul>
|
||||
|
||||
<h4>PDF Editor</h4>
|
||||
<ul>
|
||||
<li>Added the ability to change color for hidden text (Redact)</li>
|
||||
<li>Implemented insertion of equations from a third-party resource</li>
|
||||
</ul>
|
||||
|
||||
<h2>Fixes</h2>
|
||||
|
||||
<h4>Security</h4>
|
||||
<ul>
|
||||
<li>Fixed the vulnerability which allows adding a named range in the protected workbook via websocket</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>История изменений ONLYOFFICE</title>
|
||||
<style type="text/css">
|
||||
/* variables */
|
||||
:root {
|
||||
--color-black: #141923;
|
||||
--color-white: #fff;
|
||||
--color-gray-100: #f7fafc;
|
||||
--color-gray-200: #edf2f7;
|
||||
--color-gray-300: #e2e8f0;
|
||||
--color-gray-400: #cbd5e0;
|
||||
--color-gray-500: #a0aec0;
|
||||
--color-gray-600: #718096;
|
||||
--color-gray-700: #4a5568;
|
||||
--color-gray-800: #2d3748;
|
||||
--color-gray-900: #1a202c;
|
||||
}
|
||||
body {
|
||||
background: var(--color-white);
|
||||
color: var(--color-gray-800);
|
||||
font: 12px "Lucida Grande", "Lucida Sans Unicode", Verdana, Lucida, Helvetica, sans-serif;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
color: var(--color-gray-800);
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.7em;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.4em;
|
||||
font-weight: lighter;
|
||||
}
|
||||
h4 {
|
||||
font-size: 1.2em;
|
||||
font-weight: lighter;
|
||||
}
|
||||
code {
|
||||
background: var(--color-gray-200);
|
||||
font-family: monospace;
|
||||
padding: 1px 5px;
|
||||
}
|
||||
ul {
|
||||
padding: 8.1.3 20px;
|
||||
}
|
||||
li {
|
||||
margin-left: 20px;
|
||||
margin-bottom: 0.2em;
|
||||
padding: 0;
|
||||
}
|
||||
hr {
|
||||
margin: 20px 0;
|
||||
border: var(--color-gray-400) solid 0.5px;
|
||||
}
|
||||
.releasedate {
|
||||
color: var(--color-gray-600);
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
/* prefers light mode */
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background: var(--color-gray-900);
|
||||
color: var(--color-gray-200);
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
color: var(--color-white);
|
||||
}
|
||||
|
||||
code {
|
||||
background: var(--color-gray-800);
|
||||
color: var(--color-gray-200);
|
||||
}
|
||||
|
||||
.releasedate {
|
||||
color: var(--color-gray-600);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="version">
|
||||
<h1>ONLYOFFICE 9.2.0<span class="releasedate"> - {{DATE}}</span></h1>
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<h4>All Editors</h4>
|
||||
<ul>
|
||||
<li>Added AI Agent, enabling document generation, PDF form filling, document content reading, document analysis, local file operations, MCP Server connection, and online information search</li>
|
||||
<li>Added the ability to customize keyboard shortcuts</li>
|
||||
<li>Added the ability to record some executed actions as a macro in all editors, except for PDF</li>
|
||||
</ul>
|
||||
|
||||
<h4>Presentation Editor</h4>
|
||||
<ul>
|
||||
<li>Implemented insertion of equations from a third-party resource</li>
|
||||
</ul>
|
||||
|
||||
<h4>Forms</h4>
|
||||
<ul>
|
||||
<li>Added local PDF Forms templates</li>
|
||||
<li>Implemented the ability to select the role for which new fields will be added</li>
|
||||
<li>Implemented the ability to add labels for checkboxes and radio buttons. In the filling mode, clicking on the label works like clicking on the checkbox itself.</li>
|
||||
</ul>
|
||||
|
||||
<h4>PDF Editor</h4>
|
||||
<ul>
|
||||
<li>Added the ability to change color for hidden text (Redact)</li>
|
||||
<li>Implemented insertion of equations from a third-party resource</li>
|
||||
</ul>
|
||||
|
||||
<h2>Fixes</h2>
|
||||
|
||||
<h4>Security</h4>
|
||||
<ul>
|
||||
<li>Fixed the vulnerability which allows adding a named range in the protected workbook via websocket</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -728,28 +728,36 @@ namespace NS_File
|
||||
|
||||
bool verifyEmbeddedSignature(const wstring &fileName)
|
||||
{
|
||||
WINTRUST_FILE_INFO fileInfo;
|
||||
ZeroMemory(&fileInfo, sizeof(fileInfo));
|
||||
fileInfo.cbStruct = sizeof(WINTRUST_FILE_INFO);
|
||||
fileInfo.pcwszFilePath = fileName.c_str();
|
||||
fileInfo.hFile = NULL;
|
||||
fileInfo.pgKnownSubject = NULL;
|
||||
WINTRUST_FILE_INFO wfi;
|
||||
ZeroMemory(&wfi, sizeof(wfi));
|
||||
wfi.cbStruct = sizeof(WINTRUST_FILE_INFO);
|
||||
wfi.pcwszFilePath = fileName.c_str();
|
||||
wfi.hFile = NULL;
|
||||
wfi.pgKnownSubject = NULL;
|
||||
|
||||
GUID guidAction = WINTRUST_ACTION_GENERIC_VERIFY_V2;
|
||||
WINTRUST_DATA winTrustData;
|
||||
ZeroMemory(&winTrustData, sizeof(winTrustData));
|
||||
winTrustData.cbStruct = sizeof(WINTRUST_DATA);
|
||||
winTrustData.pPolicyCallbackData = NULL;
|
||||
winTrustData.pSIPClientData = NULL;
|
||||
winTrustData.dwUIChoice = WTD_UI_NONE;
|
||||
winTrustData.fdwRevocationChecks = WTD_REVOKE_NONE;
|
||||
winTrustData.dwUnionChoice = WTD_CHOICE_FILE;
|
||||
winTrustData.dwStateAction = WTD_STATEACTION_VERIFY;
|
||||
winTrustData.hWVTStateData = NULL;
|
||||
winTrustData.pwszURLReference = NULL;
|
||||
winTrustData.dwUIContext = 0;
|
||||
winTrustData.pFile = &fileInfo;
|
||||
return WinVerifyTrust(NULL, &guidAction, &winTrustData) == ERROR_SUCCESS;
|
||||
WINTRUST_DATA wtd;
|
||||
ZeroMemory(&wtd, sizeof(wtd));
|
||||
wtd.cbStruct = sizeof(WINTRUST_DATA);
|
||||
wtd.pPolicyCallbackData = NULL;
|
||||
wtd.pSIPClientData = NULL;
|
||||
wtd.dwUIChoice = WTD_UI_NONE;
|
||||
wtd.fdwRevocationChecks = WTD_REVOKE_NONE;
|
||||
wtd.dwUnionChoice = WTD_CHOICE_FILE;
|
||||
wtd.dwStateAction = WTD_STATEACTION_VERIFY;
|
||||
wtd.hWVTStateData = NULL;
|
||||
wtd.pwszURLReference = NULL;
|
||||
wtd.dwUIContext = 0;
|
||||
wtd.pFile = &wfi;
|
||||
|
||||
GUID action = WINTRUST_ACTION_GENERIC_VERIFY_V2;
|
||||
LONG res = WinVerifyTrust(NULL, &action, &wtd);
|
||||
|
||||
if (wtd.hWVTStateData) {
|
||||
wtd.dwStateAction = WTD_STATEACTION_CLOSE;
|
||||
WinVerifyTrust(NULL, &action, &wtd);
|
||||
}
|
||||
|
||||
return (res == ERROR_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
<ROW Property="CompanyPath" Value="ONLYOFFICE" ValueLocId="-"/>
|
||||
<ROW Property="DesktopPath" Value="DesktopEditors" ValueLocId="-"/>
|
||||
<ROW Property="EMPTY_LANG_DIR" Value="en-US"/>
|
||||
<ROW Property="Edition" Value="Open Source" ValueLocId="-"/>
|
||||
<ROW Property="Edition" Value="Community" ValueLocId="-"/>
|
||||
<ROW Property="ExtPfx" Value="ASC" ValueLocId="-"/>
|
||||
<ROW Property="FORMS" Value="1" ValueLocId="-"/>
|
||||
<ROW Property="IncompatibleVersion_ErrorText" Value="Another version of the application is already installed that is incompatible with this installation. Please uninstall the current version first or download the correct version to install."/>
|
||||
@ -513,7 +513,7 @@
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||
<ROW BuildKey="MsiBuild32" BuildName="MsiBuild32" BuildOrder="2" BuildType="0" PackageFolder="." PackageFileName="[|PackageFileName]-[|ProductVersion]-[|Arch]" Languages="en;ar;be;bg;ca;cs;da;de;el;en_GB;es;fi;fr;gl;he;hu;id;it;ja;ko;lv;nb;nl;pl;pt;pt_BR;ro;ru;sk;sl;sq;sr_SP_Cyrillic;sr_SP_Latin;sv;tr;uk;ur;vi;zh;zh_TW" LangOpt="1" InstallationType="4" SummInfoMetadata="Creating Application:[|AI_PACKAGING_TOOL]#Subject:[|PackageName] [|ProductVersion] [|Arch]" UseLargeSchema="true"/>
|
||||
<ROW BuildKey="MsiBuild64" BuildName="MsiBuild64" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="[|PackageFileName]-[|ProductVersion]-[|Arch]" Languages="en;ar;be;bg;ca;cs;da;de;el;en_GB;es;fi;fr;gl;he;hu;id;it;ja;ko;lv;nb;nl;pl;pt;pt_BR;ro;ru;sk;sl;sq;sr_SP_Cyrillic;sr_SP_Latin;sv;tr;uk;ur;vi;zh;zh_TW" LangOpt="1" InstallationType="4" SummInfoMetadata="Creating Application:[|AI_PACKAGING_TOOL]#Subject:[|PackageName] [|ProductVersion] [|Arch]" UseLargeSchema="true" MsiPackageType="x64"/>
|
||||
<ROW BuildKey="MsiBuildARM64" BuildName="MsiBuildARM64" BuildOrder="3" BuildType="0" PackageFolder="." PackageFileName="[|PackageFileName]-[|ProductVersion]-[|Arch]" Languages="en;ar;be;bg;ca;cs;da;de;el;en_GB;es;fi;fr;gl;he;hu;id;it;ja;ko;lv;nb;nl;pl;pt;pt_BR;ro;ru;sk;sl;sq;sr_SP_Cyrillic;sr_SP_Latin;sv;tr;uk;ur;vi;zh;zh_TW" LangOpt="1" InstallationType="4" SummInfoMetadata="Creating Application:[|AI_PACKAGING_TOOL]#Subject:[|PackageName] [|ProductVersion] [|Arch]" UseLargeSchema="true" MsiPackageType="Arm64"/>
|
||||
<ROW BuildKey="MsiBuildARM64" BuildName="MsiBuildARM64" BuildOrder="3" BuildType="0" PackageFolder="." PackageFileName="[|PackageFileName]-[|ProductVersion]-[|Arch]" Languages="en;ar;be;bg;ca;cs;da;de;el;en_GB;es;fi;fr;gl;he;hu;id;it;ja;ko;lv;nb;nl;pl;pt;pt_BR;ro;ru;sk;sl;sq;sr_SP_Cyrillic;sr_SP_Latin;sv;tr;uk;ur;vi;zh;zh_TW" LangOpt="1" InstallationType="4" SummInfoMetadata="Creating Application:[|AI_PACKAGING_TOOL]#Page Count:500#Subject:[|PackageName] [|ProductVersion] [|Arch]" UseLargeSchema="true" MsiPackageType="Arm64"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||
@ -1535,6 +1535,7 @@
|
||||
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="MsiBuild64;MsiBuild32;MsiBuildARM64"/>
|
||||
<ROW Condition="(VersionNT <> 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="MsiBuild64;MsiBuild32;MsiBuildARM64"/>
|
||||
<ROW Condition="(VersionNT <> 600)" Description="[ProductName] cannot be installed on [WindowsTypeNT60Display]." DescriptionLocId="AI.LaunchCondition.NoNT60" IsPredefined="true" Builds="MsiBuild64;MsiBuild32;MsiBuildARM64"/>
|
||||
<ROW Condition="AiArm64" Description="[ProductName] can only be installed on Arm64 Windows versions." Builds="MsiBuildARM64"/>
|
||||
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="MsiBuild64;MsiBuild32;MsiBuildARM64"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiMergeModsComponent">
|
||||
@ -1560,6 +1561,9 @@
|
||||
<ROW Registry="ModifyPath" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="ModifyPath" Value="[AI_UNINSTALLER] /i [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="NoModify" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoModify" Value="#1" Component_="AI_DisableModify" VirtualValue="#"/>
|
||||
<ROW Registry="NoRepair" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoRepair" Value="#1" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||
<ROW Registry="PackageArch" Root="-1" Key="Software\[CompanyPath]\[DesktopPath]" Name="PackageArch" Value="[Arch]" Component_="c_reg_sw_app"/>
|
||||
<ROW Registry="PackageEdition" Root="-1" Key="Software\[CompanyPath]\[DesktopPath]" Name="PackageEdition" Value="[Edition]" Component_="c_reg_sw_app"/>
|
||||
<ROW Registry="PackageType" Root="-1" Key="Software\[CompanyPath]\[DesktopPath]" Name="PackageType" Value="advinst" Component_="c_reg_sw_app"/>
|
||||
<ROW Registry="ProductNameProductVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="\"/>
|
||||
<ROW Registry="Publisher" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Publisher" Value="[Manufacturer]" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="Readme" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Readme" Value="[ARPREADME]" Component_="AI_CustomARPName"/>
|
||||
|
||||
@ -5,6 +5,9 @@
|
||||
#endif
|
||||
#include BRANDING_DIR + '\defines.iss'
|
||||
|
||||
#ifndef PACKAGE_EDITION
|
||||
#define PACKAGE_EDITION 'Community'
|
||||
#endif
|
||||
#ifndef VERSION
|
||||
#define VERSION '0.0.0.0'
|
||||
#endif
|
||||
@ -15,14 +18,15 @@
|
||||
#ifndef BUILD_DIR
|
||||
#define BUILD_DIR '.\build.' + ARCH
|
||||
#endif
|
||||
#ifdef PACKAGE_EDITION
|
||||
#define sPackageName sPackageName + '-' + PACKAGE_EDITION
|
||||
#endif
|
||||
#ifndef OUTPUT_DIR
|
||||
#define OUTPUT_DIR '.'
|
||||
#endif
|
||||
#ifndef OUTPUT_FILE
|
||||
#if PACKAGE_EDITION == 'Community'
|
||||
#define OUTPUT_FILE sPackageName + '-' + VERSION + '-' + ARCH
|
||||
#else
|
||||
#define OUTPUT_FILE sPackageName + '-' + PACKAGE_EDITION + '-' + VERSION + '-' + ARCH
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if FileExists(BRANDING_DIR + '\branding.iss')
|
||||
@ -68,7 +72,7 @@ DisableDirPage = auto
|
||||
AllowNoIcons = yes
|
||||
AlwaysShowDirOnReadyPage = yes
|
||||
UninstallDisplayIcon = {app}\app.ico
|
||||
#ifndef PACKAGE_EDITION
|
||||
#if PACKAGE_EDITION == "Community" | PACKAGE_EDITION == "XP"
|
||||
UninstallDisplayName = {#sAppName} {#sAppVerShort} ({#ARCH})
|
||||
#else
|
||||
UninstallDisplayName = {#sAppName} ({#PACKAGE_EDITION}) {#sAppVerShort} ({#ARCH})
|
||||
@ -79,14 +83,15 @@ AppMutex ={code:getAppMutex}
|
||||
ChangesEnvironment =yes
|
||||
SetupMutex =ASC
|
||||
|
||||
#if ARCH == "x64" | ARCH == "arm64"
|
||||
#if Int(DecodeVer(PREPROCVER,1)) >= 6
|
||||
ArchitecturesAllowed = x64compatible or arm64
|
||||
ArchitecturesInstallIn64BitMode = x64compatible or arm64
|
||||
#else
|
||||
#if Ver < EncodeVer(6,0,0) & ARCH == "x64"
|
||||
ArchitecturesAllowed = x64
|
||||
ArchitecturesInstallIn64BitMode = x64
|
||||
#endif
|
||||
#elif Ver >= EncodeVer(6,0,0) & ARCH == "x64"
|
||||
ArchitecturesAllowed = x64compatible
|
||||
ArchitecturesInstallIn64BitMode = x64compatible
|
||||
#elif ARCH == "arm64"
|
||||
ArchitecturesAllowed = arm64
|
||||
ArchitecturesInstallIn64BitMode = arm64
|
||||
#endif
|
||||
|
||||
#ifdef _WIN_XP
|
||||
@ -102,15 +107,11 @@ SignTool =byparam $p
|
||||
SetupIconFile={#BRANDING_DIR}\..\..\extras\projicons\res\icons\desktopeditors.ico
|
||||
WizardImageFile={#BRANDING_DIR}\data\dialogpicture*.bmp
|
||||
WizardSmallImageFile={#BRANDING_DIR}\data\dialogicon*.bmp
|
||||
#ifdef PACKAGE_EDITION
|
||||
#if PACKAGE_EDITION == "Enterprise"
|
||||
LicenseFile={#BRANDING_DIR}\..\..\..\common\package\license\commercial\LICENSE.rtf
|
||||
#else
|
||||
LicenseFile={#BRANDING_DIR}\..\..\..\common\package\license\opensource\LICENSE.rtf
|
||||
#endif
|
||||
#else
|
||||
LicenseFile={#BRANDING_DIR}\..\..\..\common\package\license\opensource\LICENSE.rtf
|
||||
#endif
|
||||
|
||||
SolidCompression=yes
|
||||
Compression=lzma2/ultra64
|
||||
@ -1180,20 +1181,14 @@ Source: "{#BUILD_DIR}\desktop\*"; DestDir: {app}; Flags: ignoreversion recursesu
|
||||
#if defined(_WIN_XP) | defined(EMBED_HELP)
|
||||
Source: "{#BUILD_DIR}\help\*"; DestDir: {app}; Flags: ignoreversion recursesubdirs;
|
||||
#endif
|
||||
Source: "{#BUILD_DIR}\desktop\*.exe"; DestDir: {app}; Flags: signonce;
|
||||
Source: "{#BUILD_DIR}\desktop\*.dll"; DestDir: {app}; Flags: signonce;
|
||||
Source: "{#BUILD_DIR}\desktop\converter\*.exe"; DestDir: {app}\converter; Flags: signonce;
|
||||
Source: "{#BUILD_DIR}\desktop\converter\*.dll"; DestDir: {app}\converter; Flags: signonce;
|
||||
Source: "{#BUILD_DIR}\desktop\*.exe"; DestDir: {app}; Flags: recursesubdirs signonce;
|
||||
Source: "{#BUILD_DIR}\desktop\*.dll"; DestDir: {app}; Flags: recursesubdirs signonce;
|
||||
Source: "..\..\..\common\converter\package.config"; DestDir: {app}\converter;
|
||||
#ifdef PACKAGE_EDITION
|
||||
#if PACKAGE_EDITION == "Enterprise"
|
||||
Source: "{#BRANDING_DIR}\..\..\..\common\package\license\commercial\LICENSE.txt"; DestDir: {app}; DestName: "EULA.txt";
|
||||
#else
|
||||
Source: "{#BRANDING_DIR}\..\..\..\common\package\license\opensource\LICENSE.txt"; DestDir: {app};
|
||||
#endif
|
||||
#else
|
||||
Source: "{#BRANDING_DIR}\..\..\..\common\package\license\opensource\LICENSE.txt"; DestDir: {app};
|
||||
#endif
|
||||
Source: "{#BRANDING_DIR}\..\..\..\common\package\license\3dparty\3DPARTYLICENSE"; DestDir: {app};
|
||||
|
||||
[InstallDelete]
|
||||
@ -1234,6 +1229,9 @@ Root: HKLM; Subkey: {#APP_REG_PATH}; ValueType: string; ValueName: AppPath;
|
||||
Root: HKLM; Subkey: {#APP_REG_PATH}; ValueType: string; ValueName: locale; ValueData: {code:getAppPrevLang}; Flags: uninsdeletevalue;
|
||||
Root: HKCU; Subkey: {#APP_REG_PATH}; ValueType: string; ValueName: locale; ValueData: {code:getAppPrevLang}; Flags: uninsdeletevalue;
|
||||
Root: HKLM; Subkey: {#APP_REG_PATH}; ValueType: qword; ValueName: timestamp; ValueData: {code:getPosixTime}; Flags: uninsdeletevalue;
|
||||
Root: HKLM; Subkey: "{#APP_REG_PATH}"; ValueType: "string"; ValueName: "PackageArch"; ValueData: "{#ARCH}"; Flags: uninsdeletevalue;
|
||||
Root: HKLM; Subkey: "{#APP_REG_PATH}"; ValueType: "string"; ValueName: "PackageEdition"; ValueData: "{#PACKAGE_EDITION}"; Flags: uninsdeletevalue;
|
||||
Root: HKLM; Subkey: "{#APP_REG_PATH}"; ValueType: "string"; ValueName: "PackageType"; ValueData: "inno"; Flags: uninsdeletevalue;
|
||||
|
||||
#ifdef _ONLYOFFICE
|
||||
Root: HKLM; Subkey: "SOFTWARE\Classes\{#sAppProtocol}"; ValueType: "string"; ValueData: "URL:{#sAppName} Protocol"; Flags: uninsdeletekey;
|
||||
|
||||
@ -85,9 +85,7 @@ Write-Host "`n[ Sign files ]"
|
||||
|
||||
if ($Sign) {
|
||||
Set-Location "$BuildDir\desktop"
|
||||
$SignFiles = Get-ChildItem `
|
||||
*.exe, *.dll, converter\*.exe, converter\*.dll, plugins\*\*.dll `
|
||||
| Resolve-Path -Relative
|
||||
$SignFiles = Get-ChildItem *.exe, *.dll -Recurse | Resolve-Path -Relative
|
||||
|
||||
# Sign
|
||||
Write-Host "signtool sign /a /n $CertName /t $TimestampServer ..."
|
||||
@ -95,9 +93,7 @@ if ($Sign) {
|
||||
if ($LastExitCode -ne 0) { throw }
|
||||
|
||||
# Verify
|
||||
Write-Host "signtool verify /q /pa /all ..."
|
||||
& signtool verify /q /pa /all $SignFiles | Out-Null
|
||||
if ($LastExitCode -ne 0) { throw }
|
||||
Get-ChildItem *.exe, *.dll -Recurse | % { Get-AuthenticodeSignature $_ }
|
||||
|
||||
# VLC plugin cache
|
||||
if (
|
||||
|
||||
@ -2117,7 +2117,8 @@ void CAscApplicationManagerWrapper::applyTheme(const wstring& theme, bool force)
|
||||
_editor->applyTheme(theme);
|
||||
}
|
||||
|
||||
QJsonObject _json_obj{{"theme", _app.m_themes->current().json()}};
|
||||
// QJsonObject _json_obj{{"theme", _app.m_themes->current().json()}};
|
||||
QJsonObject _json_obj{{"theme", QString::fromStdWString(actual_id)}}; // for bug 78050. send only theme id
|
||||
AscAppManager::getInstance().UpdatePlugins(Utils::stringifyJson(_json_obj).toStdWString());
|
||||
AscAppManager::sendCommandTo(SEND_TO_ALL_START_PAGE, L"uitheme:changed", theme);
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ void CMainWindowImpl::refreshAboutVersion()
|
||||
{
|
||||
QJsonObject _json_obj;
|
||||
|
||||
auto _read_license_name = [](const QString& path) -> QString {
|
||||
auto _read_license_name = [](QString& path) -> QString {
|
||||
QFileInfo fi(path);
|
||||
QDir dir = fi.dir();
|
||||
QStringList files = dir.entryList(QStringList() << fi.fileName(),
|
||||
@ -64,8 +64,8 @@ void CMainWindowImpl::refreshAboutVersion()
|
||||
if (files.isEmpty())
|
||||
return QString();
|
||||
|
||||
QString correctPath = dir.filePath(files.first());
|
||||
QFile f(correctPath);
|
||||
path = dir.filePath(files.first());
|
||||
QFile f(path);
|
||||
QString n;
|
||||
if ( f.exists() ) {
|
||||
if ( f.open(QIODevice::ReadOnly | QIODevice::Text )) {
|
||||
|
||||
Reference in New Issue
Block a user