[Libreoffice-commits] core.git: ios/LibreOfficeKit ios/LibreOfficeLight

jan Iversen jani at libreoffice.org
Sun Oct 29 11:31:55 UTC 2017


 ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h              |    4 
 ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj |    4 
 ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift     |   53 ++
 ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift  |  223 ++++++----
 ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c              |    2 
 ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard  |   53 +-
 6 files changed, 227 insertions(+), 112 deletions(-)

New commits:
commit ba73d5e72e2eb5d787ae916631c4e3ef430f1008
Author: jan Iversen <jani at libreoffice.org>
Date:   Sun Oct 29 12:29:55 2017 +0100

    iOS, completed doc of DocumentController
    
    Added "close" menu
    moved popover menu class to own file
    solved clang problem with C headers () is not permitted (void) is
    
    Change-Id: Id4f5053e325e2952171e10b0ca7f995447955748

diff --git a/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h b/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h
index 56843ddfe0a2..1314f0df66eb 100644
--- a/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h
+++ b/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h
@@ -14,5 +14,5 @@
 int BridgeLOkit_Init(const char *path);
 int BridgeLOkit_open(const char *path);
 int BridgeLOkit_ClientCommand(const char *input);
-int BridgeLOkit_Hipernate();
-int BridgeLOkit_LeaveHipernate();
+int BridgeLOkit_Hipernate(void);
+int BridgeLOkit_LeaveHipernate(void);
diff --git a/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj b/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj
index fd71169bfa57..d51d49ea88f1 100644
--- a/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj
+++ b/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj
@@ -13,6 +13,7 @@
 		39022C211EDC2D0800100066 /* icudt59l.dat in Resources */ = {isa = PBXBuildFile; fileRef = 39022C201EDC2D0800100066 /* icudt59l.dat */; };
 		39022C241EDC303200100066 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 39022C221EDC303200100066 /* InfoPlist.strings */; };
 		39284DB11FA5E150006F43E4 /* dummyLOkit.c in Sources */ = {isa = PBXBuildFile; fileRef = 39284DB01FA5E150006F43E4 /* dummyLOkit.c */; };
+		39284DB31FA5F207006F43E4 /* DocumentActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39284DB21FA5F207006F43E4 /* DocumentActions.swift */; };
 		392ED9B31E5E4B03005C8435 /* ViewPrintManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */; };
 		393975781F8BECB0002DC80B /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 393975771F8BECB0002DC80B /* libiconv.tbd */; };
 		3939757A1F8BECC1002DC80B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 393975791F8BECC1002DC80B /* libz.tbd */; };
@@ -41,6 +42,7 @@
 		39022C201EDC2D0800100066 /* icudt59l.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = icudt59l.dat; path = ../generated/resources/icudt59l.dat; sourceTree = "<group>"; };
 		39022C231EDC303200100066 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		39284DB01FA5E150006F43E4 /* dummyLOkit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dummyLOkit.c; sourceTree = "<group>"; };
+		39284DB21FA5F207006F43E4 /* DocumentActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocumentActions.swift; sourceTree = "<group>"; };
 		392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewPrintManager.swift; path = LibreOfficeLight/ViewPrintManager.swift; sourceTree = SOURCE_ROOT; };
 		393975771F8BECB0002DC80B /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
 		393975791F8BECC1002DC80B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
@@ -131,6 +133,7 @@
 				39284DB01FA5E150006F43E4 /* dummyLOkit.c */,
 				397E08FD1E597BD8001374E0 /* AppDelegate.swift */,
 				3992D8591E5B762A00BEA987 /* DocumentController.swift */,
+				39284DB21FA5F207006F43E4 /* DocumentActions.swift */,
 				39EF4E2E1FA500C9001914AC /* PropertiesController.swift */,
 				392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */,
 				399648461E5B87DC00E73E83 /* ViewProperties.swift */,
