← Back to team overview

ubuntu-touch-coreapps-reviewers team mailing list archive

[Merge] lp:~popey/ubuntu-docviewer-app/fix-unconfined into lp:ubuntu-docviewer-app

 

Alan Pope  has proposed merging lp:~popey/ubuntu-docviewer-app/fix-unconfined into lp:ubuntu-docviewer-app.

Requested reviews:
  Ubuntu Document Viewer Developers (ubuntu-docviewer-dev)

For more details, see:
https://code.launchpad.net/~popey/ubuntu-docviewer-app/fix-unconfined/+merge/276854
-- 
The attached diff has been truncated due to its size.
Your team Ubuntu Document Viewer Developers is requested to review the proposed merge of lp:~popey/ubuntu-docviewer-app/fix-unconfined into lp:ubuntu-docviewer-app.
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2015-06-24 20:50:40 +0000
+++ CMakeLists.txt	2015-11-06 11:00:18 +0000
@@ -121,3 +121,28 @@
 add_subdirectory(src)
 add_subdirectory(tests)
 add_subdirectory(po)
+
+# If running in CLICK_MODE, include binary dependencies of docviewer
+if(CLICK_MODE)
+    MESSAGE("Grabbing upstream libs to ${CMAKE_CURRENT_BINARY_DIR}/upstream-libs")
+    execute_process(
+        COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/upstream-libs
+        COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/get-click-deps -d ${CMAKE_CURRENT_SOURCE_DIR}/docviewer-libs.json ${CLICK_ARCH} ${CMAKE_CURRENT_BINARY_DIR}/upstream-libs
+    )
+
+    MESSAGE("Installing upstream libs from ${CMAKE_CURRENT_BINARY_DIR}/upstream-libs/usr/lib/${ARCH_TRIPLET}/ to ${DATA_DIR}lib/${ARCH_TRIPLET}")
+    file(GLOB_RECURSE UPSTREAM_LIBS "${CMAKE_CURRENT_BINARY_DIR}/upstream-libs/usr/lib/${ARCH_TRIPLET}/*")
+    foreach(ITEM ${UPSTREAM_LIBS})
+        IF( IS_DIRECTORY "${ITEM}" )
+            LIST( APPEND DIRS_TO_DEPLOY "${ITEM}" )
+        ELSE()
+            LIST( APPEND FILES_TO_DEPLOY "${ITEM}" )
+        ENDIF()
+    endforeach()
+    MESSAGE("Following files to install:- ${FILES_TO_DEPLOY}")
+    INSTALL( FILES ${FILES_TO_DEPLOY} DESTINATION ${DATA_DIR}lib/${ARCH_TRIPLET} )
+
+
+    MESSAGE("Installing LibreOffice from ${CMAKE_CURRENT_BINARY_DIR}/upstream-libs/opt/libreoffice/lib/libreoffice to ${DATA_DIR}lib/${ARCH_TRIPLET}/libreoffice")
+    INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/upstream-libs/opt/libreoffice/lib/libreoffice/ DESTINATION ${DATA_DIR}lib/${ARCH_TRIPLET}/libreoffice )
+endif(CLICK_MODE)

=== modified file 'README'
--- README	2015-01-30 19:20:39 +0000
+++ README	2015-11-06 11:00:18 +0000
@@ -8,13 +8,32 @@
 =========
 
 Install poppler's development files:
-sudo apt-get install libpoppler-qt5-dev
+    sudo apt install libpoppler-qt5-dev
 
 Install Qt5 private development files:
-sudo apt-get install qtdeclarative5-private-dev qtbase5-private-dev
-
-If you want to compile an arm click package, you need to install that package to the arm compilation environment. For example when using QtCreator for Ubuntu Touch, open Options -> Ubuntu -> Maintain, and then enter:
-
-apt-get install libpoppler-qt5-dev:armhf qtdeclarative5-private-dev:armhf qtbase5-private-dev:armhf
-
-
+    sudo apt install qtdeclarative5-private-dev qtbase5-private-dev
+
+If you want to compile an arm click package, you need to install that package
+to the arm compilation environment. For example when using QtCreator for
+Ubuntu Touch, open Options -> Ubuntu -> Maintain, and then enter:
+
+    apt install libpoppler-qt5-dev:armhf qtdeclarative5-private-dev:armhf qtbase5-private-dev:armhf
+
+LibreOffice viewer support
+==========================
+
+If you want to enable the LibreOffice viewer feature, you'll need to have a
+LibreOffice 5.0 installation on your development environment. At the time of
+writing, LibreOffice 5.0 is not yet in the archive, but you can easily install
+it from the pre-releases PPA. To do so, type the following commands on a
+terminal:
+
+    sudo apt-get purge libreoffice-core
+    sudo add-apt-repository ppa:libreoffice/libreoffice-prereleases
+    sudo apt-get update
+    sudo apt-get install libreoffice
+
+Then to compile the LibreOffice viewer plugin you'll simply need to install
+the LibreOffice Kit development files:
+
+    sudo apt install libreofficekit-dev

=== modified file 'debian/control'
--- debian/control	2015-02-23 12:49:52 +0000
+++ debian/control	2015-11-06 11:00:18 +0000
@@ -4,14 +4,13 @@
 Build-Depends: cmake,
                debhelper (>= 9),
                intltool,
-               libcontent-hub-dev (>= 0.0+13.10.20130930.1),
                libpoppler-qt5-dev,
                pep8,
                pkg-config,
                pkg-kde-tools,
                python3-all,
                qt5-default,
-               qtbase5-dev,
+               qtbase5-dev (>= 5.4.0),
                qtchooser,
                qtdeclarative5-dev,
                qtdeclarative5-dev-tools,
@@ -28,6 +27,10 @@
 Architecture: any
 Depends: qtdeclarative5-qtquick2-plugin,
          qtdeclarative5-ubuntu-ui-toolkit-plugin,
+         qtdeclarative5-ubuntu-content1,
+         qtdeclarative5-quicklayouts-plugin,
+         qtdeclarative5-window-plugin,
+         suru-icon-theme (>= 14.04+15.10.20150707-0ubuntu1),
          ${misc:Depends}
 Description: Document Viewer application
  Core Document Viewer application

=== added file 'docviewer-libs.json'
--- docviewer-libs.json	1970-01-01 00:00:00 +0000
+++ docviewer-libs.json	2015-11-06 11:00:18 +0000
@@ -0,0 +1,94 @@
+{   
+    "armhf": [
+        {
+            "url": "http://ports.ubuntu.com/ubuntu-ports";,
+            "dist": "vivid",
+            "component": "main",
+            "packages": [
+                "libboost-date-time1.55.0",
+                "libgl1-mesa-glx",
+                "libxcb-dri3-0",
+                "libxcb-glx0",
+                "libxcb-present0",
+                "libxshmfence1",
+                "libxslt1.1",
+                "libxt6",
+                "libxxf86vm1",
+                "gconf-service",
+                "gconf-service-backend",
+                "gconf2-common",
+                "libgconf-2-4"
+            ]
+        },
+        {
+            "url": "http://ppa.launchpad.net/canonical-community/ppa/ubuntu";,
+            "dist": "vivid",
+            "component": "main",
+            "packages": [
+                "libreoffice-vanilla"
+            ]
+        }
+    ],
+
+    "i386": [
+        {
+            "url": "http://archive.ubuntu.com/ubuntu";,
+            "dist": "vivid",
+            "component": "main",
+            "packages": [
+                "libboost-date-time1.55.0",
+                "libgl1-mesa-glx",
+                "libxcb-dri3-0",
+                "libxcb-glx0",
+                "libxcb-present0",
+                "libxshmfence1",
+                "libxslt1.1",
+                "libxt6",
+                "libxxf86vm1",
+                "gconf-service",
+                "gconf-service-backend",
+                "gconf2-common",
+                "libgconf-2-4"
+            ]
+        },
+        {
+            "url": "http://ppa.launchpad.net/canonical-community/ppa/ubuntu";,
+            "dist": "vivid",
+            "component": "main",
+            "packages": [
+                "libreoffice-vanilla"
+            ]
+        }
+    ],
+
+    "amd64": [
+        {
+            "url": "http://archive.ubuntu.com/ubuntu";,
+            "dist": "vivid",
+            "component": "main",
+            "packages": [
+                "libboost-date-time1.55.0",
+                "libgl1-mesa-glx",
+                "libxcb-dri3-0",
+                "libxcb-glx0",
+                "libxcb-present0",
+                "libxshmfence1",
+                "libxslt1.1",
+                "libxt6",
+                "libxxf86vm1",
+                "gconf-service",
+                "gconf-service-backend",
+                "gconf2-common",
+                "libgconf-2-4"
+            ]
+        },
+        {
+            "url": "http://ppa.launchpad.net/canonical-community/ppa/ubuntu";,
+            "dist": "vivid",
+            "component": "main",
+            "packages": [
+                "libreoffice-vanilla"
+            ]
+        }
+    ]
+}

=== added file 'get-click-deps'
--- get-click-deps	1970-01-01 00:00:00 +0000
+++ get-click-deps	2015-11-06 11:00:18 +0000
@@ -0,0 +1,451 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2015 Stefano Verzegnassi <verzegnassi.stefano@xxxxxxxxx>
+# Copyright (C) 2015 Didier Roche <didrocks@xxxxxxxxxx> 
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 3, as published
+# by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranties of
+# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+# PURPOSE.  See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#
+# Source code at:
+# https://code.launchpad.net/~verzegnassi-stefano/+junk/get-click-deps
+#
+# A script to automate the fetching all the external dependencies of a
+# Click packaged application from internet, and copying them in a given
+# folder, so that the click packaging tool can easily build them in the
+# package.
+#
+# usage: get-click-deps [-h] [-f] [-d] [-e] [-c SCRIPT_PATH]
+#                       manifest_path {amd64,i386,armhf} target_path
+#
+# A tool for adding external libraries to a Ubuntu SDK application or scope.
+#
+# positional arguments:
+#   manifest_path         path of json file containing the list of packages to
+#                         be downloaded.
+#   {amd64,i386,armhf}    CPU architecture ("amd64", "i386" or "armhf")
+#   target_path           path to the target (a click package or a folder)
+#                         where this tool will include the downloaded binaries.
+#                         If the folder does not exist, it will be created.
+#
+# optional arguments:
+#   -h, --help            show this help message and exit
+#   -f, --force-download  force a new download of the packages
+#   -d, --delete-temp     delete temp files at the end of the process
+#   -e, --extract-only    only create temp directory and extract the content of
+#                         downloaded packages
+#   -c SCRIPT_PATH, --custom-script SCRIPT_PATH
+#                         run a custom script after the extraction of Debian
+#                         packages and before copying their content to the
+#                         target destination. The tool will execute the script
+#                         with the path to the packages dump as argument. If
+#                         the '-e' flag has been specified, the script will be
+#                         anyway executed. This option is useful when you need
+#                         to automatically modify the content of temp folder
+#                         (e.g. when you need to fix some path before including
+#                         the files in a click package).
+#
+#
+# USAGE EXAMPLE:
+# get-click-deps packages.json armhf <path/to/package.click>
+#
+# package.json is the package manifest, and contains all the references to the
+# .deb packages to be included into the Ubuntu SDK project.
+# If you're familiar to the Debian/Ubuntu world, you'll see that it's pretty
+# similar to therepository management of these distros:
+# see https://wiki.debian.org/SourcesList for further informations.
+#
+# An example of packages.json file is:
+# {
+#     "armhf": [
+#         {
+#             "url": "http://ports.ubuntu.com/ubuntu-ports/";,
+#             "dist": "vivid",
+#             "component": "main",
+#             "packages": [
+#                 "libgl1-mesa-glx",
+#                 "libxslt1.1",
+#                 "libxcb-glx0",
+#                 "libxcb-dri3-0",
+#                 "libxcb-present0",
+#                 "libxshmfence1",
+#                 "libxxf86vm1"
+#             ]
+#         },
+#
+#         {
+#             "url": "http://ppa.launchpad.net/canonical-community/ppa/ubuntu";,
+#             "dist": "vivid",
+#             "component": "main",
+#             "packages": [
+#                 "libreoffice-vanilla"
+#             ]
+#         }
+#     ],
+#
+#     "amd64": [
+#             "url": "http://ppa.launchpad.net/canonical-community/ppa/ubuntu";,
+#             "dist": "vivid",
+#             "component": "main",
+#             "packages": [
+#                 "libreoffice-vanilla"
+#             ]
+#         }
+#     ]
+# }
+#
+# Instead of a click package, you can specify the build folder used by Ubuntu
+# SDK for compiling the sources of your project. This way the binaries
+# downloaded by this tool will be automatically included in the .click package
+# the next time you ask Ubuntu SDK to create a new package.
+#
+
+# TODO: Complete error handling
+# TODO: Make target_path optional if the '-e' flag has been specified.
+
+import sys
+import os
+import stat
+import time
+import argparse
+import json
+import gzip
+import subprocess
+import urllib.request, urllib.error, urllib.parse
+
+def get_timestamp():
+    return time.time()
+
+
+def check_internet_connection():
+    try:
+        urllib.request.urlopen('http://www.google.com', timeout=20)
+        return True
+    except urllib2.error.URLError as err:
+        pass
+    return False
+
+
+def get_arch_triplet(arch):
+    return subprocess.check_output([
+        'dpkg-architecture',
+        '-A',
+        arch,
+        '-qDEB_TARGET_MULTIARCH'])
+
+
+def download_file(url, dest, verbose=True):
+    if verbose:
+        print ("\nDownloading:\n{}".format(url))
+    # TODO: Switch to subprocess
+    os.system('cd %s && { curl -# -O %s ; cd - ; }' % (dest, url))
+
+
+def download_file_and_rename(url, dest, new_filename, verbose=True):
+    if verbose:
+        print ("\nDownloading:\n{}".format(url))
+    new_path = os.path.join(dest, new_filename)
+    subprocess.call(['curl', url, '-#', '-o', new_path])
+
+    return new_path
+
+
+def get_package_download_url(package_name, packages_list, base_url):
+    pkgs_list = packages_list.decode('utf-8').split('\n')
+    index = pkgs_list.index('Package: %s' % package_name)
+
+    for i in range(index, len(pkgs_list)):
+        if pkgs_list[i].find('Filename:') > -1:
+            return "%s/%s" % (base_url, pkgs_list[i].replace('Filename: ', ''))
+
+
+def get_URLs_for_arch(manifest_path, arch, destpath):
+    urls = []
+
+    f = open(manifest_path)
+    content = json.load(f)
+    f.close()
+
+    # Download repository index for each repository in the JSON package
+    # manifest.
+    try:
+        repo_index = 0
+        for repo in content[arch]:
+            repo_index_url = '%s/dists/%s/%s/binary-%s/Packages.gz' % (
+                repo['url'],
+                repo['dist'],
+                repo['component'],
+                arch)
+
+            print ("\nDownloading repository index at:\n".format(repo_index_url))
+
+            repo_index_zip = download_file_and_rename(
+                repo_index_url,
+                destpath,
+                'repo-index-%s-%s.gz' % (arch, repo_index),
+                False)
+
+            with gzip.open(repo_index_zip, 'r') as f:
+                repo_index_content = f.read()
+                f.close()
+
+            # Get the download URL of each package of the repository.
+            packages = repo['packages']
+            for package in packages:
+                urls.append(get_package_download_url(
+                    package,
+                    repo_index_content,
+                    repo['url']))
+
+            repo_index += 1
+    except KeyError:
+        # Arch not found in the manifest. Exit with no error, since there's no
+        # need to run the script for this arch.
+        print ("\n\nRequested arch has been not specified in the manifest. \
+            Exiting...")
+        sys.exit(0)
+    print ("\nObtained packages informations")
+    return urls
+
+
+def check_if_temp_folder_already_exists(path):
+    return os.path.isdir(path)
+
+
+def copy_directory_content(sourcepath, destpath):
+    subprocess.call(['cp', '-r', '%s/.' % sourcepath, destpath])
+
+
+def delete_folder(path, recursive=False):
+    if recursive:
+        flag = '-rf'
+    else:
+        flag = '-f'
+    subprocess.call(['rm', flag, path])
+
+
+def extract_deb_package(deb_path, destpath):
+    subprocess.call(['dpkg-deb', '-x', deb_path, destpath])
+
+
+def extract_click_package(click_path, destpath):
+    extract_deb_package(click_path, destpath)
+
+    manifest = subprocess.check_output(['click', 'info', click_path])
+
+    # The manifest we get has an 'installed-size' key with the value of the
+    # previous package. Anyway this value will be replaced when we'll run
+    # 'click build <pkg>', so there's no reason for removing it here.
+    f = open(os.path.join(destpath, 'manifest.json'), 'w')
+    f.write(manifest)
+    f.close()
+
+    return destpath
+
+
+def build_click_package(source_dirpath):
+    output = subprocess.check_output(['click', 'build', source_dirpath])
+
+    for line in output.split(os.linesep):
+        if line.find('Successfully built package in ') > -1:
+            # FIXME: Very ugly.
+            path = line.replace('Successfully built package in \'', '')
+            path = path.replace('\'.', '')
+            return path
+
+
+def copy_file(sourcepath, destpath, overwrite=False):
+    flag = ''
+
+    if not overwrite:
+        flag = '-n'
+
+    subprocess.call(['cp', flag, sourcepath, destpath])
+
+
+# Argument parser
+parser = argparse.ArgumentParser(
+    description="A tool for adding external libraries to a Ubuntu SDK \
+        application or scope.")
+
+parser.add_argument(
+    '-f',
+    '--force-download',
+    dest='force_download',
+    action='store_true',
+    help='force a new download of the packages')
+
+parser.add_argument(
+    '-d',
+    '--delete-temp',
+    dest='delete_temp',
+    action='store_true',
+    help='delete temp files at the end of the process')
+
+parser.add_argument(
+    '-e',
+    '--extract-only',
+    dest='extract_only',
+    action='store_true',
+    help='only create temp directory and extract the content of downloaded \
+        packages')
+
+parser.add_argument(
+    '-c',
+    '--custom-script',
+    dest='script_path',
+    type=str,
+    help='run a custom script after the extraction of Debian packages and \
+        before copying their content to the target destination. The tool will \
+        execute the script with the path to the packages dump as argument. If \
+        the \'-e\' flag has been specified, the script will be anyway \
+        executed. This option is useful when you need to automatically modify \
+        the content of temp folder (e.g. when you need to fix some path \
+        before including the files in a click package).')
+
+parser.add_argument(
+    'manifest_path',
+    type=str,
+    help='path of json file containing the list of packages to be downloaded.')
+
+parser.add_argument(
+    'arch',
+    type=str,
+    choices=['amd64', 'i386', 'armhf'],
+    help='CPU architecture ("amd64", "i386" or "armhf")')
+
+parser.add_argument(
+    'target_path',
+    type=str,
+    help='path to the target (a click package or a folder) where this \
+        tool will include the downloaded binaries. If the folder does not \
+        exist, it will be created.')
+
+args = parser.parse_args()
+
+# Variables
+manifest_path = args.manifest_path
+target_path = args.target_path
+manifest_stat = os.stat(manifest_path)
+temp_folder = os.path.join(
+    '/tmp/',
+    'tmp-click-deps-%s-%s-%s-%s' % (
+        manifest_stat.st_dev,
+        manifest_stat.st_ino,
+        manifest_stat.st_size,
+        manifest_stat.st_mtime))
+temp_arch_folder = os.path.join(temp_folder, args.arch)
+is_click_target = os.path.isfile(args.target_path)
+
+# Check command line arguments
+if not os.path.isfile(manifest_path):
+    sys.exit("\n\nERROR: Package manifest is not a valid file. Exit...")
+
+if not os.path.isfile(target_path) and target_path.endswith('.click'):
+    sys.exit("\n\nERROR: The specified target .click does not exists.")
+elif not os.path.isdir(target_path):
+    print ("\n\nCreating dest folder\n{}".format(target_path))
+    os.mkdir(target_path)
+
+# Check if the script exist, if specified any.
+if args.script_path and not os.path.exists(args.script_path):
+    sys.exit("\n\nERROR: The specified script does not exists.")
+
+# If -f argument has been specified, remove all the existing data before
+# running this script.
+if args.force_download:
+    if os.path.isdir(temp_folder):
+        print ("\nRemoving temp data of the previous run, as requested")
+        delete_folder(temp_folder, True)
+
+# Check if we already have run this script for the same target.
+if not check_if_temp_folder_already_exists(temp_arch_folder):
+    # Check internet connection
+    if not check_internet_connection():
+        sys.exit("\n\nERROR: An internet connection is required in order to \
+            download packages from repositories.")
+
+    # Create temp folder in /tmp
+    print ("\nCreating temp folder in {}".format(temp_folder))
+    os.mkdir(temp_folder)
+    os.mkdir(temp_arch_folder)
+
+    # Parse the JSON package list and get the download URL of the packages.
+    debs_url_list = get_URLs_for_arch(
+        manifest_path,
+        args.arch,
+        temp_folder)
+
+    # Download packages from web
+    for url in debs_url_list:
+        download_file(url, temp_folder)
+
+    # Extract DEBs packages
+    print ("\nExtracting .deb packages to {}".format(temp_arch_folder))
+    deb_pkgs_list = []
+    for file in os.listdir(temp_folder):
+        if file.endswith('.deb'):
+            deb_pkgs_list.append(file)
+
+    for deb_pkg in deb_pkgs_list:
+        extract_deb_package(
+            os.path.join(temp_folder, deb_pkg),
+            temp_arch_folder)
+
+    # If a script has been specified, run it.
+    if args.script_path:
+        print ("\nRunning the script at: {}\n".format(args.script_path))
+
+        # Ensure that we can run the script, otherwise we don't have the
+        # permission
+        subprocess.call(['chmod', '+x', args.script_path])
+        subprocess.call([
+            args.script_path,
+            temp_arch_folder,
+            get_arch_triplet(args.arch)])
+else:
+    print ("\nPackages are already downloaded. Use them...")
+
+# If -e or --extract-only flags have been specified, we have completed our work
+if args.extract_only:
+    print ("\n\nCompleted successfully.")
+    sys.exit(0)
+
+# Copy temp_arch folder content to its destination
+if is_click_target:
+    print ("\nExtracting target .click package")
+    temp_click_folder = extract_click_package(
+        args.target_path,
+        os.path.join('/tmp/', str(get_timestamp())))
+
+    print ("\nAdding extracted binaries to the package")
+    copy_directory_content(temp_arch_folder, temp_click_folder)
+
+    new_click_package_path = build_click_package(temp_click_folder)
+    print ("\nCreated new .click package at:\n{}".format(new_click_package_path))
+
+    print ("\nReplacing older .click package")
+    copy_file(new_click_package_path, args.target_path, True)
+
+    delete_folder(temp_click_folder, True)
+
+else:
+    print ("\nCopying extracted binaries to their destination")
+    copy_directory_content(temp_arch_folder, args.target_path)
+
+# Delete temp files
+if args.delete_temp:
+    print ("\)nRemoving temp files and directory, as requested")
+    delete_folder(temp_folder, True)
+
+# Exit
+print ("\n\nCompleted successfully.")

=== modified file 'po/am.po'
--- po/am.po	2015-09-23 06:28:55 +0000
+++ po/am.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,26 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+<<<<<<< TREE
 "POT-Creation-Date: 2015-07-24 11:10+0200\n"
 "PO-Revision-Date: 2015-09-22 22:55+0000\n"
+=======
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-03-08 19:28+0000\n"
+>>>>>>> MERGE-SOURCE
 "Last-Translator: samson <Unknown>\n"
 "Language-Team: Amharic <am@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-09-23 06:28+0000\n"
 "X-Generator: Launchpad (build 17749)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +43,7 @@
 msgstr "ኮፒ %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "ሰነድ መመልከቻ"
 
@@ -147,32 +157,31 @@
 msgid "%1 byte"
 msgstr "%1 ባይት"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "ፋይል ማጥፊያ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "ማጥፊያ %1 ፋይል"
 msgstr[1] "ማጥፊያ %1 ፋይሎች"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "ይህን ፋይል በ እርግጥ በቋሚነት ማጥፋት ይፈልጋሉ?"
 msgstr[1] "እነዚህን ፋይሎች በ እርግጥ በቋሚነት ማጥፋት ይፈልጋሉ?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "መሰረዣ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "ማጥፊያ"
@@ -189,35 +198,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "ዛሬ, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "ትናንትና, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "ዛሬ"
@@ -369,6 +390,6 @@
 msgid "Open"
 msgstr "መክፈቻ"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "ሰነዶች: መመልከቻ: pdf: ማንበቢያ:"

=== renamed file 'po/ar.po' => 'po/ar.po.THIS'
=== modified file 'po/ast.po'
--- po/ast.po	2015-11-03 05:30:48 +0000
+++ po/ast.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,26 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+<<<<<<< TREE
 "POT-Creation-Date: 2015-07-24 11:10+0200\n"
 "PO-Revision-Date: 2015-11-02 17:44+0000\n"
+=======
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-12 10:44+0000\n"
+>>>>>>> MERGE-SOURCE
 "Last-Translator: enolp <enolp@xxxxxxxxxxxxx>\n"
 "Language-Team: Asturian <ast@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-11-03 05:30+0000\n"
 "X-Generator: Launchpad (build 17838)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +43,7 @@
 msgstr "copiar %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visor de documentos"
 
@@ -149,32 +159,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Desaniciar ficheru"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Desaniciar %1 ficheru"
 msgstr[1] "Desaniciar %1 ficheros"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "¿De xuru que quies desaniciar dafechu esti ficheru?"
 msgstr[1] "¿De xuru que quies desaniciar dafechu estos ficheros?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Encaboxar"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Desaniciar"
@@ -193,35 +202,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Güei, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Ayeri, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Güei"
@@ -375,6 +396,6 @@
 msgid "Open"
 msgstr "Abrir"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documentos;visor;pdf;llector;"

=== modified file 'po/br.po'
--- po/br.po	2015-08-26 06:10:38 +0000
+++ po/br.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,26 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+<<<<<<< TREE
 "POT-Creation-Date: 2015-07-24 11:10+0200\n"
 "PO-Revision-Date: 2015-08-25 14:07+0000\n"
+=======
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-04-28 08:02+0000\n"
+>>>>>>> MERGE-SOURCE
 "Last-Translator: Fohanno Thierry <thierry.fohanno@xxxxxxxxxxxx>\n"
 "Language-Team: Breton <br@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-26 06:10+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +43,7 @@
 msgstr "eilañ %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Lenner teulioù"
 
@@ -149,32 +159,31 @@
 msgid "%1 byte"
 msgstr "%1 okted"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Diverkañ ar restr"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Diverkañ %1 restr"
 msgstr[1] "Diverkañ %1 restr"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Ha sur oc'h e fell deoc'h diverkañ ar restr-mañ da viken ?"
 msgstr[1] "Ha sur oc'h e fell deoc'h diverkañ ar restroù-mañ da viken ?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Nullañ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Diverkañ"
@@ -193,35 +202,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Hiziv, da %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Dec'h, da %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Hiziv"
@@ -373,6 +394,6 @@
 msgid "Open"
 msgstr "Digeriñ"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "teulioù;diskouezer;pdf;lenner"

=== renamed file 'po/bs.po' => 'po/bs.po.THIS'
=== modified file 'po/ca.po'
--- po/ca.po	2015-08-18 05:56:20 +0000
+++ po/ca.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-25 06:34+0000\n"
 "Last-Translator: David Planella <david.planella@xxxxxxxxxx>\n"
 "Language-Team: Catalan <ca@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "còpia %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visualitzador de documents"
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Suprimeix el fitxer"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Suprimeix %1 fitxer"
 msgstr[1] "Suprimeix %1 fitxers"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Segur que voleu suprimir permanentment aquest fitxer?"
 msgstr[1] "Segur que voleu suprimir permanentment aquests fitxers?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancel·la"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Suprimeix"
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Avui, a les %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Ahir, a les %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, H.mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd/MM/yyyy H.mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Avui', a les H.mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Ahir', a les H.mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Avui"
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr "Obre"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;visualitzador;pdf;lector;"

=== modified file 'po/com.ubuntu.docviewer.pot'
--- po/com.ubuntu.docviewer.pot	2015-07-24 09:12:38 +0000
+++ po/com.ubuntu.docviewer.pot	2015-11-06 11:00:18 +0000
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-10-20 20:21+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@xxxxxx>\n"
@@ -18,48 +18,53 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#. TRANSLATORS: This string is used for renaming a copied file,
-#. when a file with the same name already exists in user's
-#. Documents folder.
-#.
-#. e.g. "Manual_Aquaris_E4.5_ubuntu_EN.pdf" will become
-#. "Manual_Aquaris_E4.5_ubuntu_EN (copy 2).pdf"
-#.
-#. where "2" is given by the argument "%1"
-#.
-#: ../src/app/content-communicator.cpp:105
-#, qt-format
-msgid "copy %1"
-msgstr ""
-
-#: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
-msgid "Document Viewer"
-msgstr ""
-
-#: ../src/app/qml/common/DetailsPage.qml:27
+#: ../src/app/qml/common/CommandLineProxy.qml:49
+msgid "Some of the provided arguments is not valid."
+msgstr ""
+
+#: ../src/app/qml/common/CommandLineProxy.qml:58
+msgid "Opens ubuntu-docviewer-app displaying the selected file"
+msgstr ""
+
+#: ../src/app/qml/common/CommandLineProxy.qml:65
+msgid "Run fullscreen"
+msgstr ""
+
+#: ../src/app/qml/common/CommandLineProxy.qml:71
+msgid "Open ubuntu-docviewer-app in pick mode. Use it for tests only."
+msgstr ""
+
+#: ../src/app/qml/common/CommandLineProxy.qml:77
+msgid ""
+"Load the list of documents from the given folder, instead of default ~/"
+"Documents.\n"
+"The path must exist prior to running ubuntu-docviewer-app"
+msgstr ""
+
+#: ../src/app/qml/common/DetailsPage.qml:25
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:106
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:97
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:83
 msgid "Details"
 msgstr ""
 
-#: ../src/app/qml/common/DetailsPage.qml:33
+#: ../src/app/qml/common/DetailsPage.qml:36
 msgid "Location"
 msgstr ""
 
-#: ../src/app/qml/common/DetailsPage.qml:37
+#: ../src/app/qml/common/DetailsPage.qml:41
 msgid "Size"
 msgstr ""
 
-#: ../src/app/qml/common/DetailsPage.qml:42
+#: ../src/app/qml/common/DetailsPage.qml:46
 msgid "Created"
 msgstr ""
 
-#: ../src/app/qml/common/DetailsPage.qml:47
+#: ../src/app/qml/common/DetailsPage.qml:51
 msgid "Last modified"
 msgstr ""
 
-#: ../src/app/qml/common/DetailsPage.qml:54
+#: ../src/app/qml/common/DetailsPage.qml:58
 msgid "MIME type"
 msgstr ""
 
@@ -72,20 +77,21 @@
 msgstr ""
 
 #: ../src/app/qml/common/FileNotFoundDialog.qml:28
-#: ../src/app/qml/common/PickImportedDialog.qml:47
+#: ../src/app/qml/common/PickImportedDialog.qml:53
 #: ../src/app/qml/common/RejectedImportDialog.qml:38
-#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:32
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:33
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:53
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:70
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:61
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:61
 msgid "Close"
 msgstr ""
 
+#: ../src/app/qml/common/PickImportedDialog.qml:28
+msgid "Multiple documents imported"
+msgstr ""
+
 #: ../src/app/qml/common/PickImportedDialog.qml:29
-msgid "Multiple documents imported"
-msgstr ""
-
-#: ../src/app/qml/common/PickImportedDialog.qml:30
 msgid "Choose which one to open:"
 msgstr ""
 
@@ -101,28 +107,29 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/common/ToastWithAction.qml:97
-msgid "Dismiss"
-msgstr ""
-
-#: ../src/app/qml/common/UnknownTypeDialog.qml:26
+#: ../src/app/qml/common/UnknownTypeDialog.qml:27
 msgid "Unknown file type"
 msgstr ""
 
-#: ../src/app/qml/common/UnknownTypeDialog.qml:27
+#: ../src/app/qml/common/UnknownTypeDialog.qml:28
 msgid ""
-"Sorry but we can't find a way to display this file. Do you want to open it "
-"as a plain text?"
-msgstr ""
-
-#: ../src/app/qml/common/UnknownTypeDialog.qml:29
+"Sorry but we can't find a way to display this file.\n"
+"\n"
+"Do you want to open it as a plain text?"
+msgstr ""
+
+#: ../src/app/qml/common/UnknownTypeDialog.qml:38
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:55
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:28
+#: ../src/app/qml/loView/LOViewGotoDialog.qml:53
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:51
+msgid "Cancel"
+msgstr ""
+
+#: ../src/app/qml/common/UnknownTypeDialog.qml:44
 msgid "Yes"
 msgstr ""
 
-#: ../src/app/qml/common/UnknownTypeDialog.qml:38
-msgid "No"
-msgstr ""
-
 #. TRANSLATORS: %1 is the size of a file, expressed in GB
 #: ../src/app/qml/common/utils.js:22
 #, qt-format
@@ -147,98 +154,72 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
 msgid "Delete file"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:40
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:42
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
-#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
-#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
-msgid "Cancel"
-msgstr ""
-
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
-#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:61
+#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:27
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:55
 msgid "Delete"
 msgstr ""
 
+#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:46
+msgid "Share"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentEmptyState.qml:24
 msgid "No document found"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentEmptyState.qml:28
+#: ../src/app/qml/documentPage/DocumentEmptyState.qml:25
 msgid ""
 "Connect your device to any computer and simply drag files to the Documents "
-"folder."
+"folder or insert removable media with documents."
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:95
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:100
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:107
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:126
+msgid "yyyy/MM/dd hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string,
+#. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:120
 msgid "dddd, hh:mm"
 msgstr ""
 
-#. TRANSLATORS: this is a datetime formatting string,
-#. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
-msgid "dd-MM-yyyy hh:mm"
-msgstr ""
-
-#: ../src/app/qml/documentPage/DocumentListView.qml:157
-msgid "Today"
-msgstr ""
-
-#: ../src/app/qml/documentPage/DocumentListView.qml:160
-msgid "Yesterday"
-msgstr ""
-
-#: ../src/app/qml/documentPage/DocumentListView.qml:163
-msgid "Earlier this week"
-msgstr ""
-
-#: ../src/app/qml/documentPage/DocumentListView.qml:166
-msgid "Earlier this month"
-msgstr ""
-
-#: ../src/app/qml/documentPage/DocumentListView.qml:168
-msgid "Even earlier..."
-msgstr ""
-
-#: ../src/app/qml/documentPage/DocumentPage.qml:24
+#: ../src/app/qml/documentPage/DocumentPage.qml:23
 msgid "Documents"
 msgstr ""
 
@@ -246,25 +227,25 @@
 msgid "Search..."
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
+#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:36
 msgid "Sorting settings..."
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
-#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:41
 msgid "Switch to single column list"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
-#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:41
 msgid "Switch to grid"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:43
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:49
 msgid "Pick"
 msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:27
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:70
+#: ../src/app/qml/loView/LOViewPage.qml:191
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:61
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:61
 msgid "Back"
@@ -274,11 +255,11 @@
 msgid "search in documents..."
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:42
 msgid "Select None"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:54
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:42
 msgid "Select All"
 msgstr ""
 
@@ -291,6 +272,30 @@
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
 
+#: ../src/app/qml/documentPage/SectionHeader.qml:13
+msgid "Today"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SectionHeader.qml:16
+msgid "Yesterday"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SectionHeader.qml:19
+msgid "Earlier this week"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SectionHeader.qml:22
+msgid "Earlier this month"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SectionHeader.qml:24
+msgid "Even earlier..."
+msgstr ""
+
+#: ../src/app/qml/documentPage/SharePage.qml:23
+msgid "Share to"
+msgstr ""
+
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
 msgstr ""
@@ -311,6 +316,104 @@
 msgid "Reverse order"
 msgstr ""
 
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:47
+#: ../src/app/qml/textView/TextView.qml:42
+msgid "Loading..."
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:51
+msgid "LibreOffice text document"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:53
+msgid "LibreOffice spread sheet"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:55
+msgid "LibreOffice presentation"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:57
+msgid "LibreOffice Draw document"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:59
+msgid "Unknown LibreOffice document"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:61
+msgid "Unknown type document"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:86
+msgid "Show zoom controls"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:93
+msgid "Go to position..."
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:100
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
+msgid "Disable night mode"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewDefaultHeader.qml:100
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
+msgid "Enable night mode"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewGotoDialog.qml:28
+msgid "Go to position"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewGotoDialog.qml:29
+msgid "Choose a position between 1% and 100%"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewGotoDialog.qml:60
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:58
+msgid "GO!"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewPage.qml:34
+#: ../src/app/qml/loView/LOViewPage.qml:189
+msgid "Slides"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewZoomHeader.qml:42
+msgid "Hide zoom controls"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewZoomHeader.qml:49
+msgid "Zoom in"
+msgstr ""
+
+#: ../src/app/qml/loView/LOViewZoomHeader.qml:55
+msgid "Zoom out"
+msgstr ""
+
+#: ../src/app/qml/loView/SlideControllerPanel.qml:62
+#, qt-format
+msgid "Slide %1 of %2"
+msgstr ""
+
+#: ../src/app/qml/loView/ZoomSelector.qml:29
+msgid "Automatic (Fit width)"
+msgstr ""
+
+#: ../src/app/qml/loView/ZoomSelector.qml:94
+#, qt-format
+msgid "Automatic (%1%)"
+msgstr ""
+
+#: ../src/app/qml/loView/ZoomSelector.qml:95
+#, qt-format
+msgid "Zoom: %1%"
+msgstr ""
+
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
 #: ../src/app/qml/pdfView/PdfView.qml:37
