diff options
10 files changed, 861 insertions, 118 deletions
diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj b/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj index 44d84f4028e9..82f9ed2c73a9 100644 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj @@ -16,12 +16,11 @@ 397E09161E597BD8001374E0 /* LibreOfficeLightTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397E09151E597BD8001374E0 /* LibreOfficeLightTests.swift */; }; 397E09211E597BD8001374E0 /* LibreOfficeLightUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397E09201E597BD8001374E0 /* LibreOfficeLightUITests.swift */; }; 3992D8581E5B761700BEA987 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3992D8571E5B761700BEA987 /* ViewController.swift */; }; - 3992D85A1E5B762A00BEA987 /* ViewDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3992D8591E5B762A00BEA987 /* ViewDocument.swift */; }; + 3992D85A1E5B762A00BEA987 /* DocumentController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3992D8591E5B762A00BEA987 /* DocumentController.swift */; }; 3992D85D1E5B764A00BEA987 /* SideMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3992D85B1E5B764A00BEA987 /* SideMenu.swift */; }; - 3992D85E1E5B764A00BEA987 /* ViewFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3992D85C1E5B764A00BEA987 /* ViewFileManager.swift */; }; + 3992D85E1E5B764A00BEA987 /* FileManagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3992D85C1E5B764A00BEA987 /* FileManagerController.swift */; }; 399648471E5B87DC00E73E83 /* ViewProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399648461E5B87DC00E73E83 /* ViewProperties.swift */; }; 399648491E5C4E5500E73E83 /* LO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399648481E5C4E5500E73E83 /* LO.swift */; }; - 399BA3721E6881FC003D74A6 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 399BA3711E6881FC003D74A6 /* WebView.swift */; }; 39A83A8F1E5F471D00D0C683 /* lokit.c in Sources */ = {isa = PBXBuildFile; fileRef = 39A83A8E1E5F471D00D0C683 /* lokit.c */; }; 39B084E31E5F0A9600682A59 /* lo.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 39B084E21E5F0A9600682A59 /* lo.xcconfig */; }; 39B08B9D1E5F0BB600682A59 /* fundamentalrc in Resources */ = {isa = PBXBuildFile; fileRef = 39B084E51E5F0BB400682A59 /* fundamentalrc */; }; @@ -68,12 +67,11 @@ 397E09201E597BD8001374E0 /* LibreOfficeLightUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LibreOfficeLightUITests.swift; path = LibreOfficeLightUITests/LibreOfficeLightUITests.swift; sourceTree = SOURCE_ROOT; }; 397E09221E597BD8001374E0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = LibreOfficeLightUITests/Info.plist; sourceTree = SOURCE_ROOT; }; 3992D8571E5B761700BEA987 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewController.swift; path = LibreOfficeLight/ViewController.swift; sourceTree = SOURCE_ROOT; }; - 3992D8591E5B762A00BEA987 /* ViewDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewDocument.swift; path = LibreOfficeLight/ViewDocument.swift; sourceTree = SOURCE_ROOT; }; + 3992D8591E5B762A00BEA987 /* DocumentController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DocumentController.swift; path = LibreOfficeLight/DocumentController.swift; sourceTree = SOURCE_ROOT; }; 3992D85B1E5B764A00BEA987 /* SideMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SideMenu.swift; path = LibreOfficeLight/SideMenu.swift; sourceTree = SOURCE_ROOT; }; - 3992D85C1E5B764A00BEA987 /* ViewFileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewFileManager.swift; path = LibreOfficeLight/ViewFileManager.swift; sourceTree = SOURCE_ROOT; }; + 3992D85C1E5B764A00BEA987 /* FileManagerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FileManagerController.swift; path = LibreOfficeLight/FileManagerController.swift; sourceTree = SOURCE_ROOT; }; 399648461E5B87DC00E73E83 /* ViewProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewProperties.swift; path = LibreOfficeLight/ViewProperties.swift; sourceTree = SOURCE_ROOT; }; 399648481E5C4E5500E73E83 /* LO.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LO.swift; path = LibreOfficeLight/LO.swift; sourceTree = SOURCE_ROOT; }; - 399BA3711E6881FC003D74A6 /* WebView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = "<group>"; }; 39A83A8D1E5F471C00D0C683 /* lokit-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = "lokit-Bridging-Header.h"; path = "LibreOfficeLight/lokit-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; 39A83A8E1E5F471D00D0C683 /* lokit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lokit.c; path = LibreOfficeLight/lokit.c; sourceTree = SOURCE_ROOT; }; 39B084E21E5F0A9600682A59 /* lo.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = lo.xcconfig; path = "../../../../ios-work/workdir/ios/generated/lo.xcconfig"; sourceTree = SOURCE_ROOT; }; @@ -156,15 +154,14 @@ 397E08FD1E597BD8001374E0 /* AppDelegate.swift */, 3992D8571E5B761700BEA987 /* ViewController.swift */, 3992D85B1E5B764A00BEA987 /* SideMenu.swift */, - 3992D8591E5B762A00BEA987 /* ViewDocument.swift */, - 3992D85C1E5B764A00BEA987 /* ViewFileManager.swift */, + 3992D8591E5B762A00BEA987 /* DocumentController.swift */, + 3992D85C1E5B764A00BEA987 /* FileManagerController.swift */, 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */, 399648461E5B87DC00E73E83 /* ViewProperties.swift */, 399648481E5C4E5500E73E83 /* LO.swift */, 397E09011E597BD8001374E0 /* Main.storyboard */, 397868D81E59A3EA007F9248 /* LaunchScreen.xib */, 39A83A8D1E5F471C00D0C683 /* lokit-Bridging-Header.h */, - 399BA3711E6881FC003D74A6 /* WebView.swift */, ); path = LibreOfficeLight; sourceTree = SOURCE_ROOT; @@ -351,13 +348,12 @@ 397E09061E597BD8001374E0 /* LibreOfficeLight.xcdatamodeld in Sources */, 3992D85D1E5B764A00BEA987 /* SideMenu.swift in Sources */, 399648471E5B87DC00E73E83 /* ViewProperties.swift in Sources */, - 3992D85E1E5B764A00BEA987 /* ViewFileManager.swift in Sources */, - 3992D85A1E5B762A00BEA987 /* ViewDocument.swift in Sources */, + 3992D85E1E5B764A00BEA987 /* FileManagerController.swift in Sources */, + 3992D85A1E5B762A00BEA987 /* DocumentController.swift in Sources */, 397E08FE1E597BD8001374E0 /* AppDelegate.swift in Sources */, 39A83A8F1E5F471D00D0C683 /* lokit.c in Sources */, 399648491E5C4E5500E73E83 /* LO.swift in Sources */, 3992D8581E5B761700BEA987 /* ViewController.swift in Sources */, - 399BA3721E6881FC003D74A6 /* WebView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/DocumentController.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/DocumentController.swift new file mode 100755 index 000000000000..051d714c821b --- /dev/null +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/DocumentController.swift @@ -0,0 +1,91 @@ +// +// 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 + + + +class DocumentController: UIViewController +{ + + + override func viewDidLoad() + { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + + @IBAction func returned(segue: UIStoryboardSegue) { + print("I returned") + } + + override func didReceiveMemoryWarning() + { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + +} + + + +class DocumentActions: UITableViewController +{ + + @IBAction func doOpen(_ sender: UIButton) { + } + + @IBAction func doNew(_ sender: UIButton) { + } + + @IBAction func doSave(_ sender: UIButton) { + } + + @IBAction func doPDF(_ sender: UIButton) { + } + override func viewDidLoad() + { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + + + override func didReceiveMemoryWarning() + { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + +} + + + + +class DocumentSaveAsAction: UIViewController +{ + + + override func viewDidLoad() + { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + + + override func didReceiveMemoryWarning() + { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + +} diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift new file mode 100755 index 000000000000..e0328549380b --- /dev/null +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift @@ -0,0 +1,284 @@ +// +// 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 + + +private class FileStorage +{ + // house keeping variables + private let filemgr : FileManager = FileManager.default + private var storageIsLocal : Bool = true + + // Start path for the 2 storage locations + private let baseLocalDocPath : URL + private let baseCloudDocPath : URL? + private var currrentDocPath : URL? { + get { + return storageIsLocal ? baseLocalDocPath : baseCloudDocPath + } + } + + // make access to current dir independent of storage selection + private var localDir : URL + private var cloudDir : URL + private var currentDir : URL { + get { + return storageIsLocal ? localDir : cloudDir + } + set(newDir) { + if storageIsLocal { + localDir = newDir + } else { + cloudDir = newDir + } + } + } + + + + // content of current directory + var currentFileList : [String] = [] + var currentDirList : [String] = [] + + + + // Support functions + func iCloudEnabled() -> Bool + { + return baseCloudDocPath != nil + } + + + + func selectStorage(_ doSwitch : Bool) -> Bool + { + if doSwitch { + storageIsLocal = !storageIsLocal + } + return storageIsLocal + } + + + + func enterDirectory(_ name: String) + { + // simple add directory + currentDir = currentDir.appendingPathComponent(name) + filemgr.changeCurrentDirectoryPath(name) + buildFileList() + } + + + func leaveDirectory() + { + // step up for active storage, and only if not in root + if currentDir != currrentDocPath { + currentDir = currentDir.deletingLastPathComponent() + buildFileList() + } + } + + + + func createDirectory(_ name: String) + { + let newDir = currentDir.appendingPathComponent(name) + try! filemgr.createDirectory(at: newDir, withIntermediateDirectories: true, attributes: nil) + enterDirectory(name + "/") + } + + + + func deleteFileDirectory(_ name: String) + { + let delDir = currentDir.appendingPathComponent(name) + try! filemgr.removeItem(at: delDir) + buildFileList() + } + + + + func getFileURL(_ name: String) -> URL + { + return currentDir.appendingPathComponent(name) + } + + + + func copyFile(_ name: String) + { + try! filemgr.copyItem(at: currentDir.appendingPathComponent(name), + to: (storageIsLocal ? localDir : cloudDir).appendingPathComponent(name)) + } + + + + func moveFile(_ name: String) + { + try! filemgr.moveItem(at: currentDir.appendingPathComponent(name), + to: (storageIsLocal ? localDir : cloudDir).appendingPathComponent(name)) + } + + + + private func buildFileList() + { + currentDirList = [] + currentFileList = [] + let rawFileList = try! filemgr.contentsOfDirectory(at: currentDir, + includingPropertiesForKeys: [URLResourceKey.isDirectoryKey]) + for rawFile in rawFileList { + var isDir: ObjCBool = false + filemgr.fileExists(atPath: rawFile.path, isDirectory: &isDir) + if isDir.boolValue { + currentDirList.append(rawFile.lastPathComponent) + } else { + currentFileList.append(rawFile.lastPathComponent) + } + } + } + + + + init() + { + baseLocalDocPath = filemgr.urls(for: .documentDirectory, in: .userDomainMask)[0] + baseCloudDocPath = nil + localDir = baseLocalDocPath + cloudDir = baseLocalDocPath + buildFileList() + } +} + + + +class FileManagerController : UITableViewController + +{ + private var fileData = FileStorage() + + + func showFiles() + { + + } + + + + @IBAction func doSelectStorage(_ sender: UIBarButtonItem) + { + if fileData.selectStorage(true) { + sender.title = "iCloud" + } + else { + sender.title = "iPad" + } + showFiles() + } + + + + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + + if segue.identifier == "ShowAttractionDetails" { + +// let detailViewController = segue.destination +// as! AttractionDetailViewController + +// let myIndexPath = self.tableView.indexPathForSelectedRow! +// let row = myIndexPath.row +// detailViewController.webSite = webAddresses[row] + } + } + + + + override func numberOfSections(in tableView: UITableView) -> Int + { + return 1 + } + + + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int + { + return fileData.currentDirList.count + fileData.currentFileList.count + } + + + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell + { + let cell = self.tableView.dequeueReusableCell(withIdentifier: "fileEntry", for: indexPath) as! FileManagerCell + let row = indexPath.row + + if row < fileData.currentDirList.count { + cell.fileName = fileData.currentDirList[row] + cell.fileLabel.text = cell.fileName + "/" + cell.isDirectory = true + } else { + let inx = row - fileData.currentDirList.count + cell.fileName = fileData.currentFileList[inx] + cell.fileLabel.text = cell.fileName + cell.isDirectory = false + } + return cell + } + + + // MARK: - ViewController basic + override func viewDidLoad() + { + super.viewDidLoad() + showFiles() + } +} + +class FileManagerCell: UITableViewCell { + + @IBOutlet weak var fileLabel: UILabel! + var isDirectory : Bool = false + var fileName : String = "" +} + + + +class FileManagerActions : UITableViewController + +{ + @IBOutlet weak var buttonUploadDownload: UIButton! + @IBOutlet weak var buttonDelete: UIButton! + @IBOutlet weak var buttonOpen: UIButton! + @IBOutlet weak var buttonLevelUp: UIButton! + @IBOutlet weak var buttonCreateDirectory: UIButton! + + @IBAction func doOpen(_ sender: UIButton) { + dismiss(animated: false) + } + @IBAction func doDelete(_ sender: UIButton) { + dismiss(animated: false) + } + @IBAction func doUploadDownload(_ sender: UIButton) { + dismiss(animated: false) + } + + @IBAction func doLevelUp(_ sender: UIButton) { + dismiss(animated: false) + } + @IBAction func doCreateDirectory(_ sender: UIButton) { + } + // MARK: - ViewController basic + + + + override func viewDidLoad() + { + super.viewDidLoad() + // Do any additional setup after loading the view. + } +} diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewController.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewController.swift index 7ffbac0ec594..bbcce1512d46 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewController.swift +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewController.swift @@ -8,14 +8,14 @@ import UIKit -class ViewController: UIViewController { +class ViewController: UIViewController, UIPopoverPresentationControllerDelegate { // MARK: - ViewController menu actions - @IBAction func doMenu(_ sender: UIBarButtonItem) + func doMenu(_ sender: UIBarButtonItem) { if (sender.tag == 10) { @@ -55,7 +55,7 @@ class ViewController: UIViewController { - @IBAction func doDelete(_ sender: UIBarButtonItem) + func doDelete(_ sender: UIBarButtonItem) { LOinterface.DeleteCurrentDocument() } @@ -79,4 +79,21 @@ class ViewController: UIViewController { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } + + +// func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle { +// return UIModalPresentationStyle.none +// } + + + +// override func prepare(for segue: UIStoryboardSegue, sender: Any?) +// { +// if segue.identifier == "doShowFileManagerActions" { +// let popoverViewController = segue.destination +// popoverViewController.modalPresentationStyle = UIModalPresentationStyle.popover +// popoverViewController.popoverPresentationController!.delegate = self +// } +// } + } diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewDocument.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewDocument.swift deleted file mode 100755 index fba043c24455..000000000000 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewDocument.swift +++ /dev/null @@ -1,13 +0,0 @@ -// -// 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/. -// - - - -class ViewDocument: ViewController -{ -} diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewFileManager.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewFileManager.swift deleted file mode 100755 index 7142d5ff5573..000000000000 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewFileManager.swift +++ /dev/null @@ -1,13 +0,0 @@ -// -// 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/. -// - - - -class ViewFileManager: ViewController -{ -} diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewPrintManager.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewPrintManager.swift index 5111d62e9ea2..e05fa553ff62 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewPrintManager.swift +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewPrintManager.swift @@ -5,9 +5,23 @@ // 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 - -class ViewPrintManager: ViewController +class ViewPrintManager: UIViewController { + override func viewDidLoad() + { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + + + override func didReceiveMemoryWarning() + { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + } diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewProperties.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewProperties.swift index f1ec45af3e01..2e275f2bd3c7 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewProperties.swift +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/ViewProperties.swift @@ -5,9 +5,26 @@ // 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 - -class ViewProperties: ViewController +class ViewProperties: UIViewController { + + + override func viewDidLoad() + { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + + + override func didReceiveMemoryWarning() + { + super.didReceiveMemoryWarning() + // Dispose of any resources that can be recreated. + } + + } diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/WebView.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/WebView.swift deleted file mode 100644 index f257174be978..000000000000 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/WebView.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// 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 WebKit - - - -class WebView: UIWebView { -} - diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard b/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard index 5c1ae778091c..0c32c6c790c7 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard @@ -1,39 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="DGj-7d-jfR"> - <device id="retina4_7" orientation="portrait"> + <device id="ipad9_7" orientation="portrait"> <adaptation id="fullscreen"/> </device> <dependencies> <deployment identifier="iOS"/> <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/> <capability name="Constraints to layout margins" minToolsVersion="6.0"/> + <capability name="Navigation items with more than one left or right bar item" minToolsVersion="7.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <scenes> <!--Document--> <scene sceneID="ufC-wZ-h7g"> <objects> - <viewController storyboardIdentifier="Document" useStoryboardIdentifierAsRestorationIdentifier="YES" id="vXZ-lx-hvc" customClass="ViewDocument" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> + <viewController storyboardIdentifier="Document" useStoryboardIdentifierAsRestorationIdentifier="YES" id="vXZ-lx-hvc" customClass="DocumentController" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> <layoutGuides> <viewControllerLayoutGuide type="top" id="lZa-u5-V0W"/> <viewControllerLayoutGuide type="bottom" id="uE0-fS-86O"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="kh9-bI-dsS"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <subviews> - <webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1Ej-ex-Oyr" customClass="WebView" customModule="LibreOfficeLight"> - <rect key="frame" x="16" y="64" width="343" height="559"/> - <color key="backgroundColor" red="0.36078431370000003" green="0.38823529410000002" blue="0.4039215686" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - </webView> - </subviews> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> - <constraints> - <constraint firstItem="uE0-fS-86O" firstAttribute="top" secondItem="1Ej-ex-Oyr" secondAttribute="bottom" id="22v-Sf-uWf"/> - <constraint firstAttribute="trailingMargin" secondItem="1Ej-ex-Oyr" secondAttribute="trailing" id="2Wt-Tn-erC"/> - <constraint firstItem="1Ej-ex-Oyr" firstAttribute="top" secondItem="lZa-u5-V0W" secondAttribute="bottom" id="jzQ-1h-4Ni"/> - <constraint firstItem="1Ej-ex-Oyr" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leadingMargin" id="vT5-Un-8bf"/> - </constraints> </view> <toolbarItems/> <navigationItem key="navigationItem" title="Document" id="5c6-32-T4J"> @@ -42,9 +31,11 @@ <action selector="doMenu:" destination="vXZ-lx-hvc" id="sJP-Fp-Kn2"/> </connections> </barButtonItem> - <barButtonItem key="rightBarButtonItem" systemItem="trash" id="BNq-ol-ZVK"> + <barButtonItem key="rightBarButtonItem" systemItem="action" id="BNq-ol-ZVK"> <connections> - <action selector="doDelete:" destination="vXZ-lx-hvc" id="lUR-yj-rgv"/> + <segue destination="IER-X5-Ax8" kind="popoverPresentation" identifier="doShowActions" popoverAnchorBarButtonItem="BNq-ol-ZVK" id="xmZ-1A-ZrW"> + <popoverArrowDirection key="popoverArrowDirection" up="YES" down="YES" left="YES" right="YES"/> + </segue> </connections> </barButtonItem> </navigationItem> @@ -52,41 +43,209 @@ </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1109.5999999999999" y="-378.26086956521743"/> + <point key="canvasLocation" x="1231" y="304"/> </scene> <!--File Manager--> - <scene sceneID="q6l-iR-WN3"> + <scene sceneID="2JR-NV-Eo3"> <objects> - <viewController storyboardIdentifier="FileManager" useStoryboardIdentifierAsRestorationIdentifier="YES" id="khG-SL-0rk" customClass="ViewFileManager" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> - <layoutGuides> - <viewControllerLayoutGuide type="top" id="7nB-gN-E7d"/> - <viewControllerLayoutGuide type="bottom" id="ykb-8v-9YB"/> - </layoutGuides> - <view key="view" contentMode="scaleToFill" id="8Tm-V4-HTY"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <tableViewController id="cip-1Z-62J" customClass="FileManagerController" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> + <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="Ugl-w8-9oc"> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="My File Manager" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BHy-9g-bWe"> - <rect key="frame" x="124" y="377" width="172" 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> - <navigationItem key="navigationItem" title="File Manager" id="f24-Ia-thn"> - <barButtonItem key="leftBarButtonItem" image="menu" id="R1E-Ko-iZM"> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <prototypes> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="fileEntry" id="kKu-xM-S1e" customClass="FileManagerCell" customModule="LibreOfficeLight" customModuleProvider="target"> + <rect key="frame" x="0.0" y="28" width="768" height="44"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="kKu-xM-S1e" id="80i-6K-kty"> + <rect key="frame" x="0.0" y="0.0" width="768" height="43"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="fileEntry" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vlx-gc-YQQ"> + <rect key="frame" x="21" y="11" width="739" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <variation key="default"> + <mask key="subviews"> + <exclude reference="vlx-gc-YQQ"/> + </mask> + </variation> + <variation key="heightClass=regular-widthClass=regular"> + <mask key="subviews"> + <include reference="vlx-gc-YQQ"/> + </mask> + </variation> + </tableViewCellContentView> + <connections> + <outlet property="fileLabel" destination="vlx-gc-YQQ" id="ORx-l5-Dst"/> + </connections> + </tableViewCell> + </prototypes> + <connections> + <outlet property="dataSource" destination="cip-1Z-62J" id="gkR-g9-bcD"/> + <outlet property="delegate" destination="cip-1Z-62J" id="uyZ-lZ-r0j"/> + </connections> + </tableView> + <navigationItem key="navigationItem" title="File Manager" id="fBX-vO-7Rj"> + <leftBarButtonItems> + <barButtonItem title="Back" id="q43-8I-nlC"> + <connections> + <segue destination="iOm-U1-ALi" kind="unwind" unwindAction="returnedWithSegue:" id="oBt-oU-XA8"/> + </connections> + </barButtonItem> + <barButtonItem title="iCloud" id="aad-FF-63q"> + <connections> + <action selector="doSelectStorage:" destination="cip-1Z-62J" id="uv2-gA-Pqq"/> + </connections> + </barButtonItem> + </leftBarButtonItems> + <barButtonItem key="rightBarButtonItem" systemItem="action" id="IgM-Gx-FQp"> <connections> - <action selector="doMenu:" destination="khG-SL-0rk" id="x2w-2j-oWj"/> + <segue destination="5ff-kT-49H" kind="popoverPresentation" popoverAnchorBarButtonItem="IgM-Gx-FQp" id="If5-Nv-a7W"> + <popoverArrowDirection key="popoverArrowDirection" up="YES" down="YES" left="YES" right="YES"/> + </segue> </connections> </barButtonItem> </navigationItem> - </viewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="mmn-PL-HS6" userLabel="First Responder" sceneMemberID="firstResponder"/> + </tableViewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="HFd-ah-Xo4" userLabel="First Responder" sceneMemberID="firstResponder"/> + <exit id="iOm-U1-ALi" userLabel="Exit" sceneMemberID="exit"/> </objects> - <point key="canvasLocation" x="256.80000000000001" y="1145.577211394303"/> + <point key="canvasLocation" x="1229.6875" y="1200.5859375"/> + </scene> + <!--File Manager Actions--> + <scene sceneID="H5Y-px-61Q"> + <objects> + <tableViewController autoresizesArchivedViewToFullSize="NO" title="File Manager Actions" modalTransitionStyle="crossDissolve" modalPresentationStyle="overCurrentContext" clearsSelectionOnViewWillAppear="NO" id="5ff-kT-49H" customClass="FileManagerActions" 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="2t6-op-1gZ"> + <rect key="frame" x="0.0" y="0.0" width="134" height="150"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <sections> + <tableViewSection id="LCb-p9-A8u"> + <cells> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="VuG-w2-cW6"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VuG-w2-cW6" id="8SA-cA-5eZ"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZSm-By-dJs"> + <rect key="frame" x="10" y="0.0" width="124" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Up/Download"/> + <connections> + <action selector="doUploadDownload:" destination="5ff-kT-49H" eventType="touchUpInside" id="lEl-tA-956"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="L5l-rq-TxW"> + <rect key="frame" x="0.0" y="30" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="L5l-rq-TxW" id="dmK-Lh-hje"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IQ3-hK-KmM"> + <rect key="frame" x="10" y="0.0" width="124" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Delete..."/> + <connections> + <action selector="doDelete:" destination="5ff-kT-49H" eventType="touchUpInside" id="ACi-Rs-Tog"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="gCu-Su-BAB"> + <rect key="frame" x="0.0" y="60" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gCu-Su-BAB" id="P2T-Nb-OqI"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BSN-dd-e84"> + <rect key="frame" x="10" y="-1" width="124" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Open..."/> + <connections> + <action selector="doOpen:" destination="5ff-kT-49H" eventType="touchUpInside" id="jbn-Nr-8dd"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="bzW-XI-AgR"> + <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="bzW-XI-AgR" id="z9x-qQ-lou"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fNi-5u-PqA"> + <rect key="frame" x="10" y="-1" width="124" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Level up"/> + <connections> + <action selector="doLevelUp:" destination="5ff-kT-49H" eventType="touchUpInside" id="fM6-nH-5Z1"/> + <action selector="doOpen:" destination="5ff-kT-49H" eventType="touchUpInside" id="kNJ-PT-8Y6"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="b9s-rz-SjN"> + <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="b9s-rz-SjN" id="NVs-9k-H8m"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Rk-LW-Ub9"> + <rect key="frame" x="10" y="-1" width="124" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Create directory"/> + <connections> + <action selector="doCreateDirectory:" destination="5ff-kT-49H" eventType="touchUpInside" id="58c-Ul-UIL"/> + <action selector="doLevelUp:" destination="5ff-kT-49H" eventType="touchUpInside" id="4pP-76-PsI"/> + <action selector="doOpen:" destination="5ff-kT-49H" eventType="touchUpInside" id="gZm-0c-D2v"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + </cells> + </tableViewSection> + </sections> + <connections> + <outlet property="dataSource" destination="5ff-kT-49H" id="UgT-eg-0zE"/> + <outlet property="delegate" destination="5ff-kT-49H" id="LEX-V1-HLr"/> + </connections> + </tableView> + <value key="contentSizeForViewInPopover" type="size" width="134" height="150"/> + <nil key="simulatedStatusBarMetrics"/> + <nil key="simulatedTopBarMetrics"/> + <nil key="simulatedBottomBarMetrics"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + <size key="freeformSize" width="134" height="150"/> + <connections> + <outlet property="buttonCreateDirectory" destination="5Rk-LW-Ub9" id="4oy-Px-rKR"/> + <outlet property="buttonDelete" destination="IQ3-hK-KmM" id="GNv-Wu-Gdw"/> + <outlet property="buttonLevelUp" destination="fNi-5u-PqA" id="phL-bi-HaC"/> + <outlet property="buttonOpen" destination="BSN-dd-e84" id="j4Q-KH-UFt"/> + <outlet property="buttonUploadDownload" destination="ZSm-By-dJs" id="oVW-Nt-Pfx"/> + </connections> + </tableViewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="gPn-3u-MDl" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="1930" y="1201"/> </scene> <!--Print Manager--> <scene sceneID="viJ-XJ-htc"> @@ -97,7 +256,7 @@ <viewControllerLayoutGuide type="bottom" id="pxU-MS-J0z"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="uQ6-KY-cCv"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="My Print Manager" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cbo-NR-JZi"> @@ -122,7 +281,7 @@ </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="S7J-dT-DQn" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1109.5999999999999" y="1145.577211394303"/> + <point key="canvasLocation" x="2508" y="882"/> </scene> <!--Navigation Controller--> <scene sceneID="nrt-yR-DmY"> @@ -142,9 +301,9 @@ <nil name="viewControllers"/> <connections> <segue destination="h7c-B7-pKT" kind="show" identifier="showProperties" id="dDf-1s-0HH"/> - <segue destination="khG-SL-0rk" kind="show" identifier="showFilemanager" id="Xag-AL-gHQ"/> <segue destination="ay1-ce-WHs" kind="show" identifier="showPrintManager" id="BgL-QR-QJ0"/> - <segue destination="vXZ-lx-hvc" kind="relationship" relationship="rootViewController" id="BEf-s3-rE8"/> + <segue destination="cip-1Z-62J" kind="relationship" relationship="rootViewController" id="Arf-4X-z72"/> + <segue destination="vXZ-lx-hvc" kind="show" identifier="showDocument" id="IHH-Cc-Xk7"/> </connections> </navigationController> <placeholder placeholderIdentifier="IBFirstResponder" id="XfU-3W-Qcb" userLabel="First Responder" sceneMemberID="firstResponder"/> @@ -160,11 +319,11 @@ <viewControllerLayoutGuide type="bottom" id="syI-80-ufe"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="e1u-sT-aSe"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="K3a-CQ-sBC"> - <rect key="frame" x="16" y="359" width="150" height="45"/> + <rect key="frame" x="20" y="359" width="150" height="45"/> <constraints> <constraint firstAttribute="height" constant="45" id="Rg4-bW-MQk"/> <constraint firstAttribute="width" constant="150" id="y0o-Nq-4z4"/> @@ -178,7 +337,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Hk4-yl-lM9"> - <rect key="frame" x="16" y="304" width="150" height="45"/> + <rect key="frame" x="20" y="304" width="150" height="45"/> <constraints> <constraint firstAttribute="width" constant="150" id="UL6-xy-1qB"/> <constraint firstAttribute="height" constant="45" id="hty-y5-gVo"/> @@ -192,7 +351,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CBj-V3-BKJ"> - <rect key="frame" x="16" y="249" width="150" height="45"/> + <rect key="frame" x="20" y="249" width="150" height="45"/> <constraints> <constraint firstAttribute="width" constant="150" id="U6W-G1-H2J"/> <constraint firstAttribute="height" constant="45" id="wOH-9b-B8P"/> @@ -206,7 +365,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eZV-Rh-hCf"> - <rect key="frame" x="16" y="194" width="150" height="45"/> + <rect key="frame" x="20" y="194" width="150" height="45"/> <constraints> <constraint firstAttribute="height" constant="45" id="N7I-YK-5uo"/> <constraint firstAttribute="width" constant="150" id="eLW-p8-QBZ"/> @@ -220,7 +379,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YTV-Y5-L8R"> - <rect key="frame" x="16" y="139" width="150" height="45"/> + <rect key="frame" x="20" y="139" width="150" height="45"/> <constraints> <constraint firstAttribute="height" constant="45" id="4H0-0k-rm5"/> <constraint firstAttribute="width" constant="150" id="Q1z-1N-WMF"/> @@ -234,7 +393,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Mv-7b-xjF"> - <rect key="frame" x="16" y="414" width="150" height="45"/> + <rect key="frame" x="20" y="414" width="150" height="45"/> <constraints> <constraint firstAttribute="height" constant="45" id="Fyt-Iq-YWv"/> <constraint firstAttribute="width" constant="150" id="eFy-qB-RER"/> @@ -248,7 +407,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="g5y-SJ-jU1"> - <rect key="frame" x="16" y="84" width="150" height="45"/> + <rect key="frame" x="20" y="84" width="150" height="45"/> <constraints> <constraint firstAttribute="width" constant="150" id="Uuo-01-tfU"/> <constraint firstAttribute="height" constant="45" id="v75-o1-ii6"/> @@ -285,16 +444,16 @@ </objects> <point key="canvasLocation" x="-612" y="304.4977511244378"/> </scene> - <!--LibreOffice - Properties--> + <!--Properties--> <scene sceneID="XNm-Ch-28q"> <objects> - <viewController storyboardIdentifier="Properties" title="LibreOffice - Properties" useStoryboardIdentifierAsRestorationIdentifier="YES" id="h7c-B7-pKT" customClass="ViewProperties" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> + <viewController storyboardIdentifier="Properties" title="Properties" useStoryboardIdentifierAsRestorationIdentifier="YES" id="h7c-B7-pKT" customClass="ViewProperties" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> <layoutGuides> <viewControllerLayoutGuide type="top" id="VKw-5g-PNK"/> <viewControllerLayoutGuide type="bottom" id="BiA-CR-Pte"/> </layoutGuides> <view key="view" contentMode="scaleToFill" id="Z9n-50-7Jf"> - <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="My Properties" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9Jt-Yy-kcR"> @@ -322,7 +481,209 @@ </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="vaO-NX-hiP" userLabel="First Responder" sceneMemberID="firstResponder"/> </objects> - <point key="canvasLocation" x="1109.5999999999999" y="304.4977511244378"/> + <point key="canvasLocation" x="-447" y="-745"/> + </scene> + <!--Document Actions--> + <scene sceneID="U7J-9A-X5o"> + <objects> + <tableViewController autoresizesArchivedViewToFullSize="NO" title="Document Actions" 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="210"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <sections> + <tableViewSection id="iZc-fF-wRk"> + <cells> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KLS-lN-QYa"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KLS-lN-QYa" id="dA0-Ji-bxj"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mCx-kB-iUI"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="New"/> + <connections> + <action selector="doNew:" destination="IER-X5-Ax8" eventType="touchUpInside" id="nAN-4l-w68"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="VNE-JL-Lw0"> + <rect key="frame" x="0.0" y="30" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VNE-JL-Lw0" id="EB2-HA-y79"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="myk-zs-md7"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Open..."/> + <connections> + <action selector="doOpen:" destination="IER-X5-Ax8" eventType="touchUpInside" id="2AU-aR-NF4"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="mPa-wa-TDO"> + <rect key="frame" x="0.0" y="60" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mPa-wa-TDO" id="jhW-pd-Qkl"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Iva-rO-9V3"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Delete..."/> + <connections> + <action selector="doDelete:" destination="IER-X5-Ax8" eventType="touchUpInside" id="mFt-G6-sGA"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="XW7-H5-0ob"> + <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="XW7-H5-0ob" id="lJN-OL-mO8"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b90-ja-Wm0"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Save"/> + <connections> + <action selector="doOpen:" destination="IER-X5-Ax8" eventType="touchUpInside" id="3N4-Kv-vVS"/> + <action selector="doSave:" destination="IER-X5-Ax8" eventType="touchUpInside" id="rsu-KH-DDF"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="fqs-uC-KiW"> + <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="fqs-uC-KiW" id="nT7-Ly-JW5"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ioJ-xc-RrS"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Save as..."/> + <connections> + <action selector="doOpen:" destination="IER-X5-Ax8" eventType="touchUpInside" id="IhZ-cb-cgC"/> + <segue destination="gVG-YM-Glc" kind="popoverPresentation" popoverAnchorView="ioJ-xc-RrS" id="5Pw-2I-6DI"> + <popoverArrowDirection key="popoverArrowDirection" up="YES" down="YES" left="YES" right="YES"/> + </segue> + </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="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"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="apE-3B-lUt"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="PDF"/> + <connections> + <action selector="doOpen:" destination="IER-X5-Ax8" eventType="touchUpInside" id="utd-hj-l3F"/> + <action selector="doPDF:" destination="IER-X5-Ax8" eventType="touchUpInside" id="fm0-3u-e0T"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="1ly-sz-g0x"> + <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="1ly-sz-g0x" id="wVi-tX-eKD"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="516-b0-K4N"> + <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <state key="normal" title="Print..."/> + <connections> + <action selector="doOpen:" destination="IER-X5-Ax8" eventType="touchUpInside" id="tqe-2K-EJc"/> + <segue destination="ay1-ce-WHs" kind="presentation" id="tJ8-Jt-UeD"/> + </connections> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + </cells> + </tableViewSection> + </sections> + <connections> + <outlet property="dataSource" destination="IER-X5-Ax8" id="BBZ-8e-Waf"/> + <outlet property="delegate" destination="IER-X5-Ax8" id="sji-7W-aF0"/> + </connections> + </tableView> + <value key="contentSizeForViewInPopover" type="size" width="200" height="200"/> + <nil key="simulatedStatusBarMetrics"/> + <nil key="simulatedTopBarMetrics"/> + <nil key="simulatedBottomBarMetrics"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + <size key="freeformSize" width="134" height="210"/> + </tableViewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="D6j-Ov-CSK" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="1930" y="303"/> + </scene> + <!--Save As--> + <scene sceneID="FH4-dv-F8q"> + <objects> + <viewController autoresizesArchivedViewToFullSize="NO" title="Save As" id="gVG-YM-Glc" customClass="DocumentSaveAsAction" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> + <layoutGuides> + <viewControllerLayoutGuide type="top" id="JoI-LP-cup"/> + <viewControllerLayoutGuide type="bottom" id="lV5-3e-Ctd"/> + </layoutGuides> + <view key="view" contentMode="scaleToFill" id="8ob-86-sqW"> + <rect key="frame" x="0.0" y="0.0" width="200" height="60"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Name:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cFj-yx-7J7"> + <rect key="frame" x="16" y="8" width="58" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> + <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="CTF-ig-GzQ"> + <rect key="frame" x="87" y="8" width="97" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <nil key="textColor"/> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <textInputTraits key="textInputTraits"/> + </textField> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </view> + <value key="contentSizeForViewInPopover" type="size" width="200" height="200"/> + <nil key="simulatedStatusBarMetrics"/> + <nil key="simulatedTopBarMetrics"/> + <nil key="simulatedBottomBarMetrics"/> + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> + <size key="freeformSize" width="200" height="60"/> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="EUo-VR-TkH" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="2596.8000000000002" y="303.14842578710648"/> </scene> </scenes> <resources> @@ -334,4 +695,7 @@ <image name="save" width="20" height="20"/> <image name="saveas" width="20" height="20"/> </resources> + <inferredMetricsTieBreakers> + <segue reference="BgL-QR-QJ0"/> + </inferredMetricsTieBreakers> </document> |