@@ -257,6 +260,7 @@
 			files = (
 				392ED9B31E5E4B03005C8435 /* ViewPrintManager.swift in Sources */,
 				399648471E5B87DC00E73E83 /* ViewProperties.swift in Sources */,
+				39284DB31FA5F207006F43E4 /* DocumentActions.swift in Sources */,
 				39284DB11FA5E150006F43E4 /* dummyLOkit.c in Sources */,
 				3992D85A1E5B762A00BEA987 /* DocumentController.swift in Sources */,
 				397E08FE1E597BD8001374E0 /* AppDelegate.swift in Sources */,
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift b/ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift
new file mode 100644
index 000000000000..d3c41977f09b
--- /dev/null
+++ b/ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift
@@ -0,0 +1,53 @@
+//
+// This file is part of the LibreOffice project.
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+//
+import UIKit
+
+
+
+// Protocol for action popover callback
+protocol MenuDelegate
+{
+    func actionMenuSelected(_ tag : Int)
+}
+
+
+
+class DocumentActions: UITableViewController
+{
+    // Pointer to callback class
+    var delegate  : MenuDelegate?
+    var isDocActive : Bool = false
+
+    // Calling class might enable/disable each button
+    @IBAction func actionMenuSelect(_ sender: UIButton)
+    {
+        dismiss(animated: false)
+        delegate?.actionMenuSelected(sender.tag)
+    }
+
+    @IBOutlet weak var buttonClose: UIButton!
+    @IBOutlet weak var buttonProperties: UIButton!
+    @IBOutlet weak var buttonNew: UIButton!
+    @IBOutlet weak var buttonOpen: UIButton!
+    @IBOutlet weak var buttonSave: UIButton!
+    @IBOutlet weak var buttonSaveAs: UIButton!
+    @IBOutlet weak var buttonSaveAsPDF: UIButton!
+    @IBOutlet weak var buttonPrint: UIButton!
+    @IBOutlet weak var buttonCopy: UIButton!
+    @IBOutlet weak var buttonMove: UIButton!
+    @IBOutlet weak var buttonDelete: UIButton!
+
+    override func viewDidLoad()
+    {
+        super.viewDidLoad()
+        buttonSave.isEnabled = isDocActive
+        buttonSaveAs.isEnabled = isDocActive
+        buttonSaveAsPDF.isEnabled = isDocActive
+        buttonPrint.isEnabled = isDocActive
+    }
+}
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift b/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift
index 28f18b5afd66..a6c4a0b26f82 100755
--- a/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift
+++ b/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift
@@ -15,7 +15,7 @@ import UIKit
 // It is a delegate class to recieve Menu events as well as file handling events
 class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewControllerDelegate
 {
-    // Handling of DocumentController
+    // *** Handling of DocumentController
     // this is normal functions every controller must implement
 
 
@@ -41,7 +41,7 @@ class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewC
 
 
 
-    // Handling of Background (hipernate)
+    // *** Handling of Background (hipernate)
     // iOS is not true multitasking, only 1 app can be active (foreground) at any time,
     // therefore apps frequently are moved to the background.
     // background really means hipernate by terminating all threads and solely keep the
@@ -63,7 +63,7 @@ class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewC
 
 
 
-    // handling of PropertiesController
+    // *** handling of PropertiesController
     // The PropertiesController is a left sidebar, that will scroll in when activated
     // The Controller handles manipulation of properties in the document
 
@@ -122,134 +122,183 @@ class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewC
 
 
 
+    // *** Handling of menu popover
+    // the menu contain all globbal functions and use seque/delegate
 
 
-    // var currentDocumentName : String?
 
+    var currentDocumentName : String? = nil
 
-    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
-                                  didRequestDocumentCreationWithHandler importHandler: @escaping (URL?, UIDocumentBrowserViewController.ImportMode) -> Void)
+
+
+    // Last stop before displaying popover
+    override func prepare(for segue: UIStoryboardSegue, sender: Any?)
     {
-        // Asks the delegate to create a new document.
+        // "showActions" is the name of the popover menu, see storyboard
+        if segue.identifier == "showActions" {
+            let vc = segue.destination as! DocumentActions
+            vc.delegate = self
+            vc.isDocActive = (currentDocumentName != nil)
+        }
     }
 
-    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
-                                  didImportDocumentAt sourceURL: URL,
-                                  toDestinationURL destinationURL: URL)
+
+
+    // Delegate call from menu (see protocol MenuDelegate)
+    func actionMenuSelected(_ tag : Int)
     {
-        // Tells the delegate that a document has been successfully imported.
-        //FIX BridgeLOkit_open("jan");
-        //FIX BridgeLOkit_ClientCommand("jan");
+        // a tag can sadly enough only be a number and not a string,
+        // whenever adding a menu entry, it (of course) needs to be added
+        // to the Document actions scene in storyboard and assigned a tag number
+        // the tag number must be repeated in the following switch
+        // BE CAREFULL to keep the tags synchronized (manually)
+        switch tag
+        {
+        case 1: // Open...
+                doOpenDocument()
+
+        case 2: // Properties
+                doProperties()
 
+        case 3: // Save
+                doSave()
+
+        case 4: // Close...
+                doClose()
+
+        case 4: // Save as...
+                doSaveAs()
+
+        case 5: // Save as PDF...
+                doSaveAsPDF()
+
+        case 6: // Print...
+                doPrint()
+
+        default: // should not happen
+                 print("unknown menu" + String(tag))
+        }
     }
 