@@ -332,43 +435,33 @@
 msgid "Go to page..."
 msgstr ""
 
-#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
-#: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
-msgid "Disable night mode"
-msgstr ""
-
-#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
-#: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
-msgid "Enable night mode"
-msgstr ""
-
-#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:25
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:26
 msgid "Go to page"
 msgstr ""
 
-#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:26
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:27
 #, qt-format
 msgid "Choose a page between 1 and %1"
 msgstr ""
 
-#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:44
-msgid "GO!"
-msgstr ""
-
-#: ../src/app/qml/textView/TextView.qml:42
-msgid "Loading..."
-msgstr ""
-
-#: ../src/app/qml/ubuntu-docviewer-app.qml:240
-msgid "Document successfully imported!"
-msgid_plural "Documents successfully imported!"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/app/qml/ubuntu-docviewer-app.qml:243
-msgid "Open"
-msgstr ""
-
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#. TRANSLATORS: This string is used for renaming a copied file,
+#. when a file with the same name already exists in user's
+#. Documents folder.
+#.
+#. e.g. "Manual_Aquaris_E4.5_ubuntu_EN.pdf" will become
+#. "Manual_Aquaris_E4.5_ubuntu_EN (copy 2).pdf"
+#.
+#. where "2" is given by the argument "%1"
+#.
+#: ../src/plugin/file-qml-plugin/docviewerutils.cpp:111
+#, qt-format
+msgid "copy %1"
+msgstr ""
+
+#: /tmp/build-reboot-uitk12-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+msgid "Document Viewer"
+msgstr ""
+
+#: /tmp/build-reboot-uitk12-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr ""

=== modified file 'po/cs.po'
--- po/cs.po	2015-08-18 05:56:20 +0000
+++ po/cs.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-04 13:53+0000\n"
 "Last-Translator: Vojtěch Daněk <vdanek@xxxxxxxxxxx>\n"
 "Language-Team: Czech <cs@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr ""
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Smazat soubor"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Smazat"
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Dnes"
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr ""

=== renamed file 'po/cy.po' => 'po/cy.po.THIS'
=== modified file 'po/da.po'
--- po/da.po	2015-08-18 05:56:20 +0000
+++ po/da.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-26 14:46+0000\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Danish <da@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr ""
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr ""
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr ""
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr ""
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr ""

=== modified file 'po/de.po'
--- po/de.po	2015-08-18 05:56:20 +0000
+++ po/de.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-06-29 12:21+0000\n"
-"Last-Translator: Torsten Franz <Unknown>\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-26 14:06+0000\n"
+"Last-Translator: Phillip Sz <Unknown>\n"
 "Language-Team: German <de@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-27 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "Kopie %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Dokumentenbetrachter"
 
@@ -149,33 +154,32 @@
 msgid "%1 byte"
 msgstr "%1 Byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Datei löschen"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "%1 Datei löschen"
 msgstr[1] "%1 Dateien löschen"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Sind Sie sicher, dass Sie diese Datei dauerhaft löschen möchten?"
 msgstr[1] ""
 "Sind Sie sicher, dass Sie diese Dateien dauerhaft löschen möchten?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Löschen"
@@ -194,35 +198,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Heute, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Gestern, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd.MM.yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Heute"
@@ -253,7 +269,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "Sortiereinstellungen …"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -277,7 +293,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "In Dokumenten suchen …"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -289,34 +305,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "Kein passendes Dokument gefunden"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"Bitte sicherstellen, dass die Anfrage nicht falsch geschrieben ist und/oder "
-"eine andere Anfrage versuchen."
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "Sortiereinstellungen"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "Sortiert nach Datum (Letztes zuerst)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "Sortiert nach Name (A-Z)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "Sortiert nach Größe (Kleinstes zuerst)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "Umgekehrte Reihenfolge"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -376,6 +390,6 @@
 msgid "Open"
 msgstr "Öffnen"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "Dokumente;Betrachter;PDF;Leser;Dokumentenbetrachter;PDF-Betrachter"

=== modified file 'po/el.po'
--- po/el.po	2015-08-18 05:56:20 +0000
+++ po/el.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-07-17 10:02+0000\n"
-"Last-Translator: Simos Xenitellis <Unknown>\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-03-08 18:24+0000\n"
+"Last-Translator: Aggelos Arnaoutis <angelosarn@xxxxxxxxxxx>\n"
 "Language-Team: Greek <el@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -30,12 +35,12 @@
 #: ../src/app/content-communicator.cpp:105
 #, qt-format
 msgid "copy %1"
-msgstr "αντίγραφο %1"
+msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
-msgstr "Προβολή εγγράφων"
+msgstr "Προβολέας εγγράφων"
 
 #: ../src/app/qml/common/DetailsPage.qml:27
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:97
@@ -83,27 +88,27 @@
 
 #: ../src/app/qml/common/PickImportedDialog.qml:29
 msgid "Multiple documents imported"
-msgstr "Εισήχθησαν πολλαπλά έγγραφα"
+msgstr ""
 
 #: ../src/app/qml/common/PickImportedDialog.qml:30
 msgid "Choose which one to open:"
-msgstr "Επιλέξτε ποιο να ανοίξετε:"
+msgstr ""
 
 #: ../src/app/qml/common/RejectedImportDialog.qml:28
 msgid "File not supported"
 msgid_plural "Files not supported"
-msgstr[0] "Δεν υποστηρίζεται το αρχείο"
-msgstr[1] "Δεν υποστηρίζονται τα αρχεία"
+msgstr[0] ""
+msgstr[1] ""
 
 #: ../src/app/qml/common/RejectedImportDialog.qml:29
 msgid "Following document has not been imported:"
 msgid_plural "Following documents have not been imported:"
-msgstr[0] "Το παρακάτω έγγραφο δεν εισήχθη:"
-msgstr[1] "Τα παρακάτω έγγραφα δεν εισήχθησαν:"
+msgstr[0] ""
+msgstr[1] ""
 
 #: ../src/app/qml/common/ToastWithAction.qml:97
 msgid "Dismiss"
-msgstr "Κλείσιμο"
+msgstr ""
 
 #: ../src/app/qml/common/UnknownTypeDialog.qml:26
 msgid "Unknown file type"
@@ -115,7 +120,7 @@
 "as a plain text?"
 msgstr ""
 "Συγγνωμή αλλά δεν είναι δυνατό να βρεθεί τρόπος να εμφανιστεί αυτό το "
-"αρχείο. Θέλετε να το ανοίξετα ως απλό κείμενο;"
+"αρχείο. Θέλετε να το ανοίξετα σαν απλό κείμενο;"
 
 #: ../src/app/qml/common/UnknownTypeDialog.qml:29
 msgid "Yes"
@@ -147,80 +152,91 @@
 #: ../src/app/qml/common/utils.js:33
 #, qt-format
 msgid "%1 byte"
-msgstr "%1 byte"
+msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Διαγραφή αρχείου"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "ΔΙαγραφή %1 αρχείου"
 msgstr[1] "Διαγραφή %1 αρχείων"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
-msgstr[0] "Θέλετε σίγουρα να διαγράψετε για πάντα αυτό το αρχείο;"
-msgstr[1] "Θέλετε σίγουρα να διαγράψετε για πάντα αυτά τα αρχεία;"
+msgstr[0] "Είστε σίγουρος πως θέλετε να διαγράψετε μόνιμα αυτό το αρχείο;"
+msgstr[1] "Είστε σίγουρος πως θέλετε να διαγράψετε μόνιμα αυτά τα αρχεία;"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
-msgstr "Ακύρωση"
+msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Διαγραφή"
 
 #: ../src/app/qml/documentPage/DocumentEmptyState.qml:24
 msgid "No document found"
-msgstr "Δεν βρέθηκαν έγγραφα"
+msgstr "Κανένα έγγραφο δεν βρέθηκε"
 
 #: ../src/app/qml/documentPage/DocumentEmptyState.qml:28
 msgid ""
 "Connect your device to any computer and simply drag files to the Documents "
 "folder."
 msgstr ""
-"Συνδέστε τη συσκευή σας σε οποιονδήποτε υπολογιστή και απλά σύρτε αρχεία στο "
-"φάκελο Έγγραφα."
+"Συνεστε την συσκευή σας σε οποιονδήποτε υπολογιστή και απλά σύτερε αρχεία "
+"στον φάκελο Έγγραφα."
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Σήμερα, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
-msgstr "Χθες, %1"
+msgstr "Χθές, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
-msgstr "dddd, hh:mm"
+msgstr "ηηηη, ωω:λλ"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
-msgstr "dd-MM-yyyy hh:mm"
+msgstr "ηη-ΜΜ-εεε ωω:λλ"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
@@ -232,27 +248,27 @@
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:163
 msgid "Earlier this week"
-msgstr "Νωρίτερα αυτή την εβδομάδα"
+msgstr "Νωρίτερα αυτήν την εβδομάδα"
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:166
 msgid "Earlier this month"
-msgstr "Νωρίτερα αυτό τον μήνα"
+msgstr "Νωρίτερα αυτόν τον μήνα"
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:168
 msgid "Even earlier..."
-msgstr "Ακόμα νωρίτερα..."
+msgstr "Ακόμα νωρίτερα"
 
 #: ../src/app/qml/documentPage/DocumentPage.qml:24
 msgid "Documents"
-msgstr "Έγγραφα"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
 msgid "Search..."
-msgstr "Αναζήτηση..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "Ρυθμίσεις ταξινόμησης..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -276,7 +292,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "αναζήτηση στα έγγραφα..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -288,34 +304,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "Δεν βρέθηκαν έγγραφα που ταιριάζουν"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"Παρακαλούμε επιβεβαιώστε ότι το λεκτικό αναζήτησης είναι σωστό και/ή "
-"δοκιμάστε με άλλο λεκτικό."
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "Ρυθμίσεις ταξινόμησης"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "Ταξινόμηση ανά ημερομηνία (Πιο πρόσφατα πρώτα)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "Ταξινόμηση ανά όνομα (Α-Ω)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "Ταξινόμηση ανά μέγεθος (Πιο μικρά πρώτα)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "Αντίστροφη σειρά"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -325,7 +339,7 @@
 
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:38
 msgid "Hide table of contents"
-msgstr "Απόκρυψη του πίνακα περιεχομένων"
+msgstr ""
 
 #. TRANSLATORS: the first argument (%1) refers to the page currently shown on the screen,
 #. while the second one (%2) refers to the total pages count.
@@ -336,17 +350,17 @@
 
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:85
 msgid "Go to page..."
-msgstr "Μετάβαση στη σελίδα..."
+msgstr "Μετάβαση στην σελίδα..."
 
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
 msgid "Disable night mode"
-msgstr "Απενεργοποίηση της ρύθμισης νύχτας"
+msgstr ""
 
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
 msgid "Enable night mode"
-msgstr "Ενεργοποίηση της ρύθμισης νύχτας"
+msgstr ""
 
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:25
 msgid "Go to page"
@@ -359,7 +373,7 @@
 
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:44
 msgid "GO!"
-msgstr "ΠΑΜΕ!"
+msgstr ""
 
 #: ../src/app/qml/textView/TextView.qml:42
 msgid "Loading..."
@@ -368,13 +382,13 @@
 #: ../src/app/qml/ubuntu-docviewer-app.qml:240
 msgid "Document successfully imported!"
 msgid_plural "Documents successfully imported!"
-msgstr[0] "Το έγγραφο εισήχθη επιτυχώς!"
-msgstr[1] "Τα έγγραφα εισήχθησαν επιτυχώς!"
+msgstr[0] ""
+msgstr[1] ""
 
 #: ../src/app/qml/ubuntu-docviewer-app.qml:243
 msgid "Open"
-msgstr "Άνοιγμα"
+msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
-msgstr "documents;viewer;pdf;reader;έγγραφα;προβολή;πδφ;αναγνώστης;διάβασμα;"
+msgstr ""

=== modified file 'po/en_AU.po'
--- po/en_AU.po	2015-08-18 05:56:20 +0000
+++ po/en_AU.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-27 01:15+0000\n"
 "Last-Translator: Joel Addison <jaddi27@xxxxxxxxx>\n"
 "Language-Team: English (Australia) <en_AU@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-28 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "copy %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Document Viewer"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Delete file"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Delete %1 file"
 msgstr[1] "Delete %1 files"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Are you sure you want to permanently delete this file?"
 msgstr[1] "Are you sure you want to permanently delete these files?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancel"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Delete"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Today, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Yesterday, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Today', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Yesterday', hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Today"
@@ -374,6 +390,6 @@
 msgid "Open"
 msgstr "Open"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;"

=== modified file 'po/en_GB.po'
--- po/en_GB.po	2015-08-18 05:56:20 +0000
+++ po/en_GB.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-06-30 14:30+0000\n"
-"Last-Translator: James Tait <Unknown>\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-13 21:56+0000\n"
+"Last-Translator: Andi Chandler <Unknown>\n"
 "Language-Team: English (United Kingdom) <en_GB@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:59+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "copy %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Document Viewer"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Delete file"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Delete %1 file"
 msgstr[1] "Delete %1 files"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Are you sure you want to permanently delete this file?"
 msgstr[1] "Are you sure you want to permanently delete these files?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancel"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Delete"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Today, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Yesterday, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Today"
@@ -244,15 +260,15 @@
 
 #: ../src/app/qml/documentPage/DocumentPage.qml:24
 msgid "Documents"
-msgstr "Documents"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
 msgid "Search..."
-msgstr "Search..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "Sorting settings..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -276,7 +292,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "search in documents..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -288,33 +304,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "No matching document found"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"Please ensure that your query is not misspelled and/or try a different query."
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "Sorting settings"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "Sort by date (Latest first)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "Sort by name (A-Z)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "Sort by size (Smaller first)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "Reverse order"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -374,6 +389,6 @@
 msgid "Open"
 msgstr "Open"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;"

=== modified file 'po/eo.po'
--- po/eo.po	2015-08-18 05:56:20 +0000
+++ po/eo.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-07-17 05:33+0000\n"
-"Last-Translator: Adolfo Jayme <fitoschido@xxxxxxxxx>\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-03-03 23:59+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Esperanto <eo@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -30,46 +35,46 @@
 #: ../src/app/content-communicator.cpp:105
 #, qt-format
 msgid "copy %1"
-msgstr "%1-a kopio"
+msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
-msgstr "Dokumentmontrilo"
+msgstr ""
 
 #: ../src/app/qml/common/DetailsPage.qml:27
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:97
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:83
 msgid "Details"
-msgstr "Detaloj"
+msgstr ""
 
 #: ../src/app/qml/common/DetailsPage.qml:33
 msgid "Location"
-msgstr "Loko"
+msgstr ""
 
 #: ../src/app/qml/common/DetailsPage.qml:37
 msgid "Size"
-msgstr "Grandeco"
+msgstr ""
 
 #: ../src/app/qml/common/DetailsPage.qml:42
 msgid "Created"
-msgstr "Kreita"
+msgstr ""
 
 #: ../src/app/qml/common/DetailsPage.qml:47
 msgid "Last modified"
-msgstr "Laste ŝanĝita"
+msgstr ""
 
 #: ../src/app/qml/common/DetailsPage.qml:54
 msgid "MIME type"
-msgstr "MIME-tipo"
+msgstr ""
 
 #: ../src/app/qml/common/FileNotFoundDialog.qml:24
 msgid "Error"
-msgstr "Eraro"
+msgstr ""
 
 #: ../src/app/qml/common/FileNotFoundDialog.qml:25
 msgid "File does not exist"
-msgstr "La dosiero ne ekzistas"
+msgstr ""
 
 #: ../src/app/qml/common/FileNotFoundDialog.qml:28
 #: ../src/app/qml/common/PickImportedDialog.qml:47
@@ -79,7 +84,7 @@
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:61
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:61
 msgid "Close"
-msgstr "Fermi"
+msgstr ""
 
 #: ../src/app/qml/common/PickImportedDialog.qml:29
 msgid "Multiple documents imported"
@@ -107,7 +112,7 @@
 
 #: ../src/app/qml/common/UnknownTypeDialog.qml:26
 msgid "Unknown file type"
-msgstr "Nekonata dosierspeco"
+msgstr ""
 
 #: ../src/app/qml/common/UnknownTypeDialog.qml:27
 msgid ""
@@ -117,62 +122,61 @@
 
 #: ../src/app/qml/common/UnknownTypeDialog.qml:29
 msgid "Yes"
-msgstr "Jes"
+msgstr ""
 
 #: ../src/app/qml/common/UnknownTypeDialog.qml:38
 msgid "No"
-msgstr "Ne"
+msgstr ""
 
 #. TRANSLATORS: %1 is the size of a file, expressed in GB
 #: ../src/app/qml/common/utils.js:22
 #, qt-format
 msgid "%1 GB"
-msgstr "%1 GB"
+msgstr ""
 
 #. TRANSLATORS: %1 is the size of a file, expressed in MB
 #: ../src/app/qml/common/utils.js:26
 #, qt-format
 msgid "%1 MB"
-msgstr "%1 MB"
+msgstr ""
 
 #. TRANSLATORS: %1 is the size of a file, expressed in kB
 #: ../src/app/qml/common/utils.js:30
 #, qt-format
 msgid "%1 kB"
-msgstr "%1 kB"
+msgstr ""
 
 #. TRANSLATORS: %1 is the size of a file, expressed in byte
 #: ../src/app/qml/common/utils.js:33
 #, qt-format
 msgid "%1 byte"
-msgstr "%1 bitoko"
+msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
-msgstr "Forigi dosieron"
+msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr ""
@@ -189,42 +193,54 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr ""
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
-msgstr "Hodiaŭ"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:160
 msgid "Yesterday"
-msgstr "Hieraŭ"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:163
 msgid "Earlier this week"
@@ -326,7 +342,7 @@
 #: ../src/app/qml/pdfView/PdfView.qml:34
 #, qt-format
 msgid "Page %1 of %2"
-msgstr "Paĝo %1 el %2"
+msgstr ""
 
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:85
 msgid "Go to page..."
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr ""

=== modified file 'po/es.po'
--- po/es.po	2015-08-18 05:56:20 +0000
+++ po/es.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-27 21:08+0000\n"
 "Last-Translator: Adolfo Jayme <fitoschido@xxxxxxxxx>\n"
 "Language-Team: Spanish <es@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-28 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "copia %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visor de documentos"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Eliminar archivo"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Eliminar %1 archivo"
 msgstr[1] "Eliminar %1 archivos"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "¿Confirma la eliminación permanente de este archivo?"
 msgstr[1] "¿Confirma la eliminación permanente de estos archivos?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Eliminar"
@@ -192,35 +196,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Hoy, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Ayer, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd/MM/yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Hoy', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Ayer', hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Hoy"
@@ -373,6 +389,6 @@
 msgid "Open"
 msgstr "Abrir"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documentos;visor;pdf;lector;"

=== modified file 'po/eu.po'
--- po/eu.po	2015-08-18 05:56:20 +0000
+++ po/eu.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-23 21:50+0000\n"
 "Last-Translator: Asier Iturralde Sarasola <Unknown>\n"
 "Language-Team: Basque <eu@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Dokumentu-ikustailea"
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Ezabatu fitxategia"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Ezabatu fitxategi %1"
 msgstr[1] "Ezabatu %1 fitxategi"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Ziur zaude fitxategi hau behin-betiko ezabatu nahi duzula?"
 msgstr[1] "Ziur zaude fitxategi hauek behin-betiko ezabatu nahi dituzula?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Utzi"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Ezabatu"
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Gaur, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Atzo, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "yyyy-MM-dd hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Gaur"
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumentu;ikustailea;pdf;irakurlea"

=== modified file 'po/fa.po'
--- po/fa.po	2015-08-18 05:56:20 +0000
+++ po/fa.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-07-17 10:09+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-05-30 22:19+0000\n"
 "Last-Translator: Danial Behzadi <dani.behzi@xxxxxxxxx>\n"
 "Language-Team: Persian <fa@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "رونوشت %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "نمایشگر سند"
 
@@ -147,30 +152,29 @@
 msgid "%1 byte"
 msgstr "%1 بایت"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "حذف پرونده"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "حذف %1 پرونده"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "مطمئنید که می‌خواهید این پرونده‌ها را برای همیشه حذف کنید؟"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "لغو"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "حذف"
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "امروز، %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "دیروز، %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "‫dddd، hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd/MM/yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "امروز"
@@ -240,15 +256,15 @@
 
 #: ../src/app/qml/documentPage/DocumentPage.qml:24
 msgid "Documents"
-msgstr "مستندات"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
 msgid "Search..."
-msgstr "جست‌وجو…"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "تنظیمات چینش…"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -272,7 +288,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "جست‌وجو در مستندات…"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -284,34 +300,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "هیچ سند مطابقی یافت نشد"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"لطفاُ مطمئن شوید که پرس‌وجویتان اشتباه نداشت و/یا پرس‌وجوی دیگری را امتحان "
-"کنید."
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "تنظیمات چینش"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "چینش بر اساس تاریخ (ابتدا جدیدترین‌ها)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "چینش بر اساس نام (صعودی)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "چینش بر اساس اندازه (ابتدا کوچک‌ترها)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "ترتیب معکوس"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -370,6 +384,6 @@
 msgid "Open"
 msgstr "گشودن"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;"

=== modified file 'po/fi.po'
--- po/fi.po	2015-08-18 05:56:20 +0000
+++ po/fi.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-06-29 11:40+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-26 14:12+0000\n"
 "Last-Translator: Jiri Grönroos <Unknown>\n"
 "Language-Team: Finnish <fi@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-27 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "kopio %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Asiakirjakatselin"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 tavu"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Poista tiedosto"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Poista %1 tiedosto"
 msgstr[1] "Poista %1 tiedostoa"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Haluatko varmasti poistaa tämän tiedoston pysyvästi?"
 msgstr[1] "Haluatko varmasti poistaa nämä tiedostot pysyvästi?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Peru"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Poista"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Tänään, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Eilen, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh.mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh.mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Tänään"
@@ -375,6 +391,6 @@
 msgid "Open"
 msgstr "Avaa"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;asiakirjat;dokumentit;katselin;lukija;"

=== modified file 'po/fr.po'
--- po/fr.po	2015-08-18 05:56:20 +0000
+++ po/fr.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-07-07 12:33+0000\n"
-"Last-Translator: Anne <anneonyme017@xxxxxxxxx>\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-05-10 13:11+0000\n"
+"Last-Translator: Yuri <Unknown>\n"
 "Language-Team: French <fr@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "copie %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visionneuse de document"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 octet"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Supprimer le fichier"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Supprimer %1 fichier"
 msgstr[1] "Supprimer %1 fichiers"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Êtes-vous sûr de vouloir supprimer définitivement ce fichier ?"
 msgstr[1] "Êtes-vous sûr de vouloir supprimer définitivement ces fichiers ?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Annuler"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Supprimer"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Aujourd'hui, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Hier, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Aujourd'hui"
@@ -244,15 +260,15 @@
 
 #: ../src/app/qml/documentPage/DocumentPage.qml:24
 msgid "Documents"
-msgstr "Documents"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
 msgid "Search..."
-msgstr "Rechercher..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "Paramètres de tri..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -276,7 +292,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "rechercher dans les documents..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -288,34 +304,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "Aucun document correspondant trouvé"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"Veuillez vérifier que votre requête n'est pas mal orthographiée et/ou "
-"essayez une requête différente."
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "Paramètres de tri"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "Tri par date (plus récente en premier)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "Trier par nom (A-Z)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "Trier par taille (plus petite en premier)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "Ordre inversé"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -375,6 +389,6 @@
 msgid "Open"
 msgstr "Ouvrir"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;visionneuse;pdf;lecteur;"

=== modified file 'po/gd.po'
--- po/gd.po	2015-08-18 05:56:20 +0000
+++ po/gd.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-27 15:42+0000\n"
 "Last-Translator: GunChleoc <Unknown>\n"
 "Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,13 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
 "(n > 2 && n < 20) ? 2 : 3;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-28 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 "Language: gd\n"
 
 #. TRANSLATORS: This string is used for renaming a copied file,
@@ -35,7 +40,7 @@
 msgstr "lethbhreac %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Sealladair sgrìobhainnean"
 
@@ -155,11 +160,11 @@
 msgid "%1 byte"
 msgstr "%1 baidht"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Sguab às am faidhle"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
@@ -168,8 +173,8 @@
 msgstr[2] "Sguab às %1 faidhlichean"
 msgstr[3] "Sguab às %1 faidhle"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
@@ -185,14 +190,13 @@
 "A bheil thu cinnteach gu bheil thu airson na faidhlichean seo a sguabadh às "
 "gu buan?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Sguir dheth"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Sguab às"
@@ -211,35 +215,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "An-diugh %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "An-dè %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd.MM.yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'An-diugh' aig hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'An-dè' aig hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "An-diugh"
@@ -395,7 +411,7 @@
 msgid "Open"
 msgstr "Fosgail"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr ""
 "documents;viewer;pdf;reader;sgrìobhainnean;sealladair;leughadair;inneal-"

=== modified file 'po/gl.po'
--- po/gl.po	2015-09-19 05:34:40 +0000
+++ po/gl.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,26 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+<<<<<<< TREE
 "POT-Creation-Date: 2015-07-24 11:10+0200\n"
 "PO-Revision-Date: 2015-09-18 16:42+0000\n"
+=======
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-23 17:13+0000\n"
+>>>>>>> MERGE-SOURCE
 "Last-Translator: Marcos Lans <Unknown>\n"
 "Language-Team: Galician <gl@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-09-19 05:34+0000\n"
 "X-Generator: Launchpad (build 17746)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +43,7 @@
 msgstr "copia %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visor de documentos"
 
@@ -149,32 +159,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Eliminar ficheiro"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Eliminar %1 ficheiro"
 msgstr[1] "Eliminar %1 ficheiros"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Confirma a eliminación permanente deste ficheiro?"
 msgstr[1] "Confirma a eliminación permanente destes ficheiros?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Eliminar"
@@ -193,35 +202,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Hoxe, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Onte, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "«Hoxe», hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "«Onte», hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Hoxe"
@@ -276,7 +297,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "buscar documentos..."
+msgstr "buscar nos documentos..."
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -375,6 +396,6 @@
 msgid "Open"
 msgstr "Abrir"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documentos;visor;pdf;lector;"

=== modified file 'po/hu.po'
--- po/hu.po	2015-08-18 05:56:20 +0000
+++ po/hu.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-24 17:52+0000\n"
 "Last-Translator: Richard Somlói <ricsipontaz@xxxxxxxxx>\n"
 "Language-Team: Hungarian <hu@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "másolat %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Dokumentummegjelenítő"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 bájt"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Fájl törlése"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "%1 fájl törlése"
 msgstr[1] "%1 fájl törlése"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Biztos, hogy véglegesen törölni szeretné ezt a fájlt?"
 msgstr[1] "Biztos, hogy véglegesen törölni szeretné ezeket a fájlokat?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Mégse"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Törlés"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Ma, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Tegnap, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh.mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "yyyy.MM.dd. hh.mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Ma', hh.mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Tegnap', hh.mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Ma"
@@ -375,6 +391,6 @@
 msgid "Open"
 msgstr "Megnyitás"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumentumok;megtekintő;pdf;olvasó;"

=== modified file 'po/id.po'
--- po/id.po	2015-08-18 05:56:20 +0000
+++ po/id.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-05-30 07:55+0000\n"
 "Last-Translator: Dirgita <Unknown>\n"
 "Language-Team: Indonesian <id@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "kopi %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Penampil Dokumen"
 
@@ -147,30 +152,29 @@
 msgid "%1 byte"
 msgstr "%1 bita"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Menghapus berkas"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Menghapus %1 berkas"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Yakin menghapus berkas ini?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Batal"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Hapus"
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Hari ini, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Kemarin, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, HH:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy HH:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Hari ini"
@@ -368,6 +384,6 @@
 msgid "Open"
 msgstr "Buka"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;dokumen;penampil;pembaca"

=== modified file 'po/it.po'
--- po/it.po	2015-08-18 05:56:20 +0000
+++ po/it.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-06-30 06:59+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-26 13:58+0000\n"
 "Last-Translator: Claudio Arseni <claudio.arseni@xxxxxxxxx>\n"
 "Language-Team: Italian <it@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-27 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "copia %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visualizzatore di documenti"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Elimina file"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Elimina %1 file"
 msgstr[1] "Elimina %1 file"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Eliminare veramente in modo permanente questo file?"
 msgstr[1] "Eliminare veramente in modo permanente questi file?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Annulla"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Elimina"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Oggi, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Ieri, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd/MM/yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "«Oggi», hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "«Ieri», hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Oggi"
@@ -375,6 +391,6 @@
 msgid "Open"
 msgstr "Apri"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documenti;visualizzatore;pdf;lettore;viewer;reader;"

=== modified file 'po/lo.po'
--- po/lo.po	2015-08-18 05:56:20 +0000
+++ po/lo.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-04 07:27+0000\n"
 "Last-Translator: Anousak <anousak@xxxxxxxxx>\n"
 "Language-Team: Lao <lo@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "ຕົວເບີ່ງເອກະສານ"
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "ລຶບຟາຍ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "ຍົກເລີອກ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "ລຶບ"
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "ມື້ນີ້"
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "ເກະສານ;ຕົວເບີ່ງ;ພີດີເເຟບ;ຕົວອ່ານ;"

=== modified file 'po/lv.po'
--- po/lv.po	2015-08-18 05:56:20 +0000
+++ po/lv.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-02-28 13:37+0000\n"
 "Last-Translator: Rūdolfs Mazurs <Unknown>\n"
 "Language-Team: Latvian <lv@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Dokumentu skatītājs"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Atcelt"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr ""
@@ -191,35 +195,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr ""
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr ""
@@ -371,6 +387,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumenti;skatītājs;pdf;lasītājs;"

=== modified file 'po/nb.po'
--- po/nb.po	2015-10-04 06:08:56 +0000
+++ po/nb.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,27 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+<<<<<<< TREE
 "POT-Creation-Date: 2015-07-24 11:10+0200\n"
 "PO-Revision-Date: 2015-10-03 02:19+0000\n"
 "Last-Translator: Marius Gripsgard  <me@xxxxxxxxxxxxx>\n"
+=======
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-28 13:54+0000\n"
+"Last-Translator: Åka Sikrom <Unknown>\n"
+>>>>>>> MERGE-SOURCE
 "Language-Team: Norwegian Bokmal <nb@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-10-04 06:08+0000\n"
 "X-Generator: Launchpad (build 17783)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-29 05:36+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +44,7 @@
 msgstr "kopi nr. %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Dokumentvisning"
 
@@ -147,32 +158,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Slett fil"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Slett %1 fil"
 msgstr[1] "Slett %1 filer"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Er du sikker på at du vil slette denne fila for godt?"
 msgstr[1] "Er du sikker på at du vil slette disse filene for godt?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Slett"
@@ -189,35 +199,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "I dag %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "I går %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd.MM.yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Today', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Yesterday', hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "I dag"
@@ -370,6 +392,6 @@
 msgid "Open"
 msgstr "Åpen"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumenter;visning;pdf;leser;"

=== modified file 'po/nl.po'
--- po/nl.po	2015-08-18 05:56:20 +0000
+++ po/nl.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-06-29 10:07+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-27 15:34+0000\n"
 "Last-Translator: Hannie Dumoleyn <Unknown>\n"
 "Language-Team: Dutch <nl@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-28 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "kopie %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Documentenviewer"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Bestand verwijderen"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "%1 bestand verwijderen"
 msgstr[1] "%1 bestanden verwijderen"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Weet u zeker dat u dit bestand definitief wilt verwijderen?"
 msgstr[1] "Weet u zeker dat u deze bestanden definitief wilt verwijderen?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Annuleren"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Verwijderen"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Vandaag, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Gisteren, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "‘Vandaag’, hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "‘Gisteren’, hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Vandaag"
@@ -375,6 +391,6 @@
 msgid "Open"
 msgstr "Openen"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documenten;viewer;pdf;lezer;"

=== modified file 'po/ny.po'
--- po/ny.po	2015-08-18 05:56:20 +0000
+++ po/ny.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-09 08:42+0000\n"
 "Last-Translator: Herald Luwizghie <luwizghieherald@xxxxxxxxx>\n"
 "Language-Team: Chewa; Chichewa; Nyanja <ny@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Chonela ma dokumenti"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Fufuta failo"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Kufufuta %1 failo"
 msgstr[1] "Kufufuta %1 mafailo"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Zoonadi mukufuna mufufutiletu failoyi?"
 msgstr[1] "Zoonadi mukufiuna mufufutiletu mafailowa?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Lepheletsa"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Fufuta"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Lero, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Dzulo, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "ddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Lero"
@@ -373,6 +389,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumenti;choonela;pdf;chowelengela;"

=== modified file 'po/pa.po'
--- po/pa.po	2015-08-18 05:56:20 +0000
+++ po/pa.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-06-30 04:21+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-05-10 04:07+0000\n"
 "Last-Translator: Gursharnjit_Singh <ubuntuser13@xxxxxxxxx>\n"
 "Language-Team: Punjabi <pa@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr "ਕਾਪੀ %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "ਦਸਤਾਵੇਜ ਦਰਸ਼ਕ"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 ਬਾਈਟ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "ਫ਼ਾਈਲ ਹਟਾਓ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "%1 ਫ਼ਾਈਲ ਹਟਾਓ"
 msgstr[1] "%1 ਫ਼ਾਈਲਾਂ ਹਟਾਓ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "ਕੀ ਤੁਸੀਂ ਇਸ ਫ਼ਾਈਲ ਨੂੰ ਪੱਕੇ ਤੌਰ ਤੇ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
 msgstr[1] "ਕੀ ਤੁਸੀਂ ਇਹਨਾਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਪੱਕੇ ਤੌਰ ਤੇ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "ਰੱਦ"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "ਹਟਾਓ"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "ਅੱਜ, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "ਕੱਲ੍ਹ, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "ਅੱਜ"
@@ -244,15 +260,15 @@
 
 #: ../src/app/qml/documentPage/DocumentPage.qml:24
 msgid "Documents"
-msgstr "ਦਸਤਾਵੇਜ਼"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
 msgid "Search..."
-msgstr "ਖੋਜ..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "ਕਿਸਮ ਵੰਡ ਸੈਟਿੰਗ..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -276,7 +292,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਖੋਜੋ..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -288,34 +304,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "ਕੋਈ ਢੁੱਕਵਾਂ ਦਸਤਾਵੇਜ਼ ਨਹੀਂ ਮਿਲਿਆ"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"ਕਿਰਪਾ ਕਰਕੇ ਯਕੀਨੀ ਬਣਾਓ ਕੀ ਪੁੱਛ-ਗਿੱਛ ਦੇ ਅੱਖਰ ਠੀਕ ਹਨ ਅਤੇ/ਜਾਂ ਇੱਕ ਵੱਖ ਪੁੱਛ-ਗਿ਼ੱਛ "
-"ਵਰਤੋਂ।"
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "ਕਿਸਮ ਵੰਡ ਸੈਟਿੰਗਾਂ"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "ਮਿਤੀ ਅਨੁਸਾਰ ਵੰਡੋ (ਨਵੀਆਂ ਪਹਿਲਾਂ)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "ਨਾਂ ਅਨੁਸਾਰ ਵੰਡੋ (A-Z)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "ਅਕਾਰ ਅਨੁਸਾਰ ਵੰਡੋ (ਛੋਟਾ ਪਹਿਲਾਂ)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "ਉਲਟ ਤਰਤੀਬ"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -375,6 +389,6 @@
 msgid "Open"
 msgstr "ਖੋਲ੍ਹੋ"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "ਦਸਤਾਵੇਜ;ਦਰਸਕ;pdf;ਰੀਡਰ;"

=== modified file 'po/pl.po'
--- po/pl.po	2015-09-14 05:58:13 +0000
+++ po/pl.po	2015-11-06 11:00:18 +0000
@@ -7,8 +7,13 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+<<<<<<< TREE
 "POT-Creation-Date: 2015-07-24 11:10+0200\n"
 "PO-Revision-Date: 2015-09-13 16:25+0000\n"
+=======
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-04-29 08:23+0000\n"
+>>>>>>> MERGE-SOURCE
 "Last-Translator: Krzysztof Tataradziński <Unknown>\n"
 "Language-Team: Polish <pl@xxxxxx>\n"
 "MIME-Version: 1.0\n"
@@ -16,8 +21,13 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-09-14 05:58+0000\n"
 "X-Generator: Launchpad (build 17720)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:58+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -34,7 +44,7 @@
 msgstr "kopia %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Przeglądarka dokumentów"
 
@@ -150,13 +160,13 @@
 #: ../src/app/qml/common/utils.js:33
 #, qt-format
 msgid "%1 byte"
-msgstr "%1 B"
+msgstr "%1 bajtów"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Usuń plik"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
@@ -164,67 +174,76 @@
 msgstr[1] "Usuń %1 pliki"
 msgstr[2] "Usuń %1 plików"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
-msgstr[0] "Jesteś pewien, że chcesz trwale usunąć ten plik?"
-msgstr[1] "Jesteś pewien, że chcesz trwale usunąć te pliki?"
-msgstr[2] "Jesteś pewien, że chcesz trwale usunąć te pliki?"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Usuń"
 
 #: ../src/app/qml/documentPage/DocumentEmptyState.qml:24
 msgid "No document found"
-msgstr "Nie znaleziono dokumentu"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentEmptyState.qml:28
 msgid ""
 "Connect your device to any computer and simply drag files to the Documents "
 "folder."
 msgstr ""
-"Podłącz urządzenie do komputera i przeciągnij pliki do folderu Dokumenty."
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Dziś, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Wczoraj, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
-msgstr "dd.MM.yyyy, hh:mm"
+msgstr "dd-MM-yyyy hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
@@ -379,6 +398,6 @@
 msgid "Open"
 msgstr "Otwórz"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumenty;przeglądarka;pdf;czytnik"

