--- /dev/null
+QMAKEVERSION = $$[QMAKE_VERSION]
+ISQT4 = $$find(QMAKEVERSION, ^[2-9])
+isEmpty( ISQT4 ) {
+error("Use the qmake include with Qt4.4 or greater");
+}
+
+TEMPLATE = subdirs
+SUBDIRS = src
--- /dev/null
+cuteexplorer for Debian
+-----------------------
+
+<possible notes regarding this package - if none, delete this file>
+
+ -- unknown <tomma.asp@gmail.com> Mon, 22 Mar 2010 15:26:30 +0200
--- /dev/null
+cuteexplorer (1.0-2) unstable; urgency=low
+
+ * Fixed broken .desktop -file
+
+ -- Tommi Asp <tomma.asp@gmail.com> Mon, 22 Mar 2010 23:07:55 +0200
+
+cuteexplorer (1.0-1) unstable; urgency=low
+
+ * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
+
+ -- Tommi Asp <tomma.asp@gmail.com> Mon, 22 Mar 2010 14:09:49 +0200
+
--- /dev/null
+Source: cuteexplorer
+Section: user/utilities
+Priority: extra
+Maintainer: Tommi Asp <tomma.asp@gmail.com>
+Build-Depends: debhelper (>= 5), libqt4-maemo5-dev, libdbus-1-dev, libhildonmime-dev, libhildonmime-dev
+Standards-Version: 3.7.2
+
+Package: cuteexplorer
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Filemanager for maemo5 using Qt
+ Navigate in the real filesystem.
+ Can send files via bluetooth.
+XSBC-Maemo-Display-Name: CuteExplorer
+XB-Maemo-Icon-26:
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAA7E
+ AAAOxAGVKw4bAAADfklEQVRoge2ZTWsrVRjHf2eal5tMILdxlbYRym27cJUu
+ pCi34MZFtZvrxg/gQr+ApRuhO6nVnYLQT2AXIsJdiILbG4R7K6ISpoFSLWnv
+ hZjbppPJS3NcJGecvHfy4iSQHxwy88xzcv7/M3POzJwRUkqmGc1rAcMyM+A1
+ U29AACHgEbDgsZa7kgW+lVIWVSANyCkraWBRSoloBABKI+qhcRNs/H4npXyk
+ DHwspfzcmbWzs/NjoTynSTQxV31Z6fevWkDTiBKovahZo1Kq67q+v7//0BkT
+ QuwCnwJFKWXY14gXWitbllX658Huu3IuRPS3XQBisRjr6+tNeWdnZxiGwf33
+ 7xN+GOb5J8+pvqiOxIBlWd93CCutAQBfhwQbf+4XmAva+8VikdPT06acfD4P
+ QOn3EuKeoHZVG1zxAHQ1EAwGM/eyj7+A/waJaZqcnJx0zDefmphPzZGK8/v9
+ PTsYehjQdf3Pg4ODr0eqyCV7e3sf9cuxDQghAsA7wANAbG9vvyGEiIxRX19a
+ NGSAx605ysArwDPgNXXg4uIC4L0xa+xJBw1/AN84c5SBD4EEgKbVny6EEPa2
+ IplMsrm5ORaxR0dHXF5eNsWcGmq1GtQ7+ANnjjKQAFhZWSEajdYDiYSqZBOP
+ x9tio2JtbY2FheanGaeGfD5PJpMBeNWZ0zSIw+Fwz0ZyuRzFYrFnzqBYVu/7
+ XzdtfacpJ8lkkq2tLTdV7szh4SHn5+eu67kykEqlSKVSrhsZJ64MbGxsTPcZ
+ OD4+Jp1Ou27kLhQKbY9jd8KVgVgsxvLy8kANKTKZTNt0OQyuDEQiEZaWloZq
+ MJvNDlW/FVcGDMPAMIyRChiWqX+pnxnwmqYxYJomPl89VKlUiMfjnohSlMtl
+ bm5ubD0tvFQbXi+RDFo+UwvTP0+AGLflJyAgpcQHfAW8BbC6umpfQpNGpVJx
+ vo9/KaUsQ8sYCIVCCCHI5XJUq6NZGhkWn89HLBbr2rFt0evra0qlyVmku729
+ 5erqikik8+t52zQ6rjeuYeilaSruA0KIrsfaDOi63rPC/40QouvlA/Ux8Jfa
+ KRQKzM/Ps7i4ODGXkqZp9sTi4G+1IaifhSfA63Zwgs4AQMuX1CfAm1IFG78J
+ 4Fe8v0H1K89ofNhQRSgjQgg/8DawSv3MTBISOAF+kFI23aDE7EO3x8wMeM3M
+ gNdMvYF/Acd52O0Tf+jGAAAAAElFTkSuQmCC
+XSBC-Bugtracker: https://garage.maemo.org/tracker/?atid=5332&group_id=1469&func=browse
--- /dev/null
+This package was debianized by unknown <tomma.asp@gmail.com> on
+Mon, 22 Mar 2010 15:26:30 +0200.
+
+It was downloaded from <fill in http/ftp site>
+
+Upstream Author: <put author(s) name and email here>
+
+Copyright: <put the year(s) of the copyright, and the names of the
+ copyright holder(s) here>
+
+License:
+
+ This package is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This package 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Debian systems, the complete text of the GNU Lesser General
+Public License can be found in `/usr/share/common-licenses/LGPL'.
+
+
+The Debian packaging is (C) 2010, unknown <tomma.asp@gmail.com> and
+is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+
+
+# Please also look if there are files or directories which have a
+# different copyright/license attached and list them here.
--- /dev/null
+#
+# Regular cron jobs for the cuteexplorer package
+#
+0 4 * * * root cuteexplorer_maintenance
--- /dev/null
+# Defaults for cuteexplorer initscript
+# sourced by /etc/init.d/cuteexplorer
+# installed at /etc/default/cuteexplorer by the maintainer scripts
+
+#
+# This is a POSIX shell fragment
+#
+
+# Additional options that are passed to the Daemon.
+DAEMON_OPTS=""
--- /dev/null
+Document: cuteexplorer
+Title: Debian cuteexplorer Manual
+Author: <insert document author here>
+Abstract: This manual describes what cuteexplorer is
+ and how it can be used to
+ manage online manuals on Debian systems.
+Section: unknown
+
+Format: debiandoc-sgml
+Files: /usr/share/doc/cuteexplorer/cuteexplorer.sgml.gz
+
+Format: postscript
+Files: /usr/share/doc/cuteexplorer/cuteexplorer.ps.gz
+
+Format: text
+Files: /usr/share/doc/cuteexplorer/cuteexplorer.text.gz
+
+Format: HTML
+Index: /usr/share/doc/cuteexplorer/html/index.html
+Files: /usr/share/doc/cuteexplorer/html/*.html
+
+
--- /dev/null
+usr/bin
+usr/sbin
--- /dev/null
+#! /bin/sh -e
+# /usr/lib/emacsen-common/packages/install/cuteexplorer
+
+# Written by Jim Van Zandt <jrv@debian.org>, borrowing heavily
+# from the install scripts for gettext by Santiago Vila
+# <sanvila@ctv.es> and octave by Dirk Eddelbuettel <edd@debian.org>.
+
+FLAVOR=$1
+PACKAGE=cuteexplorer
+
+if [ ${FLAVOR} = emacs ]; then exit 0; fi
+
+echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
+
+#FLAVORTEST=`echo $FLAVOR | cut -c-6`
+#if [ ${FLAVORTEST} = xemacs ] ; then
+# SITEFLAG="-no-site-file"
+#else
+# SITEFLAG="--no-site-file"
+#fi
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+
+ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
+ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+
+# Install-info-altdir does not actually exist.
+# Maybe somebody will write it.
+if test -x /usr/sbin/install-info-altdir; then
+ echo install/${PACKAGE}: install Info links for ${FLAVOR}
+ install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz
+fi
+
+install -m 755 -d ${ELCDIR}
+cd ${ELDIR}
+FILES=`echo *.el`
+cp ${FILES} ${ELCDIR}
+cd ${ELCDIR}
+
+cat << EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+
+exit 0
--- /dev/null
+#!/bin/sh -e
+# /usr/lib/emacsen-common/packages/remove/cuteexplorer
+
+FLAVOR=$1
+PACKAGE=cuteexplorer
+
+if [ ${FLAVOR} != emacs ]; then
+ if test -x /usr/sbin/install-info-altdir; then
+ echo remove/${PACKAGE}: removing Info links for ${FLAVOR}
+ install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/cuteexplorer.info.gz
+ fi
+
+ echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+ rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+fi
--- /dev/null
+;; -*-emacs-lisp-*-
+;;
+;; Emacs startup file, e.g. /etc/emacs/site-start.d/50cuteexplorer.el
+;; for the Debian cuteexplorer package
+;;
+;; Originally contributed by Nils Naumann <naumann@unileoben.ac.at>
+;; Modified by Dirk Eddelbuettel <edd@debian.org>
+;; Adapted for dh-make by Jim Van Zandt <jrv@debian.org>
+
+;; The cuteexplorer package follows the Debian/GNU Linux 'emacsen' policy and
+;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
+;; xemacs19, emacs20, xemacs20...). The compiled code is then
+;; installed in a subdirectory of the respective site-lisp directory.
+;; We have to add this to the load-path:
+(let ((package-dir (concat "/usr/share/"
+ (symbol-name flavor)
+ "/site-lisp/cuteexplorer")))
+;; If package-dir does not exist, the cuteexplorer package must have
+;; removed but not purged, and we should skip the setup.
+ (when (file-directory-p package-dir)
+ (setq load-path (cons package-dir load-path))
+ (autoload 'cuteexplorer-mode "cuteexplorer-mode"
+ "Major mode for editing cuteexplorer files." t)
+ (add-to-list 'auto-mode-alist '("\\.cuteexplorer$" . cuteexplorer-mode))))
+
--- /dev/null
+#! /bin/sh
+#
+# skeleton example file to build /etc/init.d/ scripts.
+# This file should be used to construct scripts for /etc/init.d.
+#
+# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+# Modified for Debian
+# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/cuteexplorer
+NAME=cuteexplorer
+DESC=cuteexplorer
+
+test -x $DAEMON || exit 0
+
+# Include cuteexplorer defaults if available
+if [ -f /etc/default/cuteexplorer ] ; then
+ . /etc/default/cuteexplorer
+fi
+
+set -e
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON -- $DAEMON_OPTS
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON
+ echo "$NAME."
+ ;;
+ #reload)
+ #
+ # If the daemon can reload its config files on the fly
+ # for example by sending it SIGHUP, do it here.
+ #
+ # If the daemon responds to changes in its config file
+ # directly anyway, make this a do-nothing entry.
+ #
+ # echo "Reloading $DESC configuration files."
+ # start-stop-daemon --stop --signal 1 --quiet --pidfile \
+ # /var/run/$NAME.pid --exec $DAEMON
+ #;;
+ force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart" except that it does nothing if the
+ # daemon isn't already running.
+ # check wether $DAEMON is running. If so, restart
+ start-stop-daemon --stop --test --quiet --pidfile \
+ /var/run/$NAME.pid --exec $DAEMON \
+ && $0 restart \
+ || exit 0
+ ;;
+ restart)
+ echo -n "Restarting $DESC: "
+ start-stop-daemon --stop --quiet --pidfile \
+ /var/run/$NAME.pid --exec $DAEMON
+ sleep 1
+ start-stop-daemon --start --quiet --pidfile \
+ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
+ echo "$NAME."
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
--- /dev/null
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH CUTEEXPLORER SECTION "March 22, 2010"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+cuteexplorer \- program to do something
+.SH SYNOPSIS
+.B cuteexplorer
+.RI [ options ] " files" ...
+.br
+.B bar
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+This manual page documents briefly the
+.B cuteexplorer
+and
+.B bar
+commands.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBcuteexplorer\fP is a program that...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.SH SEE ALSO
+.BR bar (1),
+.BR baz (1).
+.br
+The programs are documented fully by
+.IR "The Rise and Fall of a Fooish Bar" ,
+available via the Info system.
+.SH AUTHOR
+cuteexplorer was written by <upstream author>.
+.PP
+This manual page was written by unknown <tomma.asp@gmail.com>,
+for the Debian project (but may be used by others).
--- /dev/null
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>March 22, 2010</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>tomma.asp@gmail.com</email>">
+ <!ENTITY dhusername "unknown">
+ <!ENTITY dhucpackage "<refentrytitle>CUTEEXPLORER</refentrytitle>">
+ <!ENTITY dhpackage "cuteexplorer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
--- /dev/null
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>March 22, 2010</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>tomma.asp@gmail.com</email>">
+ <!ENTITY dhusername "unknown">
+ <!ENTITY dhucpackage "<refentrytitle>CUTEEXPLORER</refentrytitle>">
+ <!ENTITY dhpackage "cuteexplorer">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
--- /dev/null
+?package(cuteexplorer):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\
+ title="cuteexplorer" command="/usr/bin/cuteexplorer"
--- /dev/null
+#!/bin/sh
+# postinst script for cuteexplorer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <postinst> `abort-remove'
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ configure)
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/bin/sh
+# postrm script for cuteexplorer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <overwriter>
+# <overwriter-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/bin/sh
+# preinst script for cuteexplorer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <new-preinst> `install'
+# * <new-preinst> `install' <old-version>
+# * <new-preinst> `upgrade' <old-version>
+# * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ install|upgrade)
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/bin/sh
+# prerm script for cuteexplorer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <prerm> `remove'
+# * <old-prerm> `upgrade' <new-version>
+# * <new-prerm> `failed-upgrade' <old-version>
+# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+# * <deconfigured's-prerm> `deconfigure' `in-favour'
+# <package-being-installed> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ remove|upgrade|deconfigure)
+ ;;
+
+ failed-upgrade)
+ ;;
+
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- /dev/null
+#!/usr/bin/make -f
+APPNAME := cuteexplorer
+builddir:
+ mkdir -p builddir
+
+builddir/Makefile: builddir
+ cd builddir && /opt/qt4-maemo5/bin/qmake PREFIX=/usr ../$(APPNAME).pro
+
+build: build-stamp
+
+build-stamp: builddir/Makefile
+ dh_testdir
+ # Add here commands to compile the package.
+ cd builddir && $(MAKE)
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+ # Add here commands to clean up after the build process.
+ rm -rf builddir
+ dh_clean
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/your_appname
+ cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install
+ # Build architecture-independent files here.
+binary-indep: build install
+ # We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installdocs
+ dh_installexamples
+ dh_installman
+ dh_link
+ dh_strip --dbg-package=$(APPNAME)-dbg
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+# Uncomment to examine a Webpage
+# <Webpage URL> <string match>
+#http://www.example.com/downloads.php cuteexplorer-(.*)\.tar\.gz
+
+# Uncomment to examine a Webserver directory
+#http://www.example.com/pub/cuteexplorer-(.*)\.tar\.gz
+
+# Uncommment to examine a FTP server
+#ftp://ftp.example.com/pub/cuteexplorer-(.*)\.tar\.gz debian uupdate
+
+# Uncomment to find new files on sourceforge, for debscripts >= 2.9
+# http://sf.net/cuteexplorer/cuteexplorer-(.*)\.tar\.gz
+
+
--- /dev/null
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Name=CuteExplorer
+Comment=Explore your maemo
+Exec=/usr/bin/cuteexplorer
+Icon=cuteexplorer_icon64
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="64" height="64" id="svg2383">
+ <defs id="defs2385">
+ <linearGradient id="linearGradient3203">
+ <stop id="stop3205" style="stop-color: rgb(47, 47, 47); stop-opacity: 1;" offset="0"/>
+ <stop id="stop3207" style="stop-color: rgb(25, 25, 25); stop-opacity: 1;" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3171">
+ <stop id="stop3173" style="stop-color: rgb(81, 81, 81); stop-opacity: 1;" offset="0"/>
+ <stop id="stop3175" style="stop-color: rgb(22, 22, 22); stop-opacity: 1;" offset="1"/>
+ </linearGradient>
+ <radialGradient cx="31.643028" cy="8.0269022" r="18.113558" fx="31.643028" fy="8.0269022" id="radialGradient3177" xlink:href="#linearGradient3171" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-2.86067e-07, 1.26887, -1.16834, 0, 40.9694, -26.5322)"/>
+ <linearGradient x1="9.3691645" y1="13.265088" x2="9.3691645" y2="36.072021" id="linearGradient3209" xlink:href="#linearGradient3203" gradientUnits="userSpaceOnUse"/>
+ </defs>
+ <g id="layer1">
+ <rect width="52.38591" height="30.383835" rx="3.047076" ry="3.047076" x="5.807045" y="21.418575" id="rect2395" style="opacity: 1; fill: rgb(51, 51, 51); fill-opacity: 1; stroke: rgb(0, 0, 0); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <rect width="56.568539" height="28.833637" rx="2.3849602" ry="2.3849602" x="3.7157307" y="11.497321" id="rect2393" style="opacity: 1; fill: url("#linearGradient3209") rgb(0, 0, 0); fill-opacity: 1; stroke: rgb(0, 0, 0); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <rect width="46.342133" height="6.2007828" rx="2.1137414" ry="2.1137414" x="8.8289337" y="42.985096" id="rect2397" style="opacity: 1; fill: rgb(22, 22, 22); fill-opacity: 1; stroke: none; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <rect width="41.477116" height="24.803131" rx="0" ry="0" x="11.261442" y="13.357556" id="rect3169" style="opacity: 1; fill: url("#radialGradient3177") rgb(0, 0, 0); fill-opacity: 1; stroke: rgb(128, 128, 128); stroke-width: 0.5; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <g transform="translate(0.125, 1.625)" id="g3189">
+ <path d="M 17.6875,21.25 L 45.8125,21.25" id="path3181" style="fill: none; fill-rule: evenodd; stroke: rgb(230, 230, 230); stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;"/>
+ <path d="M 17.6875,24.208333 L 45.8125,24.208333" id="path3183" style="fill: none; fill-rule: evenodd; stroke: rgb(230, 230, 230); stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;"/>
+ <path d="M 17.6875,27.166667 L 45.8125,27.166667" id="path3185" style="fill: none; fill-rule: evenodd; stroke: rgb(230, 230, 230); stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;"/>
+ <path d="M 17.6875,30.125 L 38.570012,30.125" id="path3187" style="fill: none; fill-rule: evenodd; stroke: rgb(230, 230, 230); stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;"/>
+ </g>
+ <rect width="40.9375" height="3.8125" rx="0" ry="0" x="11.53125" y="13.625" id="rect3211" style="opacity: 1; fill: rgb(102, 102, 102); fill-opacity: 1; stroke: none; stroke-width: 0.5; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <path d="M 17.5,15.3125 A 0.6875,0.6875 0 1 1 16.125,15.3125 A 0.6875,0.6875 0 1 1 17.5,15.3125 z" transform="matrix(1.72727, 0, 0, 1.72727, -15.6023, -11.1989)" id="path3179" style="opacity: 1; fill: rgb(85, 153, 255); fill-opacity: 1; stroke: none; stroke-width: 0.5; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <path d="M 17.5,15.3125 A 0.6875,0.6875 0 1 1 16.125,15.3125 A 0.6875,0.6875 0 1 1 17.5,15.3125 z" transform="matrix(1.72727, 0, 0, 1.72727, -1.66477, -11.1989)" id="path3218" style="opacity: 1; fill: rgb(128, 255, 128); fill-opacity: 1; stroke: none; stroke-width: 0.5; stroke-linecap: round; stroke-linejoin: round; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0pt; stroke-opacity: 1;"/>
+ <path d="M 18,15.375 L 24,15.375" id="path3220" style="fill: none; fill-rule: evenodd; stroke: rgb(230, 230, 230); stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1;"/>
+ </g>
+</svg>
\ No newline at end of file
--- /dev/null
+begin-base64 644 maemoexplorer_icon48.png
+iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAA7E
+AAAOxAGVKw4bAAADfklEQVRoge2ZTWsrVRjHf2eal5tMILdxlbYRym27cJUu
+pCi34MZFtZvrxg/gQr+ApRuhO6nVnYLQT2AXIsJdiILbG4R7K6ISpoFSLWnv
+hZjbppPJS3NcJGecvHfy4iSQHxwy88xzcv7/M3POzJwRUkqmGc1rAcMyM+A1
+U29AACHgEbDgsZa7kgW+lVIWVSANyCkraWBRSoloBABKI+qhcRNs/H4npXyk
+DHwspfzcmbWzs/NjoTynSTQxV31Z6fevWkDTiBKovahZo1Kq67q+v7//0BkT
+QuwCnwJFKWXY14gXWitbllX658Huu3IuRPS3XQBisRjr6+tNeWdnZxiGwf33
+7xN+GOb5J8+pvqiOxIBlWd93CCutAQBfhwQbf+4XmAva+8VikdPT06acfD4P
+QOn3EuKeoHZVG1zxAHQ1EAwGM/eyj7+A/waJaZqcnJx0zDefmphPzZGK8/v9
+PTsYehjQdf3Pg4ODr0eqyCV7e3sf9cuxDQghAsA7wANAbG9vvyGEiIxRX19a
+NGSAx605ysArwDPgNXXg4uIC4L0xa+xJBw1/AN84c5SBD4EEgKbVny6EEPa2
+IplMsrm5ORaxR0dHXF5eNsWcGmq1GtQ7+ANnjjKQAFhZWSEajdYDiYSqZBOP
+x9tio2JtbY2FheanGaeGfD5PJpMBeNWZ0zSIw+Fwz0ZyuRzFYrFnzqBYVu/7
+XzdtfacpJ8lkkq2tLTdV7szh4SHn5+eu67kykEqlSKVSrhsZJ64MbGxsTPcZ
+OD4+Jp1Ou27kLhQKbY9jd8KVgVgsxvLy8kANKTKZTNt0OQyuDEQiEZaWloZq
+MJvNDlW/FVcGDMPAMIyRChiWqX+pnxnwmqYxYJomPl89VKlUiMfjnohSlMtl
+bm5ubD0tvFQbXi+RDFo+UwvTP0+AGLflJyAgpcQHfAW8BbC6umpfQpNGpVJx
+vo9/KaUsQ8sYCIVCCCHI5XJUq6NZGhkWn89HLBbr2rFt0evra0qlyVmku729
+5erqikik8+t52zQ6rjeuYeilaSruA0KIrsfaDOi63rPC/40QouvlA/Ux8Jfa
+KRQKzM/Ps7i4ODGXkqZp9sTi4G+1IaifhSfA63Zwgs4AQMuX1CfAm1IFG78J
+4Fe8v0H1K89ofNhQRSgjQgg/8DawSv3MTBISOAF+kFI23aDE7EO3x8wMeM3M
+gNdMvYF/Acd52O0Tf+jGAAAAAElFTkSuQmCC
+====
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="fi_FI">
+<context>
+ <name>FileListWidget</name>
+ <message>
+ <location filename="filelistwidget.cpp" line="71"/>
+ <source>Rename</source>
+ <translation>Uudelleen nimeä</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="71"/>
+ <source>New filename: </source>
+ <translation>Uusi tiedoston nimi:</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="77"/>
+ <location filename="filelistwidget.cpp" line="119"/>
+ <location filename="filelistwidget.cpp" line="135"/>
+ <location filename="filelistwidget.cpp" line="167"/>
+ <source>Error!</source>
+ <translation>Virhe!</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="78"/>
+ <source>Renaming file %1 failed</source>
+ <translation>Tiedoston %1 uudelleen nimeäminen epäonnistui</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="120"/>
+ <source>Copying file %1 failed</source>
+ <translation>Tiedoston %1 kopiointi epäonnistui</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="136"/>
+ <source>Moving file %1 failed</source>
+ <translation>Tiedoston %1 siirto epäonnistui</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="156"/>
+ <source>Deleting file</source>
+ <translation>Tiedoston poisto</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="157"/>
+ <source>You are about to delete %1 file(s).
+Are you sure you want to continue?</source>
+ <translation>Olet poistamassa %1 tiedostoa.\nOletko varma että tahdot jatkaa?</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="168"/>
+ <source>Deleting file %1 failed</source>
+ <translation>Tiedoston %1 poistaminen epäonnistui</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="247"/>
+ <location filename="filelistwidget.cpp" line="264"/>
+ <source>Sending files</source>
+ <translation>Tiedostojen lähetys</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="248"/>
+ <source>To send files, select files you want to send and copy them.</source>
+ <translation>Lähettääksesi tiedostoja; valitse tiedostot, kopioi ja lähetä tiedostot.</translation>
+ </message>
+ <message>
+ <location filename="filelistwidget.cpp" line="265"/>
+ <source>Only in maemo5 for now</source>
+ <translation>Vain maemo5:ssä tällähetkellä</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="mainwindow.ui" line="14"/>
+ <source>Maemo Explorer</source>
+ <translation>Maemo Explorer</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="26"/>
+ <source>Up</source>
+ <translation>Ylös</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="29"/>
+ <source>Backspace</source>
+ <translation>Backspace</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="91"/>
+ <source>File</source>
+ <translation>Tiedosto</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="74"/>
+ <source>Edit</source>
+ <translation>Muokkaa</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="84"/>
+ <source>View</source>
+ <translation>Näkymä</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="102"/>
+ <source>Exit</source>
+ <translation>Lopeta</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="107"/>
+ <source>Cut</source>
+ <translation>Leikkaa</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="112"/>
+ <source>Copy</source>
+ <translation>Kopioi</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="117"/>
+ <source>Paste</source>
+ <translation>Liitä</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="122"/>
+ <source>Delete</source>
+ <translation>Poista</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="130"/>
+ <source>Icon view</source>
+ <translation>Kuvake näkymä</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="148"/>
+ <source>Send files</source>
+ <translation>Lähetä tiedostoja</translation>
+ </message>
+ <message>
+ <source>Switch Mode</source>
+ <translation type="obsolete">Vaihda näkymä</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="135"/>
+ <source>Rename</source>
+ <translation>Uudelleen nimeä</translation>
+ </message>
+ <message>
+ <location filename="mainwindow.ui" line="143"/>
+ <source>Show hidden</source>
+ <translation>Näytä piilotetut</translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+#include "filelistwidget.h"
+#include <QHeaderView>
+#include <QMessageBox>
+#include <QInputDialog>
+#include <QDesktopServices>
+#include <QUrl>
+#include <QProcess>
+#include <QDBusInterface>
+#ifdef Q_WS_MAEMO_5
+# include <hildon-mime.h>
+# include <dbus/dbus.h>
+#endif
+/*!
+Widget that shows filesystemmodel and handles navigation
+in directory tree and opening files with assosiated programs
+
+@todo in symbian and windows filesystems navigating to "/" wont show drives
+ */
+FileListWidget::FileListWidget(QWidget *parent) :
+ QListView(parent),
+ fileSystemModel( new QFileSystemModel(this)),
+ currentDir(QDir::homePath()),
+ mode_cut(false),
+ mode_copy(false),
+ select(false)
+{
+ this->setModel(fileSystemModel);
+ this->setRootIndex(fileSystemModel->index(currentDir.absolutePath()));
+ fileSystemModel->setRootPath(currentDir.absolutePath());
+ fileSystemModel->setFilter(fileSystemModel->filter() | QDir::System);
+ connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(handleItemActivation(QModelIndex)));
+
+}
+
+/**
+ Switches view mode
+ @param iconmode true shows iconview, false shows listview
+ */
+void FileListWidget::actionSwitchMode(bool iconmode)
+{
+ if(iconmode) {
+ this->setViewMode(QListView::IconMode);
+ this->setWordWrap(true);
+ this->setGridSize(QSize(80,80));
+ } else {
+ this->setViewMode(QListView::ListMode);
+ this->setWordWrap(false);
+ this->setGridSize(QSize());
+ }
+}
+/**
+ Switches show hidden
+ @param show true shows hidden files
+ */
+void FileListWidget::actionShowHidden(bool show)
+{
+ if(show)
+ fileSystemModel->setFilter(fileSystemModel->filter() | QDir::Hidden);
+ else
+ fileSystemModel->setFilter(fileSystemModel->filter() &~ QDir::Hidden);
+
+ this->clearSelection();
+}
+
+/**
+ Rename selected file
+ */
+void FileListWidget::actionRename()
+{
+ QFileInfo file = fileSystemModel->fileInfo(this->selectedIndexes().first());
+ QString newName = QInputDialog::getText(this, tr("Rename"), tr("New filename: "), QLineEdit::Normal, file.fileName());
+ if(newName != file.fileName())
+ {
+ if(QFile::rename(file.absoluteFilePath(), file.absolutePath()+"/"+newName))
+ return;
+ else
+ QMessageBox::critical(this,tr("Error!")
+ ,tr("Renaming file %1 failed")
+ .arg(file.fileName())
+ ,QMessageBox::Ok);
+ }
+}
+/**
+ Selected files will be moved when actionPaste is called
+ */
+void FileListWidget::actionCut()
+{
+ mode_cut = true;
+ mode_copy = false;
+ selectedFiles = this->selectedIndexes();
+}
+/**
+ Selected files will be copied when actionPaste is called
+ */
+void FileListWidget::actionCopy()
+{
+ mode_cut = false;
+ mode_copy = true;
+ selectedFiles = this->selectedIndexes();
+}
+
+/**
+ Moves or copies files that were selected when actionCut or actionCopy called
+ */
+void FileListWidget::actionPaste()
+{
+ fileSystemModel->setReadOnly(false);
+ if(mode_copy) {
+ //Copy files until filelist is empty or error occured
+ while(!selectedFiles.isEmpty()) {
+ if(QFile::copy(fileSystemModel->fileInfo(selectedFiles.first()).absoluteFilePath()
+ , fileSystemModel->rootPath()+"/"+fileSystemModel->fileName(selectedFiles.first()))) {
+ selectedFiles.removeFirst();
+ }
+ else if(QFile::copy(fileSystemModel->fileInfo(selectedFiles.first()).absoluteFilePath()
+ , fileSystemModel->rootPath()+"/copy_"+fileSystemModel->fileName(selectedFiles.first()))) {
+ selectedFiles.removeFirst();
+ } else {
+ QMessageBox::critical(this,tr("Error!")
+ ,tr("Copying file %1 failed")
+ .arg(fileSystemModel->fileName(selectedFiles.first()))
+ ,QMessageBox::Ok);
+ break;
+ }
+ }
+ if(selectedFiles.isEmpty())
+ mode_copy = false;
+ } else if(mode_cut) {
+ //Move files until filelist is empty or error occured
+ while(!selectedFiles.isEmpty()) {
+ if(QFile::rename(fileSystemModel->fileInfo(selectedFiles.first()).absoluteFilePath()
+ , fileSystemModel->rootPath()+"/"+fileSystemModel->fileName(selectedFiles.first()))) {
+ selectedFiles.removeFirst();
+ } else {
+ QMessageBox::critical(this,tr("Error!")
+ ,tr("Moving file %1 failed")
+ .arg(fileSystemModel->fileName(selectedFiles.first()))
+ ,QMessageBox::Ok);
+ break;
+ }
+ }
+ if(selectedFiles.isEmpty())
+ mode_cut = false;
+ }
+ fileSystemModel->setReadOnly(true);
+ this->clearSelection();
+}
+
+/**
+ Deletes selected files
+ */
+void FileListWidget::actionDelete()
+{
+ mode_cut = false;
+ mode_copy = false;
+ if(QMessageBox::Yes == QMessageBox::warning(this, tr("Deleting file")
+ ,tr("You are about to delete %1 file(s).\nAre you sure you want to continue?")
+ .arg(this->selectedIndexes().count())
+ , QMessageBox::Yes, QMessageBox::No)) {
+ fileSystemModel->setReadOnly(false);
+ selectedFiles = this->selectedIndexes();
+ //delete files until filelist empty or error occured
+ while(!selectedFiles.isEmpty()) {
+ if(fileSystemModel->remove(selectedFiles.first())) {
+ selectedFiles.removeFirst();
+ } else {
+ QMessageBox::critical(this,tr("Error!")
+ ,tr("Deleting file %1 failed")
+ .arg(fileSystemModel->fileName(selectedFiles.first()))
+ ,QMessageBox::Ok);
+ break;
+ }
+ }
+ fileSystemModel->setReadOnly(true);
+ this->clearSelection();
+ }
+}
+
+/**
+ @return Current directory
+ */
+QString FileListWidget::getPath()
+{
+ return currentDir.absolutePath();
+}
+
+/**
+ Changes current directory
+ @param path directory to change to
+ */
+void FileListWidget::changePath(QString path)
+{
+ currentDir.cd(path);
+ QString newPath = currentDir.absolutePath();
+ fileSystemModel->setRootPath(newPath);
+ this->clearSelection();
+ this->setRootIndex(fileSystemModel->index(newPath));
+ emit pathChanged(newPath);
+}
+
+/**
+ Equivalent to changePath("..")
+ */
+void FileListWidget::changePathUp()
+{
+ changePath("..");
+}
+
+void FileListWidget::handleItemActivation(QModelIndex index)
+{
+ if(!select) {
+ QFileInfo file = fileSystemModel->fileInfo(index);
+ if(file.isDir()) {
+ changePath(file.absoluteFilePath());
+ } else if(file.isExecutable()) {
+ // Make process
+ QProcess::startDetached(file.absoluteFilePath());
+ } else {
+#ifdef Q_WS_MAEMO_5 // Uses native file opening method
+ DBusConnection* conn;
+ conn = dbus_bus_get(DBUS_BUS_SESSION, 0);
+ hildon_mime_open_file(conn, QUrl::fromLocalFile(file.absoluteFilePath()).toEncoded().constData());
+#else
+ /*
+ Not working with maemo5.
+ Uses hildon_uri_open function from
+ libhildonmime which should work,
+ but all files opened in browser.
+ */
+ QDesktopServices::openUrl(QUrl::fromLocalFile(file.absoluteFilePath()));
+#endif
+ }
+ }
+}
+/**
+ @param mode true activates file selection
+ */
+void FileListWidget::setSelectMode(bool mode)
+{
+ select = mode;
+}
+
+void FileListWidget::actionSendFiles()
+{
+ if(!mode_copy) {
+ QMessageBox::information(this,
+ tr("Sending files"),
+ tr("To send files, select files you want to send and copy them."),
+ QMessageBox::Cancel);
+ } else {
+#ifdef Q_WS_MAEMO_5
+ // Create list of file urls
+ QStringList files;
+ while(!selectedFiles.isEmpty()) {
+ files.append(QUrl::fromLocalFile(fileSystemModel->fileInfo(selectedFiles.first()).absoluteFilePath()).toString());
+ selectedFiles.removeFirst();
+ }
+
+ // Make dbuscall to send files
+ QDBusInterface interface("com.nokia.bt_ui", "/com/nokia/bt_ui", "com.nokia.bt_ui",QDBusConnection::systemBus());
+ interface.call("show_send_file_dlg", files);
+#else
+ QMessageBox::information(this,
+ tr("Sending files"),
+ tr("Only in maemo5 for now"),
+ QMessageBox::Cancel);
+#endif
+ }
+}
+
--- /dev/null
+#ifndef FILELISTWIDGET_H
+#define FILELISTWIDGET_H
+
+#include <QListView>
+#include <QFileSystemModel>
+#include <QDir>
+#include <QMessageBox>
+#include <QKeyEvent>
+
+class FileListWidget : public QListView
+{
+Q_OBJECT
+public:
+ explicit FileListWidget(QWidget *parent = 0);
+
+ QString getPath();
+
+signals:
+ void pathChanged(QString newPath);
+
+public slots:
+ void changePath(QString path);
+ void changePathUp();
+
+ void actionDelete();
+ void actionCut();
+ void actionCopy();
+ void actionPaste();
+ void actionSwitchMode(bool iconmode=true);
+ void actionRename();
+ void actionShowHidden(bool show=true);
+ void actionSendFiles();
+
+ void setSelectMode(bool mode=true);
+private slots:
+ void handleItemActivation(QModelIndex index);
+
+private:
+ QFileSystemModel *fileSystemModel;
+ QDir currentDir;
+ QModelIndexList selectedFiles;
+ bool mode_cut;
+ bool mode_copy;
+ bool select;
+};
+
+#endif // FILELISTWIDGET_H
--- /dev/null
+<RCC>
+ <qresource prefix="/">
+ <file>cuteexplorertranslation_fi_FI.qm</file>
+ </qresource>
+</RCC>
--- /dev/null
+#include <QtGui/QApplication>
+#include <QTranslator>
+#include <QLocale>
+#include "mainwindow.h"
+#include <QDebug>
+#include <QProcessEnvironment>
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ QTranslator translator;
+
+ /* For some reason QLocale::system() returns
+ locale by LC_NUMERIC environment variable which is
+ meant for numerics like thousand separator etc.
+
+ In this solution we get locale from LANG environment variable
+ and use QLocale::system() as fallback.
+ */
+ if(QProcessEnvironment::systemEnvironment().contains("LANG"))
+ translator.load(":/cuteexplorertranslation_"+QLocale(QProcessEnvironment::systemEnvironment().value("LANG")).name());
+ else
+ translator.load(":/cuteexplorertranslation_"+QLocale::system().name());
+
+ a.installTranslator(&translator);
+
+ MainWindow w;
+ w.show();
+ return a.exec();
+}
--- /dev/null
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+ connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(close()));
+ connect(ui->upButton, SIGNAL(clicked()), ui->fileListWidget, SLOT(changePathUp()));
+ connect(ui->locationLine, SIGNAL(returnPressed()), this, SLOT(locationLineEnterKeyHandler()));
+ connect(ui->fileListWidget, SIGNAL(pathChanged(QString)), ui->locationLine, SLOT(setText(QString)));
+ connect(ui->actionDelete, SIGNAL(triggered()), ui->fileListWidget, SLOT(actionDelete()));
+ connect(ui->actionMode, SIGNAL(toggled(bool)), ui->fileListWidget, SLOT(actionSwitchMode(bool)));
+ connect(ui->actionCopy, SIGNAL(triggered()), ui->fileListWidget, SLOT(actionCopy()));
+ connect(ui->actionCut, SIGNAL(triggered()), ui->fileListWidget, SLOT(actionCut()));
+ connect(ui->actionPaste, SIGNAL(triggered()), ui->fileListWidget, SLOT(actionPaste()));
+ connect(ui->actionShow_hidden, SIGNAL(toggled(bool)), ui->fileListWidget, SLOT(actionShowHidden(bool)));
+ connect(ui->actionRename, SIGNAL(triggered()), ui->fileListWidget, SLOT(actionRename()));
+ connect(ui->actionSend, SIGNAL(triggered()), ui->fileListWidget, SLOT(actionSendFiles()));
+ ui->locationLine->setText(ui->fileListWidget->getPath());
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+void MainWindow::locationLineEnterKeyHandler()
+{
+ ui->fileListWidget->changePath(ui->locationLine->text());
+}
+void MainWindow::keyPressEvent(QKeyEvent *e)
+{
+ if(e->key() == Qt::Key_Control || e->key() == Qt::Key_Shift)
+ ui->fileListWidget->setSelectMode(true);
+ else
+ QMainWindow::keyPressEvent(e);
+}
+void MainWindow::keyReleaseEvent(QKeyEvent *e)
+{
+ if(e->key() == Qt::Key_Control || e->key() == Qt::Key_Shift)
+ ui->fileListWidget->setSelectMode(false);
+ else
+ QMainWindow::keyPressEvent(e);
+}
+
+void MainWindow::changeEvent(QEvent *e)
+{
+ QMainWindow::changeEvent(e);
+ switch (e->type()) {
+ case QEvent::LanguageChange:
+ ui->retranslateUi(this);
+ break;
+ default:
+ break;
+ }
+}
+
--- /dev/null
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+
+namespace Ui {
+ class MainWindow;
+}
+
+class MainWindow : public QMainWindow {
+ Q_OBJECT
+public:
+ MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+
+protected:
+ void changeEvent(QEvent *e);
+ void keyPressEvent(QKeyEvent *e);
+ void keyReleaseEvent(QKeyEvent *e);
+private slots:
+ void locationLineEnterKeyHandler();
+private:
+ Ui::MainWindow *ui;
+
+};
+
+#endif // MAINWINDOW_H
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>400</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>CuteExplorer</string>
+ </property>
+ <property name="locale">
+ <locale language="English" country="UnitedStates"/>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="upButton">
+ <property name="text">
+ <string>Up</string>
+ </property>
+ <property name="shortcut">
+ <string>Backspace</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="locationLine"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="FileListWidget" name="fileListWidget">
+ <property name="contextMenuPolicy">
+ <enum>Qt::NoContextMenu</enum>
+ </property>
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ <property name="textElideMode">
+ <enum>Qt::ElideRight</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>600</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuEdit">
+ <property name="title">
+ <string>Edit</string>
+ </property>
+ <addaction name="actionRename"/>
+ <addaction name="actionCut"/>
+ <addaction name="actionCopy"/>
+ <addaction name="actionPaste"/>
+ <addaction name="actionDelete"/>
+ </widget>
+ <widget class="QMenu" name="menuView">
+ <property name="title">
+ <string>View</string>
+ </property>
+ <addaction name="actionMode"/>
+ <addaction name="actionShow_hidden"/>
+ </widget>
+ <widget class="QMenu" name="menuFile">
+ <property name="title">
+ <string>File</string>
+ </property>
+ <addaction name="actionSend"/>
+ <addaction name="actionExit"/>
+ </widget>
+ <addaction name="menuFile"/>
+ <addaction name="menuEdit"/>
+ <addaction name="menuView"/>
+ </widget>
+ <action name="actionExit">
+ <property name="text">
+ <string>Exit</string>
+ </property>
+ </action>
+ <action name="actionCut">
+ <property name="text">
+ <string>Cut</string>
+ </property>
+ </action>
+ <action name="actionCopy">
+ <property name="text">
+ <string>Copy</string>
+ </property>
+ </action>
+ <action name="actionPaste">
+ <property name="text">
+ <string>Paste</string>
+ </property>
+ </action>
+ <action name="actionDelete">
+ <property name="text">
+ <string>Delete</string>
+ </property>
+ </action>
+ <action name="actionMode">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Icon view</string>
+ </property>
+ </action>
+ <action name="actionRename">
+ <property name="text">
+ <string>Rename</string>
+ </property>
+ </action>
+ <action name="actionShow_hidden">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Show hidden</string>
+ </property>
+ </action>
+ <action name="actionSend">
+ <property name="text">
+ <string>Send files</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <customwidgets>
+ <customwidget>
+ <class>FileListWidget</class>
+ <extends>QListView</extends>
+ <header>filelistwidget.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
--- /dev/null
+-Release notes-
+
+cuteexplorer-0.9.1
+first release
+
+-user can view files and navigate in folders
+
+cuteexplorer-0.9.2
+second release
+
+-user can view files and navigate in folders
+-user can manipulate files using cut, copy, paste, delete and rename
+
+-ui translated to finnish
+
+cuteexplorer-0.9.3
+third release
+
+-user can view files and navigate in folders
+-user can manipulate files using cut, copy, paste, delete and rename
+
+-ui translated to finnish
+
+-user can open files (videos, audio, pictures, pdf)
+
+
+cuteexplorer-1.0
+final release
+
+-user can view files and navigate in folders
+-user can manipulate files using cut, copy, paste, delete and rename
+
+-ui translated to finnish
+
+-user can open files (videos, audio, pictures, pdf)
+
+-user can launch executable files
+-files can be send via bluetooth (select files, copy, send files)
--- /dev/null
+# -------------------------------------------------
+# Project created by QtCreator 2010-01-13T19:38:20
+# -------------------------------------------------
+TARGET = cuteexplorer
+TEMPLATE = app
+
+SOURCES += main.cpp \
+ mainwindow.cpp \
+ filelistwidget.cpp
+HEADERS += mainwindow.h \
+ filelistwidget.h
+FORMS += mainwindow.ui
+TRANSLATIONS += cuteexplorertranslation_fi_FI.ts
+RESOURCES += i18n.qrc
+
+
+maemo5 {
+ #VARIABLES
+ CONFIG += link_pkgconfig
+ PKGCONFIG += dbus-1 gnome-vfs-2.0
+ LIBS += -lhildonmime -ldbus-1
+ QT += dbus
+ isEmpty(PREFIX) {
+ PREFIX = /usr
+ }
+BINDIR = $$PREFIX/bin
+DATADIR =$$PREFIX/share
+
+DEFINES += DATADIR=\\\"$$DATADIR\\\" PKGDATADIR=\\\"$$PKGDATADIR\\\"
+
+#MAKE INSTALL
+
+INSTALLS += target desktop icon icon64
+
+ target.path =$$BINDIR
+
+ desktop.path = $$DATADIR/applications/hildon
+ desktop.files += $${TARGET}.desktop
+
+ icon64.path = $$DATADIR/icons/hicolor/64x64/apps
+ icon64.files += $${TARGET}_icon64.png
+
+ icon.path = $$DATADIR/icons/hicolor/scalable/apps
+ icon.files += $${TARGET}_icon.svg
+}