-    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
-                                  failedToImportDocumentAt documentURL: URL,
-                                  error: Error?)
+
+
+    // *** handling of menu actions
+    // This is the real base of the application
+
+
+
+    // Load document into LibreOfficeKit and present it
+    internal func doOpenDocument()
     {
-        // Tells the delegate that the document browser failed to import the specified document.
+        //FIXME
+
+        // let openMenu = UIDocumentPickerViewController(documentTypes: ["public.data"], in: .open)
+        let openMenu = UIDocumentBrowserViewController()
+        //penMenu.allowsDocumentCreation = true
+        // UIDocumentBrowserViewController.ImportMode = UIDocumentBrowserViewController.ImportMode.none // copy, move
+        //openMenu.InterfaceStyle = UIDocumentPickerViewController.dark
+        openMenu.delegate = self
+        self.present(openMenu, animated: true, completion: nil)
+        print("menu Open... to be done")
     }
 
-    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
-                                  didPickDocumentURLs documentURLs: [URL])
+
+
+    // Show document properties (new overloaded page)
+    internal func doProperties()
     {
-        // Tells the delegate that the user has selected one or more documents.
-        //FIX BridgeLOkit_open("jan");
-        //FIX BridgeLOkit_ClientCommand("jan");
+        //FIXME
+        print("menu Properties to be done")
     }
 
-    @IBOutlet weak var janTest: UILabel!
 
-    // Last stop before displaying popover
-    override func prepare(for segue: UIStoryboardSegue, sender: Any?)
+
+    // Save current document
+    internal func doSave()
     {
-        if segue.identifier == "showActions" {
-            let vc = segue.destination as! DocumentActions
-            vc.delegate = self
+        //FIXME
+        print("menu Save to be done")
+    }
 
-            // JIX, TO BE CHANGED
-            vc.isDocActive = true
-        }
+
+
+    // Close current document (without saving)
+    internal func doClose()
+    {
+        //FIXME
+        print("menu Close to be done")
     }
 
 
 
-    func actionMenuSelected(_ tag : Int)
+    // make a copy of current document, and save
+    internal func doSaveAs()
     {
-        switch tag
-        {
-            case 1: // Open...
-                // let openMenu = UIDocumentPickerViewController(documentTypes: ["public.data"], in: .open)
-                let openMenu = UIDocumentBrowserViewController()
-                //penMenu.allowsDocumentCreation = true
-                // UIDocumentBrowserViewController.ImportMode = UIDocumentBrowserViewController.ImportMode.none // copy, move
-                //openMenu.InterfaceStyle = UIDocumentPickerViewController.dark
-                openMenu.delegate = self
-                self.present(openMenu, animated: true, completion: nil)
-                print("menu Open... to be done")
+        //FIXME
+        print("menu Save as... to be done")
+    }
 
-            case 2: // Properties
-                print("menu Properties to be done")
 
-            case 3: // Save
-                print("menu Save to be done")
 
-            case 4: // Save as...
-                print("menu Save as... to be done")
+    // save current document as PDF
+    internal func doSaveAsPDF()
+    {
+        //FIXME
+        print("menu Save as PDF... to be done")
+    }
 
-            case 5: // Save as PDF...
-                print("menu Save as PDF... to be done")
 
-            case 6: // Print...
-                print("menu Print... to be done")
 
-            default: // should not happen
-                print("unknown menu" + String(tag))
-        }
+    // print current document
+    internal func doPrint()
+    {
+        //FIXME
+        print("menu Print... to be done")
     }
-}
 
 
 
-// Protocol for action popover callback
-protocol MenuDelegate
-{
-    func actionMenuSelected(_ tag : Int)
-}
+    // *** Handling of DocumentViewController delegate functions
+    // this handles open/create/copy/delete document
 
 
 