=== modified file 'po/pt.po'
--- po/pt.po	2015-08-18 05:56:20 +0000
+++ po/pt.po	2015-11-06 11:00:18 +0000
@@ -7,16 +7,21 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-07-17 16:14+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-27 21:08+0000\n"
 "Last-Translator: António Miranda <Unknown>\n"
 "Language-Team: Portuguese <pt@xxxxxx>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-28 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,9 +38,9 @@
 msgstr "cópia %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
-msgstr "Documentos"
+msgstr "Visualizador de Documentos"
 
 #: ../src/app/qml/common/DetailsPage.qml:27
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:97
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 byte"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Apagar o ficheiro"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "Apagar %1 ficheiro"
 msgstr[1] "Apagar %1 ficheiros"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Tem a certeza que quer eliminar este ficheiro?"
 msgstr[1] "Tem a certeza que quer eliminar estes ficheiros?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Apagar"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Hoje, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Ontem, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Hoje', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Ontem', hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Hoje"
@@ -375,6 +391,6 @@
 msgid "Open"
 msgstr "Abrir"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "visualizador;documentos;leitor;pdf"

=== modified file 'po/pt_BR.po'
--- po/pt_BR.po	2015-08-18 05:56:20 +0000
+++ po/pt_BR.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-04 02:07+0000\n"
 "Last-Translator: Rafael Neri <Unknown>\n"
 "Language-Team: Brazilian Portuguese <pt_BR@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:59+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Visualizador de documentos"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Excluir arquivo"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Excluir"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd/MM/yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Hoje"
@@ -373,6 +389,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documentos;visualizador;pdf;leitor"

=== modified file 'po/ru.po'
--- po/ru.po	2015-08-18 05:56:20 +0000
+++ po/ru.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-26 14:22+0000\n"
 "Last-Translator: Oleg Koptev <koptev.oleg@xxxxxxxxx>\n"
 "Language-Team: Russian <ru@xxxxxx>\n"
@@ -16,8 +16,13 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-27 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -34,7 +39,7 @@
 msgstr "копия %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Программа просмотра документов"
 
@@ -151,11 +156,11 @@
 msgid "%1 byte"
 msgstr "%1 байт"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Удалить файл"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
@@ -163,22 +168,21 @@
 msgstr[1] "Удалить %1 файла"
 msgstr[2] "Удалить %1 файлов"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Удалить этот файл окончательно?"
 msgstr[1] "Удалить эти файлы окончательно?"
 msgstr[2] "Удалить эти файлы окончательно?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Отменить"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Удалить"
@@ -197,35 +201,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Сегодня, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Вчера, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Сегодня', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Вчера', hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Сегодня"
@@ -379,6 +395,6 @@
 msgid "Open"
 msgstr "Открыть"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "документы;просмотр;pdf;чтение;"

=== modified file 'po/sl.po'
--- po/sl.po	2015-08-18 05:56:20 +0000
+++ po/sl.po	2015-11-06 11:00:18 +0000
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
-"PO-Revision-Date: 2015-07-20 09:45+0000\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-27 12:32+0000\n"
 "Last-Translator: Sasa Batistic <Unknown>\n"
 "Language-Team: Slovenian <sl@xxxxxx>\n"
 "MIME-Version: 1.0\n"
@@ -16,8 +16,13 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
 "n%100==4 ? 3 : 0);\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-28 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -34,7 +39,7 @@
 msgstr "kopija %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Pregledovalnik dokumentov"
 
@@ -84,27 +89,23 @@
 
 #: ../src/app/qml/common/PickImportedDialog.qml:29
 msgid "Multiple documents imported"
-msgstr "Več dokumentov je uvoženih"
+msgstr ""
 
 #: ../src/app/qml/common/PickImportedDialog.qml:30
 msgid "Choose which one to open:"
-msgstr "Izberite, katerega boste odprli:"
+msgstr ""
 
 #: ../src/app/qml/common/RejectedImportDialog.qml:28
 msgid "File not supported"
 msgid_plural "Files not supported"
-msgstr[0] "Datotek ni podprtih"
-msgstr[1] "Datoteka ni podprta"
-msgstr[2] "Datoteki nista podprti"
-msgstr[3] "Datoteke niso podprte"
+msgstr[0] ""
+msgstr[1] ""
 
 #: ../src/app/qml/common/RejectedImportDialog.qml:29
 msgid "Following document has not been imported:"
 msgid_plural "Following documents have not been imported:"
-msgstr[0] "Sledečih dokumentov ni bilo uvoženih:"
-msgstr[1] "Sledeči dokument ni bil uvožen:"
-msgstr[2] "Sledeča dokumenta nisa bila uvožena:"
-msgstr[3] "Sledeči dokumenti niso bili uvoženi:"
+msgstr[0] ""
+msgstr[1] ""
 
 #: ../src/app/qml/common/ToastWithAction.qml:97
 msgid "Dismiss"
@@ -152,38 +153,33 @@
 #: ../src/app/qml/common/utils.js:33
 #, qt-format
 msgid "%1 byte"
-msgstr "%1 bajt"
+msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Izbriši datoteko"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
-msgstr[0] "Izbriši %1 datotek"
-msgstr[1] "Izbriši %1 datoteko"
-msgstr[2] "Izbriši %1 datoteki"
-msgstr[3] "Izbriši %1 datoteke"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
-msgstr[0] "Ali ste prepričani, da želite trajno izbrisati datotek?"
-msgstr[1] "Ali ste prepričani, da želite trajno izbrisati to datoteko?"
-msgstr[2] "Ali ste prepričani, da želite trajno izbrisati ti datoteki?"
-msgstr[3] "Ali ste prepričani, da želite trajno izbrisati te datoteke?"
+msgstr[0] ""
+msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Prekliči"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Izbriši"
@@ -202,35 +198,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
-msgstr "Danes, %1"
+msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
-msgstr "Včeraj, %1"
+msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Danes"
@@ -253,15 +261,15 @@
 
 #: ../src/app/qml/documentPage/DocumentPage.qml:24
 msgid "Documents"
-msgstr "Dokumenti"
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
 msgid "Search..."
-msgstr "Poišči ..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
 msgid "Sorting settings..."
-msgstr "Nastavitve razvrščanja ..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
@@ -285,7 +293,7 @@
 
 #: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
 msgid "search in documents..."
-msgstr "išči v dokumentih ..."
+msgstr ""
 
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
 msgid "Select None"
@@ -297,34 +305,32 @@
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:24
 msgid "No matching document found"
-msgstr "Ni ujemajočega dokumenta"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SearchEmptyState.qml:26
 msgid ""
 "Please ensure that your query is not misspelled and/or try a different query."
 msgstr ""
-"Prepričajte se, da vaša poizvedba ni napačno črkovana in/ali poskusite drugo "
-"poizvedbo."
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
 msgid "Sorting settings"
-msgstr "Nastavitve razvrščanja"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
 msgid "Sort by date (Latest first)"
-msgstr "Razvrsti po datumu (najnovejši so prvi)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
 msgid "Sort by name (A-Z)"
-msgstr "Razvrsti po imenu (A-Z)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
 msgid "Sort by size (Smaller first)"
-msgstr "Razvrsti po velikosti (najmanjši so prvi)"
+msgstr ""
 
 #: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
 msgid "Reverse order"
-msgstr "Preobrni red"
+msgstr ""
 
 #. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:32
@@ -334,7 +340,7 @@
 
 #: ../src/app/qml/pdfView/PdfContentsPage.qml:38
 msgid "Hide table of contents"
-msgstr "Skrij kazalo vsebine"
+msgstr ""
 
 #. TRANSLATORS: the first argument (%1) refers to the page currently shown on the screen,
 #. while the second one (%2) refers to the total pages count.
@@ -350,12 +356,12 @@
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
 msgid "Disable night mode"
-msgstr "Onemogoči nočni način"
+msgstr ""
 
 #: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
 #: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
 msgid "Enable night mode"
-msgstr "Omogoči nočni način"
+msgstr ""
 
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:25
 msgid "Go to page"
@@ -377,15 +383,13 @@
 #: ../src/app/qml/ubuntu-docviewer-app.qml:240
 msgid "Document successfully imported!"
 msgid_plural "Documents successfully imported!"
-msgstr[0] "Dokumentov uspešno uvoženih!"
-msgstr[1] "Dokument uspešno uvožen!"
-msgstr[2] "Dokumenta uspešno uvožena!"
-msgstr[3] "Dokumenti uspešno uvoženi!"
+msgstr[0] ""
+msgstr[1] ""
 
 #: ../src/app/qml/ubuntu-docviewer-app.qml:243
 msgid "Open"
-msgstr "Odpri"
+msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "dokumenti;pregledovalnik;pdf;bralnik;"

=== modified file 'po/tr.po'
--- po/tr.po	2015-08-18 05:56:20 +0000
+++ po/tr.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-22 15:24+0000\n"
 "Last-Translator: Arda Ünlü <aarda.uunlu@xxxxxxxxx>\n"
 "Language-Team: Turkish <tr@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:59+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Belge Görüntüleyici"
 
@@ -149,32 +154,31 @@
 msgid "%1 byte"
 msgstr "%1 bayt"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Dosyayı sil"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] "%1 dosyayı sil"
 msgstr[1] "%1 dosyayı sil"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Bu dosyayı kalıcı olarak silmek istediğinizden emin misiniz?"
 msgstr[1] "Bu dosyaları kalıcı olarak silmek istediğinizden emin misiniz?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "İptal"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Sil"
@@ -193,35 +197,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Bugün, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Dün, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "hh:mm dddd"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd/MM/yyyy hh.mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Bugün"
@@ -373,6 +389,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "belgeler;görüntüleyici;pdf;okuyucu;gösterici;"

=== modified file 'po/uk.po'
--- po/uk.po	2015-08-18 05:56:20 +0000
+++ po/uk.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-06-26 14:13+0000\n"
 "Last-Translator: Yuri Chornoivan <yurchor@xxxxxxxxx>\n"
 "Language-Team: Ukrainian <uk@xxxxxx>\n"
@@ -16,8 +16,13 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-27 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -34,7 +39,7 @@
 msgstr "копія %1"
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "Перегляд документів"
 
@@ -152,11 +157,11 @@
 msgid "%1 byte"
 msgstr "%1 байт"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr "Вилучити файл"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
@@ -164,22 +169,21 @@
 msgstr[1] "Вилучити %1 файли"
 msgstr[2] "Вилучити %1 файлів"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] "Ви впевнені, що хочете остаточно видалити цей файл?"
 msgstr[1] "Ви впевнені, що хочете остаточно видалити ці файли?"
 msgstr[2] "Ви впевнені, що хочете остаточно видалити ці файли?"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "Скасувати"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr "Вилучити"
@@ -198,35 +202,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr "Сьогодні, %1"
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr "Вчора, %1"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr "dddd, hh:mm"
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr "dd-MM-yyyy hh:mm"
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Today', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Yesterday', hh:mm"
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr "Сьогодні"
@@ -381,6 +397,6 @@
 msgid "Open"
 msgstr "Відкрити"
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;документи;перегляд;пдф;читання;"

=== added file 'po/uz.po'
--- po/uz.po	1970-01-01 00:00:00 +0000
+++ po/uz.po	2015-11-06 11:00:18 +0000
@@ -0,0 +1,395 @@
+# Uzbek translation for ubuntu-docviewer-app
+# Copyright (c) 2015 Rosetta Contributors and Canonical Ltd 2015
+# This file is distributed under the same license as the ubuntu-docviewer-app package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ubuntu-docviewer-app\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
+"PO-Revision-Date: 2015-06-26 14:48+0000\n"
+"Last-Translator: Learner <muzaffar.habibullayev@xxxxxxxxx>\n"
+"Language-Team: Uzbek <uz@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2015-06-27 05:35+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+
+#. TRANSLATORS: This string is used for renaming a copied file,
+#. when a file with the same name already exists in user's
+#. Documents folder.
+#. 
+#. e.g. "Manual_Aquaris_E4.5_ubuntu_EN.pdf" will become
+#. "Manual_Aquaris_E4.5_ubuntu_EN (copy 2).pdf"
+#. 
+#. where "2" is given by the argument "%1"
+#. 
+#: ../src/app/content-communicator.cpp:105
+#, qt-format
+msgid "copy %1"
+msgstr "nusxasi %1"
+
+#: ../src/app/docviewer-application.cpp:171
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
+msgid "Document Viewer"
+msgstr "Hujjat ko'ruvchi"
+
+#: ../src/app/qml/common/DetailsPage.qml:27
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:97
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:83
+msgid "Details"
+msgstr "Tafsilotlar"
+
+#: ../src/app/qml/common/DetailsPage.qml:33
+msgid "Location"
+msgstr "Manzili"
+
+#: ../src/app/qml/common/DetailsPage.qml:37
+msgid "Size"
+msgstr "Hajmi"
+
+#: ../src/app/qml/common/DetailsPage.qml:42
+msgid "Created"
+msgstr "Yaratilgan"
+
+#: ../src/app/qml/common/DetailsPage.qml:47
+msgid "Last modified"
+msgstr "So'ngi o'zgartirilgan"
+
+#: ../src/app/qml/common/DetailsPage.qml:54
+msgid "MIME type"
+msgstr "MIME turi"
+
+#: ../src/app/qml/common/FileNotFoundDialog.qml:24
+msgid "Error"
+msgstr "Xato"
+
+#: ../src/app/qml/common/FileNotFoundDialog.qml:25
+msgid "File does not exist"
+msgstr "Fayl mavjud emas"
+
+#: ../src/app/qml/common/FileNotFoundDialog.qml:28
+#: ../src/app/qml/common/PickImportedDialog.qml:47
+#: ../src/app/qml/common/RejectedImportDialog.qml:38
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:32
+#: ../src/app/qml/documentPage/SortSettingsDialog.qml:53
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:61
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:61
+msgid "Close"
+msgstr "Yopish"
+
+#: ../src/app/qml/common/PickImportedDialog.qml:29
+msgid "Multiple documents imported"
+msgstr "Ko'p hujjatlar import qilindi"
+
+#: ../src/app/qml/common/PickImportedDialog.qml:30
+msgid "Choose which one to open:"
+msgstr "Qaysi birini ochilsin:"
+
+#: ../src/app/qml/common/RejectedImportDialog.qml:28
+msgid "File not supported"
+msgid_plural "Files not supported"
+msgstr[0] ""
+"Fayl qo'llab quvvatlanmaydi\r\n"
+"Fayllar qo'llab quvvatlanmaydi"
+
+#: ../src/app/qml/common/RejectedImportDialog.qml:29
+msgid "Following document has not been imported:"
+msgid_plural "Following documents have not been imported:"
+msgstr[0] ""
+"Ushbu hujjat import qilindi: \r\n"
+"Ushbu hujjatlar import qilindi:"
+
+#: ../src/app/qml/common/ToastWithAction.qml:97
+msgid "Dismiss"
+msgstr "Bekor qilish"
+
+#: ../src/app/qml/common/UnknownTypeDialog.qml:26
+msgid "Unknown file type"
+msgstr "Noma'lum fayl turi"
+
+#: ../src/app/qml/common/UnknownTypeDialog.qml:27
+msgid ""
+"Sorry but we can't find a way to display this file. Do you want to open it "
+"as a plain text?"
+msgstr ""
+"Uzr lekin ushbu faylni qanday ochishni bilmayapmiz. Oddiy matn holida "
+"ochilsinmi?"
+
+#: ../src/app/qml/common/UnknownTypeDialog.qml:29
+msgid "Yes"
+msgstr "Ha"
+
+#: ../src/app/qml/common/UnknownTypeDialog.qml:38
+msgid "No"
+msgstr "Yo‘q"
+
+#. TRANSLATORS: %1 is the size of a file, expressed in GB
+#: ../src/app/qml/common/utils.js:22
+#, qt-format
+msgid "%1 GB"
+msgstr "%1 GB"
+
+#. TRANSLATORS: %1 is the size of a file, expressed in MB
+#: ../src/app/qml/common/utils.js:26
+#, qt-format
+msgid "%1 MB"
+msgstr "%1 MB"
+
+#. TRANSLATORS: %1 is the size of a file, expressed in kB
+#: ../src/app/qml/common/utils.js:30
+#, qt-format
+msgid "%1 kB"
+msgstr "%1 kB"
+
+#. TRANSLATORS: %1 is the size of a file, expressed in byte
+#: ../src/app/qml/common/utils.js:33
+#, qt-format
+msgid "%1 byte"
+msgstr "%1 bayt"
+
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
+msgid "Delete file"
+msgstr "Fayli o'chirish"
+
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
+#, qt-format
+msgid "Delete %1 file"
+msgid_plural "Delete %1 files"
+msgstr[0] ""
+"%1 faylni o'chirish\r\n"
+"%1 fayllarni o'chirish"
+
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
+msgid "Are you sure you want to permanently delete this file?"
+msgid_plural "Are you sure you want to permanently delete these files?"
+msgstr[0] ""
+"Ushbu faylni butunlay o'chirmoqchimisiz?\r\n"
+"Ushbu fayllarni butunlay o'chirmoqchimisiz?"
+
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
+msgid "Cancel"
+msgstr "Bekor qilish"
+
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
+msgid "Delete"
+msgstr "O‘chirish"
+
+#: ../src/app/qml/documentPage/DocumentEmptyState.qml:24
+msgid "No document found"
+msgstr "Hujjat topilmadi"
+
+#: ../src/app/qml/documentPage/DocumentEmptyState.qml:28
+msgid ""
+"Connect your device to any computer and simply drag files to the Documents "
+"folder."
+msgstr ""
+"Uskunani kompyuterga ulang va shunchaki fayllarni Hujjatlar jildiga tashlang."
+
+#. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
+#. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
+#, qt-format
+msgid "Today, %1"
+msgstr "Bugun, %1"
+
+#. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
+#. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
+#, qt-format
+msgid "Yesterday, %1"
+msgstr "Kecha, %1"
+
+#. TRANSLATORS: this is a datetime formatting string,
+#. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
+msgid "dddd, hh:mm"
+msgstr "dddd, hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string,
+#. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
+msgid "dd-MM-yyyy hh:mm"
+msgstr "dd-MM-yyyy hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr "'Bugun', hh:mm"
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr "'Kecha', hh:mm"
+
+#: ../src/app/qml/documentPage/DocumentListView.qml:157
+msgid "Today"
+msgstr "Bugun"
+
+#: ../src/app/qml/documentPage/DocumentListView.qml:160
+msgid "Yesterday"
+msgstr "Kecha"
+
+#: ../src/app/qml/documentPage/DocumentListView.qml:163
+msgid "Earlier this week"
+msgstr "Shu hafta oldinroq"
+
+#: ../src/app/qml/documentPage/DocumentListView.qml:166
+msgid "Earlier this month"
+msgstr "Shu oy oldinroq"
+
+#: ../src/app/qml/documentPage/DocumentListView.qml:168
+msgid "Even earlier..."
+msgstr "Yanada oldin ..."
+
+#: ../src/app/qml/documentPage/DocumentPage.qml:24
+msgid "Documents"
+msgstr "Hujjatlar"
+
+#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:29
+msgid "Search..."
+msgstr "Izlash..."
+
+#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:37
+msgid "Sorting settings..."
+msgstr ""
+
+#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
+msgid "Switch to single column list"
+msgstr "Bir ustunli ro'yxatga o'tkazish"
+
+#: ../src/app/qml/documentPage/DocumentPageDefaultHeader.qml:46
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:35
+msgid "Switch to grid"
+msgstr ""
+
+#: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:43
+msgid "Pick"
+msgstr ""
+
+#: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:27
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:61
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:61
+msgid "Back"
+msgstr "Orqaga"
+
+#: ../src/app/qml/documentPage/DocumentPageSearchHeader.qml:47
+msgid "search in documents..."
+msgstr "hujjatlardan qidirish..."
+
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:52
+msgid "Select None"
+msgstr "Hech qaysini tanlamaslik"
+
+#: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:54
+msgid "Select All"
+msgstr "Barchasini tanlash"
+
+#: ../src/app/qml/documentPage/SearchEmptyState.qml:24
+msgid "No matching document found"
+msgstr "Mos hujjat topilmadi"
+
+#: ../src/app/qml/documentPage/SearchEmptyState.qml:26
+msgid ""
+"Please ensure that your query is not misspelled and/or try a different query."
+msgstr ""
+"Izlashingiz to'g'ri yozilganiga ichonch hosil qiling yoki boshqa qidiruv "
+"boshlang."
+
+#: ../src/app/qml/documentPage/SortSettingsDialog.qml:26
+msgid "Sorting settings"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SortSettingsDialog.qml:31
+msgid "Sort by date (Latest first)"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SortSettingsDialog.qml:32
+msgid "Sort by name (A-Z)"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SortSettingsDialog.qml:33
+msgid "Sort by size (Smaller first)"
+msgstr ""
+
+#: ../src/app/qml/documentPage/SortSettingsDialog.qml:47
+msgid "Reverse order"
+msgstr ""
+
+#. TRANSLATORS: "Contents" refers to the "Table of Contents" of a PDF document.
+#: ../src/app/qml/pdfView/PdfContentsPage.qml:32
+#: ../src/app/qml/pdfView/PdfView.qml:37
+msgid "Contents"
+msgstr "Tarkibi"
+
+#: ../src/app/qml/pdfView/PdfContentsPage.qml:38
+msgid "Hide table of contents"
+msgstr "Mundarijani yashirish"
+
+#. TRANSLATORS: the first argument (%1) refers to the page currently shown on the screen,
+#. while the second one (%2) refers to the total pages count.
+#: ../src/app/qml/pdfView/PdfView.qml:34
+#, qt-format
+msgid "Page %1 of %2"
+msgstr "%2  dan  %1 sahifa"
+
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:85
+msgid "Go to page..."
+msgstr "Sahifaga o'tish ..."
+
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
+msgid "Disable night mode"
+msgstr "Tungi rejimni o'chirish"
+
+#: ../src/app/qml/pdfView/PdfViewDefaultHeader.qml:91
+#: ../src/app/qml/textView/TextViewDefaultHeader.qml:77
+msgid "Enable night mode"
+msgstr "Tungi rejimni yoqish"
+
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:25
+msgid "Go to page"
+msgstr "Sahifaga o'tish"
+
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:26
+#, qt-format
+msgid "Choose a page between 1 and %1"
+msgstr ""
+
+#: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:44
+msgid "GO!"
+msgstr "Ketdik!"
+
+#: ../src/app/qml/textView/TextView.qml:42
+msgid "Loading..."
+msgstr "Yuklanmoqda..."
+
+#: ../src/app/qml/ubuntu-docviewer-app.qml:240
+msgid "Document successfully imported!"
+msgid_plural "Documents successfully imported!"
+msgstr[0] ""
+"Hujjat muvaffaqiyatli import qilindi!\r\n"
+"Hujjatlar muvaffaqiyatli import qilindi!"
+
+#: ../src/app/qml/ubuntu-docviewer-app.qml:243
+msgid "Open"
+msgstr "Ochish"
+
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
+msgid "documents;viewer;pdf;reader;"
+msgstr "hujjatlar;ko'ruvchi;pdf;o'quvchi;"

=== renamed file 'po/uz.po' => 'po/uz.po.moved'
=== modified file 'po/zh_CN.po'
--- po/zh_CN.po	2015-08-18 05:56:20 +0000
+++ po/zh_CN.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-04 01:02+0000\n"
 "Last-Translator: Luo Lei <luolei@xxxxxxxxxxxxxxx>\n"
 "Language-Team: Chinese (Simplified) <zh_CN@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:59+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr ""
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr ""
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr ""
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr ""
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr ""

=== modified file 'po/zh_TW.po'
--- po/zh_TW.po	2015-08-18 05:56:20 +0000
+++ po/zh_TW.po	2015-11-06 11:00:18 +0000
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: ubuntu-docviewer-app\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2015-07-24 11:10+0200\n"
+"POT-Creation-Date: 2015-06-24 22:48+0200\n"
 "PO-Revision-Date: 2015-03-01 07:42+0000\n"
 "Last-Translator: Cheng-Chia Tseng <pswo10680@xxxxxxxxx>\n"
 "Language-Team: Chinese (Traditional) <zh_TW@xxxxxx>\n"
@@ -15,8 +15,13 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+<<<<<<< TREE
 "X-Launchpad-Export-Date: 2015-08-18 05:56+0000\n"
 "X-Generator: Launchpad (build 17690)\n"
+=======
+"X-Launchpad-Export-Date: 2015-06-26 04:59+0000\n"
+"X-Generator: Launchpad (build 17578)\n"
+>>>>>>> MERGE-SOURCE
 
 #. TRANSLATORS: This string is used for renaming a copied file,
 #. when a file with the same name already exists in user's
@@ -33,7 +38,7 @@
 msgstr ""
 
 #: ../src/app/docviewer-application.cpp:171
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:1
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:1
 msgid "Document Viewer"
 msgstr "文件檢視器"
 
@@ -147,32 +152,31 @@
 msgid "%1 byte"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:28
 msgid "Delete file"
 msgstr ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:37
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:29
 #, qt-format
 msgid "Delete %1 file"
 msgid_plural "Delete %1 files"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:38
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:39
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:30
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:31
 msgid "Are you sure you want to permanently delete this file?"
 msgid_plural "Are you sure you want to permanently delete these files?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:44
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:36
 #: ../src/app/qml/documentPage/DocumentPagePickModeHeader.qml:27
 #: ../src/app/qml/pdfView/PdfViewGotoDialog.qml:52
 msgid "Cancel"
 msgstr "取消"
 
-#: ../src/app/qml/documentPage/DeleteFileDialog.qml:49
-#: ../src/app/qml/documentPage/DocumentDelegateActions.qml:25
+#: ../src/app/qml/documentPage/DeleteFileDialog.qml:41
 #: ../src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml:82
 msgid "Delete"
 msgstr ""
@@ -189,35 +193,47 @@
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:32
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:37
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:35
 #, qt-format
 msgid "Today, %1"
 msgstr ""
 
 #. TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
 #. http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:37
-#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:40
 #, qt-format
 msgid "Yesterday, %1"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:42
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:45
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:58
 msgid "dddd, hh:mm"
 msgstr ""
 
 #. TRANSLATORS: this is a datetime formatting string,
 #. see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:46
+#: ../src/app/qml/documentPage/DocumentGridDelegate.qml:49
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:47
 #: ../src/app/qml/documentPage/DocumentListDelegate.qml:63
 msgid "dd-MM-yyyy hh:mm"
 msgstr ""
 
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:36
+msgid "'Today', hh:mm"
+msgstr ""
+
+#. TRANSLATORS: this is a datetime formatting string, and the
+#. singlequote is an escape character.
+#. See http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+#: ../src/app/qml/documentPage/DocumentListDelegate.qml:42
+msgid "'Yesterday', hh:mm"
+msgstr ""
+
 #: ../src/app/qml/documentPage/DocumentListView.qml:157
 msgid "Today"
 msgstr ""
@@ -369,6 +385,6 @@
 msgid "Open"
 msgstr ""
 
-#: /home/stefano/Progetti/docviewer/build-ubuntu-docviewer-app-Desktop-Default/po/com.ubuntu.docviewer.desktop.in.in.h:2
+#: /home/m/dev/core/ubuntu-docviewer-app-icon-fix/obj-x86_64-linux-gnu/po/com.ubuntu.docviewer.desktop.in.in.h:2
 msgid "documents;viewer;pdf;reader;"
 msgstr "documents;viewer;pdf;reader;文件;檢視器;閱讀器;"

=== modified file 'src/app/CMakeLists.txt'
--- src/app/CMakeLists.txt	2015-04-29 16:06:32 +0000
+++ src/app/CMakeLists.txt	2015-11-06 11:00:18 +0000
@@ -1,29 +1,29 @@
 file(GLOB_RECURSE QML_SRCS *.qml *.js)
 file(GLOB_RECURSE IMAGE_FILES *.qml *.js)
 
-pkg_check_modules(CONTENTHUB REQUIRED libcontent-hub)
-
 add_definitions(
   -DGETTEXT_PACKAGE=\"${PROJECT_NAME}\"
   -DGETTEXT_LOCALEDIR=\"${CMAKE_INSTALL_LOCALEDIR}\"
 )
 
+configure_file(
+    config.h.in
+    ${CMAKE_CURRENT_BINARY_DIR}/config.h
+    @ONLY
+)
+
+include_directories(
+    ${CMAKE_CURRENT_BINARY_DIR}
+)
+
 set(docviewer_SRCS
     main.cpp
-    content-communicator.cpp
-    command-line-parser.cpp
-    docviewer-application.cpp
-    urlhandler.cpp
     ${QML_SRCS}
 )
 
 add_executable(ubuntu-docviewer-app ${docviewer_SRCS})
 
-qt5_use_modules(ubuntu-docviewer-app Widgets Gui Qml Quick DBus)
-
-target_link_libraries( ubuntu-docviewer-app
-    ${CONTENTHUB_LIBRARIES}
-)
+qt5_use_modules(ubuntu-docviewer-app Widgets Gui Qml Quick DBus Concurrent)
 
 if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
 add_custom_target(docviewer-qmlfiles ALL

=== removed file 'src/app/command-line-parser.cpp'
--- src/app/command-line-parser.cpp	2015-04-29 15:23:32 +0000
+++ src/app/command-line-parser.cpp	1970-01-01 00:00:00 +0000
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2013 Canonical, Ltd.
- *
- * Authors:
- *  Nicolas d'Offay <nicolas.doffay@xxxxxxxxxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "command-line-parser.h"
-
-#include "urlhandler.h"
-
-#include <QDebug>
-#include <QDir>
-#include <QStandardPaths>
-#include <QTextStream>
-#include <QUrl>
-
-CommandLineParser::CommandLineParser()
-    : m_pickMode(false),
-      m_testability(false),
-      m_isFullscreen(false),
-      m_documentFile(""),
-      m_documentsDir("")
-{
-    m_urlHandler = new UrlHandler();
-}
-
-/*!
- * @brief CommandLineParser::processArguments parsers our input commandline args and sets attributes accordingly.
- * @param QStringList of commandline args to parse and set attributes.
- * @return false if invalid parameter is input or -h/--help is called.
- */
-bool CommandLineParser::processArguments(const QStringList& args)
-{
-    bool valid_args = true;
-
-    for (int i = 1; i < args.count(); ++i)
-    {
-        if (args[i] == "--help" || args[i] == "-h") {
-            usage();
-            return false;
-        }
-        else if (args[i] == "--fullscreen") {
-            m_isFullscreen = true;
-        }
-        else if (args[i] == "--pick-mode") {
-            m_pickMode = true;
-        }
-        else if (args[i] == "--testability") {
-            m_testability = true;
-        }
-        else if (args[i].contains("--documents-dir")) {
-            // Extract the given path
-            QString dirPath = args[i].split("--documents-dir=").last();
-
-            if (!dirPath.isEmpty()) {
-                QDir di(dirPath);
-
-                if (di.exists())
-                    m_documentsDir = di.absolutePath();
-                else {
-                    QTextStream(stderr) << m_documentsDir << ": Not found" << endl;
-                    valid_args = false;
-                }
-
-                i++;
-            }
-            else {
-                QTextStream(stderr) << "Missing PATH argument for --documents-dir'" << endl;
-                usage();
-                valid_args = false;
-            }
-        }
-        else {
-            if (args[i].startsWith("--desktop_file_hint")) {
-                // ignore this command line switch, hybris uses it to get application info
-            }
-            else if (!args.at(i).isEmpty()) {
-                QFileInfo fi(args.at(i));
-
-                if (fi.exists()) {
-                    m_documentFile = fi.absoluteFilePath();
-                }
-                else if (m_urlHandler->processUri(args.at(i))) {
-                    m_documentFile = m_urlHandler->documentFile();
-                }
-            }
-            else {
-                valid_args = !invalidArg(args[i]);
-            }
-        }
-    }
-
-    return valid_args;
-}
-
-/*!
- * @brief CommandLineParser::usage() prints out our form factors.
- */
-void CommandLineParser::usage()
-{
-    QTextStream out(stdout);
-    out << "Usage: ubuntu-docviewer-app [options] [file_path]" << endl;
-    out << "Options:" << endl;
-    out << "  --fullscreen\trun fullscreen" << endl;
-    out << "  --pick-mode\t\tEnable mode to pick photos" << endl;
-    out << "  file_path\t\tOpens ubuntu-docviewer-app displaying the selected file" << endl;
-    out << "  --documents-dir=PATH\n\t\tLoad the list of documents from the given folder, instead of default ~/Documents.\nThe path must exist prior to running ubuntu-docviewer-app" << endl;
-}
-
-/*!
- * @brief CommandLineParser::invalidArg() if an invalid argument is contained in our QStringList.
- * @return returns true.
- */
-bool CommandLineParser::invalidArg(QString arg)
-{
-    QTextStream(stderr) << "Invalid argument '" << arg << "'" << endl;
-    usage();
-
-    return true;
-}

=== removed file 'src/app/command-line-parser.h'
--- src/app/command-line-parser.h	2015-04-29 15:23:32 +0000
+++ src/app/command-line-parser.h	1970-01-01 00:00:00 +0000
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2013 Canonical, Ltd.
- *
- * Authors:
- *  Nicolas d'Offay <nicolas.doffay@xxxxxxxxxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef COMMANDLINEPARSER_H
-#define COMMANDLINEPARSER_H
-
-#include <QHash>
-#include <QSize>
-#include <QString>
-
-class UrlHandler;
-
-/*!
- * @brief The CommandLineParser is used to parse our commandline inputs and set
- * parameters accordingly.
- */
-class CommandLineParser
-{
-public:
-    CommandLineParser();
-
-    bool processArguments(const QStringList& args);
-
-    bool isFullscreen() const { return m_isFullscreen; }
-    const QString &documentsDir() const { return m_documentsDir; }
-    bool pickModeEnabled() const { return m_pickMode; }
-    bool testability() const { return m_testability; }
-    const QString &documentFile() const { return m_documentFile; }
-
-private:
-    bool invalidArg(QString arg);
-    void usage();
-
-    UrlHandler *m_urlHandler;
-
-    bool m_isFullscreen;
-    bool m_pickMode;
-    bool m_testability;
-    QString m_documentFile;
-    QString m_documentsDir;
-};
-
-#endif // COMMANDLINEPARSER_H

=== added file 'src/app/config.h.in'
--- src/app/config.h.in	1970-01-01 00:00:00 +0000
+++ src/app/config.h.in	2015-11-06 11:00:18 +0000
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2013 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtCore/QString>
+
+inline bool isClick() {
+    static bool click = (QCoreApplication::applicationDirPath().contains("click.ubuntu.com"));
+    return click;
+}
+
+inline bool isRunningInstalled()
+{
+    static bool installed = (QCoreApplication::applicationDirPath().startsWith("/usr"));
+    return installed;
+}
+
+inline QString docviewerDirectory()
+{
+    if (isClick()) {
+        return QString(".");
+    } else if (isRunningInstalled()) {
+        return QString("@CMAKE_INSTALL_PREFIX@/@DATA_DIR@");
+    } else {
+        return QString("@CMAKE_CURRENT_SOURCE_DIR@");
+    }
+}
+#endif // __CONFIG_H__

=== removed file 'src/app/content-communicator.cpp'
--- src/app/content-communicator.cpp	2015-04-27 15:58:12 +0000
+++ src/app/content-communicator.cpp	1970-01-01 00:00:00 +0000
@@ -1,251 +0,0 @@
-/*
- * Copyright (C) 2013 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "content-communicator.h"
-
-#include <QApplication>
-#include <QStandardPaths>
-#include <QMimeDatabase>
-#include <QDebug>
-#include <QFileInfo>
-
-#include <com/ubuntu/content/hub.h>
-#include <com/ubuntu/content/item.h>
-#include <com/ubuntu/content/transfer.h>
-
-
-using namespace com::ubuntu::content;
-
-/*!
- * \brief ContentCommunicator::ContentCommunicator
- * \param parent
- */
-ContentCommunicator::ContentCommunicator(QObject *parent)
-    : ImportExportHandler(parent),
-      m_transfer(nullptr)
-{
-}
-
-/*!
- * \brief ContentCommunicator::registerWithHub Register the handlers provided
- * by ContentCommunicator with the content hub
- */
-void ContentCommunicator::registerWithHub()
-{
-    Hub *hub = Hub::Client::instance();
-    hub->register_import_export_handler(this);
-}
-
-/*!
- * \brief \reimp
- */
-void ContentCommunicator::handle_import(content::Transfer *transfer)
-{
-    // FIXME: If a file is imported from $HOME/Documents, a new copy of the file is created.
-    //   Could be use md5? http://doc.qt.io/qt-5/qml-qtqml-qt.html#md5-method
-    QVariantList importedDocuments;
-    QVector<Item> transferedItems = transfer->collect();
-    foreach (const Item &hubItem, transferedItems) {
-        QFileInfo fi(hubItem.url().toLocalFile());
-
-        QString dir;
-        QString destination;
-        bool rejected = false;
-
-        QMimeDatabase mdb;
-        QMimeType mt = mdb.mimeTypeForFile(hubItem.url().toLocalFile());
-
-        // Check if the item is supported by Ubuntu Document Viewer
-        if (isSupportedMimetype(mt.name())) {
-            /* We don't support formats that use a double extension
-               (e.g. tar.gz), so we can safely use completeBaseName() and
-               suffix() functions, in order to properly detect the name of
-               the document even when there's a dot in the middle of the name.*/
-            QString suffix = fi.suffix();
-            QString filenameWithoutSuffix = fi.completeBaseName();
-
-            if(suffix.isEmpty()) {
-                // If the filename doesn't have an extension add one from the
-                // detected mimetype
-                if(!mt.preferredSuffix().isEmpty()) {
-                    suffix = mt.preferredSuffix();
-                }
-            }
-
-            dir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + QDir::separator();
-            destination = QString("%1.%2").arg(dir + filenameWithoutSuffix, suffix);
-
-            // If we already have a file of this name reformat to "filename (copy x).png"
-            // (where x is a number, incremented until we find an available filename)
-            if(QFile::exists(destination)) {
-                /*
-                 TRANSLATORS: This string is used for renaming a copied file,
-                 when a file with the same name already exists in user's
-                 Documents folder.
-
-                 e.g. "Manual_Aquaris_E4.5_ubuntu_EN.pdf" will become
-                      "Manual_Aquaris_E4.5_ubuntu_EN (copy 2).pdf"
-
-                      where "2" is given by the argument "%1"
-                */
-                QString reformattedSuffix = QString(_("copy %1"));
-
-                QRegExp rx(" \\(" + reformattedSuffix.arg(QString("\\d+")) + "\\)");
-                int reformattedSuffixPos = filenameWithoutSuffix.lastIndexOf(rx);
-
-                // Check if the file has already a "copy" suffix
-                if(reformattedSuffixPos != -1) {
-                    // Remove the "copy" suffix. We will re-put it later.
-                    filenameWithoutSuffix.truncate(reformattedSuffixPos);
-                }
-
-                int append = 1;
-                do {
-                    destination = QString("%1 (%2).%3").arg(dir + filenameWithoutSuffix,
-                                                            reformattedSuffix.arg(QString::number(append)),
-                                                            suffix);
-                    append++;
-                } while(QFile::exists(destination));
-            }
-
-            QFile::copy(hubItem.url().toLocalFile(), destination);
-        } else {
-            rejected = true;
-        }
-
-        // Append an entry for the imported document in the list that will be
-        // emitted with the 'documentImported' signal.
-        QVariantMap entry;
-        if (rejected) {
-            entry["fileName"] = fi.fileName();
-        } else {
-            entry["fileName"] = destination;
-        }
-        entry["rejected"] = rejected;
-
-        importedDocuments.append(entry);
-    }
-
-    // Allow content-hub to clean up temporary files in .cache/ once we've
-    // moved them
-    transfer->finalize();
-
-    emit documentImported(importedDocuments);
-}
-
-/*!
- * \brief \reimp
- */
-void ContentCommunicator::handle_export(content::Transfer *transfer)
-{
-    if (m_transfer != nullptr) {
-        qWarning() << "docviewer-app does only one content export at a time";
-        transfer->abort();
-        return;
-    }
-
-    m_transfer = transfer;
-    emit documentRequested();
-    emit selectionTypeChanged();
-    emit singleContentPickModeChanged();
-}
-
-/*!
- * \brief \reimp
- */
-void ContentCommunicator::handle_share(content::Transfer *)
-{
-    qDebug() << Q_FUNC_INFO << "docviewer does not share content";
-}
-
-/*!
- * \brief ContentCommunicator::cancelTransfer aborts the current transfer
- */
-void ContentCommunicator::cancelTransfer()
-{
-    if (!m_transfer) {
-        qWarning() << "No ongoing transfer to cancel";
-        return;
-    }
-
-    m_transfer->abort();
-    m_transfer = nullptr;
-}
-
-/*!
- * \brief ContentCommunicator::returnSocuments returns the given documents
- * via content hub to the requester
- * \param urls
- */
-void ContentCommunicator::returnDocuments(const QVector<QUrl> &urls)
-{
-    if (!m_transfer) {
-        qWarning() << "No ongoing transfer to return a document";
-        return;
-    }
-
-    QVector<Item> items;
-    items.reserve(urls.size());
-    foreach (const QUrl &url, urls) {
-        items.append(Item(url));
-    }
-
-    m_transfer->charge(items);
-    m_transfer = nullptr;
-}
-
-/*!
- * \brief ContentCommunicator::selectionType return if the transfer requests
- * one single item only, or multiple
- * \return
- */
-ContentCommunicator::SelectionType ContentCommunicator::selectionType() const
-{
-    if (!m_transfer)
-        return SingleSelect;
-
-    return static_cast<SelectionType>(m_transfer->selectionType());
-}
-
-/*!
- * \brief ContentCommunicator::singleContentPickMode
- * \return
- */
-bool ContentCommunicator::singleContentPickMode() const
-{
-    if (!m_transfer)
-        return true;
-
-    // FIXME: Shouldn't be Transfer::SelectionType::SingleSelect?
-    return m_transfer->selectionType() == Transfer::SelectionType::single;
-}
-
-/*!
- * \brief ContentCommunicator::isSupportedMimetype returns true if the given
- * mimetype is supported by Ubuntu Document Viewer
- * \param mimetype
- */
-bool ContentCommunicator::isSupportedMimetype(QString mimetype)
-{
-    if (mimetype.startsWith("text/"))
-        return true;
-
-    if (mimetype == "application/pdf")
-        return true;
-
-    return false;
-}

=== removed file 'src/app/content-communicator.h'
--- src/app/content-communicator.h	2015-04-20 16:24:06 +0000
+++ src/app/content-communicator.h	1970-01-01 00:00:00 +0000
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2013 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef CONTENTCOMMUNICATOR_H
-#define CONTENTCOMMUNICATOR_H
-
-#include <com/ubuntu/content/import_export_handler.h>
-#include <com/ubuntu/content/transfer.h>
-
-#include <QUrl>
-#include <QVector>
-#include <libintl.h>
-
-#define _(value) dgettext(GETTEXT_PACKAGE, value)
-
-using namespace com::ubuntu;
-
-/*!
- * Class to handle the communication with the content manager
- */
-class ContentCommunicator : public content::ImportExportHandler
-{
-    Q_OBJECT
-    Q_PROPERTY(bool singleContentPickMode READ singleContentPickMode NOTIFY singleContentPickModeChanged)
-    Q_PROPERTY(SelectionType selectionType READ selectionType NOTIFY selectionTypeChanged)
-    Q_ENUMS(SelectionType)
-
-public:
-    enum SelectionType {
-        SingleSelect = content::Transfer::single,
-        MultiSelect = content::Transfer::multiple
-    };
-
-    ContentCommunicator(QObject *parent = nullptr);
-
-    virtual void handle_import(content::Transfer*);
-    virtual void handle_export(content::Transfer *transfer);
-    virtual void handle_share(content::Transfer*);
-
-    void cancelTransfer();
-    void returnDocuments(const QVector<QUrl> &urls);
-
-    SelectionType selectionType() const;
-    bool singleContentPickMode() const;
-
-    void registerWithHub();
-
-signals:
-    void documentRequested();
-    void documentImported(QVariantList documents);
-    void selectionTypeChanged();
-    void singleContentPickModeChanged();
-
-private:
-    content::Transfer *m_transfer;
-
-    bool isSupportedMimetype(QString mimetype);
-};
-
-#endif // CONTENTCOMMUNICATOR_H

=== removed file 'src/app/docviewer-application.cpp'
--- src/app/docviewer-application.cpp	2015-04-29 15:23:32 +0000
+++ src/app/docviewer-application.cpp	1970-01-01 00:00:00 +0000
@@ -1,351 +0,0 @@
-/*
- * Copyright (C) 2012 Canonical Ltd
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors:
- * Charles Lindsay <chaz@xxxxxxxxx>
- */
-
-#include "docviewer-application.h"
-#include "content-communicator.h"
-#include "command-line-parser.h"
-#include "urlhandler.h"
-
-#include <QQuickItem>
-#include <QStandardPaths>
-#include <QQuickView>
-#include <QtQml/QtQml>
-#include <QString>
-#include <QUrl>
-#include <QtGui/QGuiApplication>
-
-/*!
- * \brief DocViewerApplication::DocViewerApplication
- * \param argc
- * \param argv
- */
-DocViewerApplication::DocViewerApplication(int& argc, char** argv)
-    : QApplication(argc, argv),
-      m_view(new QQuickView()),
-      m_contentCommunicator(new ContentCommunicator(this)),
-      m_pickModeEnabled(false),
-      m_defaultUiMode(BrowseContentMode),
-      m_documentFile(""),
-      m_documentLoaded(false)
-{
-   //
-}
-
-bool DocViewerApplication::init()
-{
-    m_cmdLineParser = new CommandLineParser();
-
-    if (!m_cmdLineParser->processArguments(arguments()))
-        return false;
-
-    if (qgetenv("QT_LOAD_TESTABILITY") == "1" || m_cmdLineParser->testability()) {
-        QLibrary testLib(QLatin1String("qttestability"));
-        if (testLib.load()) {
-            typedef void (*TasInitialize)(void);
-            TasInitialize initFunction = (TasInitialize)testLib.resolve("qt_testability_init");
-            if (initFunction) {
-                initFunction();
-            } else {
-                qCritical("Library qttestability resolve failed!");
-            }
-        } else {
-            qCritical("Library qttestability load failed!");
-        }
-    }
-
-    m_urlHandler = new UrlHandler();
-
-    registerQML();
-
-    if (m_cmdLineParser->pickModeEnabled())
-        setDefaultUiMode(DocViewerApplication::PickContentMode);
-
-    QObject::connect(m_contentCommunicator, SIGNAL(documentRequested()),
-                     this, SLOT(switchToPickMode()));
-
-    QObject::connect(m_contentCommunicator, SIGNAL(documentImported()),
-                     this, SLOT(switchToBrowseMode()));
-
-    return true;
-}
-
-/*!
- * \brief DocViewerApplication::~DocViewerApplication
- */
-DocViewerApplication::~DocViewerApplication()
-{
-    delete m_view;
-    delete m_cmdLineParser;
-}
-
-/*!
- * \brief DocViewerApplication::exec
- * \return
- */
-int DocViewerApplication::exec()
-{
-    createView();
-
-    return QApplication::exec();
-}
-
-/*!
- * \brief DocViewerApplication::registerQML
- */
-void DocViewerApplication::registerQML()
-{
-    // Set up import paths
-    QStringList importPathList = m_view->engine()->importPathList();
-
-    // Prepend the location of the plugin in the build dir,
-    // so that Qt Creator finds it there, thus overriding the one installed
-    // in the sistem if there is one
-    importPathList.prepend(QCoreApplication::applicationDirPath() + "/../plugin/");
-    m_view->engine()->setImportPathList(importPathList);
-}
-
-/*!
- * \brief DocViewerApplication::isDesktopMode
- * Returns true if the DESKTOP_MODE env var is set
- */
-bool DocViewerApplication::isDesktopMode() const
-{
-
-  // Assume that platformName (QtUbuntu) with ubuntu
-  // in name means it's running on device
-  // TODO: replace this check with SDK call for formfactor
-  QString platform = QGuiApplication::platformName();
-  return !((platform == "ubuntu") || (platform == "ubuntumirclient"));
-}
-
-/*!
- * \brief DocViewerApplication::isFullScreen
- * Returns true if window is on FullScreen mode
- */
-bool DocViewerApplication::isFullScreen() const
-{
-    return m_view->windowState() == Qt::WindowFullScreen;
-}
-
-/*!
- * \brief DocViewerApplication::getDocumentFile
- * Returns the document file passed as a parameter
- */
-const QString& DocViewerApplication::getDocumentFile() const
-{
-    return m_documentFile;
-}
-
-/*!
- * \brief DocViewerApplication::getDocumentsDir
- * Returns the documents dir passed as a parameter
- */
-const QString& DocViewerApplication::getDocumentsDir() const
-{
-    return m_cmdLineParser->documentsDir();
-}
-
-
-/*!
- * \brief DocViewerApplication::createView
- * Create the master QDeclarativeView that all the pages will operate within
- */
-void DocViewerApplication::createView()
-{
-    m_view->setTitle(tr("Document Viewer"));
-
-    // Set ourselves up to expose functionality to run external commands from QML...
-    m_view->engine()->rootContext()->setContextProperty("DOC_VIEWER", this);
-    m_view->engine()->rootContext()->setContextProperty("PICKER_HUB", m_contentCommunicator);
-
-    QObject::connect(m_view->engine(), SIGNAL(quit()), this, SLOT(quit()));
-
-    QString qmlfile;
-    const QString filePath = QLatin1String("qml/ubuntu-docviewer-app.qml");
-    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::DataLocation);
-    paths.prepend(QDir::currentPath());
-    paths.prepend(QCoreApplication::applicationDirPath());
-    Q_FOREACH (const QString &path, paths) {
-        QString myPath = path + QLatin1Char('/') + filePath;
-
-        if (QFile::exists(myPath)) {
-            qmlfile = myPath;
-            break;
-        } else {
-            myPath.replace(QCoreApplication::applicationName(), "ubuntu-docviewer-app");
-
-            if (QFile::exists(myPath)) {
-                qmlfile = myPath;
-                break;
-            }
-        }
-    }
-    // sanity check
-    if (qmlfile.isEmpty()) {
-        qFatal("File: %s does not exist at any of the standard paths!", qPrintable(filePath));
-    }
-
-    registerHub();
-    m_view->setSource(QUrl::fromLocalFile(qmlfile));
-    setDocumentFile(m_cmdLineParser->documentFile());
-
-    m_view->setResizeMode(QQuickView::SizeRootObjectToView);
-
-    //run fullscreen if specified at command line
-    if (m_cmdLineParser->isFullscreen()) {
-        setFullScreen(true);
-        m_view->showFullScreen();
-    } else {
-        m_view->show();
-    }
-}
-
-/*!
- * \brief DocViewerApplication::setDefaultUiMode set the default UI mode. This might
- * get overridden during the lifetime
- * \param mode
- */
-void DocViewerApplication::setDefaultUiMode(DocViewerApplication::UiMode mode)
-{
-    m_defaultUiMode = mode;
-    setUiMode(mode);
-}
-
-/*!
- * \brief DocViewerApplication::setUiMode set's the current UI mode
- * \param mode
- */
-void DocViewerApplication::setUiMode(DocViewerApplication::UiMode mode)
-{
-    bool enablePickMode = (mode == PickContentMode);
-
-    if (enablePickMode != m_pickModeEnabled) {
-        m_pickModeEnabled = enablePickMode;
-        Q_EMIT pickModeEnabledChanged();
-    }
-}
-
-/*!
- * \brief DocViewerApplication::pickModeEnabled returns true if the current UI
- * mode should be for picking acontent
- * \return
- */
-bool DocViewerApplication::pickModeEnabled() const
-{
-    return m_pickModeEnabled;
-}
-
-/*!
- * \brief DocViewerApplication::switchToPickMode
- */
-void DocViewerApplication::switchToPickMode()
-{
-    setUiMode(PickContentMode);
-}
-
-/*!
- * \brief DocViewerApplication::switchToBrowseMode
- */
-void DocViewerApplication::switchToBrowseMode()
-{
-    Q_EMIT browseModeRequested();
-}
-
-/*!
- * \brief DocViewerApplication::setFullScreen
- * Change window state to fullScreen or no state
- */
-void DocViewerApplication::setFullScreen(bool fullScreen)
-{
-    if(fullScreen) {
-        m_view->setWindowState(Qt::WindowFullScreen);
-    } else {
-        m_view->setWindowState(Qt::WindowNoState);
-    }
-
-    Q_EMIT fullScreenChanged();
-}
-
-void DocViewerApplication::setDocumentFile(const QString &documentFile)
-{
-    if(!documentFile.isEmpty()) {
-        if (m_documentFile != documentFile) {
-            m_documentFile = "file://" + documentFile;
-            Q_EMIT documentFileChanged();;
-        }
-    }
-}
-
-/*!
- * \brief DocViewerApplication::returnPickedContent passes the selcted items to the
- * content manager
- * \param variant
- */
-void DocViewerApplication::returnPickedContent(QList<QString> paths)
-{
-    QVector<QUrl> selectedMedias;
-    selectedMedias.reserve(paths.size());
-    foreach (const QString path, paths) {
-        // We handle paths without "file://" prefix, so we need to add it when exporting to content-hub.
-        selectedMedias.append(QUrl("file://" + path));
-    }
-    m_contentCommunicator->returnDocuments(selectedMedias);
-
-    if (m_defaultUiMode == BrowseContentMode) {
-        setUiMode(BrowseContentMode);
-    } else {
-        // give the app and content-hub some time to finish taks (run the event loop)
-        QTimer::singleShot(10, this, SLOT(quit()));
-    }
-}
-
-/*!
- * \brief DocViewerApplication::contentPickingCanceled tell the content manager, that
- * the picking was canceled
- */
-void DocViewerApplication::contentPickingCanceled()
-{
-    m_contentCommunicator->cancelTransfer();
-
-    if (m_defaultUiMode == BrowseContentMode) {
-        setUiMode(BrowseContentMode);
-    } else {
-        // give the app and content-hub some time to finish taks (run the event loop)
-        QTimer::singleShot(10, this, SLOT(quit()));
-    }
-}
-
-void DocViewerApplication::registerHub()
-{
-    m_contentCommunicator->registerWithHub();
-}
-
-void DocViewerApplication::parseUri(const QString &arg)
-{
-    if (m_urlHandler->processUri(arg)) {
-        setDocumentFile(m_urlHandler->documentFile());
-    }
-}
-
-void DocViewerApplication::releaseResources()
-{
-    if (m_view) {
-        m_view->releaseResources();
-    }
-}

=== removed file 'src/app/docviewer-application.h'
--- src/app/docviewer-application.h	2015-04-29 15:23:32 +0000
+++ src/app/docviewer-application.h	1970-01-01 00:00:00 +0000
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2012 Canonical Ltd
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors:
- * Charles Lindsay <chaz@xxxxxxxxx>
- */
-
-#ifndef DOCVIEWERAPPLICATION_H
-#define DOCVIEWERAPPLICATION_H
-
-#include <QApplication>
-#include <QElapsedTimer>
-#include <QFileInfo>
-#include <QTimer>
-
-class CommandLineParser;
-class UrlHandler;
-class ContentCommunicator;
-
-class QQuickView;
-
-/*!
- * \brief The DocViewerApplication class
- */
-class DocViewerApplication : public QApplication
-{
-    Q_OBJECT
-    Q_PROPERTY(bool pickModeEnabled READ pickModeEnabled NOTIFY pickModeEnabledChanged)
-    Q_PROPERTY(bool desktopMode READ isDesktopMode CONSTANT)
-    Q_PROPERTY(bool fullScreen READ isFullScreen WRITE setFullScreen NOTIFY fullScreenChanged)
-    Q_PROPERTY(QString documentFile READ getDocumentFile WRITE setDocumentFile NOTIFY documentFileChanged)
-    Q_PROPERTY(QString documentsDir READ getDocumentsDir CONSTANT)
-
-public:
-    enum UiMode{
-        BrowseContentMode,
-        PickContentMode
-    };
-
-    explicit DocViewerApplication(int& argc, char** argv);
-    virtual ~DocViewerApplication();
-
-    bool init();
-    int exec();
-
-    void setDefaultUiMode(UiMode mode);
-    UiMode defaultUiMode() const;
-    void setUiMode(UiMode mode);
-    bool pickModeEnabled() const;
-    bool isDesktopMode() const;
-    bool isFullScreen() const;
-    const QString &getDocumentFile() const;
-    const QString &getDocumentsDir() const;
-
-    Q_INVOKABLE void returnPickedContent(QList<QString> paths);
-    Q_INVOKABLE void contentPickingCanceled();
-    Q_INVOKABLE void parseUri(const QString &arg);
-    Q_INVOKABLE void releaseResources();
-
-signals:
-    void pickModeEnabledChanged();
-    void fullScreenChanged();
-    void documentFileChanged();
-    void browseModeRequested();
-
-private slots:
-    void switchToPickMode();
-    void switchToBrowseMode();
-    void setFullScreen(bool fullScreen);
-    void setDocumentFile(const QString &documentFile);
-
-private:
-    void registerHub();
-    void registerQML();
-    void createView();
-
-    QQuickView *m_view;
-    CommandLineParser* m_cmdLineParser;
-    UrlHandler *m_urlHandler;
-    ContentCommunicator *m_contentCommunicator;
-
-    bool m_pickModeEnabled;
-    UiMode m_defaultUiMode;
-    QString m_documentFile;
-    bool m_documentLoaded;
-};
-
-#endif // DOCVIEWERAPPLICATION_H

=== removed file 'src/app/graphics/sd-card-symbolic.png'
Binary files src/app/graphics/sd-card-symbolic.png	2015-05-13 14:22:36 +0000 and src/app/graphics/sd-card-symbolic.png	1970-01-01 00:00:00 +0000 differ
=== removed file 'src/app/graphics/select-none.svg'
--- src/app/graphics/select-none.svg	2015-02-13 15:30:01 +0000
+++ src/app/graphics/select-none.svg	1970-01-01 00:00:00 +0000
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/";
-   xmlns:cc="http://creativecommons.org/ns#";
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
-   xmlns:svg="http://www.w3.org/2000/svg";
-   xmlns="http://www.w3.org/2000/svg";
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
-   width="90"
-   height="90"
-   id="svg4874"
-   version="1.1"
-   inkscape:version="0.48+devel r"
-   viewBox="0 0 90 90.000001"
-   sodipodi:docname="select-none.svg">
-  <defs
-     id="defs4876" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="12.434498"
-     inkscape:cx="10.237647"
-     inkscape:cy="53.078139"
-     inkscape:document-units="px"
-     inkscape:current-layer="g1311"
-     showgrid="true"
-     showborder="true"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:snap-bbox="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     inkscape:snap-bbox-edge-midpoints="true"
-     inkscape:snap-bbox-midpoints="true"
-     inkscape:object-paths="true"
-     inkscape:snap-intersection-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:snap-smooth-nodes="true"
-     inkscape:snap-midpoints="true"
-     inkscape:snap-object-midpoints="true"
-     inkscape:snap-center="true"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <inkscape:grid
-       type="xygrid"
-       id="grid5451"
-       empspacing="6" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="6,77"
-       id="guide4063" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="3,78"
-       id="guide4065" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="55,84"
-       id="guide4067" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="53,87"
-       id="guide4069" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="20,3"
-       id="guide4071" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="20,6"
-       id="guide4073" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="87,7"
-       id="guide4075" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="84,7"
-       id="guide4077" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="58,81"
-       id="guide4074" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="9,74"
-       id="guide4076" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="21,9"
-       id="guide4078" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="81,4"
-       id="guide4080" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4879">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(67.857146,-84.50504)">
-    <g
-       transform="matrix(0,-1,-1,0,373.50506,516.50504)"
-       id="g4845"
-       style="display:inline">
-      <g
-         transform="matrix(0,-1,-1,0,567.36222,615.36221)"
-         id="g1311"
-         inkscape:export-filename="envelope02.png"
-         inkscape:export-xdpi="90"
-         inkscape:export-ydpi="90">
-        <g
-           id="g1313"
-           transform="matrix(1.875,0,0,1.875,-366,-1657.8169)">
-          <rect
-             transform="translate(0,804.3622)"
-             y="152"
-             x="288"
-             height="48"
-             width="48"
-             id="rect1315"
-             style="opacity:0.21171169;fill:none;stroke:none" />
-        </g>
-        <path
-           style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#808080;fill-opacity:1;stroke:none;display:inline;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
-           d="M 21 6 C 11 6 6 5.9998033 6 17.626953 L 6 72.373047 C 6 84.000207 11 84 21 84 L 69 84 C 79 84 84 84.000207 84 72.373047 L 84 17.626953 C 84 5.9998033 79 6 69 6 L 21 6 z M 22.867188 12 L 67.132812 12 C 75.065512 12 78 11.999356 78 20.191406 L 78 69.808594 C 78 78.000644 75.065512 78 67.132812 78 L 22.867188 78 C 14.934488 78 12 78.000644 12 69.808594 L 12 20.191406 C 12 11.999356 14.934488 12 22.867188 12 z "
-           transform="translate(174,135.36222)"
-           id="path4098" />
-      </g>
-    </g>
-  </g>
-</svg>

=== removed file 'src/app/graphics/select.svg'
--- src/app/graphics/select.svg	2015-02-13 15:30:01 +0000
+++ src/app/graphics/select.svg	1970-01-01 00:00:00 +0000
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/";
-   xmlns:cc="http://creativecommons.org/ns#";
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
-   xmlns:svg="http://www.w3.org/2000/svg";
-   xmlns="http://www.w3.org/2000/svg";
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
-   width="90"
-   height="90"
-   id="svg4874"
-   version="1.1"
-   inkscape:version="0.48+devel r12833"
-   viewBox="0 0 90 90.000001"
-   sodipodi:docname="select.svg">
-  <defs
-     id="defs4876" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="12.434498"
-     inkscape:cx="30.343002"
-     inkscape:cy="53.600878"
-     inkscape:document-units="px"
-     inkscape:current-layer="g1311"
-     showgrid="true"
-     showborder="true"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:snap-bbox="true"
-     inkscape:bbox-paths="true"
-     inkscape:bbox-nodes="true"
-     inkscape:snap-bbox-edge-midpoints="true"
-     inkscape:snap-bbox-midpoints="true"
-     inkscape:object-paths="true"
-     inkscape:snap-intersection-paths="true"
-     inkscape:object-nodes="true"
-     inkscape:snap-smooth-nodes="true"
-     inkscape:snap-midpoints="true"
-     inkscape:snap-object-midpoints="true"
-     inkscape:snap-center="true"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <inkscape:grid
-       type="xygrid"
-       id="grid5451"
-       empspacing="6" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="6,77"
-       id="guide4063" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="3,78"
-       id="guide4065" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="55,84"
-       id="guide4067" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="53,87"
-       id="guide4069" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="20,3"
-       id="guide4071" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="20,6"
-       id="guide4073" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="87,7"
-       id="guide4075" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="84,7"
-       id="guide4077" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="58,81"
-       id="guide4074" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="9,74"
-       id="guide4076" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="21,9"
-       id="guide4078" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="81,4"
-       id="guide4080" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4879">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(67.857146,-84.50504)">
-    <g
-       transform="matrix(0,-1,-1,0,373.50506,516.50504)"
-       id="g4845"
-       style="display:inline">
-      <g
-         transform="matrix(0,-1,-1,0,567.36222,615.36221)"
-         id="g1311"
-         inkscape:export-filename="envelope02.png"
-         inkscape:export-xdpi="90"
-         inkscape:export-ydpi="90">
-        <g
-           id="g1313"
-           transform="matrix(1.875,0,0,1.875,-366,-1657.8169)">
-          <rect
-             transform="translate(0,804.3622)"
-             y="152"
-             x="288"
-             height="48"
-             width="48"
-             id="rect1315"
-             style="opacity:0.21171169;fill:none;stroke:none" />
-        </g>
-        <path
-           style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#808080;fill-opacity:1;stroke:none;display:inline;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
-           d="M 21 6 C 11 6 6 5.9998033 6 17.626953 L 6 72.373047 C 6 84.000207 11 84 21 84 L 69 84 C 79 84 84 84.000207 84 72.373047 L 84 17.626953 C 84 5.9998033 79 6 69 6 L 21 6 z M 22.867188 12 L 67.132812 12 C 75.065512 12 78 11.999356 78 20.191406 L 78 69.808594 C 78 78.000644 75.065512 78 67.132812 78 L 22.867188 78 C 14.934488 78 12 78.000644 12 69.808594 L 12 20.191406 C 12 11.999356 14.934488 12 22.867188 12 z "
-           transform="translate(174,135.36222)"
-           id="path4098" />
-        <path
-           style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#808080;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu"
-           d="m 242.00422,161.6591 -0.375,0.32812 -26.94727,23.60352 -15.79687,-13.55079 -4.77539,5.4004 20.57617,21.64843 31.30078,-32.9375 -3.98242,-4.49218 z"
-           id="path4041-9"
-           inkscape:connector-curvature="0" />
-      </g>
-    </g>
-  </g>
-</svg>

=== removed file 'src/app/graphics/settings_alt.svg'
--- src/app/graphics/settings_alt.svg	2015-06-10 17:17:47 +0000
+++ src/app/graphics/settings_alt.svg	1970-01-01 00:00:00 +0000
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/";
-   xmlns:cc="http://creativecommons.org/ns#";
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
-   xmlns:svg="http://www.w3.org/2000/svg";
-   xmlns="http://www.w3.org/2000/svg";
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
-   width="90"
-   height="90"
-   id="svg3133"
-   version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="settings@xxxxxx">
-  <defs
-     id="defs3135" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="6.3664628"
-     inkscape:cx="93.340685"
-     inkscape:cy="27.377839"
-     inkscape:document-units="px"
-     inkscape:current-layer="g4674"
-     showgrid="true"
-     inkscape:window-width="1920"
-     inkscape:window-height="1029"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <inkscape:grid
-       type="xygrid"
-       id="grid2992"
-       empspacing="6"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true"
-       originx="4.2039363e-07px"
-       originy="0px" />
-    <sodipodi:guide
-       orientation="1,0"
-       position="45,11"
-       id="guide3763" />
-    <sodipodi:guide
-       orientation="0,1"
-       position="48,45"
-       id="guide3765" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3138">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(4.2039363e-7,-962.3622)">
-    <g
-       id="g4978"
-       transform="matrix(0.99934414,0,0,1,-106.92982,549.00002)">
-      <g
-         id="g4674"
-         transform="matrix(1.0006563,0,0,1,-155.17195,-2.6171874e-6)">
-        <rect
-           y="431.36218"
-           x="262"
-           height="72"
-           width="72"
-           id="rect4869"
-           style="opacity:0.01000001;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           d="m 320.5,419.36218 c 6.5,0 7.49965,0 7.49979,7 l 2.1e-4,10 c 1.5e-4,7 -1,7 -7.5,7 -6.5,0 -7.50015,0 -7.5,-7 l 2.1e-4,-9.99997 c 1.4e-4,-7.00003 0.99979,-7.00003 7.49979,-7.00003 z"
-           id="rect4871"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="zsszssz" />
-        <path
-           style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           d="m 262,428.36218 0,6 45,0 0,-6 z m 72,0 0,6 18,0 0,-6 z"
-           id="rect4882"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cccccccccc" />
-        <path
-           id="path4887"
-           d="m 262,455.36218 0,6 18,0 0,-6 z m 45,0 0,6 45,0 0,-6 z"
-           style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cccccccccc" />
-        <path
-           sodipodi:nodetypes="cccccccccc"
-           inkscape:connector-curvature="0"
-           style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           d="m 262,482.36218 0,6 45,0 0,-6 z m 72,0 0,6 18,0 0,-6 z"
-           id="path4889" />
-        <rect
-           y="413.36218"
-           x="262"
-           height="90"
-           width="90"
-           id="rect2993"
-           style="color:#000000;fill:none;stroke:none;stroke-width:11.80000019;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           sodipodi:nodetypes="zsszssz"
-           inkscape:connector-curvature="0"
-           id="path3775"
-           d="m 293.5,446.36218 c 6.5,0 7.49965,0 7.49979,7 l 2.1e-4,10 c 1.5e-4,7 -1,7 -7.5,7 -6.5,0 -7.50015,0 -7.5,-7 l 2.1e-4,-9.99997 c 1.4e-4,-7.00003 0.99979,-7.00003 7.49979,-7.00003 z"
-           style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           d="m 320.5,473.36218 c 6.5,0 7.49965,0 7.49979,7 l 2.1e-4,10 c 1.5e-4,7 -1,7 -7.5,7 -6.5,0 -7.50015,0 -7.5,-7 l 2.1e-4,-9.99997 c 1.4e-4,-7.00003 0.99979,-7.00003 7.49979,-7.00003 z"
-           id="path3777"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="zsszssz" />
-      </g>
-    </g>
-  </g>
-</svg>