-class DocumentActions: UITableViewController
-{
-    // Pointer to callback class
-    var delegate  : MenuDelegate?
-    var isDocActive : Bool = false
+    // Create an empty document, and present it
+    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
+                                  didRequestDocumentCreationWithHandler importHandler: @escaping (URL?,
+                                  UIDocumentBrowserViewController.ImportMode) -> Void)
+    {
+        //FIXME
+    }
+
 
-    // Calling class might enable/disable each button
-    @IBAction func actionMenuSelect(_ sender: UIButton)
+
+    // import (copy from iCloud to iPad) document, open it and present it
+    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
+                                  didImportDocumentAt sourceURL: URL,
+                                  toDestinationURL destinationURL: URL)
     {
-        dismiss(animated: false)
-        delegate?.actionMenuSelected(sender.tag)
+        //FIXME
     }
 
-    @IBOutlet weak var buttonProperties: UIButton!
-    @IBOutlet weak var buttonNew: UIButton!
-    @IBOutlet weak var buttonOpen: UIButton!
-    @IBOutlet weak var buttonSave: UIButton!
-    @IBOutlet weak var buttonSaveAs: UIButton!
-    @IBOutlet weak var buttonSaveAsPDF: UIButton!
-    @IBOutlet weak var buttonPrint: UIButton!
-    @IBOutlet weak var buttonCopy: UIButton!
-    @IBOutlet weak var buttonMove: UIButton!
-    @IBOutlet weak var buttonDelete: UIButton!
 
-    override func viewDidLoad()
+
+    // Import failed, inform user
+    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
+                                  failedToImportDocumentAt documentURL: URL,
+                                  error: Error?)
     {
-        super.viewDidLoad()
-        buttonSave.isEnabled = isDocActive
-        buttonSaveAs.isEnabled = isDocActive
-        buttonSaveAsPDF.isEnabled = isDocActive
-        buttonPrint.isEnabled = isDocActive
+        //FIXME
+    }
+
+
+
+    // open document and present it
+    internal func documentBrowser(_ controller: UIDocumentBrowserViewController,
+                                  didPickDocumentURLs documentURLs: [URL])
+    {
+        //FIXME
+        //BridgeLOkit_open(documentURLs);
     }
 }
 
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c b/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c
index 5063f0f1317e..5d6effbf9647 100644
--- a/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c
+++ b/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c
@@ -5,6 +5,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 //
+#include "lokit-Bridging-Header.h"
+
 
 
 // replaces LibreOfficeKit and thereby reducing turn around time, which is
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard b/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard
index 925ce28c9b27..936c0620eb13 100755
--- a/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard
+++ b/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard
@@ -20,15 +20,6 @@
                     <view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
                         <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                        <subviews>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="My document" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D1P-q2-3PT">
-                                <rect key="frame" x="193" y="476" width="156" height="21"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                <nil key="textColor"/>
-                                <nil key="highlightedColor"/>
-                            </label>
-                        </subviews>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                     </view>
                     <toolbarItems/>
@@ -47,9 +38,6 @@
                         </barButtonItem>
                     </navigationItem>
                     <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/>
-                    <connections>
-                        <outlet property="janTest" destination="D1P-q2-3PT" id="ERV-pa-Fs9"/>
-                    </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
             </objects>
@@ -286,7 +274,7 @@
             <objects>
                 <tableViewController autoresizesArchivedViewToFullSize="NO" title="Document Actions" automaticallyAdjustsScrollViewInsets="NO" modalTransitionStyle="crossDissolve" modalPresentationStyle="overCurrentContext" clearsSelectionOnViewWillAppear="NO" id="IER-X5-Ax8" customClass="DocumentActions" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController">
                     <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="plain" separatorStyle="default" rowHeight="30" sectionHeaderHeight="28" sectionFooterHeight="28" id="RqF-IL-YJc">
-                        <rect key="frame" x="0.0" y="0.0" width="134" height="180"/>
+                        <rect key="frame" x="0.0" y="0.0" width="134" height="210"/>
                         <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                         <sections>
@@ -341,7 +329,7 @@
                                             <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
-                                                <button opaque="NO" tag="3" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m45-MR-Gca">
+                                                <button opaque="NO" tag="3" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m45-MR-Gca" userLabel="Button Save">
                                                     <rect key="frame" x="8" y="0.0" width="118" height="30"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <accessibility key="accessibilityConfiguration" identifier="actionSave">
@@ -355,14 +343,32 @@
                                             </subviews>
                                         </tableViewCellContentView>
                                     </tableViewCell>