=== modified file 'src/app/main.cpp'
--- src/app/main.cpp	2015-03-03 16:49:48 +0000
+++ src/app/main.cpp	2015-11-06 11:00:18 +0000
@@ -1,36 +1,74 @@
 /*
- * Copyright: 2015 Canonical Ltd.
- *
- * This file is part of docviewer
- *
- * docviewer is free software: you can redistribute it and/or modify
+ * Copyright (C) 2013-2015 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * the Free Software Foundation; version 3.
  *
- * reminders is distributed in the hope that it will be useful,
+ * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 // Uncomment if you need to use QML analyzer
 // #define QT_QML_DEBUG
-
-#include "docviewer-application.h"
+// #include <QtQuick>
+
+#include <QGuiApplication>
+#include <QQuickView>
+#include <QLibrary>
+#include <QtQml>
+
 #include <QDebug>
 
+#include "config.h"
+
+void loadTestability() {
+    QLibrary testLib(QLatin1String("qttestability"));
+
+    if (testLib.load()) {
+        typedef void (*TasInitialize)(void);
+        TasInitialize initFunction = (TasInitialize)testLib.resolve("qt_testability_init");
+
+        if (initFunction) {
+            initFunction();
+        } else {
+            qCritical("Library qttestability resolve failed!");
+        }
+    } else {
+        qCritical("Library qttestability load failed!");
+    }
+}
+
 int main(int argc, char *argv[])
 {
+    QGuiApplication app(argc, argv);
+    QQuickView view;
+
     QCoreApplication::setApplicationName("com.ubuntu.docviewer");
     QCoreApplication::setOrganizationDomain("com.ubuntu.docviewer");
 
-    DocViewerApplication app(argc, argv);
-    if (!app.init())
-        return 0;
-
-    app.exec();
+    view.rootContext()->setContextProperty("window", &view);
+    QObject::connect(view.engine(), SIGNAL(quit()), &app, SLOT(quit()));
+
+    if (qgetenv("QT_LOAD_TESTABILITY") == "1")
+       loadTestability();
+
+    if (!isRunningInstalled())
+        view.engine()->addImportPath(QCoreApplication::applicationDirPath() + "/../plugin/");
+
+    view.setSource(QUrl::fromLocalFile(docviewerDirectory() + "/qml/ubuntu-docviewer-app.qml"));
+    view.setResizeMode(QQuickView::SizeRootObjectToView);
+
+    // UITK/QML command line arguments are parsed before view's window becomes visible.
+    if (view.windowState() == Qt::WindowFullScreen)
+        view.showFullScreen();
+    else
+        view.show();
+
+    return app.exec();
 }

=== added file 'src/app/qml/common/CommandLineProxy.qml'
--- src/app/qml/common/CommandLineProxy.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/common/CommandLineProxy.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2015 Stefano Verzegnassi
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.3
+import Ubuntu.Components 1.1
+
+Item {
+    id: rootItem
+
+    property string documentFile: ""
+    property string documentsDir: ""
+    property bool fullscreen: false
+    property bool pickMode: false
+
+    Component.onCompleted: {
+        var docFile = args.defaultArgument.at(0)
+        if (docFile)
+            rootItem.documentFile = docFile
+
+        var docsDir = args.values.documentsDir
+        if (docsDir)
+            rootItem.documentsDir = docsDir
+
+        var fullscreen = args.values.fullscreen
+        if (fullscreen)
+            rootItem.fullscreen = fullscreen
+
+        var pickMode =  args.values.pickMode
+        if (pickMode)
+            rootItem.pickMode = pickMode
+
+        // Error catching
+        // This does not include any argument which is not expected: they are
+        // just skipped.
+        if (args.error) {
+            var errorString = i18n.tr("Some of the provided arguments is not valid.")
+            args.quitWithError(errorString)
+        }
+    }
+
+    Arguments {
+        id: args
+
+        defaultArgument {
+            help: i18n.tr("Opens ubuntu-docviewer-app displaying the selected file")
+            valueNames: ["file_path"]
+            required: false
+        }
+
+        Argument {
+            name: "fullscreen"
+            help: i18n.tr("Run fullscreen")
+            required: false
+        }
+
+        Argument {
+            name: "pickMode"
+            help: i18n.tr("Open ubuntu-docviewer-app in pick mode. Use it for tests only.")
+            required: false
+        }
+
+        Argument {
+            name: "documentsDir"
+            help: i18n.tr("Load the list of documents from the given folder, instead of default ~/Documents.\nThe path must exist prior to running ubuntu-docviewer-app")
+            valueNames: ["PATH"]
+            required: false
+        }
+    }
+}

=== added file 'src/app/qml/common/ContentHubProxy.qml'
--- src/app/qml/common/ContentHubProxy.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/common/ContentHubProxy.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2012-2014 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Content 1.1
+import DocumentViewer 1.0
+
+// TODO: Show a dialog asking for the destination (internal storage or SD card)
+
+Item {
+    id: contentHubProxy
+
+    property var activeTransfer
+
+    // This property is used in ../documentPage/Document(Grid|List)View.qml
+    // so that we avoid to import Ubuntu.Content module outside this proxy.
+    property bool multipleSelectionType: !activeTransfer || activeTransfer.selectionType == ContentTransfer.Multiple
+
+    property alias rejectedDocuments: rejectedDocsModel
+    property alias importedDocuments: importedDocsModel
+
+    ListModel { id: rejectedDocsModel }
+    ListModel { id: importedDocsModel }
+
+    ContentTransferHint {
+        activeTransfer: contentHubProxy.activeTransfer
+    }
+
+    Connections {
+        target: ContentHub
+
+        onImportRequested: {
+             activeTransfer = transfer
+
+            if (activeTransfer.state === ContentTransfer.Charged) {
+                mainView.switchToBrowseMode()
+
+                internal.clearModels()
+
+                for (var i=0; i<activeTransfer.items.length; i++) {
+                    var sourcePath = internal.getPathFromUrl(activeTransfer.items[i].url)
+
+                    if (DocumentViewer.isFileSupported(sourcePath)) {
+                        var documentsLocation = DocumentViewer.getXdgDocumentsLocation()
+
+                        // Check if we have already imported the same document in the past.
+                        var earlierImportedFile = DocumentViewer.checkIfFileAlreadyImported(sourcePath, [documentsLocation])
+                        if (earlierImportedFile.length > 0) {
+                            // Document has been already imported in the past.
+                            // Append the path of the earlier copy of the
+                            // document in our model, so we can open it instead.
+                            importedDocsModel.append({ path: earlierImportedFile })
+                        } else {
+                            // No document has been found, so we can safely copy it.
+                            var destPath = DocumentViewer.buildDestinationPath(documentsLocation, sourcePath);
+
+                            internal.importDocument(sourcePath, destPath)
+                        }
+                    } else {
+                        // Document is not supported, append its entry into the
+                        // rejected documents model, so that we can inform the
+                        // user of what happened.
+                        rejectedDocsModel.append({ path: sourcePath })
+                    }
+                }
+
+                internal.finalizeImport()
+
+                internal.handleNotifications()
+            }
+        }
+
+        onExportRequested: {
+            activeTransfer = transfer
+            mainView.switchToPickMode()
+        }
+    }
+
+    QtObject {
+        id: internal
+
+        function __openDocument() {
+            if (contentHubProxy.importedDocuments.count > 1) {
+                // If it has been imported more than a document, show
+                // a file picker when user taps the "open" action.
+                PopupUtils.open(
+                            Qt.resolvedUrl("common/PickImportedDialog.qml"),
+                            mainView,
+                            {
+                                parent: mainView,
+                                model: contentHubProxy.importedDocuments
+                            })
+            } else {
+                // It has been imported just a document, open it when
+                // user taps the action button.
+                mainView.openDocument(contentHubProxy.importedDocuments.get(0).path)
+            }
+        }
+
+        function clearModels() {
+            rejectedDocsModel.clear()
+            importedDocsModel.clear()
+        }
+
+        function getPathFromUrl(url) {
+            return url.toString().replace("file://", "")
+        }
+
+        function importDocument(sourcePath, destPath) {
+            DocumentViewer.copy(sourcePath, destPath)
+            importedDocsModel.append({ path: destPath })
+        }
+
+        function finalizeImport() {
+            activeTransfer.finalize()
+        }
+
+        function handleNotifications() {
+            // Check if there's any rejected document in the last transfer.
+            // If so, show an error dialog.
+            if (contentHubProxy.rejectedDocuments.count > 0) {
+                var rejectedDialog = PopupUtils.open(
+                            Qt.resolvedUrl("common/RejectedImportDialog.qml"),
+                            mainView,
+                            {
+                                parent: mainView,
+                                model: contentHubProxy.rejectedDocuments
+                            })
+                rejectedDialog.closed.connect(openDocument)
+            } else {
+                // Open the document, or show a pick dialog if more than one have been imported.
+                __openDocument()
+            }
+        }
+    }
+}

=== modified file 'src/app/qml/common/DetailsPage.qml'
--- src/app/qml/common/DetailsPage.qml	2015-04-15 14:21:48 +0000
+++ src/app/qml/common/DetailsPage.qml	2015-11-06 11:00:18 +0000
@@ -14,42 +14,46 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-import Ubuntu.Components.ListItems 1.0 as ListItem
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 
 import "utils.js" as Utils
 
 Page {
     id: detailsPage
     objectName: "detailsPage"
-
     title: i18n.tr("Details")
 
     Column {
-        width: parent.width
+        width: Math.min(units.gu(80), parent.width)
+        anchors {
+            top: parent.top
+            bottom: parent.bottom
+            horizontalCenter: parent.horizontalCenter
+        }
 
-        ListItem.Subtitled {
+        SubtitledListItem {
             text: i18n.tr("Location")
             subText: file.path
         }
-        ListItem.Subtitled {
+
+        SubtitledListItem {
             text: i18n.tr("Size")
             subText: Utils.printSize(i18n, file.info.size)
         }
 
-        ListItem.Subtitled {
+        SubtitledListItem {
             text: i18n.tr("Created")
             subText: file.info.creationTime.toLocaleString(Qt.locale())
         }
 
-        ListItem.Subtitled {
+        SubtitledListItem {
             text: i18n.tr("Last modified")
             subText: file.info.lastModified.toLocaleString(Qt.locale())
         }
 
-        ListItem.Subtitled {
-            id: mimetypeItem
+        SubtitledListItem {
+            // Used by Autopilot tests
             objectName: "mimetypeItem"
             text: i18n.tr("MIME type")
             subText: file.mimetype.name

=== modified file 'src/app/qml/common/FileNotFoundDialog.qml'
--- src/app/qml/common/FileNotFoundDialog.qml	2015-04-07 21:40:16 +0000
+++ src/app/qml/common/FileNotFoundDialog.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 
 // We may want to refactor this dialog for a more generic usage, when we'll need it.

=== modified file 'src/app/qml/common/NightModeShader.qml'
--- src/app/qml/common/NightModeShader.qml	2015-03-26 14:09:38 +0000
+++ src/app/qml/common/NightModeShader.qml	2015-11-06 11:00:18 +0000
@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
+import QtQuick 2.4
 
 ShaderEffect {
     fragmentShader: "

=== modified file 'src/app/qml/common/PickImportedDialog.qml'
--- src/app/qml/common/PickImportedDialog.qml	2015-04-10 17:00:59 +0000
+++ src/app/qml/common/PickImportedDialog.qml	2015-11-06 11:00:18 +0000
@@ -14,10 +14,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
-import Ubuntu.Components.ListItems 1.0 as ListItem
 
 import "utils.js" as Utils
 
@@ -29,16 +28,23 @@
     title: i18n.tr("Multiple documents imported")
     text: i18n.tr("Choose which one to open:")
 
-    // We don't use a Flickable, since it already lives in the Dialog itself.
+    // We don't use a Flickable, since the Dialog has already one.
     Repeater {
         id: repeater
-        delegate: ListItem.Standard {
-            text: Utils.getNameOfFile(modelData)
-            __foregroundColor: Theme.palette.selected.backgroundText
 
+        ListItem {
             onClicked: {
                 PopupUtils.close(multipleImportDialog);
-                mainView.openDocument(modelData);
+                mainView.openDocument(model.path);
+            }
+
+            Label {
+                text: Utils.getNameOfFile(model.path)
+                anchors {
+                    left: parent.left; right: parent.right
+                    margins: units.gu(2)
+                    verticalCenter: parent.verticalCenter
+                }
             }
         }
     }

=== modified file 'src/app/qml/common/RejectedImportDialog.qml'
--- src/app/qml/common/RejectedImportDialog.qml	2015-04-12 15:34:47 +0000
+++ src/app/qml/common/RejectedImportDialog.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 
 Dialog {
@@ -23,15 +23,15 @@
 
     property alias model: repeater.model
 
-    signal closed
+    signal closed()
 
-    title: i18n.tr("File not supported", "Files not supported", model.length)
+    title: i18n.tr("File not supported", "Files not supported", repeater.count)
     text: i18n.tr("Following document has not been imported:",
-                  "Following documents have not been imported:", model.length)
+                  "Following documents have not been imported:", repeater.count)
 
     Repeater {
         id: repeater
-        delegate: Label { text: modelData }
+        Label { text: model.path }
     }
 
     Button {

=== added file 'src/app/qml/common/SubtitledListItem.qml'
--- src/app/qml/common/SubtitledListItem.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/common/SubtitledListItem.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+
+ListItem {
+    id: listItemSubtitled
+    property alias text: mainLabel.text
+    property alias subText: subLabel.text
+
+    Column {
+        anchors {
+            left: parent.left; right: parent.right
+            margins: units.gu(2)
+            verticalCenter: parent.verticalCenter
+        }
+
+        Label {
+            id: mainLabel
+            color: UbuntuColors.midAubergine
+        }
+        Label {
+            id: subLabel
+            fontSize: "small"
+        }
+    }
+}

=== removed file 'src/app/qml/common/Toast.qml'
--- src/app/qml/common/Toast.qml	2015-04-07 22:03:03 +0000
+++ src/app/qml/common/Toast.qml	1970-01-01 00:00:00 +0000
@@ -1,82 +0,0 @@
-/*
-  This file is part of quick-memo
-  Copyright (C) 2014, 2015 Stefano Verzegnassi
-
-    This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License 3 as published by
-  the Free Software Foundation.
-
-    This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-  GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-  along with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-import QtQuick 2.0
-import Ubuntu.Components 1.1
-
-Rectangle {
-    id: rootItem
-
-    property alias text: label.text
-
-    width: parent.width
-    height: units.gu(8)
-
-    color: "#131313"
-    opacity: 0.85
-    layer.enabled: true
-
-    anchors {
-        horizontalCenter: parent.horizontalCenter
-        bottom: parent.bottom; bottomMargin: - height
-    }
-
-    Label {
-        id: label
-        anchors.centerIn: parent
-
-        font.weight: Font.DemiBold
-        color: "white"
-    }
-
-    MouseArea {
-        anchors.fill: parent
-
-        onClicked: {
-            showAnimation.stop()
-            destroyAnimation.restart()
-        }
-    }
-
-    Rectangle {
-        anchors {
-            bottom: parent.bottom
-            left: parent.left
-            right: parent.right
-        }
-
-        height: units.dp(2)
-        color: UbuntuColors.orange
-    }
-
-    SequentialAnimation {
-        id: showAnimation
-        running: true
-
-        NumberAnimation { target: rootItem; property: "anchors.bottomMargin"; to: 0; duration: 300 }
-        PauseAnimation { duration: 2000 }
-        ScriptAction { script: destroyAnimation.restart() }
-    }
-
-    SequentialAnimation {
-        id: destroyAnimation
-
-        NumberAnimation { target: rootItem; property: "opacity"; to: 0; duration: 500 }
-        ScriptAction { script: rootItem.destroy() }
-    }
-}
-

=== removed file 'src/app/qml/common/ToastWithAction.qml'
--- src/app/qml/common/ToastWithAction.qml	2015-07-14 15:43:11 +0000
+++ src/app/qml/common/ToastWithAction.qml	1970-01-01 00:00:00 +0000
@@ -1,117 +0,0 @@
-/*
-  Copyright (C) 2014, 2015 Stefano Verzegnassi
-
-    This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License 3 as published by
-  the Free Software Foundation.
-
-    This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-  GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-  along with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-import QtQuick 2.0
-import Ubuntu.Components 1.1
-import QtQuick.Layouts 1.1
-
-Rectangle {
-    id: rootItem
-
-    property alias text: label.text
-    readonly property alias action: action
-
-    width: parent.width
-    height: units.gu(8)
-
-    color: "#131313"
-    opacity: 0.85
-    layer.enabled: true
-
-    anchors {
-        horizontalCenter: parent.horizontalCenter
-        bottom: parent.bottom; bottomMargin: - height
-    }
-
-    MouseArea {
-        anchors.fill: parent
-
-        onClicked: {
-            showAnimation.stop()
-            destroyAnimation.restart()
-        }
-    }
-
-    RowLayout {
-        anchors {
-            fill: parent
-            margins: units.gu(2)
-        }
-
-        Label {
-            id: label
-            Layout.fillWidth: true
-
-            font.weight: Font.DemiBold
-            color: "white"
-        }
-
-        AbstractButton {
-            Layout.preferredWidth: actionLabel.paintedWidth
-            Layout.fillHeight: true
-
-            onClicked: {
-                action.triggered("[Toast] Action %1 clicked!".arg(action.text))
-            }
-
-            Label {
-                id: actionLabel
-                text: action.text
-
-                font.capitalization: Font.AllUppercase
-                font.weight: Font.DemiBold
-                color: UbuntuColors.orange
-
-                anchors.centerIn: parent
-            }
-        }
-    }
-
-    Rectangle {
-        anchors {
-            bottom: parent.bottom
-            left: parent.left
-            right: parent.right
-        }
-
-        height: units.dp(2)
-        color: UbuntuColors.orange
-    }
-
-    Action {
-        id: action
-
-        text: i18n.tr("Dismiss")
-        onTriggered: destroyAnimation.restart()
-    }
-
-    SequentialAnimation {
-        id: showAnimation
-        running: true
-
-        NumberAnimation { target: rootItem; property: "anchors.bottomMargin"; to: 0; duration: 300 }
-        PauseAnimation { duration: 2000 }
-        ScriptAction { script: destroyAnimation.restart() }
-    }
-
-    SequentialAnimation {
-        id: destroyAnimation
-
-        NumberAnimation { target: rootItem; property: "opacity"; to: 0; duration: 500 }
-        ScriptAction { script: rootItem.destroy() }
-    }
-}
-

=== modified file 'src/app/qml/common/UnknownTypeDialog.qml'
--- src/app/qml/common/UnknownTypeDialog.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/common/UnknownTypeDialog.qml	2015-11-06 11:00:18 +0000
@@ -14,9 +14,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
+import QtQuick.Layouts 1.1
 
 import "loadComponent.js" as LoadComponent
 
@@ -24,20 +25,31 @@
     id: unknownDialog
     objectName: "unknownDialog"
     title: i18n.tr("Unknown file type")
-    text: i18n.tr("Sorry but we can't find a way to display this file. Do you want to open it as a plain text?")
-    Button {
-        text: i18n.tr("Yes")
-        color: UbuntuColors.green
-
-        onClicked: {
-            LoadComponent.load("text/plain");
-            PopupUtils.close(unknownDialog)
-        }
-    }
-    Button {
-        text: i18n.tr("No")
-        color: UbuntuColors.red
-        onClicked: PopupUtils.close(unknownDialog)
+    text: i18n.tr("Sorry but we can't find a way to display this file.\n\nDo you want to open it as a plain text?")
+
+    RowLayout {
+        anchors {
+            left: parent.left
+            right: parent.right
+            margins: units.gu(-1)
+        }
+
+        Button {
+            text: i18n.tr("Cancel")
+            onClicked: PopupUtils.close(unknownDialog)
+            Layout.fillWidth: true
+        }
+
+        Button {
+            text: i18n.tr("Yes")
+            color: UbuntuColors.green
+            Layout.fillWidth: true
+
+            onClicked: {
+                LoadComponent.load("text/plain");
+                PopupUtils.close(unknownDialog)
+            }
+        }
     }
 }
 

=== modified file 'src/app/qml/common/loadComponent.js'
--- src/app/qml/common/loadComponent.js	2015-02-13 15:30:01 +0000
+++ src/app/qml/common/loadComponent.js	2015-11-06 11:00:18 +0000
@@ -27,6 +27,16 @@
     if (mimetype === "application/pdf")
         qmlToLoad = Qt.resolvedUrl("../pdfView/PdfView.qml");
 
+    // Check if LibreOffice document
+    if (mimetype.indexOf("application/vnd.oasis.opendocument") > -1
+            || mimetype === "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+            || mimetype === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+            || mimetype === "application/vnd.openxmlformats-officedocument.presentationml.presentation"
+            || mimetype === "application/msword"
+            || mimetype === "application/vnd.ms-excel"
+            || mimetype === "application/vnd.ms-powerpoint")
+        qmlToLoad = Qt.resolvedUrl("../loView/LOViewPage.qml")
+
     if (qmlToLoad != "") {
        pageStack.push(qmlToLoad);
     } else {

=== modified file 'src/app/qml/common/utils.js'
--- src/app/qml/common/utils.js	2015-03-04 17:48:47 +0000
+++ src/app/qml/common/utils.js	2015-11-06 11:00:18 +0000
@@ -36,3 +36,31 @@
 function getNameOfFile(path) {
     return path.toString().substring(path.lastIndexOf('/') + 1);
 }
+
+function getIconNameFromMimetype(mimetype) {
+    if (mimetype.substring(0, 5) === "text/")
+        return "text-x-generic-symbolic"
+
+    if (mimetype.substring(0, 5) === "image")
+        return "image-x-generic-symbolic"
+
+    if (mimetype === "application/pdf")
+        return "application-pdf-symbolic"
+
+    if (mimetype === "application/vnd.oasis.opendocument.text"
+            || mimetype === "application/msword"
+            || mimetype === "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
+        return "x-office-document-symbolic"
+
+    if (mimetype === "application/vnd.oasis.opendocument.spreadsheet"
+            || mimetype === "application/vnd.ms-excel"
+            || mimetype === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+        return "x-office-spreadsheet-symbolic"
+
+    if (mimetype === "application/vnd.oasis.opendocument.presentation"
+            || mimetype === "application/vnd.ms-powerpoint"
+            || mimetype === "application/vnd.openxmlformats-officedocument.presentationml.presentation")
+        return "x-office-presentation-symbolic"
+
+    return "package-x-generic-symbolic"
+}

=== modified file 'src/app/qml/documentPage/DeleteFileDialog.qml'
--- src/app/qml/documentPage/DeleteFileDialog.qml	2015-07-01 16:05:59 +0000
+++ src/app/qml/documentPage/DeleteFileDialog.qml	2015-11-06 11:00:18 +0000
@@ -15,56 +15,69 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
+import QtQuick.Layouts 1.1
 
 Dialog {
     id: deleteFileDialog
 
     property string path
-    property int __deleteCount: documentPage.view.item.selectedItems.count
+    property var selectedIndices: viewLoader.item.ViewItems.selectedIndices;
+    property int deleteCount: selectedIndices.length
 
-    // WORKAROUND: This property is used only when user wants to remove a single
-    // file from a delegate action, and the value of the property is read during
-    // the Component.onDestruction event.
+    // WORKAROUND: This property is only used when the dialog is opened from a
+    // ListView delegate action for removing a single file.
+    // In this case, we remove the file as soon as the dialog is destroyed
+    // (it means that docModel.rm() is called externally).
     // We do this because we need to avoid that the entry in the model is removed
     // before this dialog is closed.
     // See src/app/qml/documentPage/DocumentDelegateActions.qml
     property bool confirmed: false
 
-    title: path ? i18n.tr("Delete file") :
-                  i18n.tr("Delete %1 file", "Delete %1 files", __deleteCount).arg(__deleteCount)
-    text: path ? i18n.tr("Are you sure you want to permanently delete this file?") :
-                 i18n.tr("Are you sure you want to permanently delete this file?",
-                            "Are you sure you want to permanently delete these files?",
-                            __deleteCount)
-
-    Button {
-        text: i18n.tr("Cancel")
-        onClicked: PopupUtils.close(deleteFileDialog)
-    }
-
-    Button {
-        text: i18n.tr("Delete")
-        color: UbuntuColors.red
-
-        onClicked: {
-            if (deleteFileDialog.path) {
-               deleteFileDialog.confirmed = true;
-            } else {
-                // This is called from selection mode
-                var items = documentPage.view.item.selectedItems;
-
-                for (var i=0; i < items.count; i++) {
-                    console.log("Removing:", items.get(i).model.path);
-                    docModel.rm(items.get(i).model.path);
+    title: path ? i18n.tr("Delete file")
+                : i18n.tr("Delete %1 file", "Delete %1 files", deleteCount).arg(deleteCount)
+    text: path ? i18n.tr("Are you sure you want to permanently delete this file?")
+               : i18n.tr("Are you sure you want to permanently delete this file?",
+                         "Are you sure you want to permanently delete these files?",
+                         deleteCount)
+
+
+    RowLayout {
+        anchors {
+            left: parent.left
+            right: parent.right
+            margins: units.gu(-1)
+        }
+
+        Button {
+            text: i18n.tr("Cancel")
+            onClicked: PopupUtils.close(deleteFileDialog)
+            Layout.fillWidth: true
+        }
+
+        Button {
+            text: i18n.tr("Delete")
+            color: UbuntuColors.red
+            Layout.fillWidth: true
+
+            onClicked: {
+                if (deleteFileDialog.path) {
+                    // WORKAROUND: See above.
+                    deleteFileDialog.confirmed = true;
+                } else {
+                    // This is called from selection mode
+                    for (var i=0; i < selectedIndices.length; i++) {
+                        console.log("Removing:", folderModel.get(selectedIndices[i]).path);
+                        docModel.rm(folderModel.get(selectedIndices[i]).path);
+                    }
+
+                    viewLoader.item.cancelSelection();
                 }
 
-                viewLoader.item.endSelection();
+                PopupUtils.close(deleteFileDialog)
             }
-
-            PopupUtils.close(deleteFileDialog)
         }
     }
 }

=== modified file 'src/app/qml/documentPage/DocumentDelegateActions.qml'
--- src/app/qml/documentPage/DocumentDelegateActions.qml	2015-07-01 16:05:59 +0000
+++ src/app/qml/documentPage/DocumentDelegateActions.qml	2015-11-06 11:00:18 +0000
@@ -14,10 +14,12 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 
+// TODO: Probably requires some change in order to work with latest ListItem 1.2
+
 QtObject {
     property list<Action> leadingActions: [
         Action {
@@ -27,15 +29,24 @@
                 var dialog = PopupUtils.open(Qt.resolvedUrl("DeleteFileDialog.qml"),
                                 documentPage, { path: model.path })
 
+                // See DeleteFileDialog.qml
                 dialog.Component.destruction.connect(function() {
                     if (dialog.confirmed) {
                         console.log("Removing:", model.path);
                         docModel.rm(model.path);
                     }
-                });
+                })
             }
         }
     ]
 
-    property list<Action> trailingActions
+    property list<Action> trailingActions: [
+        Action {
+            iconName: "share"
+            text: i18n.tr("Share")
+            onTriggered: {
+                pageStack.push(Qt.resolvedUrl("./SharePage.qml"), { fileUrl: model.path })
+            }
+        }
+    ]
 }

=== modified file 'src/app/qml/documentPage/DocumentEmptyState.qml'
--- src/app/qml/documentPage/DocumentEmptyState.qml	2015-02-26 20:16:32 +0000
+++ src/app/qml/documentPage/DocumentEmptyState.qml	2015-11-06 11:00:18 +0000
@@ -14,7 +14,7 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
+import QtQuick 2.4
 import "../upstreamComponents"
 
 Item {
@@ -22,10 +22,7 @@
 
     EmptyState {
         title: i18n.tr("No document found")
-
-        // TODO: Add "or insert removable media with documents." to subTitle when
-        // the support for SD card will be implemented.
-        subTitle: i18n.tr("Connect your device to any computer and simply drag files to the Documents folder.")
+        subTitle: i18n.tr("Connect your device to any computer and simply drag files to the Documents folder or insert removable media with documents.")
         iconName: "edit-copy"
 
         anchors.centerIn: parent

=== removed file 'src/app/qml/documentPage/DocumentGridDelegate.qml'
--- src/app/qml/documentPage/DocumentGridDelegate.qml	2015-07-14 13:43:17 +0000
+++ src/app/qml/documentPage/DocumentGridDelegate.qml	1970-01-01 00:00:00 +0000
@@ -1,113 +0,0 @@
-/*
-  Copyright (C) 2015 Stefano Verzegnassi
-
-    This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License 3 as published by
-  the Free Software Foundation.
-
-    This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-  GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-  along with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-import QtQuick 2.0
-import Ubuntu.Components 1.1
-
-import "../common/utils.js" as Utils
-
-TileBase {
-    id: root
-
-    function formattedDateTime() {
-        var date = new Date(model.date)
-        var diff = model.dateDiff
-
-        if (diff < 1)
-            // TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
-            // http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-            return i18n.tr("Today, %1").arg(Qt.formatTime(date, Qt.locale().timeFormat(Locale.ShortFormat)))
-
-        if (diff < 2)
-            // TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
-            // http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-            return i18n.tr("Yesterday, %1").arg(Qt.formatTime(date, Qt.locale().timeFormat(Locale.ShortFormat)))
-
-        if (diff < 7)
-            // TRANSLATORS: this is a datetime formatting string,
-            // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-            return Qt.formatDateTime(date, i18n.tr("dddd, hh:mm"))
-
-        // TRANSLATORS: this is a datetime formatting string,
-        // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-        return Qt.formatDateTime(date, i18n.tr("dd-MM-yyyy hh:mm"))
-    }
-
-    title: model.name
-    text: formattedDateTime()
-    subText: Utils.printSize(i18n, model.size)
-
-    leadingActions: documentDelegateActions.leadingActions
-    trailingActions: documentDelegateActions.trailingActions
-
-    Icon {
-        id: extStorageIcon
-
-        width: units.gu(4)
-        height: units.gu(4)
-        anchors {
-            left: parent.left
-            top: parent.top
-            margins: units.gu(0.5)
-        }
-
-        visible: model.isFromExternalStorage
-        source: Qt.resolvedUrl("../../graphics/sd-card-symbolic.png")
-    }
-
-    // Document mimetype icon
-    Icon {
-        anchors.centerIn: parent
-        width: units.gu(8); height: width
-
-        // At the moment the suru icon theme doesn't have much icons.
-        // Just some note for the future:
-        // TODO: Add icons for Office/ODF documents
-        // TODO: Whenever there will be icons for source code files, add them.
-        name: {
-            if (model.mimetype.substring(0, 5) === "text/")
-                return "text-x-generic-symbolic"
-
-            if (model.mimetype.substring(0, 5) === "image")
-                return "image-x-generic-symbolic"
-
-            if (model.mimetype === "application/pdf")
-                return "application-pdf-symbolic"
-
-            return "package-x-generic-symbolic"
-        }
-    }
-
-    // Cover
-    /* Image {
-        anchors.fill: parent
-
-        source: {
-            if (model.cover !== "" && typeof model.cover !== "undefined")
-                return model.cover
-
-            if (model.mimetype.toString().indexOf("image") !== -1)
-                return model.path
-
-            return ""
-        }
-
-        sourceSize.width: width
-        fillMode: Image.PreserveAspectCrop
-    }*/
-
-    DocumentDelegateActions { id: documentDelegateActions }
-}

=== removed file 'src/app/qml/documentPage/DocumentGridView.qml'
--- src/app/qml/documentPage/DocumentGridView.qml	2015-06-22 17:04:27 +0000
+++ src/app/qml/documentPage/DocumentGridView.qml	1970-01-01 00:00:00 +0000
@@ -1,84 +0,0 @@
-/*
-  Copyright (C) 2015 Stefano Verzegnassi
-
-    This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License 3 as published by
-  the Free Software Foundation.
-
-    This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-  GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-  along with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-import QtQuick 2.0
-import Ubuntu.Components 1.1
-
-import "../upstreamComponents"
-
-MultipleSelectionGridView {
-    id: documentGridView
-
-    // We use mainView.width to calculate the size and the spacing of elements.
-    // That's because this GridView always fills (and always will) the whole size of MainView.
-    // By this way, we can avoid binding loops, keeping the code pretty simple.
-    anchors {
-        fill: parent
-        margins: units.gu(0.5)
-        leftMargin: (mainView.width % cellWidth) * 0.5
-        rightMargin: (mainView.width % cellWidth) * 0.5
-    }
-    clip: true
-
-    cellHeight: cellWidth
-    cellWidth: (mainView.width > units.gu(50)) ? units.gu(24)
-                                               : (mainView.width - units.gu(2)) * 0.5
-
-    listDelegate: DocumentGridDelegate {
-        id: delegate
-        width: cellWidth
-        height: cellHeight
-
-        selectionMode: documentGridView.isInSelectionMode
-        selected: documentGridView.isSelected(delegate)
-
-        onClicked: {
-            if(documentGridView.isInSelectionMode) {
-                if(!documentGridView.selectItem(delegate)) {
-                    documentGridView.deselectItem(delegate)
-                }
-                return
-            }
-            else {
-                mainView.openDocument(model.path)
-            }
-        }
-
-        onPressAndHold: {
-            if (!documentGridView.isInSelectionMode) {
-                documentGridView.startSelection()
-                documentGridView.selectItem(delegate)
-            }
-        }
-    }
-
-    listModel: folderModel
-
-    Scrollbar {
-        flickableItem: documentGridView
-        parent: documentGridView.parent
-    }
-
-    Connections {
-        target: sortSettings
-
-        onSortModeChanged: {
-            documentGridView.positionViewAtBeginning()
-        }
-    }
-
-    Component.onCompleted: { if (DOC_VIEWER.pickModeEnabled) documentGridView.startSelection(); }
-}

=== modified file 'src/app/qml/documentPage/DocumentListDelegate.qml'
--- src/app/qml/documentPage/DocumentListDelegate.qml	2015-07-24 09:12:38 +0000
+++ src/app/qml/documentPage/DocumentListDelegate.qml	2015-11-06 11:00:18 +0000
@@ -14,132 +14,118 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import QtQuick.Layouts 1.1
-import QtGraphicalEffects 1.0
+import DocumentViewer 1.0
 
 import "../common/utils.js" as Utils
-import "../upstreamComponents"
-
-ListItemWithActions {
-    property QtObject documentDelegateActions: DocumentDelegateActions { }
-
-    function formattedDateTime() {
-        var date = new Date(model.date)
-        var diff = model.dateDiff
-
-        if (sortSettings.sortMode !== 0) {  // The sort rule is not "by date"
-            switch(diff) {
-            case 0:     // DocumentsModel.Today
-                // TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
-                // http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-                return i18n.tr("Today, %1").arg(Qt.formatTime(date, Qt.locale().timeFormat(Locale.ShortFormat)))
-
-            case 1:     // DocumentsModel.Yesterday
-                // TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
-                // http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
-                return i18n.tr("Yesterday, %1").arg(Qt.formatTime(date, Qt.locale().timeFormat(Locale.ShortFormat)))
-
-            default:    // DocumentsModel.LastWeek || DocumentsModel.LastMonth || DocumentsModel.Earlier
-                // TRANSLATORS: this is a datetime formatting string,
-                // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-                return Qt.formatDateTime(date, i18n.tr("dd-MM-yyyy hh:mm"))
-            }
-        } else {
-            switch(diff) {
-            case 0:     // DocumentsModel.Today, or
-            case 1:     // DocumentsModel.Yesterday
-                return Qt.formatDateTime(date, Qt.locale().timeFormat(Locale.ShortFormat))
-
-            case 2:     // DocumentsModel.LastWeek
-                // TRANSLATORS: this is a datetime formatting string,
-                // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-                return Qt.formatDateTime(date, i18n.tr("dddd, hh:mm"))
-
-            default:    // DocumentsModel.LastMonth || DocumentsModel.Earlier
-                // TRANSLATORS: this is a datetime formatting string,
-                // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
-                return Qt.formatDateTime(date, i18n.tr("dd-MM-yyyy hh:mm"))
-            }
-        }
-    }
-
-    anchors { left: parent.left; right: parent.right }
-    height: units.gu(8)
-
-    locked: documentPage.state == "pickMode"
-
-    leftSideAction: documentDelegateActions.leadingActions[0]
-    rightSideActions: documentDelegateActions.trailingActions
-
-    contents: RowLayout {
-        anchors.fill: parent
+
+// TODO: Ask for a review of this component to the design team
+
+ListItem {
+    id: listDelegate
+    height: units.gu(9)
+    leadingActions: ListItemActions { actions: documentDelegateActions.leadingActions }
+    trailingActions: ListItemActions { actions: documentDelegateActions.trailingActions }
+
+    RowLayout {
         spacing: units.gu(2)
+        anchors {
+            fill: parent; margins: units.gu(1)
+            leftMargin: units.gu(2)
+            rightMargin: units.gu(2)
+        }
 
         Icon {
+            name: Utils.getIconNameFromMimetype(model.mimetype)
             Layout.preferredWidth: height
             Layout.preferredHeight: units.gu(5)
-
-            // At the moment the suru icon theme doesn't have much icons.
-            name: {
-                if (model.mimetype.substring(0, 5) === "text/")
-                    return "text-x-generic-symbolic"
-
-                if (model.mimetype.substring(0, 5) === "image")
-                    return "image-x-generic-symbolic"
-
-                if (model.mimetype === "application/pdf")
-                    return "application-pdf-symbolic"
-
-                return "package-x-generic-symbolic"
-            }
-
-            Rectangle {
-                anchors {
-                    right: parent.right
-                    bottom: parent.bottom
-                }
-
-                width: units.gu(2.5)
-                height: units.gu(2.5)
-
-                visible: model.isFromExternalStorage
-                color: mainView.backgroundColor
-
-                Icon {
-                    anchors.fill: parent
-                    source: Qt.resolvedUrl("../../graphics/sd-card-symbolic.png")
-                }
-            }
         }
 
         Column {
             Layout.fillWidth: true
 
-            Label {
-                text: model.name
-                wrapMode: Text.Wrap
-                width: parent.width
-
-                color: UbuntuColors.midAubergine
-            }
-
             RowLayout {
                 width: parent.width
-
                 Label {
-                    text: formattedDateTime()
-                    fontSize: "small"
-
+                    text: model.name
+                    //wrapMode: Text.Wrap
+                    elide: Text.ElideRight
+                    color: UbuntuColors.midAubergine
                     Layout.fillWidth: true
                 }
-
                 Label {
                     text: Utils.printSize(i18n, model.size)
                     fontSize: "small"
                 }
             }
+
+            RowLayout {
+                width: parent.width
+                Label {
+                    text: internal.formattedDateTime()
+                    fontSize: "small"
+
+                    Layout.fillWidth: true
+                }
+                Icon {
+                    width: units.gu(2); height: width
+                    name: "sdcard-symbolic"
+                    visible: model.isFromExternalStorage
+                }
+            }
+        }
+    }
+
+    DocumentDelegateActions { id: documentDelegateActions }
+
+    QtObject {
+        id: internal
+
+        function formattedDateTime() {
+            var date = new Date(model.date)
+            var diff = model.dateDiff
+
+            if (sortSettings.sortMode !== 0) {  // Sort is not "by date"
+                switch(diff) {
+                case DocumentsModel.Today:
+                    // TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
+                    // http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
+                    return i18n.tr("Today, %1").arg(Qt.formatTime(date, Qt.locale().timeFormat(Locale.ShortFormat)))
+
+                case DocumentsModel.Yesterday:
+                    // TRANSLATORS: %1 refers to a time formatted as Locale.ShortFormat (e.g. hh:mm). It depends on system settings.
+                    // http://qt-project.org/doc/qt-4.8/qlocale.html#FormatType-enum
+                    return i18n.tr("Yesterday, %1").arg(Qt.formatTime(date, Qt.locale().timeFormat(Locale.ShortFormat)))
+
+                case DocumentsModel.LastWeek:
+                case DocumentsModel.LastMonth:
+                case DocumentsModel.Earlier:
+                    // TRANSLATORS: this is a datetime formatting string,
+                    // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+                    return Qt.formatDateTime(date, i18n.tr("yyyy/MM/dd hh:mm"))
+                }
+            }
+
+            else {  //
+                switch(diff) {  // Sort "by date"
+                case DocumentsModel.Today:
+                case DocumentsModel.Yesterday:
+                    return Qt.formatDateTime(date, Qt.locale().timeFormat(Locale.ShortFormat))
+
+                case DocumentsModel.LastWeek:
+                    // TRANSLATORS: this is a datetime formatting string,
+                    // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+                    return Qt.formatDateTime(date, i18n.tr("dddd, hh:mm"))
+
+                case DocumentsModel.LastMonth:
+                case DocumentsModel.Earlier:
+                    // TRANSLATORS: this is a datetime formatting string,
+                    // see http://qt-project.org/doc/qt-5/qml-qtqml-date.html#details for valid expressions.
+                    return Qt.formatDateTime(date, i18n.tr("yyyy/MM/dd hh:mm"))
+                }
+            }
         }
     }
 }

=== modified file 'src/app/qml/documentPage/DocumentListView.qml'
--- src/app/qml/documentPage/DocumentListView.qml	2015-06-22 17:04:27 +0000
+++ src/app/qml/documentPage/DocumentListView.qml	2015-11-06 11:00:18 +0000
@@ -14,161 +14,83 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
-import Ubuntu.Components.ListItems 1.0 as ListItem
-import DocumentViewer 1.0
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 
 import "../upstreamComponents"
 
-MultipleSelectionListView {
+ListView {
     id: documentListView
-
     anchors { fill: parent; margins: units.gu(0.5) }
     clip: true
 
-    property var _currentSwipedItem: null
-
-    function _updateSwipeState(item)
-    {
-        if (item.swipping) {
-            return
-        }
-
-        if (item.swipeState !== "Normal") {
-            if (documentListView._currentSwipedItem !== item) {
-                if (documentListView._currentSwipedItem) {
-                    documentListView._currentSwipedItem.resetSwipe()
-                }
-                documentListView._currentSwipedItem = item
-            }
-        } else if (item.swipeState !== "Normal"
-                   && documentListView._currentSwipedItem === item) {
-            documentListView._currentSwipedItem = null
-        }
-    }
-
-    listDelegate: DocumentListDelegate {
-        id: delegate
-
-        property var removalAnimation
-
-        function remove() {
-            removalAnimation.start()
-        }
-
-        selectionMode: documentListView.isInSelectionMode
-        selected: documentListView.isSelected(delegate)
-
-        onSwippingChanged: {
-            _updateSwipeState(delegate)
-        }
-
-        onSwipeStateChanged: {
-            _updateSwipeState(delegate)
-        }
-
-        ListView.onRemove: ScriptAction {
-            script: {
-                if (_currentSwipedItem
-                        === delegate) {
-                    _currentSwipedItem = null
-                }
-            }
-        }
-
-        removalAnimation: SequentialAnimation {
-            alwaysRunToEnd: true
-
-            PropertyAction {
-                target: delegate
-                property: "ListView.delayRemove"
-                value: true
-            }
-
-            UbuntuNumberAnimation {
-                target: delegate
-                property: "height"
-                to: 0
-            }
-
-            PropertyAction {
-                target: delegate
-                property: "ListView.delayRemove"
-                value: false
-            }
-
-            ScriptAction {
-                script: {
-                    var filePath = d.folderModel.get(index, "filePath")
-                    Storage.rm(filePath)
-                }
-            }
-        }
-
-        onItemClicked: {
-            if(documentListView.isInSelectionMode) {
-                if(!documentListView.selectItem(delegate)) {
-                    documentListView.deselectItem(delegate)
-                }
-                return
-            }
-
-            else {
-                mainView.openDocument(model.path)
-            }
-        }
-
-        onItemPressAndHold: {
-            if (!documentListView.isInSelectionMode) {
-                documentListView.startSelection()
-                documentListView.selectItem(delegate)
-            }
-        }
-    }
-
-    listModel: folderModel
-
-    section.property: {
-        switch (sortSettings.sortMode) {
-        case 0:     // sort by date
-            return "dateDiff"
-        case 1:     // sort by name
-            return "name"
-        default:    // sort by size -> do not show section header
-            return ""
-        }
-    }
-
-    section.criteria: {
-        if (sortSettings.sortMode === 1)    // sort by name
-            return ViewSection.FirstCharacter
-
-        return ViewSection.FullString
-    }
-
-    section.delegate: ListItem.Header {
-        text: {
+    function isMultipleSelection() {
+        // No active transfer, then we're in selection mode.
+        if (!contentHubProxy.activeTransfer)
+            return true
+
+        // We have an active transfer, get the value from the content hub proxy
+        return contentHubProxy.multipleSelectionType
+    }
+
+    function clearSelection() {
+        ViewItems.selectedIndices = []
+    }
+
+    function selectAll() {
+        clearSelection()
+
+        for (var i=0; i < model.count; i++) {
+            ViewItems.selectedIndices.push(i)
+        }
+    }
+
+    function cancelSelection() {
+        clearSelection()
+        ViewItems.selectMode = false
+    }
+
+    function startSelection() {
+        ViewItems.selectMode = true
+    }
+
+    model: folderModel
+    delegate: DocumentListDelegate {
+        onClicked: {
+            if (selectMode) {
+                if (!isMultipleSelection())
+                    clearSelection()
+
+                selected = !selected
+                return;
+            }
+
+            mainView.openDocument(model.path)
+        }
+
+        onPressAndHold: {
+            ListView.view.ViewItems.selectMode = !ListView.view.ViewItems.selectMode
+            selected = true
+        }
+    }
+
+    section {
+        delegate: SectionHeader { }
+        property: {
+            switch (sortSettings.sortMode) {
+            case 0:     // sort by date
+                return "dateDiff"
+            case 1:     // sort by name
+                return "name"
+            default:    // sort by size -> do not show section header
+                return ""
+            }
+        }
+        criteria: {
             if (sortSettings.sortMode === 1)    // sort by name
-                return section.toUpperCase()
-
-            if (sortSettings.sortMode === 0) {    // sort by date
-                if (section == DocumentsModel.Today)
-                    return i18n.tr("Today")
-
-                if (section == DocumentsModel.Yesterday)
-                    return i18n.tr("Yesterday")
-
-                if (section == DocumentsModel.LastWeek)
-                    return i18n.tr("Earlier this week")
-
-                if (section == DocumentsModel.LastMonth)
-                    return i18n.tr("Earlier this month")
-
-                return i18n.tr("Even earlier...")
-            }
-
-            return ""
+                return ViewSection.FirstCharacter
+
+            return ViewSection.FullString
         }
     }
 
@@ -179,11 +101,8 @@
 
     Connections {
         target: sortSettings
-
-        onSortModeChanged: {
-            documentListView.positionViewAtBeginning()
-        }
+        onSortModeChanged: documentListView.positionViewAtBeginning()
     }
 
-    Component.onCompleted: { if (DOC_VIEWER.pickModeEnabled) documentListView.startSelection(); }
+    Component.onCompleted: if (mainView.pickMode) documentListView.startSelection()
 }

=== modified file 'src/app/qml/documentPage/DocumentPage.qml'
--- src/app/qml/documentPage/DocumentPage.qml	2015-06-22 16:39:07 +0000
+++ src/app/qml/documentPage/DocumentPage.qml	2015-11-06 11:00:18 +0000
@@ -14,13 +14,12 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Qt.labs.settings 1.0
 
 Page {
     id: documentPage
-
     title: i18n.tr("Documents")
     flickable: null
 
@@ -41,12 +40,23 @@
 
     Loader {
         id: viewLoader
-        anchors.fill: parent
-
-        source: (folderModel.count === 0) ? documentPage.state == "search" ? Qt.resolvedUrl("./SearchEmptyState.qml")
-                                                                           : Qt.resolvedUrl("./DocumentEmptyState.qml")
-                                          : useGridView ? Qt.resolvedUrl("./DocumentGridView.qml")
-                                                        : Qt.resolvedUrl("./DocumentListView.qml")
+
+        width: Math.min(units.gu(80), parent.width)
+        anchors {
+            top: parent.top
+            bottom: parent.bottom
+            horizontalCenter: parent.horizontalCenter
+        }
+
+        source: {
+            if (folderModel.count === 0) {
+                return documentPage.state == "search"
+                        ? Qt.resolvedUrl("SearchEmptyState.qml")
+                        : Qt.resolvedUrl("BrowserEmptyState.qml")
+            }
+
+            return Qt.resolvedUrl("DocumentListView.qml")
+        }
     }
 
     // *** HEADER ***
@@ -54,7 +64,7 @@
         DocumentPageDefaultHeader {
             name: "default"
             targetPage: documentPage
-            when: !mainView.pickMode && !viewLoader.item.isInSelectionMode && !documentPage.searchMode
+            when: !mainView.pickMode && !viewLoader.item.ViewItems.selectMode && !documentPage.searchMode
         },
 
         DocumentPagePickModeHeader {
@@ -66,21 +76,21 @@
         DocumentPageSelectionModeHeader {
             name: "selection"
             targetPage: documentPage
-            when: !mainView.pickMode && viewLoader.item.isInSelectionMode
+            when: !mainView.pickMode && viewLoader.item.ViewItems.selectMode
         },
 
         DocumentPageSearchHeader {
             name: "search"
             targetPage: documentPage
-            when: !mainView.pickMode && !viewLoader.item.isInSelectionMode && documentPage.searchMode
+            when: !mainView.pickMode && !viewLoader.item.ViewItems.selectMode && documentPage.searchMode
         }
     ]
 
     Connections {
-        target: DOC_VIEWER
+        target: mainView
 
-        onPickModeEnabledChanged: {
-            if (DOC_VIEWER.pickModeEnabled) {
+        onPickModeChanged: {
+            if (mainView.pickMode) {
                 viewLoader.item.startSelection()
             } else {
                 viewLoader.item.cancelSelection()

=== modified file 'src/app/qml/documentPage/DocumentPageDefaultHeader.qml'
--- src/app/qml/documentPage/DocumentPageDefaultHeader.qml	2015-06-12 14:47:40 +0000
+++ src/app/qml/documentPage/DocumentPageDefaultHeader.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 
 PageHeadState {
@@ -29,25 +29,23 @@
             text: i18n.tr("Search...")
             iconName: "search"
             onTriggered: targetPage.searchMode = true
-
             visible: folderModel.count !== 0
         },
 
         Action {
             text: i18n.tr("Sorting settings...")
-            iconSource: Qt.resolvedUrl("../../graphics/settings_alt.svg")
+            iconName: "settings"
             onTriggered: PopupUtils.open(Qt.resolvedUrl("SortSettingsDialog.qml"))
-
             visible: folderModel.count !== 0
-        },
+        }
 
+        /*
         Action {
-            id: switchView
             text: targetPage.useGridView ? i18n.tr("Switch to single column list") : i18n.tr("Switch to grid")
             iconName: targetPage.useGridView ? "view-list-symbolic" : "view-grid-symbolic"
             onTriggered: targetPage.useGridView = !targetPage.useGridView
-
             visible: folderModel.count !== 0
         }
+        */
     ]
 }

=== modified file 'src/app/qml/documentPage/DocumentPagePickModeHeader.qml'
--- src/app/qml/documentPage/DocumentPagePickModeHeader.qml	2015-03-03 15:41:11 +0000
+++ src/app/qml/documentPage/DocumentPagePickModeHeader.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Content 1.1
 
 PageHeadState {
     id: rootItem
@@ -27,7 +28,12 @@
         text: i18n.tr("Cancel")
         objectName: "cancelButton"
         iconName: "close"
-        onTriggered: DOC_VIEWER.contentPickingCanceled()
+        onTriggered: {
+            if (!contentHubProxy.activeTransfer)
+                return;
+
+            contentHubProxy.activeTransfer.state = ContentTransfer.Aborted;
+        }
     }
 
     actions: [
@@ -45,17 +51,18 @@
             enabled: viewLoader.item.selectedItems.count > 0
             iconName: "ok"
             onTriggered: {
-                if (!enabled)
+                if (!enabled || !contentHubProxy.activeTransfer)
                     return;
 
                 var urlList = []
-                var items = documentPage.view.item.selectedItems;
+                var indices = documentPage.view.item.selectedIndices;
 
-                for (var i=0; i < items.count; i++) {
-                    urlList.push(items.get(i).model.path);
+                for (var i=0; i < indices.length; i++) {
+                    urlList.push("file://" + folderModel.get(i).path);
                 }
 
-                DOC_VIEWER.returnPickedContent(urlList);
+                contentHubProxy.activeTransfer.items = urlList
+                contentHubProxy.activeTransfer.state = ContentTransfer.Charged
             }
         }
     ]

=== modified file 'src/app/qml/documentPage/DocumentPageSearchHeader.qml'
--- src/app/qml/documentPage/DocumentPageSearchHeader.qml	2015-06-12 14:04:40 +0000
+++ src/app/qml/documentPage/DocumentPageSearchHeader.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 
 PageHeadState {
     id: rootItem

=== modified file 'src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml'
--- src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml	2015-03-04 17:44:36 +0000
+++ src/app/qml/documentPage/DocumentPageSelectionModeHeader.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 
 import "../upstreamComponents"
@@ -24,9 +24,10 @@
     id: rootItem
 
     property Page targetPage
-
     head: targetPage.head
 
+    property bool selectedAll: viewLoader.item.ViewItems.selectedIndices.length == viewLoader.item.count
+
     backAction: Action {
         iconName: "close"
         text: i18n.tr("Close")
@@ -35,61 +36,40 @@
         }
     }
 
-    contents: Loader {
-        id: selectionStateLoader
-        active: documentPage.state === "selection"
-        sourceComponent: Item {
-            HeaderButton {
-                id: selectButton
-
-                anchors {
-                    right: deleteButton.left
-                    rightMargin: units.gu(1)
-                }
-
-                text: {
-                    if(viewLoader.item.selectedItems.count === viewLoader.item.count) {
-                        return i18n.tr("Select None")
-                    } else {
-                        return i18n.tr("Select All")
-                    }
-                }
-
-                iconSource: {
-                    if(viewLoader.item.selectedItems.count === viewLoader.item.count) {
-                        return Qt.resolvedUrl("../../graphics/select-none.svg")
-                    } else {
-                        return Qt.resolvedUrl("../../graphics/select.svg")
-                    }
-                }
-
-                onTriggered: {
-                    if(viewLoader.item.selectedItems.count === viewLoader.item.count) {
-                        viewLoader.item.clearSelection()
-                    } else {
-                        viewLoader.item.selectAll()
-                    }
-                }
-            }
-
-            HeaderButton {
-                id: deleteButton
-
-                anchors.right: parent.right
-                anchors.rightMargin: units.gu(2)
-
-                iconName: "delete"
-                text: i18n.tr("Delete")
-                enabled: viewLoader.item.selectedItems.count !== 0
-
-                onTriggered: {
-                    PopupUtils.open(Qt.resolvedUrl("DeleteFileDialog.qml"), documentPage)
-                }
-            }
-        }
-
-        height: parent ? parent.height : undefined
-        anchors.right: parent ? parent.right: undefined
+    actions: [
+        Action {
+            iconName: selectedAll ? "select-none" :  "select"
+            text: selectedAll ? i18n.tr("Select None") : i18n.tr("Select All")
+
+            onTriggered: {
+                if (selectedAll) {
+                    viewLoader.item.clearSelection()
+                } else {
+                    viewLoader.item.selectAll()
+                }
+            }
+        },
+
+        Action {
+            iconName: "delete"
+            text: i18n.tr("Delete")
+            enabled: viewLoader.item.ViewItems.selectedIndices.length !== 0
+
+            onTriggered: PopupUtils.open(Qt.resolvedUrl("DeleteFileDialog.qml"), documentPage)
+        }
+    ]
+
+    // WORKAROUND: "preset" property of PageHeadConfiguration is still not
+    // exposed in PageHeadState.
+    contents: Item {
+        Connections {
+            target: targetPage
+            onStateChanged: {
+                if (targetPage.state === "selection")
+                    head.preset = "select"
+                else
+                    head.preset = ""
+            }
+        }
     }
-
 }

=== modified file 'src/app/qml/documentPage/SearchEmptyState.qml'
--- src/app/qml/documentPage/SearchEmptyState.qml	2015-06-10 17:22:28 +0000
+++ src/app/qml/documentPage/SearchEmptyState.qml	2015-11-06 11:00:18 +0000
@@ -14,7 +14,7 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
+import QtQuick 2.4
 import "../upstreamComponents"
 
 Item {

=== added file 'src/app/qml/documentPage/SectionHeader.qml'
--- src/app/qml/documentPage/SectionHeader.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/documentPage/SectionHeader.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,29 @@
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Components.ListItems 1.0 as ListItem
+import DocumentViewer 1.0
+
+ListItem.Header {
+    text: {
+        if (sortSettings.sortMode === 1)    // sort by name
+            return section.toUpperCase()
+
+        if (sortSettings.sortMode === 0) {    // sort by date
+            if (section == DocumentsModel.Today)
+                return i18n.tr("Today")
+
+            if (section == DocumentsModel.Yesterday)
+                return i18n.tr("Yesterday")
+
+            if (section == DocumentsModel.LastWeek)
+                return i18n.tr("Earlier this week")
+
+            if (section == DocumentsModel.LastMonth)
+                return i18n.tr("Earlier this month")
+
+            return i18n.tr("Even earlier...")
+        }
+
+        return ""
+    }
+}

=== added file 'src/app/qml/documentPage/SharePage.qml'
--- src/app/qml/documentPage/SharePage.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/documentPage/SharePage.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,56 @@
+/*
+  Copyright (C) 2015 Stefano Verzegnassi
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License 3 as published by
+  the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program. If not, see http://www.gnu.org/licenses/.
+*/
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Content 1.1
+
+Page {
+    id: sharePage
+    title: i18n.tr("Share to")
+
+    property url fileUrl
+    property var activeTransfer
+
+    ContentPeerPicker {
+        id: picker
+
+        contentType: ContentType.Documents
+        handler: ContentHandler.Share
+        showTitle: false
+
+        onPeerSelected: {
+            activeTransfer = peer.request();
+            activeTransfer.items = [ resultComponent.createObject(sharePage, { "url": fileUrl }) ];
+            activeTransfer.state = ContentTransfer.Charged;
+            pageStack.pop();
+        }
+
+        onCancelPressed: {
+            pageStack.pop();
+        }
+    }
+
+    ContentTransferHint {
+        anchors.fill: parent
+        activeTransfer: sharePage.activeTransfer
+    }
+
+    Component {
+        id: resultComponent
+        ContentItem {}
+    }
+}

=== modified file 'src/app/qml/documentPage/SortSettingsDialog.qml'
--- src/app/qml/documentPage/SortSettingsDialog.qml	2015-07-14 15:43:11 +0000
+++ src/app/qml/documentPage/SortSettingsDialog.qml	2015-11-06 11:00:18 +0000
@@ -15,8 +15,8 @@
   along with this program. If not, see http://www.gnu.org/licenses/.
 */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 import QtQuick.Layouts 1.1
 
@@ -51,6 +51,7 @@
 
     Button {
         text: i18n.tr("Close")
+        color: UbuntuColors.green
         onClicked: PopupUtils.close(sortSettingsDialog)
     }
 }

=== removed file 'src/app/qml/documentPage/TileBase.qml'
--- src/app/qml/documentPage/TileBase.qml	2015-07-14 13:20:35 +0000
+++ src/app/qml/documentPage/TileBase.qml	1970-01-01 00:00:00 +0000
@@ -1,369 +0,0 @@
-/*
-  Copyright (C) 2014, 2015 Canonical Ltd.
-
-    This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License 3 as published by
-  the Free Software Foundation.
-
-    This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-  GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-  along with this program. If not, see http://www.gnu.org/licenses/.
-*/
-
-import QtQuick 2.0
-import Ubuntu.Components 1.1
-import Ubuntu.Components.Popups 1.0
-import Ubuntu.Components.ListItems 1.0 as ListItem
-
-AbstractButton {
-    id: root
-
-    property bool selected: false
-    property bool selectionMode: false
-
-    default property alias content: tileContent.data
-
-    property alias title: titleLabel.text
-    property alias text: textLabel.text
-    property alias subText: subTextLabel.text
-
-    // We don't really have swipe gesture here, but we anyway use the same
-    // properties' name used for UITK1.2 ListItem just for consistency.
-    property list<Action> trailingActions   // Right to Left gesture in ListItem
-    property list<Action> leadingActions    // Left to Right gesture in ListItem
-
-    Rectangle {
-        id: rect
-
-        anchors { fill: parent; margins: units.gu(0.5) }
-
-        color: Qt.lighter(UbuntuColors.lightGrey)
-        clip: true
-
-        Item {
-            id: tileContent
-
-            height: parent.height - captionsLayout.height * 0.3 - units.gu(2)
-            anchors {
-                left: parent.left
-                right: parent.right
-                verticalCenter: parent.verticalCenter
-                verticalCenterOffset: - captionsLayout.height * 0.3
-            }
-        }
-
-        Loader {
-            id: overflowButton
-
-            anchors {
-                right: parent.right
-                top: parent.top
-            }
-
-            z: 10
-
-            sourceComponent: actionsOverflowButton
-
-            onStatusChanged: {
-                if (status === Loader.Ready) {
-                    item.iconName = "contextual-menu"
-                    item.color = UbuntuColors.darkGrey
-                    item.width = overflowButton.width
-                    item.height = overflowButton.height
-
-                    item.triggered.connect(function() {
-                        var overflowPanel = PopupUtils.open(actionsOverflowPopoverComponent, item)
-                        item.overflowPanelVisible = overflowPanel.visible;
-
-                        overflowPanel.visibleChanged.connect(function() {
-                            item.overflowPanelVisible = overflowPanel.visible
-                        });
-                    });
-                }
-            }
-
-            width: units.gu(5)
-            height: units.gu(5)
-            visible: rect.state !== "select" && (trailingActions.length > 0 || leadingActions.length > 0)
-
-            Behavior on opacity {
-                NumberAnimation {
-                    duration: UbuntuAnimation.SnapDuration
-                }
-            }
-        }
-
-        Loader {
-            id: selectionIcon
-
-            anchors {
-                right: parent.right
-                top: parent.top
-            }
-
-            z: 10
-
-            width: (status === Loader.Ready) ? item.implicitWidth : 0
-            visible: (status === Loader.Ready) && (item.width === item.implicitWidth)
-            Behavior on opacity {
-                NumberAnimation {
-                    duration: UbuntuAnimation.SnapDuration
-                }
-            }
-        }
-
-        // Tile captions
-        Rectangle {
-            id: captionsRect
-
-            anchors {
-                left: parent.left
-                right: parent.right
-                bottom: parent.bottom
-            }
-
-            height: captionsLayout.height + units.gu(1)
-
-            color: UbuntuColors.darkGrey
-            opacity: 0.75
-            layer.enabled: true
-
-            Column {
-                id: captionsLayout
-                anchors {
-                    left: parent.left;
-                    right: parent.right
-                    verticalCenter: parent.verticalCenter
-                    margins: units.gu(0.5)
-                }
-
-                Label {
-                    id: titleLabel
-                    color: "white"
-
-                    elide: Text.ElideRight
-                    font.weight: Font.DemiBold
-                    fontSize: "small"
-
-                    anchors { left: parent.left; right: parent.right }
-                }
-
-                Label {
-                    id: textLabel
-                    color: "white"
-                    fontSize: "small"
-
-                    anchors { left: parent.left; right: parent.right }
-                }
-
-                Label {
-                    id: subTextLabel
-                    color: "white"
-                    fontSize: "small"
-
-                    anchors { left: parent.left; right: parent.right }
-                }
-            }
-        }
-
-        states: [
-            State {
-                name: "select"
-                when: selectionMode || selected
-                PropertyChanges {
-                    target: selectionIcon
-                    sourceComponent: selectionCheckBox
-                    anchors.margins: units.gu(1)
-                }
-            }
-        ]
-    }
-
-    // *** COMPONENTS
-    Component {
-        id: selectionCheckBox
-
-        CheckBox {
-            checked: root.selected
-            width: implicitWidth
-            // disable item mouse area to avoid conflicts with parent mouse area
-            __mouseArea.enabled: false
-        }
-    }
-
-    Component {
-        id: actionsOverflowButton
-
-        AbstractButton {
-            id: button
-
-            property alias color: icon.color
-            property bool overflowPanelVisible: false
-
-            width: visible ? units.gu(5) : 0
-            height: parent ? parent.height : undefined
-            Rectangle {
-                visible: button.pressed || button.overflowPanelVisible
-                anchors.fill: parent
-                color: Theme.palette.selected.background
-            }
-
-            Icon {
-                id: icon
-                anchors.centerIn: parent
-
-                // prevent trying to render the icon with an invalid source
-                // when the button is invisible by setting width and height to 0
-                width: visible ? units.gu(2.5) : 0
-                height: visible ? units.gu(2.5) : 0
-                source: button.iconSource
-                color: Qt.rgba(0, 0, 0, 0)
-                opacity: button.enabled ? 1.0 : 0.3
-            }
-
-            Component {
-                id: labelComponent
-                Label {
-                    id: label
-                    objectName: button.objectName + "_label"
-                    color: button.color
-                    opacity: button.enabled ? 1.0 : 0.3
-                    text: button.text
-                    fontSize: "xx-small"
-                }
-            }
-            Loader {
-                anchors {
-                    top: icon.bottom
-                    topMargin: units.gu(0.5)
-                    horizontalCenter: parent.horizontalCenter
-                }
-                sourceComponent: button.state === "IconAndLabel" ? labelComponent : null
-            }
-        }
-    }
-
-    Component {
-        id: actionsOverflowPopoverComponent
-
-        Popover {
-            id: actionsOverflowPopover
-            property bool square: true
-            callerMargin: -units.gu(1) + units.dp(4)
-            contentWidth: units.gu(20)
-            contentHeight: popoverActionsLayout.height
-
-            Connections {
-                target: root
-                onLeadingActionsChanged: {
-                    actionsOverflowPopover.hide();
-                }
-                onTrailingActionsChanged: {
-                    actionsOverflowPopover.hide();
-                }
-            }
-
-            Column {
-                id: popoverActionsLayout
-                anchors {
-                    left: parent.left
-                    top: parent.top
-                    right: parent.right
-                }
-                Repeater {
-                    id: overflowTrailingRepeater
-                    model: root.trailingActions
-
-                    delegate: overflowPanelDelegate
-                    onItemAdded: {
-                        item.action = model[index]
-                        item.clicked.connect(function() {
-                            actionsOverflowPopover.hide()
-                        })
-
-                        item.showDivider = (overflowLeadingRepeater.count === 0) ? (index !== overflowTrailingRepeater.count - 1) : true
-                    }
-                }
-
-                Repeater {
-                    id: overflowLeadingRepeater
-                    model: root.leadingActions
-
-                    delegate: overflowPanelDelegate
-                    onItemAdded: {
-                        item.action = model[index]
-                        item.clicked.connect(function() {
-                            actionsOverflowPopover.hide()
-                        })
-
-                        item.showDivider = (index !== overflowLeadingRepeater.count - 1)
-                    }
-                }
-            }
-        }
-    }
-
-    Component {
-        id: overflowPanelDelegate
-
-        AbstractButton {
-            id: rootItem
-            implicitHeight: units.gu(6) + bottomDividerLine.height
-            width: parent ? parent.width : units.gu(31)
-
-            property bool showDivider: true
-            property color foregroundColor: Theme.palette.selected.backgroundText
-
-            Rectangle {
-                visible: parent.pressed
-                anchors {
-                    left: parent.left
-                    right: parent.right
-                    top: parent.top
-                }
-                height: parent.height - bottomDividerLine.height
-                color: Theme.palette.selected.background
-            }
-
-            Icon {
-                id: actionIcon
-                source: action.iconSource
-                color: rootItem.foregroundColor
-                anchors {
-                    verticalCenter: parent.verticalCenter
-                    verticalCenterOffset: units.dp(-1)
-                    left: parent.left
-                    leftMargin: units.gu(2)
-                }
-                width: units.gu(2)
-                height: units.gu(2)
-                opacity: action.enabled ? 1.0 : 0.5
-            }
-
-            Label {
-                anchors {
-                    verticalCenter: parent.verticalCenter
-                    verticalCenterOffset: units.dp(-1)
-                    left: actionIcon.right
-                    leftMargin: units.gu(2)
-                    right: parent.right
-                }
-                fontSize: "small"
-                elide: Text.ElideRight
-                text: action.text
-                color: rootItem.foregroundColor
-                opacity: action.enabled ? 1.0 : 0.5
-            }
-
-            ListItem.ThinDivider {
-                id: bottomDividerLine
-                anchors.bottom: parent.bottom
-                visible: rootItem.showDivider
-            }
-        }
-    }
-}

=== added directory 'src/app/qml/loView'
=== added file 'src/app/qml/loView/KeybHelper.js'
--- src/app/qml/loView/KeybHelper.js	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/KeybHelper.js	2015-11-06 11:00:18 +0000
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2015 Stefano Verzegnassi
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ 
+function parseEvent(event) {
+    var pixelDiff = 5;
+
+    var view = loPageContentLoader.item.loView
+    var isPresentation = view.document.documentType === LibreOffice.Document.PresentationDocument
+
+    if (event.key == Qt.Key_PageUp) {
+        if (isPresentation)
+            view.document.currentPart -= 1
+        else
+            view.moveView("vertical", -view.height)
+ 
+        return;
+    }
+ 
+    if (event.key == Qt.Key_PageDown) {
+        if (isPresentation)
+            view.document.currentPart += 1
+        else
+            view.moveView("vertical", view.height)
+ 
+        return;
+    }
+ 
+    if (event.key == Qt.Key_Home) {
+        if (event.modifiers & Qt.ControlModifier) {
+            view.contentX = 0
+            view.contentY = 0
+            view.document.currentPart = 0
+        } else {
+            view.contentX = 0
+            view.contentY = 0
+        }
+    }
+
+    if (event.key == Qt.Key_End) {
+        if (event.modifiers & Qt.ControlModifier) {
+            view.contentX = view.contentWidth - view.width
+            view.contentY = view.contentHeight - view.height
+            console.log(view.document.currentPart, view.document.partsCount - 1)
+            view.document.currentPart = view.document.partsCount - 1
+        } else {
+            view.contentX = view.contentWidth - view.width
+            view.contentY = view.contentHeight - view.height
+        }
+    }
+
+    if (event.key == Qt.Key_Up) {
+        view.moveView("vertical", -pixelDiff)
+        return;
+    }
+ 
+    if (event.key == Qt.Key_Down) {
+        view.moveView("vertical", pixelDiff)
+        return;
+    }
+ 
+    if (event.key == Qt.Key_Left) {
+        view.moveView("horizontal", -pixelDiff)
+        return;
+    }
+ 
+    if (event.key == Qt.Key_Right) {
+        view.moveView("horizontal", pixelDiff)
+        return;
+    }
+
+    if (event.key == Qt.Key_Plus) {
+        if (event.modifiers & Qt.ControlModifier) {
+            view.zoomFactor = Math.max(4.0, view.zoomFactor + 0.25)
+        }
+    }
+
+    if (event.key == Qt.Key_Minus) {
+        if (event.modifiers & Qt.ControlModifier) {
+            view.zoomFactor = Math.min(0.5, view.zoomFactor - 0.25)
+        }
+    }
+
+
+    /*
+    if (event.key == Qt.Key_C) {
+        if (event.modifiers & Qt.ControlModifier) {
+
+        }
+    }
+    */
+
+    /*
+    if (event.key == Qt.Key_X) {
+        if (event.modifiers & Qt.ControlModifier) {
+
+        }
+    }
+    */
+
+    /*
+    if (event.key == Qt.Key_V) {
+        if (event.modifiers & Qt.ControlModifier) {
+
+        }
+    }
+    */
+
+    /*
+    if (event.key == Qt.Key_A) {
+        if (event.modifiers & Qt.ControlModifier) {
+
+        }
+    }
+    */
+
+    /*
+    if (event.key == Qt.Key_L) {
+        if (event.modifiers & Qt.ControlModifier) {
+            // TODO: Go to page dialog
+        }
+    }
+    */
+
+    /*
+    if (event.key == Qt.Key_Question) {
+        if (event.modifiers & (Qt.ControlModifier | Qt.ShiftModifier)) {
+            // TODO: Keyboard shortcuts
+        }
+    }
+    */
+}

=== added file 'src/app/qml/loView/LOViewDefaultHeader.qml'
--- src/app/qml/loView/LOViewDefaultHeader.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/LOViewDefaultHeader.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2014-2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Components.Popups 1.0
+import DocumentViewer.LibreOffice 1.0 as LibreOffice
+
+PageHeadState {
+    id: rootItem
+
+    property Page targetPage
+    head: targetPage.head
+
+    contents: Column {
+        anchors {
+            left: parent.left
+            right: parent.right
+            verticalCenter: parent.verticalCenter
+        }
+
+        Label {
+            anchors { left: parent.left; right: parent.right }
+            elide: Text.ElideMiddle
+            font.weight: Font.DemiBold
+            text: targetPage.title
+        }
+        Label {
+            anchors { left: parent.left; right: parent.right }
+            elide: Text.ElideMiddle
+            fontSize: "small"
+            text: {
+                if (!loPageContentLoader.item)
+                    return i18n.tr("Loading...")
+
+                switch(loPageContentLoader.item.loDocument.documentType) {
+                case 0:
+                    return i18n.tr("LibreOffice text document")
+                case 1:
+                    return i18n.tr("LibreOffice spread sheet")
+                case 2:
+                    return i18n.tr("LibreOffice presentation")
+                case 3:
+                    return i18n.tr("LibreOffice Draw document")
+                case 4:
+                    return i18n.tr("Unknown LibreOffice document")
+                default:
+                    return i18n.tr("Unknown type document")
+                }
+            }
+        }
+    }
+
+
+    backAction: Action {
+        iconName: "back"
+        text: (pageStack.depth > 1) ? i18n.tr("Back") : i18n.tr("Close")
+        onTriggered: {
+            if (pageStack.depth > 1) {
+                // Go back to Welcome page
+                pageStack.pop();
+            } else {
+                // File has been imported through Content Hub (or was not chosen through WelcomePage)
+                // Close the application and show our source app (e.g. ubuntu-filemanager-app, if used to open a document)
+                Qt.quit()
+            }
+        }
+    }
+
+    actions: [
+        Action {
+            iconName: "zoom-in"
+            text: i18n.tr("Show zoom controls")
+            onTriggered: targetPage.state = "zoom"
+        },
+
+        Action {
+            objectName: "gotopage"
+            iconName: "browser-tabs"
+            text: i18n.tr("Go to position...")
+            onTriggered: PopupUtils.open(Qt.resolvedUrl("LOViewGotoDialog.qml"), targetPage)
+            visible: loPageContentLoader.item.loDocument.documentType == LibreOffice.Document.TextDocument
+        },
+
+        Action {
+            iconName: "night-mode"
+            text: mainView.nightModeEnabled ? i18n.tr("Disable night mode") : i18n.tr("Enable night mode")
+            onTriggered: mainView.nightModeEnabled = !mainView.nightModeEnabled
+        },
+
+        Action {
+            objectName: "detailsAction"
+            text: i18n.tr("Details")
+            iconName: "info"
+            onTriggered: pageStack.push(Qt.resolvedUrl("../common/DetailsPage.qml"))
+        }
+    ]
+}

=== added file 'src/app/qml/loView/LOViewGotoDialog.qml'
--- src/app/qml/loView/LOViewGotoDialog.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/LOViewGotoDialog.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2014-2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Components.Popups 1.0
+import QtQuick.Layouts 1.1
+
+// TODO: Use page breaks detection, when LibreOfficeKit will support it.
+
+Dialog {
+    id: goToPageDialog
+    objectName: "LOViewGotoDialog"
+
+    title: i18n.tr("Go to position")
+    text: i18n.tr("Choose a position between 1% and 100%")
+
+    TextField {
+        id: goToPageTextField
+        objectName:"goToPageTextField"
+
+        width: parent.width
+
+        hasClearButton: true
+        inputMethodHints: Qt.ImhFormattedNumbersOnly
+        validator: IntValidator{ bottom: 1; top: 100 }
+
+        Keys.onReturnPressed: goToPage()
+        Component.onCompleted: forceActiveFocus()
+    }
+
+    RowLayout {
+        anchors {
+            left: parent.left
+            right: parent.right
+            margins: units.gu(-1)
+        }
+
+        Button {
+            text: i18n.tr("Cancel")
+            onClicked: PopupUtils.close(goToPageDialog)
+            Layout.fillWidth: true
+        }
+
+        Button {
+            objectName:"GOButton"
+            text: i18n.tr("GO!")
+            color: UbuntuColors.green
+            Layout.fillWidth: true
+
+            enabled: goToPageTextField.acceptableInput
+            onClicked: goToPage()
+        }
+    }
+
+    function goToPage() {
+        var pos = loView.contentHeight * parseInt(goToPageTextField.text) / 100
+
+        loView.contentY = Math.min(pos, (loView.contentHeight - loView.height))
+        PopupUtils.close(goToPageDialog)
+    }
+}