-                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="AN7-6j-wO7">
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="Kys-Iw-SeT">
                                         <rect key="frame" x="0.0" y="90" width="134" height="30"/>
                                         <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Kys-Iw-SeT" id="2C9-6w-WS3">
+                                            <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <button opaque="NO" tag="4" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="95N-Hk-rcU" userLabel="Button Close">
+                                                    <rect key="frame" x="8" y="0.0" width="118" height="30"/>
+                                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                                    <accessibility key="accessibilityConfiguration" identifier="actionSave">
+                                                        <bool key="isElement" value="NO"/>
+                                                    </accessibility>
+                                                    <state key="normal" title="Close"/>
+                                                </button>
+                                            </subviews>
+                                        </tableViewCellContentView>
+                                    </tableViewCell>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="AN7-6j-wO7">
+                                        <rect key="frame" x="0.0" y="120" width="134" height="30"/>
+                                        <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="AN7-6j-wO7" id="kl1-nQ-aIu">
                                             <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
-                                                <button opaque="NO" tag="4" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6vH-aM-aYe">
+                                                <button opaque="NO" tag="5" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6vH-aM-aYe" userLabel="Button Save copy">
                                                     <rect key="frame" x="8" y="0.0" width="118" height="30"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <accessibility key="accessibilityConfiguration">
@@ -370,20 +376,20 @@
                                                     </accessibility>
                                                     <state key="normal" title="Save copy..."/>
                                                     <connections>
-                                                        <action selector="actionMenuSelect:" destination="IER-X5-Ax8" eventType="touchUpInside" id="0gI-or-ji4"/>
+                                                        <action selector="actionMenuSelect:" destination="IER-X5-Ax8" eventType="touchUpInside" id="KBW-3d-D5Z"/>
                                                     </connections>
                                                 </button>
                                             </subviews>
                                         </tableViewCellContentView>
                                     </tableViewCell>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="GmK-gj-GYu">
-                                        <rect key="frame" x="0.0" y="120" width="134" height="30"/>
+                                        <rect key="frame" x="0.0" y="150" width="134" height="30"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="GmK-gj-GYu" id="3OK-Zz-mqN">
                                             <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
-                                                <button opaque="NO" tag="5" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="apE-3B-lUt" userLabel="Button Save As PDF">
+                                                <button opaque="NO" tag="6" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="apE-3B-lUt" userLabel="Button Save As PDF">
                                                     <rect key="frame" x="8" y="0.0" width="118" height="30"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <accessibility key="accessibilityConfiguration" identifier="actionSaveAsPDF">
@@ -398,13 +404,13 @@
                                         </tableViewCellContentView>
                                     </tableViewCell>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="diN-3v-tgm">
-                                        <rect key="frame" x="0.0" y="150" width="134" height="30"/>
+                                        <rect key="frame" x="0.0" y="180" width="134" height="30"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="diN-3v-tgm" id="24s-fs-4cw">
                                             <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/>
                                             <autoresizingMask key="autoresizingMask"/>
                                             <subviews>
-                                                <button opaque="NO" tag="6" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tvH-WR-c61" userLabel="Button Print">
+                                                <button opaque="NO" tag="7" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tvH-WR-c61" userLabel="Button Print">
                                                     <rect key="frame" x="8" y="0.0" width="118" height="30"/>
                                                     <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                                     <accessibility key="accessibilityConfiguration">
@@ -427,13 +433,14 @@
                         </connections>
                     </tableView>
                     <extendedEdge key="edgesForExtendedLayout"/>
-                    <value key="contentSizeForViewInPopover" type="size" width="134" height="180"/>
+                    <value key="contentSizeForViewInPopover" type="size" width="134" height="210"/>
                     <nil key="simulatedStatusBarMetrics"/>
                     <nil key="simulatedTopBarMetrics"/>
                     <nil key="simulatedBottomBarMetrics"/>
                     <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
-                    <size key="freeformSize" width="134" height="180"/>
+                    <size key="freeformSize" width="134" height="210"/>
                     <connections>
+                        <outlet property="buttonClose" destination="6vH-aM-aYe" id="zNg-Rc-hcL"/>
                         <outlet property="buttonOpen" destination="myk-zs-md7" id="xQK-I1-pDl"/>
                         <outlet property="buttonPrint" destination="tvH-WR-c61" id="4YU-p2-Fim"/>
                         <outlet property="buttonProperties" destination="b90-ja-Wm0" id="scY-Fn-fss"/>


More information about the Libreoffice-commits mailing list