=== added file 'src/app/qml/loView/LOViewPage.qml'
--- src/app/qml/loView/LOViewPage.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/LOViewPage.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,221 @@
+/*
+ * Copyright (C) 2013-2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Layouts 1.0
+import DocumentViewer.LibreOffice 1.0 as LibreOffice
+
+import "../upstreamComponents"
+
+import "../common/utils.js" as Utils
+import "KeybHelper.js" as KeybHelper
+
+PageWithBottomEdge {
+    id: loPage
+    title: Utils.getNameOfFile(file.path);
+    flickable: null
+
+    readonly property bool wideWindow: width > units.gu(120)
+
+    bottomEdgeTitle: i18n.tr("Slides")
+    bottomEdgeEnabled: {
+        if (!loPageContentLoader.loaded)
+            return false
+
+        // else
+        return loPageContentLoader.item.loDocument.documentType == LibreOffice.Document.PresentationDocument && !wideWindow
+    }
+
+    Loader {
+        id: loPageContentLoader
+
+        asynchronous: true
+        anchors.fill: parent
+        sourceComponent: loPageContentComponent
+
+        onLoaded: {
+            if (loaded) {
+                // FIXME: At the moment don't hide header if the document is a presentation
+                var isPresentation = (item.loDocument.documentType === LibreOffice.Document.PresentationDocument)
+                loPage.flickable = isPresentation ? null : item.loView
+
+                loPage.bottomEdgePageComponent = item.bottomEdgePartsPage
+
+            } else {
+                loPage.flickable = null
+            }
+        }
+    }
+
+    ActivityIndicator {
+        running: loPageContentLoader.status != Loader.Ready
+        visible: running
+        anchors.centerIn: parent
+    }
+
+    Component {
+        id: loPageContentComponent
+
+        FocusScope {
+            id: loPageContent
+            anchors.fill: parent
+
+            property alias loDocument: loView.document
+            property alias loView: loView
+            property alias bottomEdgePartsPage: bottomEdgePartsPage
+
+            Layouts {
+                id: layouts
+                anchors.fill: parent
+
+                layouts: [
+                    ConditionalLayout {
+                        when: wideWindow
+                        name: "wideWindowLayout"
+
+                        Item {
+                            anchors.fill: parent
+
+                            // TODO: Add a setting to show/hide sidebar when width > units.gu(80)
+                            PartsView {
+                                id: partsView
+                                anchors {
+                                    top: parent.top
+                                    bottom: bottomBarLayoutItem.top
+                                    left: parent.left
+                                }
+
+                                model: loView.partsModel
+                                visible: loDocument.documentType == LibreOffice.Document.PresentationDocument
+                                width: visible ? units.gu(40) : 0
+                            }
+
+                            Item {
+                                anchors {
+                                    left: partsView.right
+                                    right: parent.right
+                                    top: parent.top
+                                    bottom: bottomBarLayoutItem.top
+                                }
+
+                                ItemLayout {
+                                    item: "loView"
+                                    anchors.fill: parent
+
+                                    // Keyboard events
+                                    focus: true
+                                    Keys.onPressed: KeybHelper.parseEvent(event)
+                                    Component.onCompleted: loPageContent.forceActiveFocus()
+                                }
+                            }
+
+                            Item {
+                                id: bottomBarLayoutItem
+                                visible: loDocument.documentType == LibreOffice.Document.PresentationDocument
+                                height: visible ? units.gu(5) : 0
+                                anchors {
+                                    left: parent.left
+                                    right: parent.right
+                                    bottom: parent.bottom
+                                }
+
+                                ItemLayout { item: "bottomBar"; anchors.fill: parent }
+                            }
+                        }
+                    }
+                ]
+
+                LibreOffice.Viewer {
+                    id: loView
+                    objectName: "loView"
+                    Layouts.item: "loView"
+                    anchors {
+                        left: parent.left
+                        right: parent.right
+                        top: parent.top
+                        bottom: bottomBar.top
+                    }
+
+                    clip: true
+                    documentPath: file.path
+
+                    // Keyboard events
+                    focus: true
+                    Keys.onPressed: KeybHelper.parseEvent(event)
+
+                    Component.onCompleted: {
+                        // WORKAROUND: Fix for wrong grid unit size
+                        flickDeceleration = 1500 * units.gridUnit / 8
+                        maximumFlickVelocity = 2500 * units.gridUnit / 8
+                        loPageContent.forceActiveFocus()
+                    }
+
+                    Scrollbar { flickableItem: loView; parent: loView.parent }
+                    Scrollbar { flickableItem: loView; parent: loView.parent; align: Qt.AlignBottom }
+                }
+
+                // TODO: When we'll have to merge this with the zooming branch, replace this
+                // and use a single bottom panel
+                SlideControllerPanel {
+                    id: bottomBar
+                    Layouts.item: "bottomBar"
+                    visible: loDocument.documentType == LibreOffice.Document.PresentationDocument
+                    height: visible ? units.gu(5) : 0
+                    anchors {
+                        left: parent.left
+                        right: parent.right
+                        bottom: parent.bottom
+                    }
+                }
+            }
+
+            Component {
+                id: bottomEdgePartsPage
+                Page {
+                    title: i18n.tr("Slides")
+                    head.backAction: Action {
+                        text: i18n.tr("Back")
+                        iconName: "down"
+                        onTriggered: pageStack.pop()
+                    }
+
+                    flickable: null
+
+                    PartsView {
+                        property bool belongsToNestedPage: true
+                        anchors.fill: parent
+                        model: loView.partsModel
+                    }
+                }
+            }
+        }
+    }
+
+    // *** HEADER ***
+    state: "default"
+    states: [
+        LOViewDefaultHeader {
+            name: "default"
+            targetPage: loPage
+        },
+
+        LOViewZoomHeader {
+            name: "zoom"
+            targetPage: loPage
+        }
+    ]
+}

=== added file 'src/app/qml/loView/LOViewZoomHeader.qml'
--- src/app/qml/loView/LOViewZoomHeader.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/LOViewZoomHeader.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2014-2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import QtQuick.Layouts 1.1
+import Ubuntu.Components.Popups 1.0
+
+PageHeadState {
+    id: rootItem
+
+    property Page targetPage
+    head: targetPage.head
+
+    contents: Item {
+        anchors.fill: parent
+
+        ZoomSelector {
+            width: units.gu(24)
+            anchors {
+                right: parent.right
+                verticalCenter: parent.verticalCenter
+            }
+        }
+    }
+
+    backAction: Action {
+        iconName: "close"
+        text: i18n.tr("Hide zoom controls")
+        onTriggered: targetPage.state = "default"
+    }
+
+    actions: [
+        Action {
+            iconName: "zoom-in"
+            text: i18n.tr("Zoom in")
+            onTriggered: loPageContentLoader.item.loView.zoomFactor += 0.1
+        },
+
+        Action {
+            iconName: "zoom-out"
+            text: i18n.tr("Zoom out")
+            onTriggered: loPageContentLoader.item.loView.zoomFactor -= 0.1
+        }
+    ]
+}

=== added file 'src/app/qml/loView/PanelButton.qml'
--- src/app/qml/loView/PanelButton.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/PanelButton.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+ 
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+ 
+AbstractButton {
+    width: units.gu(4); height: parent.height
+ 
+    property alias iconName: icon.name
+    property alias iconSource: icon.source
+ 
+    Icon {
+        id: icon
+        anchors.centerIn: parent
+        width: units.gu(2.5); height: width
+    }
+}

=== added file 'src/app/qml/loView/PartsView.qml'
--- src/app/qml/loView/PartsView.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/PartsView.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2015 Stefano Verzegnassi
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import QtQuick.Layouts 1.1
+import DocumentViewer.LibreOffice 1.0 as LibreOffice
+
+ListView {
+    id: view
+    objectName: "view"
+    clip: true
+
+    property bool expanded: true
+
+    currentIndex: view.model ? loView.document.currentPart : -1
+    highlightMoveDuration: UbuntuAnimation.SnapDuration
+
+    delegate: ListItem {
+        id: delegate
+
+        width: parent.width
+        height: units.gu(16)
+
+        color: (loView.document.currentPart === model.index) ? Theme.palette.selected.background
+                                                             : "transparent"
+
+        AbstractButton {
+            objectName: "abstractbutton"
+            anchors.fill: parent
+
+            onClicked: {
+                loView.document.currentPart = model.index
+
+                // Check if the view has been included in a nested page (e.g.
+                // bottomEdge). If so, close that page and return to the
+                // main viewer.
+                if (view.hasOwnProperty("belongsToNestedPage"))
+                    pageStack.pop();
+            }
+        }
+
+        RowLayout {
+            anchors {
+                fill: parent
+                leftMargin: units.gu(1)
+                rightMargin: units.gu(1)
+            }
+            spacing: units.gu(1)
+
+            Image {
+                Layout.fillHeight: true
+                Layout.preferredWidth: height
+                fillMode: Image.PreserveAspectFit
+                // Do not store a cache of the thumbnail, so that we don't show
+                // thumbnails of a previously loaded document.
+                cache: true // TODO PLAY WITH IT
+                source: model.thumbnail
+            }
+
+            Label {
+                Layout.fillWidth: true
+                wrapMode: Text.WordWrap
+                text: model.name
+                color: (loView.document.currentPart === model.index) ? UbuntuColors.orange
+                                                                     : Theme.palette.selected.backgroundText
+            }
+
+            Label {
+                text: model.index + 1
+                color: (loView.document.currentPart === model.index) ? UbuntuColors.orange
+                                                                     : Theme.palette.selected.backgroundText
+            }
+        }
+    }
+
+    Scrollbar { flickableItem: view; parent: view.parent }
+}

=== added file 'src/app/qml/loView/SlideControllerPanel.qml'
--- src/app/qml/loView/SlideControllerPanel.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/SlideControllerPanel.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2015 Stefano Verzegnassi
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import QtQuick.Layouts 1.1
+import Ubuntu.Components.ListItems 1.0 as ListItems
+
+Rectangle {
+    id: bottomBar
+    color: "transparent"
+    height: units.gu(5)
+
+    ListItems.ThinDivider {
+        anchors {
+            top: parent.top
+            left: parent.left
+            right: parent.right
+        }
+    }
+
+    Row {
+        anchors.centerIn: parent
+        //spacing: units.gu(2)
+
+        AbstractButton {
+            width: units.gu(4); height: parent.height
+            onClicked: loPageContentLoader.item.loView.goFirstPart()
+
+            Icon {
+                anchors.centerIn: parent
+                width: units.gu(2.5); height: width
+                name: "go-first"
+            }
+        }
+
+        AbstractButton {
+            width: units.gu(4); height: parent.height
+            onClicked: loPageContentLoader.item.loView.goPreviousPart()
+
+            Icon {
+                anchors.centerIn: parent
+                width: units.gu(2.5); height: width
+                name: "go-previous"
+            }
+        }
+
+        Label {
+            text: i18n.tr("Slide %1 of %2").arg(loPageContentLoader.item.loDocument.currentPart + 1).arg(loPageContentLoader.item.loDocument.partsCount)
+        }
+
+        AbstractButton {
+            width: units.gu(4); height: parent.height
+            onClicked: loPageContentLoader.item.loView.goNextPart()
+
+            Icon {
+                anchors.centerIn: parent
+                width: units.gu(2.5); height: width
+                name: "go-next"
+            }
+        }
+
+        AbstractButton {
+            width: units.gu(4); height: parent.height
+            onClicked: loPageContentLoader.item.loView.goLastPart()
+
+            Icon {
+                anchors.centerIn: parent
+                width: units.gu(2.5); height: width
+                name: "go-last"
+            }
+        }
+    }
+}

=== added file 'src/app/qml/loView/ZoomSelector.qml'
--- src/app/qml/loView/ZoomSelector.qml	1970-01-01 00:00:00 +0000
+++ src/app/qml/loView/ZoomSelector.qml	2015-11-06 11:00:18 +0000
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2015 Canonical, Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Components.Popups 1.0
+import DocumentViewer.LibreOffice 1.0 as LibreOffice
+
+TextField {
+    id: textField
+    anchors.verticalCenter: parent.verticalCenter
+    width: units.gu(24)
+
+    property var values: ["auto", 0.5, 0.7, 0.85, 1.0, 1.25, 1.5, 1.75, 2.0, 3.0, 4.0]
+    property var labels: [
+        i18n.tr("Automatic (Fit width)"),
+        "50%", "70%", "85%", "100%", "125%",
+        "150%", "175%","200%", "300%", "400%"
+    ]
+
+    property bool expanded: false
+
+    hasClearButton: true
+    inputMethodHints: Qt.ImhFormattedNumbersOnly
+    validator: IntValidator{ bottom: 50; top: 400 }
+
+    onAccepted: {
+        loPageContentLoader.item.loView.zoomFactor = parseInt(text) / 100
+        focus = false
+    }
+
+    secondaryItem: AbstractButton {
+        visible: !textField.highlighted
+        id: listButton
+        height: parent.height
+        width: visible ? height : 0
+
+        Rectangle {
+            anchors.left: parent.left
+            anchors.verticalCenter: parent.verticalCenter
+            height: parent.height - units.gu(1)
+
+            width: units.dp(1)
+            color: "Grey"
+            opacity: 0.5
+        }
+
+        Icon {
+            id: _upArrow
+
+            width: units.gu(2)
+            height: width
+            anchors.centerIn: parent
+
+            name: "go-down"
+            color: "Grey"
+            rotation: textField.expanded ? 180 : 0
+
+            Behavior on rotation {
+                UbuntuNumberAnimation {}
+            }
+        }
+
+        onClicked: {
+            textField.expanded = true
+            PopupUtils.open(zoomSelectorDialog, listButton)
+        }
+    }
+
+    onHighlightedChanged: {
+        if (highlighted) {
+            text = parseInt(loPageContentLoader.item.loView.zoomFactor * 100)
+        } else text = ""
+    }
+
+    Label {
+        anchors.verticalCenter: parent.verticalCenter
+        anchors.left: parent.left
+        anchors.leftMargin: units.gu(2)
+        visible: !textField.highlighted
+        text: loPageContentLoader.item.loView.zoomMode == LibreOffice.View.FitToWidth ? i18n.tr("Automatic (%1%)").arg(parseInt(loPageContentLoader.item.loView.zoomFactor*100))
+                                                             : i18n.tr("Zoom: %1%").arg(parseInt(loPageContentLoader.item.loView.zoomFactor*100))
+    }
+
+    Component {
+        id: zoomSelectorDialog
+        Popover {
+            id: zoomSelectorDialogue
+            autoClose: false
+            contentHeight: units.gu(24)
+            contentWidth: units.gu(24)
+            Component.onDestruction: textField.expanded = false
+
+            // We don't use 'autoClose' property, since we want to propagate
+            // mouse/touch events to other items (e.g. when zoomSelectorDialogue
+            // is visible, and user taps the zoom+ button on its right, we want
+            // the zoom button to receive the event).
+            InverseMouseArea {
+                anchors.fill: parent
+                propagateComposedEvents: true
+
+                onPressed: {
+                    mouse.accepted = false
+                    PopupUtils.close(zoomSelectorDialogue)
+                }
+            }
+
+            OptionSelector {
+                expanded: true
+                width: parent.width
+                containerHeight: units.gu(24)
+                model: textField.labels
+                selectedIndex: {
+                    if (loPageContentLoader.item.loView.zoomMode == LibreOffice.View.FitToWidth)
+                        return 0
+
+                    for (var i=0; i<textField.values.length; i++) {
+                        if (values[i] == loView.zoomFactor)
+                            return i
+                    }
+                    return -1
+                }
+
+                onSelectedIndexChanged: {
+                    if (selectedIndex == 0) {
+                        loView.adjustZoomToWidth();
+                        return;
+                    }
+
+                    loPageContentLoader.item.loView.zoomFactor = textField.values[selectedIndex]
+                    PopupUtils.close(zoomSelectorDialogue)
+                }
+            }
+        }
+    }
+}

=== modified file 'src/app/qml/pdfView/PdfContentsPage.qml'
--- src/app/qml/pdfView/PdfContentsPage.qml	2015-05-02 14:45:06 +0000
+++ src/app/qml/pdfView/PdfContentsPage.qml	2015-11-06 11:00:18 +0000
@@ -15,8 +15,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.0
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import QtQuick.Layouts 1.1
 
 import "../upstreamComponents"
@@ -69,31 +69,34 @@
 
         model: poppler.tocModel
 
-        delegate: ListItemWithActions {
+        delegate: ListItem {
             id: delegate
             objectName: "delegate" + index
 
-            width: parent.width
-            height: (model.level === 0) ? units.gu(7) : units.gu(6)
-
-            // Don't use 'selected' property here, since it shows a CheckBox
-            color: (view.currentIndex == model.index) ? Qt.lighter(UbuntuColors.lightGrey)
-                                                      : Theme.palette.normal.background
-
-            AbstractButton {
-                objectName: "abstractbutton"
+            anchors {
+                left: parent.left; right: parent.right
+                leftMargin: units.gu(2) + (model.level * units.gu(2))
+                rightMargin: units.gu(2)
+            }
+
+            onClicked: {
+                pdfView.positionAtIndex(model.pageIndex);
+                pageStack.pop();
+            }
+
+            // Highlighted property of ListItem is read-only. In order to
+            // provide an highlight for the current page, we need to duplicate
+            // the overlay.
+            Rectangle {
                 anchors.fill: parent
-
-                onClicked: {
-                    pdfView.positionAtIndex(model.pageIndex);
-                    pageStack.pop();
-                }
+                color: Qt.rgba(0, 0, 0, 0.05)
+                visible: view.currentIndex == model.index
             }
 
             RowLayout {
                 anchors {
                     fill: parent
-                    leftMargin: units.gu(1) + (units.gu(2) * model.level)
+                    leftMargin: units.gu(1)
                     rightMargin: units.gu(1)
                 }
 
@@ -107,31 +110,35 @@
                     elide: Text.ElideRight
 
                     font.weight: model.level == 0 ? Font.DemiBold : Font.Normal
-                    color: (model.level === 0) ? UbuntuColors.midAubergine
-                                               : Theme.palette.selected.backgroundText
+                    color: (model.level == 0) ? UbuntuColors.midAubergine
+                                              : Theme.palette.selected.backgroundText
+                }
+
+                /*
+                    TODO: Needs UX team's review.
+                    UX specifications for ListItem suggest to use a "tick" icon
+                    as indicator for a selected state.
+                    This currently looks a bit redundant, since we already
+                    use a grey overlay (see above).
+                */
+                Icon {
+                    Layout.preferredHeight: units.gu(2)
+                    Layout.preferredWidth: units.gu(2)
+                    name: "tick"
+                    color: UbuntuColors.green
+                    visible: view.currentIndex == model.index
                 }
 
                 Label {
                     objectName: "pageindex"
                     text: model.pageIndex + 1
                     font.weight: model.level == 0 ? Font.DemiBold : Font.Normal
-                    color: (model.level === 0) ? UbuntuColors.midAubergine
-                                               : Theme.palette.selected.backgroundText
-                }
-            }
-
-            Rectangle {
-                anchors {
-                    left: parent.left
-                    right: parent.right
-                    bottom: parent.bottom
-                }
-
-                height: units.gu(0.1)
-                visible: model.level == 0
-                color: (view.currentIndex === model.index) ? "transparent"
-                                                           : UbuntuColors.midAubergine
+                    color: (model.level == 0) ? UbuntuColors.midAubergine
+                                              : Theme.palette.selected.backgroundText
+                }
             }
         }
     }
+
+    Scrollbar { flickableItem: view }
 }

=== modified file 'src/app/qml/pdfView/PdfView.qml'
--- src/app/qml/pdfView/PdfView.qml	2015-04-15 14:47:28 +0000
+++ src/app/qml/pdfView/PdfView.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import DocumentViewer.PDF 1.0 as PDF
 
 import "../common/utils.js" as Utils
@@ -58,7 +58,7 @@
 
         model: poppler
         delegate: PdfViewDelegate {
-            Component.onDestruction: DOC_VIEWER.releaseResources()
+            Component.onDestruction: window.releaseResources()
         }
 
         // FIXME: On zooming, keep the same content position.
@@ -78,7 +78,7 @@
                 // This is a bit expensive, so it's safer to put it here.
                 // It won't be called on desktop (where PinchArea is not used),
                 // but it's not a problem at the moment (our target is phone).
-                DOC_VIEWER.releaseResources();
+                window.releaseResources();
             }
 
             MouseArea {

=== modified file 'src/app/qml/pdfView/PdfViewDefaultHeader.qml'
--- src/app/qml/pdfView/PdfViewDefaultHeader.qml	2015-03-26 13:58:31 +0000
+++ src/app/qml/pdfView/PdfViewDefaultHeader.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import QtQuick.Layouts 1.1
 import Ubuntu.Components.Popups 1.0
 

=== modified file 'src/app/qml/pdfView/PdfViewDelegate.qml'
--- src/app/qml/pdfView/PdfViewDelegate.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/pdfView/PdfViewDelegate.qml	2015-11-06 11:00:18 +0000
@@ -13,8 +13,8 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 
 Rectangle {
     id: pdfPage

=== modified file 'src/app/qml/pdfView/PdfViewGotoDialog.qml'
--- src/app/qml/pdfView/PdfViewGotoDialog.qml	2015-03-03 15:41:11 +0000
+++ src/app/qml/pdfView/PdfViewGotoDialog.qml	2015-11-06 11:00:18 +0000
@@ -14,9 +14,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
+import QtQuick.Layouts 1.1
 
 Dialog {
     id: goToPageDialog
@@ -39,18 +40,28 @@
         Component.onCompleted: forceActiveFocus()
     }
 
-    Button {
-        objectName:"GOButton"
-        text: i18n.tr("GO!")
-        color: UbuntuColors.green
-
-        enabled: goToPageTextField.acceptableInput
-        onClicked: goToPage()
-    }
-
-    Button {
-        text: i18n.tr("Cancel")
-        onClicked: PopupUtils.close(goToPageDialog)
+    RowLayout {
+        anchors {
+            left: parent.left
+            right: parent.right
+            margins: units.gu(-1)
+        }
+
+        Button {
+            text: i18n.tr("Cancel")
+            onClicked: PopupUtils.close(goToPageDialog)
+            Layout.fillWidth: true
+        }
+
+        Button {
+            objectName:"GOButton"
+            text: i18n.tr("GO!")
+            color: UbuntuColors.green
+            Layout.fillWidth: true
+
+            enabled: goToPageTextField.acceptableInput
+            onClicked: goToPage()
+        }
     }
 
     function goToPage() {

=== modified file 'src/app/qml/textView/TextView.qml'
--- src/app/qml/textView/TextView.qml	2015-03-26 13:58:31 +0000
+++ src/app/qml/textView/TextView.qml	2015-11-06 11:00:18 +0000
@@ -14,9 +14,9 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-import Ubuntu.Components.Themes.Ambiance 0.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
+import Ubuntu.Components.Themes.Ambiance 1.2
 
 import "../common/utils.js" as Utils
 

=== modified file 'src/app/qml/textView/TextViewDefaultHeader.qml'
--- src/app/qml/textView/TextViewDefaultHeader.qml	2015-04-15 14:21:48 +0000
+++ src/app/qml/textView/TextViewDefaultHeader.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import QtQuick.Layouts 1.1
 import Ubuntu.Components.Popups 1.0
 

=== modified file 'src/app/qml/ubuntu-docviewer-app.qml'
--- src/app/qml/ubuntu-docviewer-app.qml	2015-06-22 16:45:36 +0000
+++ src/app/qml/ubuntu-docviewer-app.qml	2015-11-06 11:00:18 +0000
@@ -14,8 +14,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 import Ubuntu.Components.Popups 1.0
 import DocumentViewer 1.0
 import QtQuick.Window 2.0
@@ -28,15 +28,15 @@
     id: mainView
     objectName: "mainView"
 
-    property bool pickMode: DOC_VIEWER.pickModeEnabled
+    property bool pickMode: commandLineProxy.pickMode
+    property bool fullscreen: commandLineProxy.fullscreen
     readonly property bool isLandscape: Screen.orientation == Qt.LandscapeOrientation ||
                                         Screen.orientation == Qt.InvertedLandscapeOrientation
 
     applicationName: "com.ubuntu.docviewer"
-    useDeprecatedToolbar: false   
     automaticOrientation: true
 
-    width: units.gu(50)
+    width: units.gu(150)
     height: units.gu(75)
 
     function openDocument(path)  {
@@ -66,26 +66,8 @@
                         mainView, { parent: mainView });
     }
 
-    function showNotification(args) {
-        var component = Qt.createComponent("common/Toast.qml")
-        var toast = component.createObject(mainView, args);
-
-        return toast;
-    }
-
-    function showNotificationWithAction(args) {
-        var component = Qt.createComponent("common/ToastWithAction.qml")
-        var toast = component.createObject(mainView, args);
-
-        return toast;
-    }
-
-    function setFullScreen(fullScreen) {
-        DOC_VIEWER.fullScreen = fullScreen;
-    }
-
     function toggleFullScreen() {
-        DOC_VIEWER.fullScreen = !APP.fullScreen;
+        mainView.fullscreen = !mainView.fullscreen
     }
 
     function setHeaderVisibility(visible, toggleFullscreen) {
@@ -94,28 +76,43 @@
 
         // If device orientation is landscape and screen width is limited,
         // force hiding Unity 8 indicators panel.
-        if (!DOC_VIEWER.desktopMode && mainView.isLandscape &&
+        if (!DocumentViewer.desktopMode && mainView.isLandscape &&
                 mainView.width < units.gu(51)) {
-            setFullScreen(true);
+            mainView.fullscreen = true;
             return;
         }
 
-        if (!DOC_VIEWER.desktopMode && toggleFullscreen)
-            setFullScreen(!visible);
+        if (!DocumentViewer.desktopMode && toggleFullscreen)
+            mainView.fullscreen = !visible;
     }
 
     function toggleHeaderVisibility() {
         setHeaderVisibility(!header.visible);
     }
 
+    function switchToBrowseMode() {
+        mainView.pickMode = false
+    }
+
+    function switchToPickMode() {
+        mainView.pickMode = true
+    }
+
     // On screen rotation, force updating of header/U8 indicators panel visibility
     onIsLandscapeChanged: setHeaderVisibility(true);
 
+    onFullscreenChanged: {
+        if (mainView.fullscreen)
+            window.visibility = Window.FullScreen
+        else
+            window.visibility = Window.Windowed
+    }
+
     Component.onCompleted: {
         pageStack.push(Qt.resolvedUrl("documentPage/DocumentPage.qml"));
 
         // Open the document, if one has been specified.
-        openDocument(DOC_VIEWER.documentFile);
+        openDocument(commandLineProxy.documentFile);
     }
 
     File {
@@ -142,9 +139,10 @@
             id: docModel
 
             // Used for autopilot tests! If customDir is empty, this property is not used.
-            customDir: DOC_VIEWER.documentsDir
+            customDir: commandLineProxy.documentsDir
         }
 
+        // TODO: Expose an enum from DocumentViewer module.
         sort.property: {
             switch (sortSettings.sortMode) {
             case 0:
@@ -183,106 +181,31 @@
         property bool reverseOrder: false
     }
 
+    // CommandLine parser
+    CommandLineProxy {
+        id: commandLineProxy
+    }
+
+    // Content Hub support
+    property alias contentHubProxy: contentHubLoader.item
+    Loader {
+        id: contentHubLoader
+
+        asynchronous: true
+        source: Qt.resolvedUrl("common/ContentHubProxy.qml")
+    }
+
+    // Uri Handler support
     Connections {
         target: UriHandler
-        onOpened: {
-            for (var i = 0; i < uris.length; ++i) {
-                DOC_VIEWER.parseUri(uris[i])
-            }
-        }
-    }
-
-    Connections {
-        target: DOC_VIEWER
-
-        onDocumentFileChanged: {
-            openDocument(DOC_VIEWER.documentFile);
-        }
-
-        onPickModeEnabledChanged: {
-            mainView.pickMode = DOC_VIEWER.pickModeEnabled
-
-            if (mainView.pickMode) {
-                // If a document is loaded, pop() its page.
-                while (pageStack.depth > 1) {
-                    pageStack.pop()
-                }
-            }
-        }
-    }
-
-    Connections {
-        target: PICKER_HUB
-
-        onDocumentImported: {
-            // Create two arrays: one for rejected documents, and the other
-            // for imported documents.
-            var importedDocuments = [];
-            var rejectedDocuments = [];
-            var entry;
-
-            // Fill the arrays.
-            for (var i=0; i<documents.length; i++) {
-                entry = documents[i];
-
-                if (entry.rejected) {
-                    rejectedDocuments.push(entry.fileName);
-                    break;
-                }
-
-                importedDocuments.push(entry.fileName);
-            }
-
-            // Prepare import notification
-            var showImportNotification = function() {
-                if (importedDocuments.length > 0) {
-                    var importDialog = showNotificationWithAction({
-                        "text": i18n.tr("Document successfully imported!",
-                                        "Documents successfully imported!",
-                                        importedDocuments.length),
-                        "action.text": i18n.tr("Open")
-                    })
-
-                    if (importedDocuments.length > 1) {
-                        // If it has been imported more than a document, show
-                        // a file picker when user taps the "open" action.
-                        importDialog.action.triggered.connect(function() {
-                            PopupUtils.open(
-                                Qt.resolvedUrl("common/PickImportedDialog.qml"),
-                                mainView,
-                                {
-                                    parent: mainView,
-                                    model: importedDocuments
-                                }
-                            );
-                        });
-                    } else {
-                        // It has been imported just a document, open it when
-                        // user taps the action button.
-                        importDialog.action.triggered.connect(function() {
-                            openDocument(importedDocuments[0]);
-                        });
-                    }
-                }
-            }
-
-            // Check if there's any rejected document in the last transfer.
-            // If so, show an error dialog.
-            if (rejectedDocuments.length > 0) {
-                var rejectedDialog = PopupUtils.open(
-                    Qt.resolvedUrl("common/RejectedImportDialog.qml"),
-                    mainView,
-                    {
-                        parent: mainView,
-                        model: rejectedDocuments
-                    }
-                );
-
-                // Show import notification after the dialog has been closed.
-                rejectedDialog.closed.connect(showImportNotification)
-            } else {
-                // No dialog has been shown. Show the notification.
-                showImportNotification.call();
+        onOpened: openDocument(uris[0])
+    }
+
+    onPickModeChanged: {
+        if (mainView.pickMode) {
+            // If a document is loaded, pop() its page.
+            while (pageStack.depth > 1) {
+                pageStack.pop()
             }
         }
     }

=== modified file 'src/app/qml/upstreamComponents/EmptyState.qml'
--- src/app/qml/upstreamComponents/EmptyState.qml	2015-02-26 20:16:32 +0000
+++ src/app/qml/upstreamComponents/EmptyState.qml	2015-11-06 11:00:18 +0000
@@ -16,8 +16,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-import QtQuick 2.3
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 
 /*
  Component which displays an empty state (approved by design). It offers an

=== removed file 'src/app/qml/upstreamComponents/HeaderButton.qml'
--- src/app/qml/upstreamComponents/HeaderButton.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/HeaderButton.qml	1970-01-01 00:00:00 +0000
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2014 Canonical Ltd
- *
- * This file is part of Ubuntu Clock App
- *
- * Ubuntu Clock App is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
- *
- * Ubuntu Clock App is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-
-AbstractButton {
-    id: headerButton
-
-    property alias iconSource: _icon.source
-    property alias iconName: _icon.name
-    property alias text: _label.text
-
-    width: units.gu(6)
-    height: parent ? parent.height : undefined
-
-    Rectangle {
-        anchors.fill: parent
-        visible: headerButton.pressed
-        color: Theme.palette.selected.background
-    }
-
-    Column {
-        id: buttonHolder
-
-        width: _label.width
-        height: childrenRect.height
-
-        spacing: units.gu(0.2)
-        anchors.centerIn: parent
-        anchors.verticalCenterOffset: units.gu(0.3)
-
-        Icon {
-            id: _icon
-            color: UbuntuColors.darkGrey
-            width: units.gu(2.5)
-            height: width
-            opacity: headerButton.enabled ? 1.0 : 0.3
-            anchors.horizontalCenter: parent.horizontalCenter
-        }
-
-        Label {
-            id: _label
-            color: UbuntuColors.darkGrey
-            fontSize: "xx-small"
-            opacity: headerButton.enabled ? 1.0 : 0.3
-            anchors.horizontalCenter: _icon.horizontalCenter
-        }
-    }
-}

=== removed file 'src/app/qml/upstreamComponents/ListItemWithActions.qml'
--- src/app/qml/upstreamComponents/ListItemWithActions.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/ListItemWithActions.qml	1970-01-01 00:00:00 +0000
@@ -1,453 +0,0 @@
-/*
- * Copyright (C) 2012-2014 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-
-Item {
-    id: root
-
-    property Action leftSideAction: null
-    property list<Action> rightSideActions
-    property double defaultHeight: units.gu(8)
-    property bool locked: false
-    property Action activeAction: null
-    property var activeItem: null
-    property bool triggerActionOnMouseRelease: false
-    property color color: Theme.palette.normal.background
-    property color selectedColor: "#E6E6E6"
-    property bool selected: false
-    property bool selectionMode: false
-    property alias internalAnchors: mainContents.anchors
-    default property alias contents: mainContents.children
-
-    readonly property double actionWidth: units.gu(4)
-    readonly property double leftActionWidth: units.gu(10)
-    readonly property double actionThreshold: actionWidth * 0.4
-    readonly property double threshold: 0.4
-    readonly property string swipeState: main.x == 0 ? "Normal" : main.x > 0 ? "LeftToRight" : "RightToLeft"
-    readonly property alias swipping: mainItemMoving.running
-    readonly property bool _showActions: mouseArea.pressed || swipeState != "Normal" || swipping
-
-    /* internal */
-    property var _visibleRightSideActions: filterVisibleActions(rightSideActions)
-
-    signal itemClicked(var mouse)
-    signal itemPressAndHold(var mouse)
-
-    function returnToBoundsRTL(direction)
-    {
-        var actionFullWidth = actionWidth + units.gu(2)
-
-        // go back to normal state if swipping reverse
-        if (direction === "LTR") {
-            updatePosition(0)
-            return
-        } else if (!triggerActionOnMouseRelease) {
-            updatePosition(-rightActionsView.width + units.gu(2))
-            return
-        }
-
-        var xOffset = Math.abs(main.x)
-        var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleRightSideActions.length)
-        var newX = 0
-      if (index === _visibleRightSideActions.length) {
-            newX = -(rightActionsView.width - units.gu(2))
-        } else if (index >= 1) {
-            newX = -(actionFullWidth * index)
-        }
-        updatePosition(newX)
-    }
-
-    function returnToBoundsLTR(direction)
-    {
-        var finalX = leftActionWidth
-        if ((direction === "RTL") || (main.x <= (finalX * root.threshold)))
-            finalX = 0
-        updatePosition(finalX)
-    }
-
-    function returnToBounds(direction)
-    {
-        if (main.x < 0) {
-            returnToBoundsRTL(direction)
-        } else if (main.x > 0) {
-            returnToBoundsLTR(direction)
-        } else {
-            updatePosition(0)
-        }
-    }
-
-    function contains(item, point, marginX)
-    {
-        var itemStartX = item.x - marginX
-        var itemEndX = item.x + item.width + marginX
-        return (point.x >= itemStartX) && (point.x <= itemEndX) &&
-               (point.y >= item.y) && (point.y <= (item.y + item.height));
-    }
-
-    function getActionAt(point)
-    {
-        if (contains(leftActionView, point, 0)) {
-            return leftSideAction
-        } else if (contains(rightActionsView, point, 0)) {
-            var newPoint = root.mapToItem(rightActionsView, point.x, point.y)
-            for (var i = 0; i < rightActionsRepeater.count; i++) {
-                var child = rightActionsRepeater.itemAt(i)
-                if (contains(child, newPoint, units.gu(1))) {
-                    return i
-                }
-            }
-        }
-        return -1
-    }
-
-    function updateActiveAction()
-    {
-        if (triggerActionOnMouseRelease &&
-            (main.x <= -(root.actionWidth + units.gu(2))) &&
-            (main.x > -(rightActionsView.width - units.gu(2)))) {
-            var actionFullWidth = actionWidth + units.gu(2)
-            var xOffset = Math.abs(main.x)
-            var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleRightSideActions.length)
-            index = index - 1
-            if (index > -1) {
-                root.activeItem = rightActionsRepeater.itemAt(index)
-                root.activeAction = root._visibleRightSideActions[index]
-            }
-        } else {
-            root.activeAction = null
-        }
-    }
-
-    function resetSwipe()
-    {
-        updatePosition(0)
-    }
-
-    function filterVisibleActions(actions)
-    {
-        var visibleActions = []
-        for(var i = 0; i < actions.length; i++) {
-            var action = actions[i]
-            if (action.visible) {
-                visibleActions.push(action)
-            }
-        }
-        return visibleActions
-    }
-
-    function updatePosition(pos)
-    {
-        if (!root.triggerActionOnMouseRelease && (pos !== 0)) {
-            mouseArea.state = pos > 0 ? "RightToLeft" : "LeftToRight"
-        } else {
-            mouseArea.state = ""
-        }
-        main.x = pos
-    }
-
-    states: [
-        State {
-            name: "select"
-            when: selectionMode || selected
-            PropertyChanges {
-                target: selectionIcon
-                source: Qt.resolvedUrl("ListItemWithActionsCheckBox.qml")
-                anchors.leftMargin: units.gu(2)
-            }
-            PropertyChanges {
-                target: root
-                locked: true
-            }
-            PropertyChanges {
-                target: main
-                x: 0
-            }
-        }
-    ]
-
-    height: defaultHeight
-    clip: height !== defaultHeight
-
-    Rectangle {
-        id: leftActionView
-
-        anchors {
-            top: parent.top
-            bottom: parent.bottom
-            right: main.left
-        }
-        width: root.leftActionWidth + actionThreshold
-        visible: leftSideAction
-        color: UbuntuColors.red
-
-        Icon {
-            anchors {
-                centerIn: parent
-                horizontalCenterOffset: actionThreshold / 2
-            }
-            name: leftSideAction && _showActions ? leftSideAction.iconName : ""
-            color: Theme.palette.selected.field
-            height: units.gu(3)
-            width: units.gu(3)
-        }
-    }
-
-    Rectangle {
-       id: rightActionsView
-
-       anchors {
-           top: main.top
-           left: main.right
-           bottom: main.bottom
-       }
-       visible: _visibleRightSideActions.length > 0
-       width: rightActionsRepeater.count > 0 ? rightActionsRepeater.count * (root.actionWidth + units.gu(2)) + root.actionThreshold + units.gu(2) : 0
-       color: "white"
-       Row {
-           anchors{
-               top: parent.top
-               left: parent.left
-               leftMargin: units.gu(2)
-               right: parent.right
-               rightMargin: units.gu(2)
-               bottom: parent.bottom
-           }
-           spacing: units.gu(2)
-           Repeater {
-               id: rightActionsRepeater
-
-               model: _showActions ? _visibleRightSideActions : []
-               Item {
-                   property alias image: img
-
-                   height: rightActionsView.height
-                   width: root.actionWidth
-
-                   Icon {
-                       id: img
-
-                       anchors.centerIn: parent
-                       width: units.gu(3)
-                       height: units.gu(3)
-                       name: modelData.iconName
-                       color: root.activeAction === modelData ? UbuntuColors.lightAubergine : UbuntuColors.lightGrey
-                   }
-              }
-           }
-       }
-    }
-
-
-    Rectangle {
-        id: main
-        objectName: "mainItem"
-
-        anchors {
-            top: parent.top
-            bottom: parent.bottom
-        }
-
-        width: parent.width
-        color: root.selected ? root.selectedColor : root.color
-
-        Loader {
-            id: selectionIcon
-
-            anchors {
-                left: main.left
-                verticalCenter: main.verticalCenter
-            }
-            width: (status === Loader.Ready) ? item.implicitWidth : 0
-            visible: (status === Loader.Ready) && (item.width === item.implicitWidth)
-            Behavior on width {
-                NumberAnimation {
-                    duration: UbuntuAnimation.SnapDuration
-                }
-            }
-        }
-
-
-        Item {
-            id: mainContents
-
-            anchors {
-                left: selectionIcon.right
-                leftMargin: units.gu(2)
-                top: parent.top
-                topMargin: units.gu(1)
-                right: parent.right
-                rightMargin: units.gu(2)
-                bottom: parent.bottom
-                bottomMargin: units.gu(1)
-            }
-        }
-
-        Behavior on x {
-            UbuntuNumberAnimation {
-                id: mainItemMoving
-
-                easing.type: Easing.OutElastic
-                duration: UbuntuAnimation.SlowDuration
-            }
-        }
-        Behavior on color {
-           ColorAnimation {}
-        }
-    }
-
-    SequentialAnimation {
-        id: triggerAction
-
-        property var currentItem: root.activeItem ? root.activeItem.image : null
-
-        running: false
-        ParallelAnimation {
-            UbuntuNumberAnimation {
-                target: triggerAction.currentItem
-                property: "opacity"
-                from: 1.0
-                to: 0.0
-                duration: UbuntuAnimation.SlowDuration
-                easing {type: Easing.InOutBack; }
-            }
-            UbuntuNumberAnimation {
-                target: triggerAction.currentItem
-                properties: "width, height"
-                from: units.gu(3)
-                to: root.actionWidth
-                duration: UbuntuAnimation.SlowDuration
-                easing {type: Easing.InOutBack; }
-            }
-        }
-        PropertyAction {
-            target: triggerAction.currentItem
-            properties: "width, height"
-            value: units.gu(3)
-        }
-        PropertyAction {
-            target: triggerAction.currentItem
-            properties: "opacity"
-            value: 1.0
-        }
-        ScriptAction {
-            script: {
-                root.activeAction.triggered(root)
-                mouseArea.state = ""
-            }
-        }
-        PauseAnimation {
-            duration: 500
-        }
-        UbuntuNumberAnimation {
-            target: main
-            property: "x"
-            to: 0
-
-        }
-    }
-
-    MouseArea {
-        id: mouseArea
-
-        property bool locked: root.locked || ((root.leftSideAction === null) && (root._visibleRightSideActions.count === 0))
-        property bool manual: false
-        property string direction: "None"
-        property real lastX: -1
-
-        anchors.fill: parent
-        drag {
-            target: locked ? null : main
-            axis: Drag.XAxis
-            minimumX: rightActionsView.visible ? -(rightActionsView.width) : 0
-            maximumX: leftActionView.visible ? leftActionView.width : 0
-            threshold: root.actionThreshold
-        }
-
-        states: [
-            State {
-                name: "LeftToRight"
-                PropertyChanges {
-                    target: mouseArea
-                    drag.maximumX: 0
-                }
-            },
-            State {
-                name: "RightToLeft"
-                PropertyChanges {
-                    target: mouseArea
-                    drag.minimumX: 0
-                }
-            }
-        ]
-
-        onMouseXChanged: {
-            var offset = (lastX - mouseX)
-            if (Math.abs(offset) <= root.actionThreshold) {
-                return
-            }
-            lastX = mouseX
-            direction = offset > 0 ? "RTL" : "LTR";
-        }
-
-        onPressed: {
-            lastX = mouse.x
-        }
-
-        onReleased: {
-            if (root.triggerActionOnMouseRelease && root.activeAction) {
-                triggerAction.start()
-            } else {
-                root.returnToBounds(direction)
-                root.activeAction = null
-            }
-            lastX = -1
-            direction = "None"
-        }
-        onClicked: {
-            if (main.x === 0) {
-                root.itemClicked(mouse)
-            } else if (main.x > 0) {
-                var action = getActionAt(Qt.point(mouse.x, mouse.y))
-                if (action && action !== -1) {
-                    action.triggered(root)
-                }
-            } else {
-                var actionIndex = getActionAt(Qt.point(mouse.x, mouse.y))
-                if (actionIndex !== -1) {
-                    root.activeItem = rightActionsRepeater.itemAt(actionIndex)
-                    root.activeAction = root._visibleRightSideActions[actionIndex]
-                    triggerAction.start()
-                    return
-                }
-            }
-            root.resetSwipe()
-        }
-
-        onPositionChanged: {
-            if (mouseArea.pressed) {
-                updateActiveAction()
-            }
-        }
-        onPressAndHold: {
-            if (main.x === 0) {
-                root.itemPressAndHold(mouse)
-            }
-        }
-        z: -1
-    }
-}

=== removed file 'src/app/qml/upstreamComponents/ListItemWithActionsCheckBox.qml'
--- src/app/qml/upstreamComponents/ListItemWithActionsCheckBox.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/ListItemWithActionsCheckBox.qml	1970-01-01 00:00:00 +0000
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2012-2014 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-
-CheckBox {
-    checked: root.selected
-    width: implicitWidth
-    // disable item mouse area to avoid conflicts with parent mouse area
-    __mouseArea.enabled: false
-}

=== removed file 'src/app/qml/upstreamComponents/MultipleSelectionGridView.qml'
--- src/app/qml/upstreamComponents/MultipleSelectionGridView.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/MultipleSelectionGridView.qml	1970-01-01 00:00:00 +0000
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2013 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-import Ubuntu.Components.Popups 1.0 as Popups
-
-/*!
-    \qmltype ContactSimpleListView
-    \inqmlmodule Ubuntu.Contacts 0.1
-    \ingroup ubuntu
-    \brief The MultipleSelectionListView provides a ListView with support to multiple selection
-
-    The MultipleSelectionListViewprovides a ListView with support to multiple selection which can be used by any
-    application.
-
-    Example:
-    \qml
-        import Ubuntu.Contacts 0.1
-
-        MultipleSelectionListView {
-            id: view
-            anchors.fill: paret
-            model: 100
-            delegate: Rectangle {
-                width: parent.width
-                height: 100
-                color: view.selectedItems.indexOf(index) == -1 ? "white" : "blue"
-
-                MouseArea {
-                    anchors.fill: parent
-                    onClicked: {
-                        if (view.isInSelectionModel) {
-                            view.selectItem(index)
-                        }
-                    }
-                    onPressAndHold: view.startSelection()
-                }
-            }
-            onSelectionDone: console.debug("Selected items:" + view.selectedItems)
-        }
-    \endqml
-*/
-
-GridView {
-    id: listView
-
-    /*!
-      \qmlproperty model selectedItems
-
-      This property holds the list of selected items
-    */
-    readonly property alias selectedItems: visualModel.selectedItems
-    /*!
-      \qmlproperty bool multipleSelection
-
-      This property holds if the selection will accept multiple items or single items
-    */
-    property bool multipleSelection: true
-
-    /*!
-      \qmlproperty model listModel
-
-      This property holds the model providing data for the list.
-    */
-    property alias listModel: visualModel.model
-    /*!
-      \qmlproperty Component listDelegate
-
-      The delegate provides a template defining each item instantiated by the view.
-    */
-    property alias listDelegate: visualModel.delegate
-
-    /*!
-      \qmlproperty bool isInSelectionMode
-
-      This property holds a list with the index of selected items
-    */
-    readonly property bool isInSelectionMode: state === "selection"
-    /*!
-      This handler is called when the selection mode is finished without be canceled
-    */
-    signal selectionDone(var items)
-    /*!
-      This handler is called when the selection mode is canceled
-    */
-    signal selectionCanceled()
-
-    /*!
-      Start the selection mode on the list view.
-    */
-    function startSelection()
-    {
-        state = "selection"
-    }
-    /*!
-      Check if the item is selected
-      Returns true if the item was marked as selected or false if the item is unselected
-    */
-    function isSelected(item)
-    {
-        if (item && item.VisualDataModel) {
-            return (item.VisualDataModel.inSelected === true)
-        } else {
-            return false
-        }
-    }
-    /*!
-      Mark the item as selected
-      Returns true if the item was marked as selected or false if the item is already selected
-    */
-    function selectItem(item)
-    {
-        if (item.VisualDataModel.inSelected) {
-            return false
-        } else {
-            if (!multipleSelection) {
-                clearSelection()
-            }
-            item.VisualDataModel.inSelected = true
-            return true
-        }
-    }
-    /*!
-      Remove the index from the selected list
-    */
-    function deselectItem(item)
-    {
-        var result = false
-        if (item.VisualDataModel.inSelected) {
-            item.VisualDataModel.inSelected = false
-            result = true
-        }
-        return result
-    }
-    /*!
-      Finish the selection mode with sucess
-    */
-    function endSelection()
-    {
-        selectionDone(listView.selectedItems)
-        clearSelection()
-        state = ""
-    }
-    /*!
-      Cancel the selection
-    */
-    function cancelSelection()
-    {
-        selectionCanceled()
-        clearSelection()
-        state = ""
-    }
-    /*!
-      Remove any selected item from the selection list
-    */
-    function clearSelection()
-    {
-        if (selectedItems.count > 0) {
-            selectedItems.remove(0, selectedItems.count)
-        }
-    }
-    /*!
-      Select all items in the list
-    */
-    function selectAll()
-    {
-        if (multipleSelection) {
-            visualModel.items.addGroups(0, visualModel.items.count, ["selected"] )
-        }
-    }
-
-    model: visualModel
-
-    MultipleSelectionVisualModel {
-        id: visualModel
-    }
-
-    Component.onCompleted: {
-        // FIXME: workaround for qtubuntu not returning values depending on the grid unit definition
-        // for Flickable.maximumFlickVelocity and Flickable.flickDeceleration
-        var scaleFactor = units.gridUnit / 8;
-        maximumFlickVelocity = maximumFlickVelocity * scaleFactor;
-        flickDeceleration = flickDeceleration * scaleFactor;
-    }
-}

=== removed file 'src/app/qml/upstreamComponents/MultipleSelectionListView.qml'
--- src/app/qml/upstreamComponents/MultipleSelectionListView.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/MultipleSelectionListView.qml	1970-01-01 00:00:00 +0000
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2013 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.3
-import Ubuntu.Components 1.1
-import Ubuntu.Components.Popups 1.0 as Popups
-
-/*!
-    \qmltype ContactSimpleListView
-    \inqmlmodule Ubuntu.Contacts 0.1
-    \ingroup ubuntu
-    \brief The MultipleSelectionListView provides a ListView with support to multiple selection
-
-    The MultipleSelectionListViewprovides a ListView with support to multiple selection which can be used by any
-    application.
-
-    Example:
-    \qml
-        import Ubuntu.Contacts 0.1
-
-        MultipleSelectionListView {
-            id: view
-            anchors.fill: paret
-            model: 100
-            delegate: Rectangle {
-                width: parent.width
-                height: 100
-                color: view.selectedItems.indexOf(index) == -1 ? "white" : "blue"
-
-                MouseArea {
-                    anchors.fill: parent
-                    onClicked: {
-                        if (view.isInSelectionModel) {
-                            view.selectItem(index)
-                        }
-                    }
-                    onPressAndHold: view.startSelection()
-                }
-            }
-            onSelectionDone: console.debug("Selected items:" + view.selectedItems)
-        }
-    \endqml
-*/
-
-ListView {
-    id: listView
-
-    /*!
-      \qmlproperty model selectedItems
-
-      This property holds the list of selected items
-    */
-    readonly property alias selectedItems: visualModel.selectedItems
-    /*!
-      \qmlproperty bool multipleSelection
-
-      This property holds if the selection will accept multiple items or single items
-    */
-    property bool multipleSelection: true
-
-    /*!
-      \qmlproperty model listModel
-
-      This property holds the model providing data for the list.
-    */
-    property alias listModel: visualModel.model
-    /*!
-      \qmlproperty Component listDelegate
-
-      The delegate provides a template defining each item instantiated by the view.
-    */
-    property alias listDelegate: visualModel.delegate
-
-    /*!
-      \qmlproperty bool isInSelectionMode
-
-      This property holds a list with the index of selected items
-    */
-    readonly property bool isInSelectionMode: state === "selection"
-    /*!
-      This handler is called when the selection mode is finished without be canceled
-    */
-    signal selectionDone(var items)
-    /*!
-      This handler is called when the selection mode is canceled
-    */
-    signal selectionCanceled()
-
-    /*!
-      Start the selection mode on the list view.
-    */
-    function startSelection()
-    {
-        state = "selection"
-    }
-    /*!
-      Check if the item is selected
-      Returns true if the item was marked as selected or false if the item is unselected
-    */
-    function isSelected(item)
-    {
-        if (item && item.VisualDataModel) {
-            return (item.VisualDataModel.inSelected === true)
-        } else {
-            return false
-        }
-    }
-    /*!
-      Mark the item as selected
-      Returns true if the item was marked as selected or false if the item is already selected
-    */
-    function selectItem(item)
-    {
-        if (item.VisualDataModel.inSelected) {
-            return false
-        } else {
-            if (!multipleSelection) {
-                clearSelection()
-            }
-            item.VisualDataModel.inSelected = true
-            return true
-        }
-    }
-    /*!
-      Remove the index from the selected list
-    */
-    function deselectItem(item)
-    {
-        var result = false
-        if (item.VisualDataModel.inSelected) {
-            item.VisualDataModel.inSelected = false
-            result = true
-        }
-        return result
-    }
-    /*!
-      Finish the selection mode with sucess
-    */
-    function endSelection()
-    {
-        selectionDone(listView.selectedItems)
-        clearSelection()
-        state = ""
-    }
-    /*!
-      Cancel the selection
-    */
-    function cancelSelection()
-    {
-        selectionCanceled()
-        clearSelection()
-        state = ""
-    }
-    /*!
-      Remove any selected item from the selection list
-    */
-    function clearSelection()
-    {
-        if (selectedItems.count > 0) {
-            selectedItems.remove(0, selectedItems.count)
-        }
-    }
-    /*!
-      Select all items in the list
-    */
-    function selectAll()
-    {
-        if (multipleSelection) {
-            visualModel.items.addGroups(0, visualModel.items.count, ["selected"] )
-        }
-    }
-
-    model: visualModel
-
-    MultipleSelectionVisualModel {
-        id: visualModel
-    }
-
-    Component.onCompleted: {
-        // FIXME: workaround for qtubuntu not returning values depending on the grid unit definition
-        // for Flickable.maximumFlickVelocity and Flickable.flickDeceleration
-        var scaleFactor = units.gridUnit / 8;
-        maximumFlickVelocity = maximumFlickVelocity * scaleFactor;
-        flickDeceleration = flickDeceleration * scaleFactor;
-    }
-}

=== removed file 'src/app/qml/upstreamComponents/MultipleSelectionVisualModel.qml'
--- src/app/qml/upstreamComponents/MultipleSelectionVisualModel.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/MultipleSelectionVisualModel.qml	1970-01-01 00:00:00 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2012-2013 Canonical, Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-import QtQuick 2.3
-
-VisualDataModel {
-    id: contactVisualModel
-
-    property alias selectedItems: selectedGroup
-
-    groups: [
-        VisualDataGroup {
-            id: selectedGroup
-
-            name: "selected"
-        }
-    ]
-}

=== modified file 'src/app/qml/upstreamComponents/PageWithBottomEdge.qml'
--- src/app/qml/upstreamComponents/PageWithBottomEdge.qml	2015-02-13 15:30:01 +0000
+++ src/app/qml/upstreamComponents/PageWithBottomEdge.qml	2015-11-06 11:00:18 +0000
@@ -62,8 +62,8 @@
 
 */
 
-import QtQuick 2.2
-import Ubuntu.Components 1.1
+import QtQuick 2.4
+import Ubuntu.Components 1.2
 
 Page {
     id: page

=== removed file 'src/app/urlhandler.cpp'
--- src/app/urlhandler.cpp	2015-02-13 15:30:01 +0000
+++ src/app/urlhandler.cpp	1970-01-01 00:00:00 +0000
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2014 Canonical, Ltd.
- *
- * Authors:
- *  Arthur Mello <arthur.mello@xxxxxxxxxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#include "urlhandler.h"
-
-#include <QUrl>
-#include <QStringList>
-#include <QFileInfo>
-#include <QDir>
-#include <QDebug>
-
-UrlHandler::UrlHandler()
-    : m_documentFile("")
-{
-    m_validSchemes << "document";
-}
-
-/*!
- * @brief UrlHandler::processUri parsers our input uri and sets attributes accordingly.
- * @param QString uri to parse and set attributes.
- * @return false if invalid parameter is input.
- */
-bool UrlHandler::processUri(const QString& arg)
-{
-    QUrl uri(arg);
-
-    if (!m_validSchemes.contains(uri.scheme())) {
-        return false;
-    }
-
-    if (uri.scheme() == "document") {
-        uri.setScheme("file");
-    }
-
-    if (uri.isRelative()) {
-        uri = QUrl::fromLocalFile(QDir::current().absoluteFilePath(arg));
-    }
-
-    // Check if it's a local file
-    if (uri.isValid() && uri.isLocalFile()) {
-        QFileInfo info(uri.toLocalFile());
-        if (info.exists() && info.isFile()) {
-            m_documentFile = info.absoluteFilePath();
-            return true;
-        } else {
-            qWarning() << "File not found:" << uri << info.exists() << info.isFile();
-        }
-    } else {
-        qWarning() << "Invalid uri:" << uri;
-    }
-
-    return false;
-}

=== removed file 'src/app/urlhandler.h'
--- src/app/urlhandler.h	2015-02-13 15:30:01 +0000
+++ src/app/urlhandler.h	1970-01-01 00:00:00 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2014 Canonical, Ltd.
- *
- * Authors:
- *  Arthur Mello <arthur.mello@xxxxxxxxxxxxx>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-#ifndef URLHANDLER_H
-#define URLHANDLER_H
-
-#include <QString>
-#include <QList>
-
-/*!
- * @brief The UrlHandler is used to parse calls of docviewer from the url schema.
- */
-class UrlHandler
-{
-public:
-    UrlHandler();
-
-    bool processUri(const QString &arg);
-    const QString &documentFile() { return m_documentFile; }
-
-private:
-    QList<QString> m_validSchemes;
-    QString m_documentFile;
-};
-
-#endif // URLHANDLER_H

=== modified file 'src/plugin/CMakeLists.txt'
--- src/plugin/CMakeLists.txt	2014-10-20 21:38:36 +0000
+++ src/plugin/CMakeLists.txt	2015-11-06 11:00:18 +0000
@@ -1,2 +1,3 @@
 add_subdirectory(file-qml-plugin)
 add_subdirectory(poppler-qml-plugin)
+add_subdirectory(libreofficetoolkit-qml-plugin)

=== modified file 'src/plugin/file-qml-plugin/CMakeLists.txt'
--- src/plugin/file-qml-plugin/CMakeLists.txt	2015-05-13 14:22:36 +0000
+++ src/plugin/file-qml-plugin/CMakeLists.txt	2015-11-06 11:00:18 +0000
@@ -3,12 +3,11 @@
 
 #add the sources to compile
 set(fileqmlplugin_SRCS
-	backend.cpp
-	documentmodel.cpp
-        fswatcher.cpp
-	docviewerfile.cpp
-        qstorageinfo.cpp
-        qstorageinfo_unix.cpp
+    backend.cpp
+    documentmodel.cpp
+    fswatcher.cpp
+    docviewerfile.cpp
+    docviewerutils.cpp
 )
 
 add_library(fileqmlplugin MODULE

=== modified file 'src/plugin/file-qml-plugin/backend.cpp'
--- src/plugin/file-qml-plugin/backend.cpp	2015-04-29 15:23:32 +0000
+++ src/plugin/file-qml-plugin/backend.cpp	2015-11-06 11:00:18 +0000
@@ -21,6 +21,16 @@
 #include "backend.h"
 #include "documentmodel.h"
 #include "docviewerfile.h"
+#include "docviewerutils.h"
+
+static QObject *registerDocviewerUtils (QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+    Q_UNUSED(engine)
+    Q_UNUSED(scriptEngine)
+
+    DocviewerUtils *ch = new DocviewerUtils();
+    return ch;
+}
 
 void BackendPlugin::registerTypes(const char *uri)
 {
@@ -30,6 +40,8 @@
 
     qmlRegisterType<DocumentModel>(uri, 1, 0, "DocumentsModel");
     qmlRegisterType<DocviewerFile>(uri, 1, 0, "File");
+
+    qmlRegisterSingletonType<DocviewerUtils>(uri, 1, 0, "DocumentViewer", registerDocviewerUtils);
 }
 
 void BackendPlugin::initializeEngine(QQmlEngine *engine, const char *uri)

=== modified file 'src/plugin/file-qml-plugin/documentmodel.cpp'
--- src/plugin/file-qml-plugin/documentmodel.cpp	2015-07-30 11:06:22 +0000
+++ src/plugin/file-qml-plugin/documentmodel.cpp	2015-11-06 11:00:18 +0000
@@ -17,12 +17,12 @@
 
 #include "documentmodel.h"
 #include "fswatcher.h"
-#include "qstorageinfo.h"
+#include "docviewerutils.h"
 
 #include <QStandardPaths>
 #include <QDir>
 #include <QFileInfo>
-
+#include <QStorageInfo>
 #include <QMimeDatabase>
 #include <QDateTime>
 
@@ -115,10 +115,7 @@
 
 bool DocumentModel::isFileSupported(const QString &path)
 {
-    QMimeDatabase db;
-    QString mimetype = db.mimeTypeForFile(path).name();
-
-    return (mimetype.startsWith("text/") || mimetype == "application/pdf");
+    return DocviewerUtils::isFileSupported(path);
 }
 
 QHash<int, QByteArray> DocumentModel::roleNames() const

=== added file 'src/plugin/file-qml-plugin/docviewerutils.cpp'
--- src/plugin/file-qml-plugin/docviewerutils.cpp	1970-01-01 00:00:00 +0000
+++ src/plugin/file-qml-plugin/docviewerutils.cpp	2015-11-06 11:00:18 +0000
@@ -0,0 +1,169 @@
+/*
+  Copyright (C) 2015 Canonical, Ltd.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License 3 as published by
+  the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program. If not, see http://www.gnu.org/licenses/.
+*/
+
+#include "docviewerutils.h"
+
+#include <QFileInfo>
+#include <QDir>
+#include <QMimeDatabase>
+#include <QStandardPaths>
+#include <QDirIterator>
+#include <QDateTime>
+#include <QtGui/QGuiApplication>
+
+bool DocviewerUtils::desktopMode() const
+{
+    // Assume that platformName (QtUbuntu) with ubuntu
+    // in name means it's running on device
+    // TODO: replace this check with SDK call for formfactor
+    QString platform = QGuiApplication::platformName();
+    return !((platform == "ubuntu") || (platform == "ubuntumirclient"));
+}
+
+bool DocviewerUtils::exists(const QString &path)
+{
+    QFileInfo fi(path);
+
+    if (fi.isFile())
+        return fi.exists();
+
+    // else
+    return QDir(path).exists();
+}
+
+bool DocviewerUtils::copy(const QString &source, const QString &destination)
+{
+    return QFile::copy(source, destination);
+}
+
+bool DocviewerUtils::isFileSupported(const QString &path)
+{
+    QMimeDatabase mdb;
+    const QString mimetype = mdb.mimeTypeForFile(path).name();
+
+    return mimetype.startsWith("text/")
+            || mimetype == "application/pdf"
+            || mimetype.startsWith("application/vnd.oasis.opendocument")
+            || mimetype == "application/msword"
+            || mimetype == "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
+            || mimetype == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
+            || mimetype == "application/vnd.openxmlformats-officedocument.presentationml.presentation"
+            || mimetype == "application/vnd.ms-excel"
+            || mimetype == "application/vnd.ms-powerpoint";
+}
+
+QString DocviewerUtils::getXdgDocumentsLocation()
+{
+    return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
+}
+
+QString DocviewerUtils::buildDestinationPath(const QString &destinationDir, const QString &sourcePath)
+{
+    QFileInfo fi(sourcePath);
+
+    /*
+      We don't support formats that use a double extension
+      (e.g. tar.gz), so we can safely use completeBaseName() and
+      suffix() functions, in order to properly detect the name of
+      the document even when there's a dot in the middle of the name.
+    */
+    QString suffix = fi.suffix();
+    QString filenameWithoutSuffix = fi.completeBaseName();
+
+    QMimeDatabase mdb;
+    QMimeType mt = mdb.mimeTypeForFile(sourcePath);
+
+    // If the filename doesn't have an extension add one from the
+    // detected mimetype
+    if (suffix.isEmpty())
+        suffix = mt.preferredSuffix();
+
+    QString dir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + QDir::separator();
+    QString destination = QString("%1.%2").arg(dir + filenameWithoutSuffix, suffix);
+
+    // If there's already a file of this name, reformat it to
+    // "filename (copy x).png" where x is a number, incremented until we find an
+    // available filename.
+    if (QFile::exists(destination)) {
+        /*
+         TRANSLATORS: This string is used for renaming a copied file,
+         when a file with the same name already exists in user's
+         Documents folder.
+
+         e.g. "Manual_Aquaris_E4.5_ubuntu_EN.pdf" will become
+              "Manual_Aquaris_E4.5_ubuntu_EN (copy 2).pdf"
+
+              where "2" is given by the argument "%1"
+        */
+        QString reformattedSuffix = QString(tr("copy %1"));
+
+        // Check if the file has already a "copy" suffix
+        // If so, remove it since we will update it later.
+        QRegExp rx(" \\(" + reformattedSuffix.arg(QString("\\d+")) + "\\)");
+        int reformattedSuffixPos = filenameWithoutSuffix.lastIndexOf(rx);
+
+        if (reformattedSuffixPos != -1)
+            filenameWithoutSuffix.truncate(reformattedSuffixPos);
+
+        // Add the right "copy" suffix.
+        int append = 1;
+        while (QFile::exists(destination)) {
+            destination = QString("%1 (%2).%3").arg(
+                        dir + filenameWithoutSuffix,
+                        reformattedSuffix.arg(QString::number(append)),
+                        suffix);
+            append++;
+        }
+    }
+
+    return destination;
+}
+
+// Return the path of the file, if found in the storageLocation paths,
+// otherwise return an empty string.
+// Used for prevent importing of a second copy of a file through ContentHub.
+QString DocviewerUtils::checkIfFileAlreadyImported(const QString &filePath, const QStringList &storageLocationList)
+{
+    QFileInfo fi(filePath);
+    QStringList files;
+
+    // Get the list of all the files in the watched folders
+    Q_FOREACH(const QString &storageLocation, storageLocationList) {
+        QDirIterator dir(storageLocation, QDir::Files | QDir::NoDotAndDotDot | QDir::Readable,
+                         QDirIterator::Subdirectories);
+
+        while (dir.hasNext())
+        {
+            dir.next();
+            files.append(dir.filePath());
+        }
+    }
+
+    // Check if there's a file with the same name in the list
+    Q_FOREACH(const QString &file, files) {
+        if (file.endsWith(fi.fileName())) {
+            // Seems there could be already the same file in the watched
+            // folders. Check also size and lastModified date.
+            QFileInfo fileToCheck(file);
+
+            if (fi.size() == fileToCheck.size() &&
+                    fi.lastModified() == fileToCheck.lastModified())
+                return file;
+        }
+    }
+
+    return QString();
+}

=== added file 'src/plugin/file-qml-plugin/docviewerutils.h'
--- src/plugin/file-qml-plugin/docviewerutils.h	1970-01-01 00:00:00 +0000
+++ src/plugin/file-qml-plugin/docviewerutils.h	2015-11-06 11:00:18 +0000
@@ -0,0 +1,42 @@
+/*
+  Copyright (C) 2015 Canonical, Ltd.
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License 3 as published by
+  the Free Software Foundation.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program. If not, see http://www.gnu.org/licenses/.
+*/
+
+#ifndef DOCVIEWERUTILS_H
+#define DOCVIEWERUTILS_H
+
+#include <QObject>
+#include <QThread>
+
+class DocviewerUtils : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(bool desktopMode READ desktopMode CONSTANT)
+
+public:
+    bool desktopMode() const;
+
+    Q_INVOKABLE static bool exists(const QString &path);
+    Q_INVOKABLE static bool copy(const QString &source, const QString &destination);
+
+    Q_INVOKABLE static bool isFileSupported(const QString &path);
+    Q_INVOKABLE static QString getXdgDocumentsLocation();
+
+    Q_INVOKABLE static QString buildDestinationPath(const QString &destinationDir, const QString &sourcePath);
+
+    Q_INVOKABLE static QString checkIfFileAlreadyImported(const QString &filePath, const QStringList &storageLocationList);
+};
+
+#endif // DOCVIEWERUTILS_H

=== removed file 'src/plugin/file-qml-plugin/qstorageinfo.cpp'
--- src/plugin/file-qml-plugin/qstorageinfo.cpp	2015-05-13 14:22:36 +0000
+++ src/plugin/file-qml-plugin/qstorageinfo.cpp	1970-01-01 00:00:00 +0000
@@ -1,378 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Ivan Komissarov <ABBAPOH@xxxxxxxxx>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; version 3.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program.  If not, see <http://www.gnu.org/licenses/>.
-**
-****************************************************************************/
-
-#include "qstorageinfo.h"
-#include "qstorageinfo_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
-    \class QStorageInfo
-    \inmodule QtCore
-    \since 5.4
-    \brief Provides information about currently mounted storage and drives.
-
-    \ingroup io
-    \ingroup shared
-
-    Allows retrieving information about the volume's space, its mount point,
-    label, and filesystem name.
-
-    You can create an instance of QStorageInfo by passing the path to the
-    volume's mount point as a constructor parameter, or you can set it using
-    the setPath() method. The static mountedVolumes() method can be used to get the
-    list of all mounted filesystems.
-
-    QStorageInfo always caches the retrieved information, but you can call
-    refresh() to invalidate the cache.
-
-    The following example retrieves the most common information about the root
-    volume of the system, and prints information about it.
-
-    \snippet code/src_corelib_io_qstorageinfo.cpp 2
-*/
-
-/*!
-    Constructs an empty QStorageInfo object.
-
-    Objects created with the default constructor will be invalid and therefore
-    not ready for use.
-
-    \sa setPath(), isReady(), isValid()
-*/
-QStorageInfo::QStorageInfo()
-    : d(new QStorageInfoPrivate)
-{
-}
-
-/*!
-    Constructs a new QStorageInfo object that gives information about the volume
-    mounted at \a path.
-
-    If you pass a directory or file, the QStorageInfo object will refer to the
-    volume where this directory or file is located.
-    You can check if the created object is correct using the isValid() method.
-
-    The following example shows how to get the volume on which the application is
-    located. It is recommended to always check that the volume is ready and valid.
-
-    \snippet code/src_corelib_io_qstorageinfo.cpp 0
-
-    \sa setPath()
-*/
-QStorageInfo::QStorageInfo(const QString &path)
-    : d(new QStorageInfoPrivate)
-{
-    setPath(path);
-}
-
-/*!
-    Constructs a new QStorageInfo object that gives information about the volume
-    containing the \a dir folder.
-*/
-QStorageInfo::QStorageInfo(const QDir &dir)
-    : d(new QStorageInfoPrivate)
-{
-    setPath(dir.absolutePath());
-}
-
-/*!
-    Constructs a new QStorageInfo object that is a copy of the \a other QStorageInfo object.
-*/
-QStorageInfo::QStorageInfo(const QStorageInfo &other)
-    : d(other.d)
-{
-}
-
-/*!
-    Destroys the QStorageInfo object and frees its resources.
-*/
-QStorageInfo::~QStorageInfo()
-{
-}
-
-/*!
-    Makes a copy of the QStorageInfo object \a other and assigns it to this QStorageInfo object.
-*/
-QStorageInfo &QStorageInfo::operator=(const QStorageInfo &other)
-{
-    d = other.d;
-    return *this;
-}
-
-/*!
-    \fn QStorageInfo &QStorageInfo::operator=(QStorageInfo &&other)
-
-    Assigns \a other to this QStorageInfo instance.
-*/
-
-/*!
-    \fn void QStorageInfo::swap(QStorageInfo &other)
-
-    Swaps this volume info with \a other. This function is very fast and
-    never fails.
-*/
-
-/*!
-    Sets this QStorageInfo object to the filesystem mounted where \a path is located.
-
-    \a path can either be a root path of the filesystem, a directory, or a file
-    within that filesystem.
-
-    \sa rootPath()
-*/
-void QStorageInfo::setPath(const QString &path)
-{
-    if (d->rootPath == path)
-        return;
-    d.detach();
-    d->rootPath = path;
-    d->doStat();
-}
-
-/*!
-    Returns the mount point of the filesystem this QStorageInfo object
-    represents.
-
-    On Windows, it returns the volume letter in case the volume is not mounted to
-    a directory.
-
-    Note that the value returned by rootPath() is the real mount point of a
-    volume, and may not be equal to the value passed to the constructor or setPath()
-    method. For example, if you have only the root volume in the system, and
-    pass '/directory' to setPath(), then this method will return '/'.
-
-    \sa setPath(), device()
-*/
-QString QStorageInfo::rootPath() const
-{
-    return d->rootPath;
-}
-
-/*!
-    Returns the size (in bytes) available for the current user. It returns
-    the total size available if the user is the root user or a system administrator.
-
-    This size can be less than or equal to the free size returned by
-    bytesFree() function.
-
-    \sa bytesTotal(), bytesFree()
-*/
-qint64 QStorageInfo::bytesAvailable() const
-{
-    return d->bytesAvailable;
-}
-
-/*!
-    Returns the number of free bytes in a volume. Note that if there are
-    quotas on the filesystem, this value can be larger than the value
-    returned by bytesAvailable().
-
-    \sa bytesTotal(), bytesAvailable()
-*/
-qint64 QStorageInfo::bytesFree() const
-{
-    return d->bytesFree;
-}
-
-/*!
-    Returns the total volume size in bytes.
-
-    \sa bytesFree(), bytesAvailable()
-*/
-qint64 QStorageInfo::bytesTotal() const
-{
-    return d->bytesTotal;
-}
-
-/*!
-    Returns the type name of the filesystem.
-
-    This is a platform-dependent function, and filesystem names can vary
-    between different operating systems. For example, on Windows filesystems
-    they can be named \c NTFS, and on Linux they can be named \c ntfs-3g or \c fuseblk.
-
-    \sa name()
-*/
-QByteArray QStorageInfo::fileSystemType() const
-{
-    return d->fileSystemType;
-}
-
-/*!
-    Returns the device for this volume.
-
-    For example, on Unix filesystems (including OS X), this returns the
-    devpath like \c /dev/sda0 for local storages. On Windows, it returns the UNC
-    path starting with \c \\\\?\\ for local storages (in other words, the volume GUID).
-
-    \sa rootPath()
-*/
-QByteArray QStorageInfo::device() const
-{
-    return d->device;
-}
-
-/*!
-    Returns the human-readable name of a filesystem, usually called \c label.
-
-    Not all filesystems support this feature. In this case, the value returned by
-    this method could be empty. An empty string is returned if the file system
-    does not support labels, or if no label is set.
-
-    On Linux, retrieving the volume's label requires \c udev to be present in the
-    system.
-
-    \sa fileSystemType()
-*/
-QString QStorageInfo::name() const
-{
-    return d->name;
-}
-
-/*!
-    Returns the volume's name, if available, or the root path if not.
-*/
-QString QStorageInfo::displayName() const
-{
-    if (!d->name.isEmpty())
-        return d->name;
-    return d->rootPath;
-}
-
-/*!
-    \fn bool QStorageInfo::isRoot() const
-
-    Returns true if this QStorageInfo represents the system root volume; false
-    otherwise.
-
-    On Unix filesystems, the root volume is a volume mounted on \c /. On Windows,
-    the root volume is the volume where the OS is installed.
-
-    \sa root()
-*/
-
-/*!
-    Returns true if the current filesystem is protected from writing; false
-    otherwise.
-*/
-bool QStorageInfo::isReadOnly() const
-{
-    return d->readOnly;
-}
-
-/*!
-    Returns true if the current filesystem is ready to work; false otherwise. For
-    example, false is returned if the CD volume is not inserted.
-
-    Note that fileSystemType(), name(), bytesTotal(), bytesFree(), and
-    bytesAvailable() will return invalid data until the volume is ready.
-
-    \sa isValid()
-*/
-bool QStorageInfo::isReady() const
-{
-    return d->ready;
-}
-
-/*!
-    Returns true if the QStorageInfo specified by rootPath exists and is mounted
-    correctly.
-
-    \sa isReady()
-*/
-bool QStorageInfo::isValid() const
-{
-    return d->valid;
-}
-
-/*!
-    Resets QStorageInfo's internal cache.
-
-    QStorageInfo caches information about storage to speed up performance.
-    QStorageInfo retrieves information during object construction and/or when calling
-    the setPath() method. You have to manually reset the cache by calling this
-    function to update storage information.
-*/
-void QStorageInfo::refresh()
-{
-    d.detach();
-    d->doStat();
-}
-
-/*!
-    Returns the list of QStorageInfo objects that corresponds to the list of currently
-    mounted filesystems.
-
-    On Windows, this returns the drives visible in the \gui{My Computer} folder. On Unix
-    operating systems, it returns the list of all mounted filesystems (except for
-    pseudo filesystems).
-
-    Returns all currently mounted filesystems by default.
-
-    The example shows how to retrieve all available filesystems, skipping read-only ones.
-
-    \snippet code/src_corelib_io_qstorageinfo.cpp 1
-
-    \sa root()
-*/
-QList<QStorageInfo> QStorageInfo::mountedVolumes()
-{
-    return QStorageInfoPrivate::mountedVolumes();
-}
-
-Q_GLOBAL_STATIC_WITH_ARGS(QStorageInfo, getRoot, (QStorageInfoPrivate::root()))
-
-/*!
-    Returns a QStorageInfo object that represents the system root volume.
-
-    On Unix systems this call returns the root ('/') volume; in Windows the volume where
-    the operating system is installed.
-
-    \sa isRoot()
-*/
-QStorageInfo QStorageInfo::root()
-{
-    return *getRoot();
-}
-
-/*!
-    \fn inline bool operator==(const QStorageInfo &first, const QStorageInfo &second)
-
-    \relates QStorageInfo
-
-    Returns true if the \a first QStorageInfo object refers to the same drive or volume
-    as the \a second; otherwise it returns false.
-
-    Note that the result of comparing two invalid QStorageInfo objects is always
-    positive.
-*/
-
-/*!
-    \fn inline bool operator!=(const QStorageInfo &first, const QStorageInfo &second)
-
-    \relates QStorageInfo
-
-    Returns true if the \a first QStorageInfo object refers to a different drive or
-    volume than the \a second; otherwise returns false.
-*/
-
-QT_END_NAMESPACE

=== removed file 'src/plugin/file-qml-plugin/qstorageinfo.h'
--- src/plugin/file-qml-plugin/qstorageinfo.h	2015-05-13 14:22:36 +0000
+++ src/plugin/file-qml-plugin/qstorageinfo.h	1970-01-01 00:00:00 +0000
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Ivan Komissarov <ABBAPOH@xxxxxxxxx>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; version 3.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with this program.  If not, see <http://www.gnu.org/licenses/>.
-**
-****************************************************************************/
-
-#ifndef QSTORAGEINFO_H
-#define QSTORAGEINFO_H
-
-#include <QtCore/qbytearray.h>
-#include <QtCore/qdir.h>
-#include <QtCore/qlist.h>
-#include <QtCore/qmetatype.h>
-#include <QtCore/qstring.h>
-#include <QtCore/qshareddata.h>
-
-QT_BEGIN_NAMESPACE
-
-class QStorageInfoPrivate;
-class Q_CORE_EXPORT QStorageInfo
-{
-public:
-    QStorageInfo();
-    explicit QStorageInfo(const QString &path);
-    explicit QStorageInfo(const QDir &dir);
-    QStorageInfo(const QStorageInfo &other);
-    ~QStorageInfo();
-
-    QStorageInfo &operator=(const QStorageInfo &other);
-#ifdef Q_COMPILER_RVALUE_REFS
-    inline QStorageInfo &operator=(QStorageInfo &&other)
-    { qSwap(d, other.d); return *this; }
-#endif
-
-    inline void swap(QStorageInfo &other)
-    { qSwap(d, other.d); }
-
-    void setPath(const QString &path);

Follow ups