Added old KDE3 version of libkipi

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/libraries/libkipi@1076200 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
tpearson 14 years ago
commit 82f79e1df0

@ -0,0 +1,6 @@
AUTHORS AND MAINTAINERS :
Renchi Raju <renchi.raju at kdemail.net>
Gilles Caulier <caulier dot gilles at free.fr>
Jesper K. Pedersen <blackie at kde.org>
Aurelien Gateau <aurelien dot gateau at free.fr>

@ -0,0 +1,481 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
51 Franklin Steet, Fifth Floor
Boston, MA 02110-1301, USA.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library 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 library 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 library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

File diff suppressed because it is too large Load Diff

@ -0,0 +1,183 @@
Requirements: libkexif v >= 0.1 kde >= 3.1.x
Basic Installation
==================
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made.
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.

@ -0,0 +1,7 @@
/** @mainpage KDE Extragear Libraries
*
* The extragear-libs module collects libraries that are shared by
* more than one extragear application, or which are useful in their
* own right.
*
*/

@ -0,0 +1,7 @@
AUTOMAKE_OPTIONS = foreign 1.6.1
include admin/deps.am
include admin/Doxyfile.am
COMPILE_FIRST = libkexif libkipi
SUBDIRS=$(TOPSUBDIRS)

@ -0,0 +1,6 @@
AUTOMAKE_OPTIONS = foreign 1.6.1
include admin/deps.am
include admin/Doxyfile.am
COMPILE_FIRST = libkexif libkipi

@ -0,0 +1,14 @@
all:
@echo "This Makefile is only for the CVS repository"
@echo "This will be deleted before making the distribution"
@echo ""
@if test ! -d admin; then \
echo "Please recheckout this module!" ;\
echo "for cvs: use checkout once and after that update again" ;\
echo "for cvsup: checkout kde-common from cvsup and" ;\
echo " link kde-common/admin to ./admin" ;\
exit 1 ;\
fi
$(MAKE) -f admin/Makefile.common cvs
.SILENT:

26
NEWS

@ -0,0 +1,26 @@
-------------------------------------------------------------------------
0.1.4
Bugs fixed:
o fix FTBFS (fails to build from source) when libkipi is
build the first time on a system.
-------------------------------------------------------------------------
0.1.3
New features:
o Make loadPlugin() public, so that it's possible to load plugins
selectively, and raise version to 1.0.1, so that this API change
can be detected
Bugs fixed:
o various build fixes
o batchprogressdialog: Removed help button. It does not point to
any usefull documentation. BUG: 99418
-------------------------------------------------------------------------
For details and info about previous versions, see ChangeLog.

@ -0,0 +1,86 @@
How to release kipi & co.
----------------------------------------
1. Release libkipi
2. Release kipi-plugins
1. Release libkipi
a) Update release info
libkipi/libkipi.lsm
libkipi/libkipi/version.h
libkipi/libkipi.pc.in
To do that you can use the "prepare_libkipi.rb" script, change the
release version ("version" and "version_n" fields) and run it.
Don't forget to commit your changes :)
b) Update Changelog
- to do that use the "release_kipi_changelog.sh" script
release_kipi_changelog.sh libkipi oldest-revision-or-date new-release-version
- edit Changelog and modify the wrong lines (if any)
- Commit your changes
c) Build the source tarball
- use the "release_libkipi.rb"
edit the script and change the "version" field
if you're releasing an svn snapshot set "usesvnver" to "yes"
run it and get libkipiXXX.tar.bz2
d) Uncompress and test the tarball
- check if all the files are right in
- check if the file RELEASE.rev is in and with the right revision number
- check if it builds correctly.
e) Upload tarball for testing
Before an official release upload the tarball for testing used sites are
digikam3rdparty.free.fr or www.linux.it/~anaselli/kipi-plugins - depends
on who is releasing :)
Send a mail to kde-imaging@kde.org and digikam-devel@kde.org to have a
feedback from pakagers before posting an offical release annoucement.
f) Upload tarbal on SF and update kipi site
official site for uploading the release is http://sourceforge.net/projects/kipi
web page to be update is http://extragear.kde.org/apps/kipi/
to update this last you have to get, change and commit it from
XXX@svn.kde.org/home/kde/trunk/www/areas/extragear/apps/kipi
Send a mail to announce the official release.
2. Release kipi-plugins
a) Update release info
kipi-plugins/kipi-plugins.lsm
kipi-plugins/common/include/pluginsversion.h
To do that you can use the "prepare_kipiplugins.rb" script, change the
release version ("version" field) and run it.
Don't forget to commit your changes.
b) Update Changelog
- to do that use the "release_kipi_changelog.sh" script
release_kipi_changelog.sh kipi-plugins oldest-revision-or-date new-release-version
- edit Changelog and modify the wrong lines (if any)
- Commit your changes
c) Build the source tarball
- use the "release_kipi-plugins.rb"
edit the script and change the "version" field and check the "addPo" one for po files
if you're releasing an svn snapshot set "usesvnver" to "yes"
run it and get kipi-pluginsXXX.tar.bz2
d) Uncompress and test the tarball
- check if all the files are right in
- check if the file RELEASE.rev is in and with the right revision number
- check if it builds correctly.
e) Upload tarball for testing
Before an official release upload the tarball for testing used sites are
digikam3rdparty.free.fr or www.linux.it/~anaselli/kipi-plugins - depends
on who is releasing :)
Send a mail to kde-imaging@kde.org and digikam-devel@kde.org to have a
feedback from pakagers before posting an offical release annoucement.
f) Upload tarbal on SF and update kipi site
official site for uploading the release is http://sourceforge.net/projects/kipi
web page to be update is http://extragear.kde.org/apps/kipi/
to update this last you have to get, change and commit it from
XXX@svn.kde.org/home/kde/trunk/www/areas/extragear/apps/kipi
Send a mail to announce the official release.

@ -0,0 +1 @@
See the README file on kipi-plugins

@ -0,0 +1,2 @@
Last Changed Rev: 609235
Last Changed Date: 2006-11-29 22:07:56 +0100 (Wed, 29 Nov 2006)

44
TODO

@ -0,0 +1,44 @@
To be discussed:
#1. Define the way plugins should access host app images. Current choices are:
#- Use ImageCollections
#- Use Interface::Browser class suggested by Jesper in the
# "libkipi/libkipi/design" document.
Done
2. In the same way, define how plugins should give images to the host app.
Current choices are:
- Interface::addImage
- Define a class similar to Interface::Browser, which we could call
Interface::Importer
3. Make a decision on some terms: should we use "album" or "image collection"
or both (if so, explain the difference in a README file)
4. Agree on the category list.
5. Define KIPI and plugin versioning so that we don't get mixed version bugs
(Aurélien: I think this could be done by correctly defining lib version
numbers, but I might be missing something here).
6. Define what helper widgets/dialog we should provide to plugins. Right now
we have:
- ImageCollectionDialog (Poor name, should be ImageSelectDialog)
- UploadWidget
To be done:
- Implement a widget to let the user select ImageCollections. The minimal
interface should be:
class ImageCollectionSelector : public QWidget {
QValueList<ImageCollection> imageCollections;
}
- Review all classes to polish the API before freezing it.
- Improve BC strength with d pointers.
- Add functions for copying/moving/renaming files, or do we all agree that the
ImageInfo::cloneData() method is enough?
- Write some documentation. I'm thinking about Doxygen class documentation
plus a skeleton app and a skeleton plugin to serve as examples.

File diff suppressed because it is too large Load Diff

12777
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

@ -0,0 +1,243 @@
/* config.h.in. Generated from configure.in by autoheader. */
/* Define to 1 if you have the <Carbon/Carbon.h> header file. */
#undef HAVE_CARBON_CARBON_H
/* Define if you have the CoreAudio API */
#undef HAVE_COREAUDIO
/* Define to 1 if you have the <crt_externs.h> header file. */
#undef HAVE_CRT_EXTERNS_H
/* Defines if your system has the crypt function */
#undef HAVE_CRYPT
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if you have libjpeg */
#undef HAVE_LIBJPEG
/* Define if you have libpng */
#undef HAVE_LIBPNG
/* Define if you have a working libpthread (will enable threaded code) */
#undef HAVE_LIBPTHREAD
/* Define if you have libz */
#undef HAVE_LIBZ
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define if your system needs _NSGetEnviron to set up the environment */
#undef HAVE_NSGETENVIRON
/* Define if you have res_init */
#undef HAVE_RES_INIT
/* Define if you have the res_init prototype */
#undef HAVE_RES_INIT_PROTO
/* Define if you have a STL implementation by SGI */
#undef HAVE_SGI_STL
/* Define to 1 if you have the `snprintf' function. */
#undef HAVE_SNPRINTF
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define if you have strlcat */
#undef HAVE_STRLCAT
/* Define if you have the strlcat prototype */
#undef HAVE_STRLCAT_PROTO
/* Define if you have strlcpy */
#undef HAVE_STRLCPY
/* Define if you have the strlcpy prototype */
#undef HAVE_STRLCPY_PROTO
/* Define to 1 if you have the <sys/bitypes.h> header file. */
#undef HAVE_SYS_BITYPES_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
/* Suffix for lib directories */
#undef KDELIBSUFF
/* kdemacros.h usable */
#undef KDEMACROS_USABLE
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* The size of `char *', as computed by sizeof. */
#undef SIZEOF_CHAR_P
/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT
/* The size of `long', as computed by sizeof. */
#undef SIZEOF_LONG
/* The size of `short', as computed by sizeof. */
#undef SIZEOF_SHORT
/* The size of `size_t', as computed by sizeof. */
#undef SIZEOF_SIZE_T
/* The size of `unsigned long', as computed by sizeof. */
#undef SIZEOF_UNSIGNED_LONG
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Version number of package */
#undef VERSION
/* Defined if compiling without arts */
#undef WITHOUT_ARTS
/*
* jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
* headers and I'm too lazy to write a configure test as long as only
* unixware is related
*/
#ifdef _UNIXWARE
#define HAVE_BOOLEAN
#endif
/*
* AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
* that defines bzero.
*/
#if defined(_AIX)
#include <strings.h>
#endif
#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
# include <sys/time.h>
# include <crt_externs.h>
# define environ (*_NSGetEnviron())
#endif
#if !defined(HAVE_RES_INIT_PROTO)
#ifdef __cplusplus
extern "C" {
#endif
int res_init(void);
#ifdef __cplusplus
}
#endif
#endif
#if !defined(HAVE_STRLCAT_PROTO)
#ifdef __cplusplus
extern "C" {
#endif
unsigned long strlcat(char*, const char*, unsigned long);
#ifdef __cplusplus
}
#endif
#endif
#if !defined(HAVE_STRLCPY_PROTO)
#ifdef __cplusplus
extern "C" {
#endif
unsigned long strlcpy(char*, const char*, unsigned long);
#ifdef __cplusplus
}
#endif
#endif
/*
* On HP-UX, the declaration of vsnprintf() is needed every time !
*/
#if !defined(HAVE_VSNPRINTF) || defined(hpux)
#if __STDC__
#include <stdarg.h>
#include <stdlib.h>
#else
#include <varargs.h>
#endif
#ifdef __cplusplus
extern "C"
#endif
int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
#ifdef __cplusplus
extern "C"
#endif
int snprintf(char *str, size_t n, char const *fmt, ...);
#endif
/* define to 1 if -fvisibility is supported */
#undef __KDE_HAVE_GCC_VISIBILITY
#if defined(__SVR4) && !defined(__svr4__)
#define __svr4__ 1
#endif
/* type to use in place of socklen_t if not defined */
#undef kde_socklen_t
/* type to use in place of socklen_t if not defined (deprecated, use
kde_socklen_t) */
#undef ksize_t

@ -0,0 +1,3 @@
./admin/configure.in.min
configure.in.in
./libkipi/configure.in.in

@ -0,0 +1,196 @@
dnl =======================================================
dnl FILE: ./admin/configure.in.min
dnl =======================================================
dnl This file is part of the KDE libraries/packages
dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
dnl This file is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Library General Public
dnl License as published by the Free Software Foundation; either
dnl version 2 of the License, or (at your option) any later version.
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Library General Public License for more details.
dnl You should have received a copy of the GNU Library General Public License
dnl along with this library; see the file COPYING.LIB. If not, write to
dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
dnl Boston, MA 02110-1301, USA.
# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas
dnl Process this file with autoconf to produce a configure script.
AC_INIT(acinclude.m4) dnl a source file from your sub dir
dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)
dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH
dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM
dnl Perform program name transformation
AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(libkipi-0.1.5, "3.5.5") dnl searches for some needed programs
AM_MAINTAINER_MODE
KDE_SET_PREFIX
dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done
dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL
dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS
KDE_USE_QT(3.2)
AC_PATH_KDE
dnl =======================================================
dnl FILE: configure.in.in
dnl =======================================================
#MIN_CONFIG(3.2)
CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS"
KDE_ENABLE_HIDDEN_VISIBILITY
KDE_INIT_DOXYGEN([KEG Libraries API Reference], [Version $VERSION])
dnl =======================================================
dnl FILE: ./libkipi/configure.in.in
dnl =======================================================
AC_OUTPUT([ libkipi/libkipi.pc ])
KDE_ENABLE_HIDDEN_VISIBILITY
AC_LANG_PUSH(C++)
libkipi_kdemacros_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $all_includes"
AC_MSG_CHECKING([if kdemacros.h is usable])
AC_COMPILE_IFELSE(
[
#include <kdemacros.h>
#include <string>
int other_func( void ) KDE_EXPORT;
int other_func( void )
{
std::string s("KDE_EXPORT");
return 0;
}
],
[ AC_MSG_RESULT([yes])
AC_DEFINE(KDEMACROS_USABLE, 1, [kdemacros.h usable]) ],
[ AC_MSG_RESULT([no]) ]
)
CPPFLAGS=$libkipi_kdemacros_cppflags
AC_LANG_POP(C++)
AM_CONFIG_HEADER([ libkipi/libkipi/libkipi_export.h ])
KDE_CREATE_SUBDIRSLIST
AM_CONDITIONAL(libkexif_SUBDIR_included, test "x$libkexif_SUBDIR_included" = xyes)
AM_CONDITIONAL(libkipi_SUBDIR_included, test "x$libkipi_SUBDIR_included" = xyes)
AM_CONDITIONAL(doc_SUBDIR_included, test "x$doc_SUBDIR_included" = xyes)
AM_CONDITIONAL(po_SUBDIR_included, test "x$po_SUBDIR_included" = xyes)
AC_CONFIG_FILES([ Makefile ])
AC_CONFIG_FILES([ doc/Makefile ])
AC_CONFIG_FILES([ libkipi/Makefile ])
AC_CONFIG_FILES([ libkipi/libkipi/Makefile ])
AC_CONFIG_FILES([ po/Makefile ])
AC_CONFIG_FILES([ po/ar/Makefile ])
AC_CONFIG_FILES([ po/br/Makefile ])
AC_CONFIG_FILES([ po/ca/Makefile ])
AC_CONFIG_FILES([ po/cs/Makefile ])
AC_CONFIG_FILES([ po/cy/Makefile ])
AC_CONFIG_FILES([ po/da/Makefile ])
AC_CONFIG_FILES([ po/de/Makefile ])
AC_CONFIG_FILES([ po/el/Makefile ])
AC_CONFIG_FILES([ po/en_GB/Makefile ])
AC_CONFIG_FILES([ po/es/Makefile ])
AC_CONFIG_FILES([ po/et/Makefile ])
AC_CONFIG_FILES([ po/fi/Makefile ])
AC_CONFIG_FILES([ po/fr/Makefile ])
AC_CONFIG_FILES([ po/ga/Makefile ])
AC_CONFIG_FILES([ po/gl/Makefile ])
AC_CONFIG_FILES([ po/is/Makefile ])
AC_CONFIG_FILES([ po/it/Makefile ])
AC_CONFIG_FILES([ po/ja/Makefile ])
AC_CONFIG_FILES([ po/lt/Makefile ])
AC_CONFIG_FILES([ po/mt/Makefile ])
AC_CONFIG_FILES([ po/nb/Makefile ])
AC_CONFIG_FILES([ po/nl/Makefile ])
AC_CONFIG_FILES([ po/pa/Makefile ])
AC_CONFIG_FILES([ po/pl/Makefile ])
AC_CONFIG_FILES([ po/pt/Makefile ])
AC_CONFIG_FILES([ po/pt_BR/Makefile ])
AC_CONFIG_FILES([ po/ru/Makefile ])
AC_CONFIG_FILES([ po/rw/Makefile ])
AC_CONFIG_FILES([ po/sk/Makefile ])
AC_CONFIG_FILES([ po/sl/Makefile ])
AC_CONFIG_FILES([ po/sr/Makefile ])
AC_CONFIG_FILES([ po/sr@Latn/Makefile ])
AC_CONFIG_FILES([ po/ta/Makefile ])
AC_CONFIG_FILES([ po/tr/Makefile ])
AC_CONFIG_FILES([ po/uk/Makefile ])
AC_CONFIG_FILES([ po/zh_CN/Makefile ])
AC_OUTPUT
# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
# And if so, warn when they don't match
if test "$kde_libs_prefix" != "$given_prefix"; then
# And if kde doesn't know about the prefix yet
echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
if test $? -ne 0; then
echo ""
echo "Warning: you chose to install this package in $given_prefix,"
echo "but KDE was found in $kde_libs_prefix."
echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
echo "Then restart KDE."
echo ""
fi
fi
fi
if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
echo ""
echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
echo "was not included. Therefore, GCC symbol visibility support remains disabled."
echo ""
echo "For better performance, consider including the Qt visibility supporting patch"
echo "located at:"
echo ""
echo "http://bugs.kde.org/show_bug.cgi?id=109386"
echo ""
echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
echo "everything will continue to work just fine without it."
echo ""
fi
if test "$all_tests" = "bad"; then
if test ! "$cache_file" = "/dev/null"; then
echo ""
echo "Please remove the file $cache_file after changing your setup"
echo "so that configure will find the changes next time."
echo ""
fi
else
echo ""
echo "Good - your configure finished. Start make now"
echo ""
fi

@ -0,0 +1,7 @@
#MIN_CONFIG(3.2)
CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS"
KDE_ENABLE_HIDDEN_VISIBILITY
KDE_INIT_DOXYGEN([KEG Libraries API Reference], [Version $VERSION])

@ -0,0 +1,5 @@
KDE_LANG = en
KDE_DOCS = AUTO
SUBDIRS = $(AUTODIRS)

@ -0,0 +1,18 @@
Begin4
Title: libkipi
Version: 0.1.5
Entered-date: 2006-11-29
Description: KDE Image Plugin Interface, a library to share plugins among
graphic applications
Keywords: kde image plugins
Author: renchi at pooh.tam.uiuc.edu (Renchi Raju)
caulier dot gilles at free.fr (Gilles Caulier)
blackie at kde.org (Jesper K. Pedersen)
aurelien dot gateau at free.fr (Aurelien Gateau)
Maintained-by:
Primary-site: http://extragear.kde.org/apps/kipi
Alternate-site:
Original-site:
Platforms:
Copying-policy: LGPL
End

@ -0,0 +1,16 @@
SUBDIRS = libkipi
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libkipi.pc
EXTRA_DIST = libkipi.pc.in
# i18n translation messages
messages:
LIST=`find . -name \*.h -o -name \*.hh -o -name \*.H -o -name \*.hxx -o -name \*.hpp -o -name \*.cpp -o -name \*.cc -o -name \*.cxx -o -name \*.ecpp -o -name \*.C`; \
if test -n "$$LIST"; then \
$(XGETTEXT) $$LIST -o $(podir)/libkipi.pot; \
fi
include $(top_srcdir)/admin/Doxyfile.am

@ -0,0 +1,26 @@
AC_OUTPUT([ libkipi/libkipi.pc ])
KDE_ENABLE_HIDDEN_VISIBILITY
AC_LANG_PUSH(C++)
libkipi_kdemacros_cppflags=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $all_includes"
AC_MSG_CHECKING([if kdemacros.h is usable])
AC_COMPILE_IFELSE(
[
#include <kdemacros.h>
#include <string>
int other_func( void ) KDE_EXPORT;
int other_func( void )
{
std::string s("KDE_EXPORT");
return 0;
}
],
[ AC_MSG_RESULT([yes])
AC_DEFINE(KDEMACROS_USABLE, 1, [kdemacros.h usable]) ],
[ AC_MSG_RESULT([no]) ]
)
CPPFLAGS=$libkipi_kdemacros_cppflags
AC_LANG_POP(C++)
AM_CONFIG_HEADER([ libkipi/libkipi/libkipi_export.h ])

@ -0,0 +1,11 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: libkipi
Description: KDE library for shared plugins between graphical applications
Requires:
Version: 0.1.5
Libs: -L${libdir} -lkipi
Cflags: -I${includedir}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,375 @@
/* -*- Mode: C++ -*-
KD Tools - a set of useful widgets for Qt
$Id: KDStream.h 387954 2005-02-10 07:49:40Z blackie $
*/
/****************************************************************************
** Copyright (C) 2001-2005 Klarälvdalens Datakonsult AB. All rights reserved.
**
** This file is part of the KD Tools library.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** Licensees holding valid commercial KD Tools licenses may use this file in
** accordance with the KD Tools Commercial License Agreement provided with
** the Software.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** Contact info@klaralvdalens-datakonsult.se if any conditions of this
** licensing are not clear to you.
**
**********************************************************************/
#ifndef KIPI_KDSTREAM
#define KIPI_KDSTREAM
// Forward declarations.
class QImage;
class QPixmap;
class QColor;
class QColorGroup;
class QPalette;
class QCursor;
class QDate;
class QDateTime;
class QTime;
class QFont;
class QPen;
class QPoint;
class QSize;
class QRect;
class QObject;
class QVariant;
class QBrush;
class QSizePolicy;
class QKeySequence;
#include <qstring.h>
#include <qvaluelist.h>
#include <qstrlist.h>
#include <qasciidict.h>
#include <qintdict.h>
#include <qptrdict.h>
#include <qdict.h>
#include <qvaluestack.h>
#include <qasciicache.h>
#include <qintcache.h>
#include <qcache.h>
#if ( QT_VERSION < 300 )
#include <qlist.h>
#include <qstack.h>
#include <qqueue.h>
#include <qvector.h>
#endif
#if ( QT_VERSION >= 300 )
#include <qptrlist.h>
#include <qptrstack.h>
#include <qptrqueue.h>
#include <qpair.h>
#include <qptrvector.h>
#include <qvaluevector.h>
#endif
// utility functions.
class KDStream;
typedef KDStream & (*KDSTREAMFUNC)(KDStream &);
KDStream& endl( KDStream& stream);
KDStream& flush( KDStream& stream);
class KDStream
{
public:
KDStream( QString* outputString = 0);
~KDStream();
void flush();
// Standard C++ types
KDStream& operator<<( bool );
KDStream& operator<<( char );
KDStream& operator<<( float );
KDStream& operator<<( double );
KDStream& operator<<( short );
KDStream& operator<<( unsigned short );
KDStream& operator<<( int );
KDStream& operator<<( unsigned int );
KDStream& operator<<( long );
KDStream& operator<<( unsigned long );
KDStream& operator<<( const char* );
KDStream& operator<<( const void* );
// Data holding classes.
KDStream& operator<<( const QString& );
KDStream& operator<<( const QCString& );
KDStream& operator<<( const QChar& );
KDStream& operator<<( const QColor& );
KDStream& operator<<( const QColorGroup& );
KDStream& operator<<( const QPalette& );
KDStream& operator<<( const QCursor& );
KDStream& operator<<( const QDate& );
KDStream& operator<<( const QDateTime& );
KDStream& operator<<( const QTime& );
KDStream& operator<<( const QFont& );
KDStream& operator<<( const QPen& );
KDStream& operator<<( const QPoint& );
KDStream& operator<<( const QSize& );
KDStream& operator<<( const QRect& );
KDStream& operator<<( const QBrush& );
KDStream& operator<<( const QSizePolicy& );
KDStream& operator<<( const QKeySequence& );
KDStream& operator<<( const QPixmap& );
KDStream& operator<<( const QImage& );
// misc
KDStream& operator<<( KDSTREAMFUNC );
KDStream& operator<<( const QVariant& );
KDStream& operator<<( const QObject& );
KDStream& operator<<( const QStrList& list );
protected:
QString QColor2Str( const QColor& col );
private:
QString _output;
QString* _out;
};
// Helper functions for KDStream.
// Defined as global functions to support
// compilers without support for member templates
// You should not need to call those yourself
template <class Iterator> void KDStream_valueListStream( KDStream& st, Iterator begin, Iterator end )
{
st << "[";
bool first = true;
for ( Iterator it = begin; it != end; ++it ){
if ( first )
first = false;
else
st << ", ";
st << *it;
}
st << "]";
}
template<class Iterator> void KDStream_ptrListStream( KDStream& st, Iterator it, bool doubleDeref )
{
st << "[";
bool first = true;
for ( ; *it; ++ it) {
if ( first )
first = false;
else
st << ", ";
if ( doubleDeref )
st << *(*it);
else {
// QStrList ought to be a value list rather than a ptr list, one less dereference is
// necesary here, otherwise we will only stream out a char, rather than a char *
st << *it;
}
}
st << "]";
}
template<class Iterator> void KDStream_ptrDictStream( KDStream& st, Iterator it )
{
st << "{";
bool first = true;
for ( ; it; ++ it) {
if ( first )
first = false;
else
st << ", ";
st << (it.currentKey()) << ": " << *(it.current()) ;
}
st << "}";
}
// Stream operators for containers
// Defined as global functions to support
// compilers without member templates
template<class T> KDStream& operator<<( KDStream& st, const QValueList<T>& list )
{
KDStream_valueListStream( st, list.begin(), list.end() );
return st;
}
#if ( QT_VERSION < 300 )
template<class T> KDStream& operator<<( KDStream& st, const QList<T>& list )
{
KDStream_ptrListStream ( st, QListIterator<T>( list ) , true );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QArray<T>& array )
{
KDStream_valueListStream( st, array.begin(), array.end() );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QVector<T>& vector )
{
QList<T> list;
vector.toList( &list );
KDStream_ptrListStream ( st, QListIterator<T>( list ), true );
return st;
}
#endif
#if ( QT_VERSION >= 300 )
template<class T> KDStream& operator<<( KDStream& st, const QMemArray<T>& array )
{
KDStream_valueListStream( st, array.begin(), array.end() );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QPtrList<T>& list )
{
KDStream_ptrListStream ( st, QPtrListIterator<T>( list ), true );
return st;
}
template<class T1, class T2> KDStream& operator<<( KDStream& st, const QPair<T1,T2>& pair )
{
st << "(" << pair.first << "," << pair.second << ")";
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QPtrVector<T>& vector )
{
QPtrList<T> list;
vector.toList( &list );
KDStream_ptrListStream( st, QPtrListIterator<T>( list ), true );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QValueVector<T>& vector )
{
KDStream_valueListStream( st, vector.begin(), vector.end() );
return st;
}
#endif
#if ( QT_VERSION < 300 )
template<class T> KDStream& operator<<( KDStream& st, const QStack<T>& stack )
{
// I need a copy to look at the individual elements.
QStack<T> copy(stack);
#else
template<class T> KDStream& operator<<( KDStream& st, const QPtrStack<T>& stack )
{
// I need a copy to look at the individual elements.
QPtrStack<T> copy(stack);
/*}*/
#endif
st << "[";
if ( stack.count() > 1 )
st << "top| ";
st << " ";
bool first = true;
while ( !copy.isEmpty() ) {
if (first)
first = false;
else
st << ", ";
st << *(copy.pop());
}
st << " ";
if ( stack.count() > 1 )
st << " |bottom";
st << "]";
return st;
}
// This function can unfortunately not be merged with the function for
// Q(Ptr)Stack, as the Q(Ptr)Stack dereferences what it pops of the stack,
// before streaming it:
// Q(Ptr)Stack: *this << *(copy.pop());
// QValueStack: *this << copy.pop() ;
template<class T> KDStream& operator<<( KDStream& st, const QValueStack<T>& stack )
{
// I need a copy to look at the individual elements.
QValueStack<T> copy(stack);
st << "[";
if ( stack.count() > 1 )
st << "top| ";
st << " ";
bool first = true;
while ( !copy.isEmpty() ) {
if (first)
first = false;
else
st << ", ";
st << copy.pop();
}
st << " ";
if ( stack.count() > 1 )
st << " |bottom";
st << "]";
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QAsciiDict<T>& dict )
{
KDStream_ptrDictStream( st, QAsciiDictIterator<T>( dict ) );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QIntDict<T>& dict )
{
KDStream_ptrDictStream( st, QIntDictIterator<T>( dict ) );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QPtrDict<T>& dict )
{
KDStream_ptrDictStream( st, QPtrDictIterator<T>( dict ) );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QDict<T>& dict )
{
KDStream_ptrDictStream( st, QDictIterator<T>( dict ) );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QAsciiCache<T>& cache )
{
KDStream_ptrDictStream( st, QAsciiCacheIterator<T>( cache ) );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QIntCache<T>& cache )
{
KDStream_ptrDictStream( st, QIntCacheIterator<T>( cache ) );
return st;
}
template<class T> KDStream& operator<<( KDStream& st, const QCache<T>& cache )
{
KDStream_ptrDictStream( st, QCacheIterator<T>( cache ) );
return st;
}
#endif /* KDStream */

@ -0,0 +1,138 @@
KD Tools COMMERCIAL LICENSE AGREEMENT
FOR COMMERCIAL VERSIONS
March 27, 2002
IMPORTANT-READ CAREFULLY: This Klarälvdalens Datakonsult AB End-User
License Agreement ("EULA") is a legal agreement between you (either an
individual or a legal entity) and Klarälvdalens Datakonsult AB
("KDAB") for the Klarälvdalens Datakonsult AB software product(s)
accompanying this EULA, which include(s) computer software and may
include "online" or electronic documentation, associated media, and
printed materials ("Licensed Product").
The Licensed Product is protected by copyright laws and international
copyright treaties, as well as other intellectual property laws and
treaties. The Licensed Product is licensed, not sold.
By installing, copying, or otherwise using the Licensed Product, you
agree to be bound by the terms of this EULA. If you do not agree to
the terms of this EULA, do not install, copy, or otherwise use the
Licensed Product; you may, however, return it to your place of
purchase for a full refund. In addition, by installing, copying, or
otherwise using any updates or other components of the Licensed
Product that you receive separately as part of the Licensed Product
("Updates"), you agree to be bound by any additional license terms
that accompany such Updates. If you do not agree to the additional
license terms that accompany such Updates, you may not install, copy,
or otherwise use such Updates.
Upon your acceptance of the terms and conditions of this EULA, KDAB
grants you the right to use the Licensed Product in the manner
provided below.
KDAB grants to you as an individual a personal, nonexclusive,
nontransferable license to make and use copies of the Licensed Product
for the sole purposes of designing, developing, and testing your
software product(s) ("Applications"). You may install copies of the
Licensed Product on an unlimited number of computers provided that you
are the only individual using the Licensed Product. If you are an
entity, KDAB grants you the right to designate one, and only one,
individual within your organization who shall have the sole right to
use the Licensed Product in the manner provided above. You may at any
time, but not more frequently that once every six (6) months,
designate another individual to replace the current designated user by
notifying KDAB, so long as there is no more than one designated user
at any given time.
GENERAL TERMS THAT APPLY TO APPLICATIONS AND REDISTRIBUTABLES
KDAB grants you a nonexclusive, royalty-free right to reproduce and
distribute the object code form of any portion of the Licensed Product
("Redistributables") for execution on any operating system of a type
listed in the License Certificate ("Platforms"). Copies of
Redistributables may only be distributed with and for the sole purpose
of executing Applications permitted under this License Agreement that
you have created using the Licensed Product. Under no circumstances
may any copies of Redistributables be distributed separately.
The license granted in this EULA for you to create your own
Applications and distribute them and the Redistributables (if any) to
your customers is subject to all of the following conditions: (i) all
copies of the Applications you create must bear a valid copyright
notice, either your own or the copyright notice that appears on the
Licensed Product; (ii) you may not remove or alter any copyright,
trademark or other proprietary rights notice contained in any portion
of the Licensed Product; (iii) Redistributables, if any, shall be
licensed to your customer "as is" (KDAB MAKES NO WARRANTIES OR
REPRESENTATIONS VIS-A-VIS YOUR CUSTOMER WITH RESPECT TO
REDISTRIBUTABLES, AND KDAB EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES
VIS-A-VIS YOUR CUSTOMER, WHETHER EXPRESS OR IMPLIED, ORAL OR WRITTEN,
INCLUDING, BUT NOT LIMITED TO ANY IMPLIED WARRANTY OF MERCHANTABILITY
OR FITNESS FOR ANY PARTICULAR PURPOSE, WHETHER OR NOT KDAB KNOWS, HAS
REASON TO KNOW, HAS BEEN ADVISED OR IS OTHERWISE AWARE OF SUCH
PURPOSE); (iv) you will indemnify and hold KDAB, its related companies
and its suppliers, harmless from and against any claims or liabilities
arising out of the use, reproduction or distribution of your
Applications; (v) your Applications must be written using a licensed,
registered copy of the Licensed Product; (vi) your Applications must
add primary and substantial functionality to the Licensed Product;
(vii) your Applications may not pass on functionality which in any way
makes it possible for others to create Applications with the Software;
(viii) your Applications may not compete with the Licensed Product;
(ix)) you may not use KDAB's or any of its suppliers' names, logos, or
trademarks to market your programs, except to state that your program
was written using the Licensed Product.
WARRANTY DISCLAIMER
THE LICENSED PRODUCT IS LICENSED TO YOU "AS IS". TO THE MAXIMUM
EXTENT PERMITTED BY APPLICABLE LAW, KDAB ON BEHALF OF ITSELF AND ITS
SUPPLIERS, DISCLAIMS ALL WARRANTIES AND CONDITIONS, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
NON-INFRINGEMENT WITH REGARD TO THE LICENSED PRODUCT. THIS WARRANTY
DISCLAIMER NOTWITHSTANDING, YOU MAY HAVE SPECIFIC LEGAL RIGHTS WHICH
MAY VARY FROM STATE/JURISDICTION TO STATE/JURISDICTION.
LIMITATION OF LIABILITY
IF, KDAB'S WARRANTY DISCLAIMER NOTWITHSTANDING, KDAB IS HELD LIABLE TO
YOU, WHETHER IN CONTRACT, TORT OR ANY OTHER LEGAL THEORY, BASED ON THE
LICENSED PRODUCT, KDAB'S ENTIRE LIABILITY TO YOU AND YOUR EXCLUSIVE
REMEDY SHALL BE, AT KDAB'S OPTION, EITHER (A) RETURN OF THE PRICE YOU
PAID FOR THE LICENSED PRODUCT, OR (B) REPAIR OR REPLACEMENT OF THE
LICENSED PRODUCT, PROVIDED YOU RETURN TO KDAB ALL COPIES OF THE
LICENSED PRODUCT AS ORIGINALLY DELIVERED TO YOU. KDAB SHALL NOT UNDER
ANY CIRCUMSTANCES BE LIABLE TO YOU BASED ON FAILURE OF THE LICENSED
PRODUCT IF THE FAILURE RESULTED FROM ACCIDENT, ABUSE OR
MISAPPLICATION, NOR SHALL KDAB UNDER ANY CIRCUMSTANCES BE LIABLE FOR
SPECIAL DAMAGES, PUNITIVE OR EXEMPLARY DAMAGES, DAMAGES FOR LOSS OF
PROFITS OR INTERRUPTION OF BUSINESS OR FOR LOSS OR CORRUPTION OF DATA.
ANY AWARD OF DAMAGES FROM KDAB TO YOU SHALL NOT EXCEED THE TOTAL AMOUNT
YOU HAVE PAID TO KDAB IN CONNECTION WITH THIS EULA.
SUPPORT AND UPDATES
You will receive email based, software developer support and access to
Updates to the Licensed Product for one year from the date of initial
delivery, in accordance with KDAB support policies and procedures.
Such policies and procedures may be changed from time to time.
GENERAL PROVISIONS
This EULA may only be modified in writing signed by you and an
authorized officer of KDAB. All terms of any purchase order or other
ordering document shall be superseded by this EULA. If any provision
of the EULA is found void or unenforceable, the remainder will remain
valid and enforceable according to its terms. If any remedy provided
is determined to have failed for its essential purpose, all
limitations of liability and exclusions of damages set forth in this
EULA shall remain in effect.
This EULA shall be construed, interpreted and governed by the laws of
Sweden, the venue to be Sunne Tingsrätt. The EULA gives you specific
legal rights; you may have others, which vary from state to state and
from country to country. KDAB reserves all rights not specifically
granted in this EULA.

@ -0,0 +1,93 @@
KD Tools COMMERCIAL LICENSE AGREEMENT
FOR COMMERCIAL VERSIONS
Version 1.0
Copyright of this license text (C) 2001 Trolltech AS and (C) 2002
Klarälvdalens Datakonsult AB. All rights reserved. License text used
with kind permission of Trolltech AS. The software and accompanying
material is Copyright (C) 2002 Klarälvdalens Datakonsult AB.
This non-exclusive non-transferable License Agreement ("Agreement") is
between you ("Licensee") and Klarälvdalens Datakonsult AB (KDAB), and
pertains to the Klarälvdalens Datakonsult AB software product(s)
accompanying this Agreement, which include(s) computer software and
may include "online" or electronic documentation, associated media,
and printed materials, including the source code, example programs and
the documentation ("Software").
COPYRIGHT AND RESTRICTIONS
1. All intellectual property rights in the Software are owned by KDAB
and are protected by Swedish copyright laws, other applicable
copyright laws, and international treaty provisions. KDAB retains all
rights not expressly granted. No title, property rights or copyright
in the Software or in any modifications to the Software shall pass to
the Licensee under any circumstances. The Software is licensed, not
sold.
2. By installing, copying, or otherwise using the Software, you agree
to be bound by the terms of this agreement. If you do not agree to the
terms of this Agreement, do not install, copy, or otherwise use the
Software.
3. Upon your acceptance of the terms and conditions of this Agreement,
KDAB grants you the right to use the Software in the manner provided
below.
4. KDAB grants to you as an individual a personal, nonexclusive,
non-transferable license to make and use copies of the Software for
the sole purposes of designing, developing, testing and distributing
your software product(s) ("Applications"). You may install copies of
the Software on an unlimited number of computers provided that you are
the only individual using the Software. If you are an entity, KDAB
grants you the right to designate one, and only one, individual within
your organization who shall have the sole right to use the Software in
the manner provided above.
5. The license granted in this Agreement for you to create and
distribute your own Applications is subject to all of the following
conditions: (i) all copies of the Applications you create must bear a
valid copyright notice, either your own or the copyright notice that
appears on the Software; (ii) you may not remove or alter any
copyright, trademark or other proprietary rights notice contained in
any portion of the Software; (iii) you will indemnify and hold KDAB, its
related companies and its suppliers, harmless from and against any
claims or liabilities arising out of the use and/or reproduction of
your Applications; (iv) your Applications must be written using a
licensed, registered copy of the Software; (v) your Applications must
add primary and substantial functionality to the Software; (vi) your
Applications may not pass on functionality which in any way makes it
possible for others to create Applications with the Software; (vii)
your Applications may not compete with the Software; (viii) you may
not use KDAB's or any of its suppliers' names, logos, or trademarks to
market your programs, except to state that your program was written
using the Software.
6. WARRANTY DISCLAIMER
THE SOFTWARE IS LICENSED TO YOU "AS IS". TO THE MAXIMUM EXTENT
PERMITTED BY APPLICABLE LAW, KDAB ON BEHALF OF ITSELF AND ITS SUPPLIERS,
DISCLAIMS ALL WARRANTIES AND CONDITIONS, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT WITH
REGARD TO THE SOFTWARE.
7. LIMITATION OF LIABILITY
IF, KDAB'S WARRANTY DISCLAIMER NOTWITHSTANDING, KDAB IS HELD LIABLE TO
YOU BASED ON THE SOFTWARE, KDAB'S ENTIRE LIABILITY TO YOU AND YOUR
EXCLUSIVE REMEDY SHALL BE, AT REPAIR OR REPLACEMENT OF THE SOFTWARE,
PROVIDED YOU RETURN TO KDAB ALL COPIES OF THE SOFTWARE AS ORIGINALLY
DELIVERED TO YOU. KDAB SHALL NOT UNDER ANY CIRCUMSTANCES BE LIABLE TO
YOU BASED ON FAILURE OF THE SOFTWARE IF THE FAILURE RESULTED FROM
ACCIDENT, ABUSE OR MISAPPLICATION, NOR SHALL KDAB UNDER ANY
CIRCUMSTANCES BE LIABLE FOR SPECIAL DAMAGES, PUNITIVE OR EXEMPLARY
DAMAGES, DAMAGES FOR LOSS OF PROFITS OR INTERRUPTION OF BUSINESS OR
FOR LOSS OR CORRUPTION OF DATA.
9. This Agreement may only be modified in writing signed by you and an
authorized officer of KDAB. All terms of any purchase order or other
ordering document shall be superseded by this Agreement.
10. This Agreement shall be construed, interpreted and governed by the
laws of Sweden, the venue to be Sunne Tingsrätt.

@ -0,0 +1,349 @@
The Qt GUI Toolkit is Copyright (C) 1994-2004 Trolltech AS.
You may use, distribute and copy the Qt GUI Toolkit under the terms of
GNU General Public License version 2, which is displayed below.
-------------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 2 of the License, or
(at your option) any later version.
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, write to the Free Software
Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA  02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
-------------------------------------------------------------------------

@ -0,0 +1,33 @@
METASOURCES = AUTO
INCLUDES = -I.. -I$(srcdir)/.. $(LIBKIPI_CFLAGS) $(all_includes)
KDE_ICON = kipi
lib_LTLIBRARIES = libkipi.la
libkipi_la_SOURCES = interface.cpp plugin.cpp pluginloader.cpp KDStream.cpp imageinfo.cpp imagecollection.cpp \
imageinfoshared.cpp imagecollectionshared.cpp imagedialog.cpp uploadwidget.cpp \
batchprogressdialog.cpp imagecollectionselector.cpp
noinst_HEADERS = KDStream.h
libkipiinclude_HEADERS = interface.h plugin.h pluginloader.h imageinfo.h imagecollection.h imageinfoshared.h \
imagecollectionshared.h imagedialog.h uploadwidget.h batchprogressdialog.h \
imagecollectionselector.h version.h libkipi_export.h
libkipi_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) \
-version-info 1:1:1 -no-undefined
libkipi_la_LIBADD = $(LIB_KIO) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT)
libkipiincludedir = $(includedir)/libkipi
kde_servicetypes_DATA = kipiplugin.desktop
picsdir = $(kde_datadir)/kipi/data
pics_DATA = kipi-plugins_logo.png banner_left.png
EXTRA_DIST = $(pics_DATA)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@ -0,0 +1,224 @@
//////////////////////////////////////////////////////////////////////////////
//
// BATCHPROGRESSDIALOG.CPP
//
// Copyright (C) 2004 Gilles Caulier <caulier dot gilles at free.fr>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// 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 Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
//
//////////////////////////////////////////////////////////////////////////////
// Include files for Qt
#include <qvbox.h>
#include <qlayout.h>
#include <qdir.h>
#include <qwidget.h>
#include <qgroupbox.h>
#include <qwhatsthis.h>
#include <qcolor.h>
#include <qhgroupbox.h>
#include <qvgroupbox.h>
#include <qheader.h>
#include <qlistview.h>
#include <qframe.h>
#include <qlabel.h>
#include <qcolor.h>
#include <qpixmap.h>
#include <qpushbutton.h>
// Include files for KDE
#include <klocale.h>
#include <kprogress.h>
#include <kinstance.h>
#include <kconfig.h>
#include <kapplication.h>
#include <kdebug.h>
#include <kdialogbase.h>
#include <kiconloader.h>
#include <klistview.h>
#include <kstandarddirs.h>
#include <kapplication.h>
#include <kaboutdata.h>
#include <khelpmenu.h>
#include <kiconloader.h>
#include <kpopupmenu.h>
// Include files for libKipi.
#include "libkipi/version.h"
// Local includes
#include "batchprogressdialog.h"
namespace KIPI
{
class BatchProgressItem : public KListViewItem
{
public:
BatchProgressItem(KListView * parent, QListViewItem *after, const QString &message, int messageType)
: KListViewItem( parent, after), m_messagetype(messageType)
{
// Set the icon.
switch( m_messagetype )
{
case KIPI::StartingMessage:
setPixmap( 0, SmallIcon( "run" ) );
break;
case KIPI::SuccessMessage:
setPixmap( 0, SmallIcon( "ok" ) );
break;
case KIPI::WarningMessage:
setPixmap( 0, SmallIcon( "flag" ) );
break;
case KIPI::ErrorMessage:
setPixmap( 0, SmallIcon( "stop" ) );
break;
case KIPI::ProgressMessage:
setPixmap( 0, SmallIcon( "info" ) );
break;
default:
setPixmap( 0, SmallIcon( "info" ) );
}
// Set the message text.
setText(1, message);
}
private:
int m_messagetype;
void paintCell (QPainter *p, const QColorGroup &cg, int column, int width, int alignment)
{
QColorGroup _cg( cg );
if ( m_messagetype == KIPI::ErrorMessage )
{
_cg.setColor( QColorGroup::Text, Qt::red );
KListViewItem::paintCell( p, _cg, column, width, alignment );
return;
}
if ( m_messagetype == KIPI::WarningMessage )
{
_cg.setColor( QColorGroup::Text, Qt::darkYellow );
KListViewItem::paintCell( p, _cg, column, width, alignment );
return;
}
KListViewItem::paintCell( p, cg, column, width, alignment );
}
};
struct BatchProgressDialog::Private {
};
/////////////////////////////////// CONSTRUCTOR ////////////////////////////////////////////
BatchProgressDialog::BatchProgressDialog( QWidget *parent, const QString &caption )
: KDialogBase( parent, "KIPIBatchProgressDialog", true /* modal */,
caption, Cancel)
{
d = new Private;
QWidget* box = makeVBoxMainWidget();
//---------------------------------------------
QFrame *headerFrame = new QFrame( box );
headerFrame->setFrameStyle(QFrame::Panel|QFrame::Sunken);
QHBoxLayout* layout = new QHBoxLayout( headerFrame );
layout->setMargin( 2 ); // to make sure the frame gets displayed
layout->setSpacing( 0 );
QLabel *pixmapLabelLeft = new QLabel( headerFrame, "pixmapLabelLeft" );
pixmapLabelLeft->setScaledContents( false );
layout->addWidget( pixmapLabelLeft );
QLabel *labelTitle = new QLabel( caption, headerFrame, "labelTitle" );
layout->addWidget( labelTitle );
layout->setStretchFactor( labelTitle, 1 );
QString dir;
KGlobal::dirs()->addResourceType("kipi_banner_left", KGlobal::dirs()->kde_default("data") + "kipi/data");
dir = KGlobal::dirs()->findResourceDir("kipi_banner_left", "banner_left.png");
pixmapLabelLeft->setPaletteBackgroundColor( QColor(201, 208, 255) );
pixmapLabelLeft->setPixmap( QPixmap( dir + "banner_left.png" ) );
labelTitle->setPaletteBackgroundColor( QColor(201, 208, 255) );
//---------------------------------------------
m_actionsList = new KListView( box );
m_actionsList->addColumn(i18n( "Status" ));
m_actionsList->addColumn(i18n( "Current Actions" ));
m_actionsList->setSorting(-1);
m_actionsList->setItemMargin(1);
m_actionsList->header()->hide();
m_actionsList->setResizeMode(QListView::LastColumn);
QWhatsThis::add( m_actionsList, i18n("<p>This is the current tasks list released.") );
//---------------------------------------------
m_progress = new KProgress( box, "Progress" );
m_progress->setTotalSteps(100);
m_progress->setValue(0);
QWhatsThis::add( m_progress, i18n("<p>This is the list current percent task released.") );
resize( 600, 400 );
}
//////////////////////////////////// DESTRUCTOR /////////////////////////////////////////////
BatchProgressDialog::~BatchProgressDialog()
{
delete d;
}
///////////////////////////////////// FONCTIONS /////////////////////////////////////////////
void BatchProgressDialog::addedAction(const QString &text, int type)
{
m_item = new KIPI::BatchProgressItem(m_actionsList,
m_actionsList->lastItem(),
text, type);
m_actionsList->ensureItemVisible(m_item);
}
void BatchProgressDialog::reset()
{
m_actionsList->clear();
m_progress->setValue(0);
}
void BatchProgressDialog::setProgress(int current, int total)
{
m_progress->setTotalSteps(total);
m_progress->setValue(current);
}
} // NameSpace KIPI
#include "batchprogressdialog.moc"

@ -0,0 +1,80 @@
//////////////////////////////////////////////////////////////////////////////
//
// BATCHPROGRESSDIALOG.H
//
// Copyright (C) 2004 Gilles Caulier <caulier dot gilles at free.fr>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// 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 Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA.
//
//////////////////////////////////////////////////////////////////////////////
/** @file batchprogressdialog.h */
#ifndef BATCHPROGRESSDIALOG_H
#define BATCHPROGRESSDIALOG_H
// Include files for KDE
#include <kdialogbase.h>
#include "libkipi/libkipi_export.h"
class KListView;
class KProgress;
/**
@namespace KIPI
This is the namespace
*/
namespace KIPI
{
class BatchProgressItem;
enum ActionMessageType
{
StartingMessage = 0,
SuccessMessage,
WarningMessage,
ErrorMessage,
ProgressMessage
};
class LIBKIPI_EXPORT BatchProgressDialog : public KDialogBase
{
Q_OBJECT
public:
BatchProgressDialog( QWidget *parent=0, const QString &caption=QString::null );
~BatchProgressDialog();
void addedAction(const QString &text, int type);
void reset();
void setProgress(int current, int total);
protected:
KIPI::BatchProgressItem *m_item;
KListView *m_actionsList;
KProgress *m_progress;
private:
struct Private;
Private* d;
};
} // NameSpace KIPI
#endif // BATCHPROGRESSDIALOG_H

@ -0,0 +1,96 @@
Suggested redesign of currentAlbum() / currentSelection() / allAlbums()
=======================================================================
Problem 1
=========
Plugins should be as similar as possible when it comes to user
interaction. The topic for discussion here are what set of images does the
plugin work on.
Currently most KIPI plugins have been changed so that they use
Interface::currentScope() which uses the selection if one exist, otherwise
they use the currentAlbum if that exists.
However, some plugins do not work like this, examples of alternative ways
are:
- always use selection (set wall paper)
- ask what to use using a set of radio buttons ( can't remember which
does this)
- ask the user to select albums using check boxes.
Problem 2
=========
Asking the user for an image set by the last method above only work well
when the host application uses the concept of an Album - which KimDaBa
doesn't.
Solution - step 1
=================
Aurelien suggested the following solution, which works well when an
application uses the concept of Albums:
Replaces all the different ways above with a QListView showing the albums as
returned by allAlbums(). The album returned by currentAlbum() would be
selected by default.
In the case of Gwenview, allAlbums() would return three virtual albums:
- Selected images
- All images in the current dir
- All images in the current dir and subdirs
In the case of KimDaBa, allAlbums() would return the list of keywords and a
special "Any" keyword which would be contains the union of all the other
keywords.
Solution - step 2
=================
The above will seriously break with how KimDaBa approaches albums. A
solution to this would be to make it up to the individual host applications
to offer a browser for selecting images.
The implementation would looks something like this:
class Interface {
...
virtual Browser browser() = 0;
}
class Browser {
public:
Browser( BrowserShared* );
virtual QWidget* widget( QWidget* parent );
KURL::List images();
// all the other stuff to make a shared class.
signals:
void descriptionChanged( const QString& );
void previewChanged( const QPixmap& );
}
class BrowserShared {
public:
virtual QWidget* widget( QWidget* parent ) = 0;
KURL::List images() = 0;
signals:
...
}
The widget method should return the configuration widget, this might
e.g. be the listview suggested by aurelien, or something else
If the widget returned are 0, then the application do not want to offer any
configuration, and the images must somehow be chosen before the plugin
appears (This will be the case in KimDaBa).
The images() method must return the selected images to operated on.
The signals are for host application which offers dir==album, and have a
description and preview for the dir (as is the case for digikam).
The above replaces the currentAlbum(), currentSelection(), currentScope() and
allAlbums() from KIPI::Interface.
[Question: Should we remove these methods?]
Also the ImageCollection class goes away.
[Question: What do we do about uploadPath() and uploadURL().]

Binary file not shown.

After

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

@ -0,0 +1,262 @@
/* ============================================================
* File : imagecollection.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// KDE includes.
#include <kdebug.h>
#include <klocale.h>
// Local includes.
#include "imagecollection.h"
#include "imagecollectionshared.h"
/**
@file imagecollection.cpp
returns the comment for the collection of images or QString::null if that doesn't make any sense.
A comment makes sense for an album, but not for a KIPI::Interface::currentSelection().
*/
QString KIPI::ImageCollection::comment() const
{
if ( _data )
return _data->comment();
else {
printNullError();
return QString::null;
}
}
/**
PENDING(blackie) document
*/
QString KIPI::ImageCollection::name() const
{
if ( _data )
return _data->name();
else {
printNullError();
return QString::null;
}
}
/**
Return the category of the image collection. For example in Digikam,
a category is a sorting class like 'travels', 'friends', 'monuments', etc.
*/
QString KIPI::ImageCollection::category() const
{
if ( _data )
return _data->category();
else {
printNullError();
return QString::null;
}
}
/**
Return the Creation date of the image collection. The default implementation
return a null date.
*/
QDate KIPI::ImageCollection::date() const
{
if ( _data )
return _data->date();
else {
printNullError();
return QDate();
}
}
/**
PENDING(blackie) document
*/
KURL::List KIPI::ImageCollection::images() const
{
if ( _data )
return _data->images();
else {
printNullError();
return KURL::List();
}
}
KIPI::ImageCollection::ImageCollection( ImageCollectionShared* data )
: _data( data )
{
}
KIPI::ImageCollection::~ImageCollection()
{
if ( _data )
_data->removeRef();
}
KIPI::ImageCollection::ImageCollection( const ImageCollection& rhs )
{
if ( rhs._data ) {
_data = rhs._data;
_data->addRef();
}
else
_data = 0;
}
KIPI::ImageCollection::ImageCollection()
{
_data = 0;
}
KIPI::ImageCollection& KIPI::ImageCollection::operator=( const KIPI::ImageCollection& rhs )
{
if ( rhs._data == _data )
return *this;
if ( _data )
_data->removeRef();
if ( !rhs._data ) {
printNullError();
_data = 0;
}
else {
_data = rhs._data;
_data->addRef();
}
return *this;
}
/*!
Returns the directory for the image collection.
The host application may, however, return anything in case this
imagecollection is not a directory (check isDirectory()), or may
return the directory of the first image in the collection, the root
of the image collection (in case all images has a common root), or
even an empty URL.
*/
KURL KIPI::ImageCollection::path() const
{
if ( _data )
return _data->path();
else {
printNullError();
return KURL();
}
}
/*!
Returns the directory to place images into.
This function should only be called if KIPI::Features AcceptNewImages
is available.
The function may choose to return the directory for the image collection
or if images from the collection are not available in a common directory,
then instead a common upload directory.
In contrast to \ref path, this function must return a valid url.
<b>IMPORTANT:</b> uploadRoot() must be a subpath of uploadPath()
*/
KURL KIPI::ImageCollection::uploadPath() const
{
if ( _data )
return _data->uploadPath();
else {
printNullError();
return KURL();
}
}
/*!
When a plugin wants to upload images, it may choose to display an upload widget,
which gives the user the possible to show a directory from a tree view.
This tree view widget needs to starts at some URL. This function specifies that location.
Here are a couble of possible return value different host applications may choose.
<ul>
<li> If all images are stored rooted at some tree (which is the case for
KimDaBa), then this function may return this directory unconditionally.
<li> The root directory returned by uploadPath() (which is the default implementation for this method)
<li> The directory returned by uploadPath().
</ul>
<b>IMPORTANT:</b> uploadRoot() must be a subpath of uploadPath()
*/
KURL KIPI::ImageCollection::uploadRoot() const
{
if ( _data )
return _data->uploadRoot();
else {
printNullError();
return KURL();
}
}
/*!
This fonction return the name of the upload root path used by the
the KIPI::UploadWidget. This name can be different for each host
app (like "Images" for Kimdaba or "My Albums" for Digikam).
*/
QString KIPI::ImageCollection::uploadRootName() const
{
if ( _data )
return _data->uploadRootName();
else {
printNullError();
return QString::null;
}
}
/*
Returns whether an imagecollection is a physical folder on the filesystem
or not. Its important to check this, if your plugin needs to do folder
based operations for an imagecollection
*/
bool KIPI::ImageCollection::isDirectory() const
{
if ( _data )
return _data->isDirectory();
else {
printNullError();
return false;
}
}
bool KIPI::ImageCollection::isValid() const
{
return (_data != 0);
}
void KIPI::ImageCollection::printNullError() const
{
kdWarning( 51000 ) << "Image collection is invalid - this might be the case if you asked for an album, " << endl
<< "and not album existed. You should check using .isValid() first." << endl
<< "Notice: Plugins should never create an instance of ImageCollection, only the host application "
<< "should do that." << endl;
}
bool KIPI::ImageCollection::operator==(const KIPI::ImageCollection& ic) const {
if (!_data || !(ic._data))
{
printNullError();
return false;
}
return *_data == *(ic._data);
}

@ -0,0 +1,76 @@
/* ============================================================
* File : imagecollection.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
/** @file imagecollection.h */
#ifndef KIPI_IMAGECOLLECTION_H
#define KIPI_IMAGECOLLECTION_H
// Qt includes
#include <qstring.h>
#include <qdatetime.h>
// KDE includes.
#include <kurl.h>
#include "libkipi/libkipi_export.h"
/** @namespace KIPI */
namespace KIPI
{
class ImageCollectionShared;
/** @class ImageCollection
Holds info about the collection
*/
class LIBKIPI_EXPORT ImageCollection
{
public:
QString name() const;
QString comment() const;
QString category() const;
QDate date() const;
KURL::List images() const;
KURL path() const;
KURL uploadPath() const;
KURL uploadRoot() const;
QString uploadRootName() const;
bool isDirectory() const;
bool isValid() const;
// Interface for host application + general stuff
ImageCollection( ImageCollectionShared* );
ImageCollection( const ImageCollection& other );
~ImageCollection();
ImageCollection();
ImageCollection& operator=( const ImageCollection& );
bool operator==(const ImageCollection&) const;
private:
mutable KIPI::ImageCollectionShared* _data;
void printNullError() const;
};
}
#endif /* IMAGECOLLECTION_H */

@ -0,0 +1,348 @@
/* ============================================================
* File : imagecollectionselector.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-07
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// Qt includes.
#include <qheader.h>
#include <qlayout.h>
#include <qpushbutton.h>
#include <qlabel.h>
#include <qvgroupbox.h>
#include <qtimer.h>
// KDE includes.
#include <kbuttonbox.h>
#include <kdialog.h>
#include <klistview.h>
#include <klocale.h>
#include <kglobal.h>
#include <kio/previewjob.h>
// KIPI includes.
#include "libkipi/interface.h"
// Local includes.
#include "imagecollectionselector.h"
namespace KIPI
{
class ImageCollectionItem : public QCheckListItem
{
public:
ImageCollectionItem(ImageCollectionSelector* selector,
QListView * parent, ImageCollection collection)
: QCheckListItem( parent, collection.name(), QCheckListItem::CheckBox),
_imageCollection(collection), _selector(selector)
{}
ImageCollection imageCollection() const { return _imageCollection; }
protected:
virtual void stateChange(bool val)
{
QCheckListItem::stateChange(val);
_selector->emitSelectionChanged();
}
private:
ImageCollection _imageCollection;
ImageCollectionSelector* _selector;
};
struct ImageCollectionSelector::Private {
Interface* _interface;
KListView* _list;
QLabel* _thumbLabel;
QLabel* _textLabel;
QListViewItem* _itemToSelect;
};
ImageCollectionSelector::ImageCollectionSelector(QWidget* parent, Interface* interface, const char* name)
: QWidget(parent, name)
{
d=new Private;
d->_interface=interface;
d->_itemToSelect = 0;
d->_list=new KListView(this);
d->_list->setResizeMode( QListView::LastColumn );
d->_list->addColumn("");
d->_list->header()->hide();
connect(d->_list, SIGNAL(selectionChanged(QListViewItem*)),
SLOT(slotSelectionChanged(QListViewItem*)));
QHBoxLayout* mainLayout=new QHBoxLayout(this, 0, KDialog::spacingHint());
mainLayout->addWidget(d->_list);
QVBoxLayout* rightLayout = new QVBoxLayout(mainLayout, 0);
KButtonBox* box=new KButtonBox(this, Vertical);
rightLayout->addWidget(box);
QPushButton* selectAll=box->addButton(i18n("Select All"));
QPushButton* invertSelection=box->addButton(i18n("Invert Selection"));
QPushButton* selectNone=box->addButton(i18n("Select None"));
box->layout();
connect(selectAll, SIGNAL(clicked()),
this, SLOT(slotSelectAll()) );
connect(invertSelection, SIGNAL(clicked()),
this, SLOT(slotInvertSelection()) );
connect(selectNone, SIGNAL(clicked()),
this, SLOT(slotSelectNone()) );
rightLayout->addItem(new QSpacerItem(10,20,QSizePolicy::Fixed,
QSizePolicy::Expanding));
QVGroupBox* rightBox = new QVGroupBox(this);
rightBox->setInsideMargin(KDialog::marginHint());
rightBox->setInsideSpacing(KDialog::spacingHint());
rightLayout->addWidget(rightBox);
if (interface->hasFeature(AlbumsUseFirstImagePreview))
{
d->_thumbLabel = new QLabel(rightBox);
d->_thumbLabel->setFixedSize(QSize(128,128));
d->_thumbLabel->setAlignment(AlignHCenter | AlignVCenter);
}
else
{
d->_thumbLabel = 0;
}
d->_textLabel = new QLabel(rightBox);
fillList();
QTimer::singleShot(0, this, SLOT(slotInitialShow()));
}
ImageCollectionSelector::~ImageCollectionSelector() {
delete d;
}
void ImageCollectionSelector::fillList() {
QValueList<ImageCollection> collections = d->_interface->allAlbums();
d->_list->clear();
ImageCollection current = d->_interface->currentAlbum();
bool currentWasInList = false;
/* note: the extensive use of blocksignals is to prevent bombarding
the plugin with too many selection changed signals. do not remove
them */
blockSignals(true);
for( QValueList<ImageCollection>::Iterator it = collections.begin() ;
it != collections.end() ; ++it )
{
ImageCollectionItem* item = new ImageCollectionItem( this, d->_list, *it);
if (!currentWasInList && *it == current) {
item->setOn(true);
currentWasInList = true;
if (!d->_itemToSelect)
d->_itemToSelect = item;
}
}
if (!currentWasInList) {
slotSelectAll();
d->_itemToSelect = d->_list->firstChild();
}
blockSignals(false);
}
void ImageCollectionSelector::emitSelectionChanged()
{
emit selectionChanged();
}
QValueList<ImageCollection> ImageCollectionSelector::selectedImageCollections() const {
QValueList<ImageCollection> list;
QListViewItemIterator it( d->_list );
for (; it.current(); ++it) {
ImageCollectionItem *item = static_cast<ImageCollectionItem*>( it.current() );
if (item->isOn()) {
list << item->imageCollection();
}
}
return list;
}
void ImageCollectionSelector::slotSelectAll() {
QListViewItemIterator it( d->_list );
/* note: the extensive use of blocksignals is to prevent bombarding
the plugin with too many selection changed signals. do not remove
them */
blockSignals(true);
for (; it.current(); ++it) {
ImageCollectionItem *item = static_cast<ImageCollectionItem*>( it.current() );
item->setOn(true);
}
blockSignals(false);
emit selectionChanged();
}
void ImageCollectionSelector::slotInvertSelection() {
QListViewItemIterator it( d->_list );
/* note: the extensive use of blocksignals is to prevent bombarding
the plugin with too many selection changed signals. do not remove
them */
blockSignals(true);
for (; it.current(); ++it) {
ImageCollectionItem *item = static_cast<ImageCollectionItem*>( it.current() );
item->setOn(!item->isOn());
}
blockSignals(false);
emit selectionChanged();
}
void ImageCollectionSelector::slotSelectNone() {
QListViewItemIterator it( d->_list );
/* note: the extensive use of blocksignals is to prevent bombarding
the plugin with too many selection changed signals. do not remove
them */
blockSignals(true);
for (; it.current(); ++it) {
ImageCollectionItem *item = static_cast<ImageCollectionItem*>( it.current() );
item->setOn(false);
}
blockSignals(false);
emit selectionChanged();
}
void ImageCollectionSelector::slotSelectionChanged(QListViewItem* listItem)
{
if (d->_thumbLabel)
d->_thumbLabel->clear();
d->_textLabel->clear();
if (!listItem)
return;
ImageCollectionItem* imcollItem =
static_cast<ImageCollectionItem*>(listItem);
if (d->_thumbLabel)
{
KURL::List images(imcollItem->imageCollection().images());
if (!images.isEmpty())
{
KIO::PreviewJob* thumbJob = KIO::filePreview(images.first(), 128);
connect( thumbJob, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
SLOT(slotGotPreview(const KFileItem* , const QPixmap&)));
}
}
// Layout the ImageCollection information nicely
QString cellBeg("<tr><td><nobr><font size=-1><i>");
QString cellMid("</i></font></nobr></td><td><font size=-1>");
QString cellEnd("</font></td></tr>");
QString text("<table cellspacing=0 cellpadding=0>");
// number of images
text += cellBeg + i18n("Images:") +
cellMid + QString::number(imcollItem->imageCollection().images().count()) +
cellEnd;
// Optional features -------------------------------------------------------
// Album Comments
if (d->_interface->hasFeature(AlbumsHaveComments))
{
// Limit the comments string to 20 char...
QString comments = imcollItem->imageCollection().comment();
if (!comments.isEmpty())
{
comments.truncate(20);
comments.append("...");
}
text += cellBeg + i18n("Comments:") +
cellMid + comments +
cellEnd;
}
// Album Category
if (d->_interface->hasFeature(AlbumsHaveCategory))
{
text += cellBeg + i18n("Category:") +
cellMid + imcollItem->imageCollection().category() +
cellEnd;
}
// Album Creation Date
if (d->_interface->hasFeature(AlbumsHaveCreationDate))
{
QDate date(imcollItem->imageCollection().date());
text += cellBeg + i18n("Date:") +
cellMid + KGlobal::locale()->formatDate(date) +
cellEnd;
}
text += "</table>";
d->_textLabel->setText(text);
emit selectionChanged();
}
void ImageCollectionSelector::slotGotPreview(const KFileItem*, const QPixmap& pix)
{
d->_thumbLabel->setPixmap(pix);
}
void ImageCollectionSelector::slotInitialShow()
{
if (d->_itemToSelect)
{
d->_list->setSelected(d->_itemToSelect, true);
d->_list->ensureItemVisible(d->_itemToSelect);
d->_itemToSelect = 0;
}
emit selectionChanged();
}
} // KIPI
#include "imagecollectionselector.moc"

@ -0,0 +1,81 @@
/* ============================================================
* File : imagecollectionselector.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-07
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef IMAGECOLLECTIONSELECTOR_H
#define IMAGECOLLECTIONSELECTOR_H
// Qt includes.
#include <qwidget.h>
#include <qvaluelist.h>
#include <qpixmap.h>
// KIPI includes.
#include "libkipi/imagecollection.h"
#include "libkipi/libkipi_export.h"
class QListViewItem;
class KFileItem;
namespace KIPI
{
class Interface;
class LIBKIPI_EXPORT ImageCollectionSelector : public QWidget
{
Q_OBJECT
class Private;
public:
ImageCollectionSelector(QWidget* parent, Interface*, const char* name=0);
~ImageCollectionSelector();
QValueList<ImageCollection> selectedImageCollections() const;
signals:
void selectionChanged(void);
private:
Private* d;
void fillList();
void emitSelectionChanged();
friend class ImageCollectionItem;
private slots:
void slotSelectAll();
void slotInvertSelection();
void slotSelectNone();
void slotSelectionChanged(QListViewItem* listItem);
void slotGotPreview(const KFileItem*, const QPixmap&);
void slotInitialShow();
};
} // KIPI
#endif /* IMAGECOLLECTIONSELECTOR_H */

@ -0,0 +1,116 @@
/* ============================================================
* File : imagecollectionshared.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// KDE Includes.
#include <klocale.h>
#include <kdebug.h>
// Local Includes.
#include "imagecollectionshared.h"
KIPI::ImageCollectionShared::ImageCollectionShared()
: _count(1)
{
}
void KIPI::ImageCollectionShared::addRef()
{
_count++;
}
void KIPI::ImageCollectionShared::removeRef()
{
_count--;
if ( _count == 0 ) {
// qDebug("Deleting!");
delete this;
}
}
KURL KIPI::ImageCollectionShared::path()
{
kdWarning(51000) << "This method should only be invoked if this imagecollection is a directory.\n"
<< "See KIPI::ImageCollectionShared::isDirectory()"
<< endl;
return KURL();
}
KURL KIPI::ImageCollectionShared::uploadPath()
{
kdWarning(51000) << "This method should only be invoked if the host application supports the KIPI::Features\n"
"AcceptNewImages - if the host application do support that, then this function should\n"
"have been overriden in the host application.\n";
return KURL();
}
KURL KIPI::ImageCollectionShared::uploadRoot()
{
KURL path = uploadPath();
if ( path.isValid() ) {
path.setPath("/");
return path;
}
else
return KURL( "file:/" );
}
QString KIPI::ImageCollectionShared::uploadRootName()
{
return (i18n("Images"));
}
bool KIPI::ImageCollectionShared::isDirectory()
{
return false;
}
QString KIPI::ImageCollectionShared::comment()
{
kdWarning(51000) << "KIPI::ImageCollectionShared::comment should only be invoked if the host application supports\n"
"the KIPI::Features AlbumsHaveComments - if the host application do support that, then this function should\n"
"have been overriden in the host application.\n";
return QString::null;
}
QString KIPI::ImageCollectionShared::category()
{
kdWarning(51000) << "KIPI::ImageCollectionShared::category should only be invoked if the host application supports\n"
"the KIPI::Features AlbumsHaveCategory - if the host application do support that, then this function should\n"
"have been overriden in the host application.\n";
return QString::null;
}
QDate KIPI::ImageCollectionShared::date()
{
kdWarning(51000) << "KIPI::ImageCollectionShared::date should only be invoked if the host application supports\n"
"the KIPI::Features AlbumsHaveCreationDate - if the host application do support that, then this function should\n"
"have been overriden in the host application.\n";
return QDate();
}
bool KIPI::ImageCollectionShared::operator==(ImageCollectionShared& ics) {
return images()==ics.images();
}

@ -0,0 +1,68 @@
/* ============================================================
* File : imagecollectionshared.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef KIPI_IMAGECOLLECTIONSHARED_H
#define KIPI_IMAGECOLLECTIONSHARED_H
// Qt Includes.
#include <qstring.h>
#include <qdatetime.h>
// KDE includes.
#include <kurl.h>
// Local includes.
#include "imagecollection.h"
#include "libkipi/libkipi_export.h"
namespace KIPI
{
class LIBKIPI_EXPORT ImageCollectionShared
{
public:
ImageCollectionShared();
virtual ~ImageCollectionShared() {}
virtual QString name() = 0;
virtual QString comment();
virtual QString category();
virtual QDate date();
virtual KURL::List images() = 0;
virtual KURL path();
virtual KURL uploadPath();
virtual KURL uploadRoot();
virtual QString uploadRootName();
virtual bool isDirectory();
virtual bool operator==(ImageCollectionShared&);
private:
friend class ImageCollection;
void addRef();
void removeRef();
int _count;
};
}
#endif /* IMAGECOLLECTIONSHARED_H */

@ -0,0 +1,327 @@
/* ============================================================
* File : imagedialog.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-05
* Description : an image files selector dialog.
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// Qt includes.
#include <qguardedptr.h>
#include <qlabel.h>
#include <qsplitter.h>
#include <qlayout.h>
#include <qframe.h>
#include <qpushbutton.h>
#include <qtimer.h>
// KDE includes.
#include <kdebug.h>
#include <klistview.h>
#include <klocale.h>
#include <kstandarddirs.h>
#include <kio/previewjob.h>
#include <kapplication.h>
#include <kaboutdata.h>
#include <khelpmenu.h>
#include <kiconloader.h>
#include <kpopupmenu.h>
// Include files for libKipi.
#include "libkipi/version.h"
// Local includes.
#include "imagedialog.h"
const int PREVIEW_SIZE = 128;
namespace KIPI
{
struct AlbumLVI : public KListViewItem {
AlbumLVI(KListView* parent, const KIPI::ImageCollection& album)
: KListViewItem(parent, album.name())
, _album(album) {}
const KIPI::ImageCollection& _album;
};
struct ImageLVI : public KListViewItem {
ImageLVI(KListView* parent, const KURL& url)
: KListViewItem(parent, url.fileName()), _url(url) {}
KURL _url;
};
struct ImageDialog::Private {
KURL _url;
KURL::List _urls;
KIPI::Interface* _interface;
KListView* _albumList;
KListView* _imageList;
QLabel* _preview;
QValueList<ImageCollection> _albums;
bool _singleSelection;
};
ImageDialog::ImageDialog(QWidget* parent, KIPI::Interface* interface,
bool singleSelection)
: KDialogBase(KDialogBase::Plain, i18n("Select Image From Album"), Help|Ok|Cancel,
Ok, parent, "album-dialog", true, true)
{
d = new Private;
d->_interface=interface;
d->_singleSelection = singleSelection;
QWidget* box = plainPage();
QVBoxLayout *dvlay = new QVBoxLayout( box, 6 );
//---------------------------------------------
QFrame *headerFrame = new QFrame( box );
headerFrame->setFrameStyle(QFrame::Panel|QFrame::Sunken);
QHBoxLayout* layout = new QHBoxLayout( headerFrame );
layout->setMargin( 2 ); // to make sure the frame gets displayed
layout->setSpacing( 0 );
QLabel *pixmapLabelLeft = new QLabel( headerFrame, "pixmapLabelLeft" );
pixmapLabelLeft->setScaledContents( false );
layout->addWidget( pixmapLabelLeft );
QLabel *labelTitle = new QLabel( i18n("Select Image From Album"), headerFrame, "labelTitle" );
layout->addWidget( labelTitle );
layout->setStretchFactor( labelTitle, 1 );
dvlay->addWidget( headerFrame );
QString directory;
KGlobal::dirs()->addResourceType("kipi_banner_left", KGlobal::dirs()->kde_default("data") + "kipi/data");
directory = KGlobal::dirs()->findResourceDir("kipi_banner_left", "banner_left.png");
pixmapLabelLeft->setPaletteBackgroundColor( QColor(201, 208, 255) );
pixmapLabelLeft->setPixmap( QPixmap( directory + "banner_left.png" ) );
labelTitle->setPaletteBackgroundColor( QColor(201, 208, 255) );
//---------------------------------------------
// About data and help button.
KAboutData* about = new KAboutData("kipiplugins",
I18N_NOOP("Image selector dialog"),
kipi_version,
I18N_NOOP("A Kipi dialog for image selection"),
KAboutData::License_GPL,
"(c) 2004,2005, Kipi development team",
0,
"http://extragear.kde.org/apps/kipi");
QPushButton *helpButton = actionButton( Help );
KHelpMenu* helpMenu = new KHelpMenu(this, about, false);
helpMenu->menu()->removeItemAt(0);
helpMenu->menu()->insertItem(i18n("Kipi Plugins Handbooks"), this, SLOT(slotHelp()), 0, -1, 0);
helpButton->setPopup( helpMenu->menu() );
//---------------------------------------------
QSplitter* splitter = new QSplitter(box);
d->_albumList=new KListView(splitter);
d->_albumList->addColumn(i18n("Album Name"));
d->_albumList->setMinimumWidth(200);
d->_albumList->setResizeMode(QListView::LastColumn);
d->_imageList=new KListView(splitter);
d->_imageList->addColumn(i18n("Image Name"));
d->_imageList->setMinimumWidth(200);
d->_imageList->setSelectionMode(singleSelection ? QListView::Single :
QListView::Extended);
d->_imageList->setResizeMode(QListView::LastColumn);
d->_preview=new QLabel(splitter);
d->_preview->setAlignment(AlignHCenter | AlignVCenter | WordBreak);
d->_preview->setFixedWidth(PREVIEW_SIZE);
d->_preview->setText(i18n("No image selected"));
dvlay->addWidget( splitter );
d->_albums=d->_interface->allAlbums();
QValueList<ImageCollection>::ConstIterator it=d->_albums.begin();
for(; it!=d->_albums.end(); ++it) {
new AlbumLVI(d->_albumList, *it);
}
QTimer::singleShot(0, this, SLOT(slotInitialShow()));
connect(d->_albumList, SIGNAL(selectionChanged(QListViewItem*)),
this, SLOT(fillImageList(QListViewItem*)) );
if (singleSelection)
connect(d->_imageList, SIGNAL(selectionChanged(QListViewItem*)),
this, SLOT(slotImageSelected(QListViewItem*)) );
else
connect(d->_imageList, SIGNAL(selectionChanged()),
this, SLOT(slotImagesSelected()));
enableButtonOK(false);
}
ImageDialog::~ImageDialog() {
delete d;
}
KURL ImageDialog::url() const {
return d->_url;
}
KURL::List ImageDialog::urls() const
{
return d->_urls;
}
KURL ImageDialog::getImageURL(QWidget* parent, KIPI::Interface* interface) {
ImageDialog dlg(parent, interface, true);
if (dlg.exec() == QDialog::Accepted) {
return dlg.url();
} else {
return KURL();
}
}
KURL::List ImageDialog::getImageURLs(QWidget* parent, Interface* interface)
{
ImageDialog dlg(parent, interface, false);
if (dlg.exec() == QDialog::Accepted)
return dlg.urls();
else
{
KURL::List urls;
return urls;
}
}
void ImageDialog::fillImageList(QListViewItem* item) {
d->_imageList->clear();
if (!item) return;
const KIPI::ImageCollection& album=static_cast<AlbumLVI*>(item)->_album;
KURL::List images=album.images();
KURL::List::ConstIterator it=images.begin();
for (;it!=images.end(); ++it) {
new ImageLVI(d->_imageList, *it);
}
}
void ImageDialog::slotImageSelected(QListViewItem* item) {
if (!item) {
enableButtonOK(false);
d->_preview->setText(i18n("No image selected"));
d->_url=KURL();
return;
}
enableButtonOK(true);
d->_url=static_cast<ImageLVI*>(item)->_url;
d->_preview->clear();
KIO::PreviewJob* thumbJob = KIO::filePreview(d->_url, PREVIEW_SIZE);
connect( thumbJob, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
SLOT(slotGotPreview(const KFileItem* , const QPixmap&)));
}
void ImageDialog::slotImagesSelected()
{
d->_url = KURL();
d->_urls.clear();
d->_preview->clear();
QListViewItem* selectedItem = 0;
QListViewItem* listItem = d->_imageList->firstChild();
while (listItem)
{
if (listItem->isSelected())
{
selectedItem = listItem;
d->_urls.append(static_cast<ImageLVI*>(listItem)->_url);
}
listItem = listItem->nextSibling();
}
if (!selectedItem)
{
enableButtonOK(false);
d->_preview->setText(i18n("No images selected"));
d->_url=KURL();
d->_urls.clear();
return;
}
enableButtonOK(true);
if (d->_urls.count() == 1)
{
d->_url = d->_urls.first();
KIO::PreviewJob* thumbJob = KIO::filePreview(d->_url, PREVIEW_SIZE);
connect( thumbJob, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
SLOT(slotGotPreview(const KFileItem* , const QPixmap&)));
}
else
{
d->_url = d->_urls.first();
d->_preview->setText(i18n("1 image selected", "%n images selected", d->_urls.count()));
}
}
void ImageDialog::slotGotPreview(const KFileItem*, const QPixmap& pix) {
d->_preview->setPixmap(pix);
}
void ImageDialog::slotHelp( void )
{
KApplication::kApplication()->invokeHelp("", "kipi-plugins");
}
void ImageDialog::slotInitialShow()
{
ImageCollection current = d->_interface->currentAlbum();
QListViewItemIterator it( d->_albumList );
while ( it.current() )
{
AlbumLVI* lvi = static_cast<AlbumLVI*>( it.current() );
if ( lvi->_album == current )
{
d->_albumList->ensureItemVisible( lvi );
d->_albumList->setSelected( lvi, true );
break;
}
++it;
}
}
} // namespace KIPI
#include "imagedialog.moc"

@ -0,0 +1,83 @@
/* ============================================================
* File : imagedialog.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-05
* Description : an image files selector dialog.
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef IMAGEDIALOG_H
#define IMAGEDIALOG_H
// Qt includes.
#include <qvaluelist.h>
#include <qwidget.h>
// KDE includes.
#include <kurl.h>
#include <kdialogbase.h>
// LibKipi includes.
#include "libkipi/interface.h"
#include "libkipi/imagecollection.h"
#include "libkipi/libkipi_export.h"
class QListViewItem;
class KFileItem;
class KListView;
namespace KIPI
{
class LIBKIPI_EXPORT ImageDialog : public KDialogBase
{
Q_OBJECT
class Private;
public:
ImageDialog(QWidget*, Interface*, bool singleSelection=false);
~ImageDialog();
KURL url() const;
KURL::List urls() const;
static KURL getImageURL(QWidget*, Interface*);
static KURL::List getImageURLs(QWidget*, Interface*);
private slots:
void fillImageList(QListViewItem*);
void slotImageSelected(QListViewItem*);
void slotImagesSelected();
void slotGotPreview(const KFileItem* , const QPixmap&);
void slotHelp( void );
void slotInitialShow();
private:
Private* d;
};
} // namespace KIPI
#endif /* IMAGECOLLECTIONDIALOG_H */

@ -0,0 +1,169 @@
/* ============================================================
* File : imageinfo.h
* Author: KIPI team developers (see AUTHORS files for details)
* Date : 2004-07-22
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#include "imageinfo.h"
#include "KDStream.h"
#include "imageinfoshared.h"
/** @file imageinfo.cpp
*/
QString KIPI::ImageInfo::toString( const QVariant& data ) const
{
QString string;
KDStream stream( &string );
stream << data
<< flush ;
return string;
}
/**
PENDING(blackie) document
*/
QString KIPI::ImageInfo::title() const
{
return _data->title();
}
/**
PENDING(blackie) document
*/
KURL KIPI::ImageInfo::path() const
{
return _data->path();
}
/**
PENDING(blackie) document
*/
QString KIPI::ImageInfo::description() const
{
return _data->description();
}
/**
Returns the time of the image.
In case the host application supports time range, the spec argument
specifies if it is the start or end time that should be returned.
*/
QDateTime KIPI::ImageInfo::time( TimeSpec spec ) const
{
return _data->time( spec );
}
/**
Returns a Map of attributes of the image
In case the host application supports some special attributes of the image
this function can be used to return them.
Tags are supported by this feature: "tags" key contains QStringList()
encapsulated in a QVariant
*/
QMap<QString,QVariant> KIPI::ImageInfo::attributes() const
{
return _data->attributes();
}
/**
PENDING(blackie) document
*/
int KIPI::ImageInfo::size() const
{
return _data->size();
}
KIPI::ImageInfo::ImageInfo( ImageInfoShared* shared )
: _data( shared )
{
}
KIPI::ImageInfo::ImageInfo( const KIPI::ImageInfo& rhs )
{
_data = rhs._data;
_data->addRef();
}
KIPI::ImageInfo::~ImageInfo()
{
_data->removeRef();
}
void KIPI::ImageInfo::setTitle( const QString& name )
{
_data->setTitle( name );
}
void KIPI::ImageInfo::setDescription( const QString& description )
{
_data->setDescription( description );
}
void KIPI::ImageInfo::clearAttributes()
{
_data->clearAttributes();
}
void KIPI::ImageInfo::addAttributes( const QMap<QString,QVariant>& attributes )
{
_data->addAttributes( attributes );
}
/**
Returns the angle the application rotates the image with when displaying it.
Certain host applications may choose to rotate the image on disk, and will always return 0,
while other host application will rotate the image when displaying it, and will thus not rotate
the image on disk.
*/
int KIPI::ImageInfo::angle() const
{
return _data->angle();
}
/**
See \ref angle
*/
void KIPI::ImageInfo::setAngle( int angle )
{
_data->setAngle( angle );
}
/**
In the case the application supports time ranges (like this image is
from 1998-2000), this method will return true if the time is an exact
specification, and thus not a range.
*/
bool KIPI::ImageInfo::isTimeExact() const
{
return _data->isTimeExact();
}
void KIPI::ImageInfo::setTime( const QDateTime& time, TimeSpec spec )
{
_data->setTime( time, spec );
}
/**
Copies all the attibutes, description etc from the other imageinfo
*/
void KIPI::ImageInfo::cloneData( const ImageInfo& other )
{
_data->cloneData( other._data );
}

@ -0,0 +1,82 @@
/* ============================================================
* File : imageinfo.h
* Author: KIPI team developers (see AUTHORS files for details)
* Date : 2004-07-22
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
/** @file imageinfo.h */
#ifndef KIPI_IMAGEINFO_H
#define KIPI_IMAGEINFO_H
#include <kurl.h>
#include <qstring.h>
#include <qdatetime.h>
#include <qmap.h>
#include <qvariant.h>
#include "libkipi/libkipi_export.h"
namespace KIPI
{
class ImageInfoShared;
enum TimeSpec { FromInfo, ToInfo };
/** @class ImageInfo
Holds info about an image
*/
class LIBKIPI_EXPORT ImageInfo
{
public:
QString title() const;
void setTitle( const QString& name );
QString description() const;
void setDescription( const QString& description);
QMap<QString,QVariant> attributes() const;
void clearAttributes();
void addAttributes( const QMap<QString,QVariant>& );
KURL path() const;
QDateTime time( TimeSpec spec = FromInfo ) const;
void setTime( const QDateTime& time, TimeSpec spec = FromInfo );
bool isTimeExact() const;
int size() const;
int angle() const;
void setAngle( int );
QString toString( const QVariant& ) const;
void cloneData( const ImageInfo& other );
/** constructor
Interface for host application + general stuff
*/
ImageInfo( ImageInfoShared* );
ImageInfo( const ImageInfo& );
~ImageInfo();
private:
ImageInfo() {} // Disabled
ImageInfo& operator=( const ImageInfo& ) { return *this; } // Disabled
mutable KIPI::ImageInfoShared* _data;
};
}
#endif /* KIPI_IMAGEINFO_H */

@ -0,0 +1,120 @@
/* ============================================================
* File : imageinfoshared.cpp
* Authors: Jesper K. Pedersen <blackie@kde.org>
*
* Date : 2004-02-19
* Description :
*
* Copyright 2004 by Jesper K. Pedersen
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// Qt includes.
#include <qfileinfo.h>
// KDE includes.
#include <kdebug.h>
// Local includes.
#include "imageinfoshared.h"
#include "interface.h"
KIPI::ImageInfoShared::ImageInfoShared( Interface* interface, const KURL& url )
: _url( url ), _count(1), _interface( interface )
{
}
KURL KIPI::ImageInfoShared::path()
{
return _url;
}
int KIPI::ImageInfoShared::size()
{
if ( ! _url.isLocalFile() ) {
kdFatal() << "KIPI::ImageInfoShared::size does not yet support non local files, please fix\n";
return 0;
}
else
return QFileInfo( _url.path() ).size();
}
QDateTime KIPI::ImageInfoShared::time( KIPI::TimeSpec )
{
if ( ! _url.isLocalFile() ) {
kdFatal() << "KIPI::ImageInfoShared::time does not yet support non local files, please fix\n";
return QDateTime();
}
else
return QFileInfo( _url.path() ).lastModified();
}
void KIPI::ImageInfoShared::addRef()
{
_count++;
}
void KIPI::ImageInfoShared::removeRef()
{
_count--;
if ( _count == 0 ) {
delete this;
}
}
int KIPI::ImageInfoShared::angle()
{
return 0;
}
void KIPI::ImageInfoShared::setAngle( int )
{
}
bool KIPI::ImageInfoShared::isTimeExact()
{
return true;
}
void KIPI::ImageInfoShared::setTime( const QDateTime& /*time*/, TimeSpec /*spec*/ )
{
}
void KIPI::ImageInfoShared::setTitle( const QString& )
{
kdWarning(51000) << "This method should only be invoked if the host application supports the KIPI::ImageTitlesWritable\n"
"If the host application do support that, then this function should\n"
"have been overriden in the host application.\n";
}
void KIPI::ImageInfoShared::cloneData( ImageInfoShared* other )
{
if ( _interface->hasFeature( ImageTitlesWritable ) )
setTitle( other->title() );
if ( _interface->hasFeature( ImagesHasComments ) )
setDescription( other->description() );
clearAttributes();
addAttributes( other->attributes() );
setTime( other->time( FromInfo ), FromInfo );
if ( _interface->hasFeature( SupportsDateRanges ) )
setTime( other->time( ToInfo ), ToInfo );
setAngle( other->angle() );
}

@ -0,0 +1,91 @@
/* ============================================================
* File : imageinfoshared.h
* Authors: Jesper K. Pedersen <blackie@kde.org>
*
* Date : 2004-02-19
* Description :
*
* Copyright 2004 by Jesper K. Pedersen
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef KIPI_IMAGEINFOSHARED_H
#define KIPI_IMAGEINFOSHARED_H
// Qt includes.
#include <qstring.h>
#include <qmap.h>
#include <qdatetime.h>
#include <qvariant.h>
// KDE includes.
#include <kurl.h>
// LibKIPI includes.
#include "libkipi/imageinfo.h"
#include "libkipi/libkipi_export.h"
namespace KIPI
{
class Interface;
class LIBKIPI_EXPORT ImageInfoShared
{
public:
ImageInfoShared( KIPI::Interface* interface, const KURL& url );
virtual ~ImageInfoShared() {}
virtual QString title() {return QString::null;}
virtual void setTitle( const QString& );
virtual QString description() = 0;
virtual void setDescription( const QString& ) = 0;
virtual QMap<QString,QVariant> attributes() = 0;
virtual void clearAttributes() = 0;
virtual void addAttributes( const QMap<QString,QVariant>& ) = 0;
virtual KURL path();
virtual QDateTime time( KIPI::TimeSpec spec );
virtual void setTime( const QDateTime& time, TimeSpec spec = FromInfo );
virtual bool isTimeExact();
virtual int size();
virtual int angle();
virtual void setAngle( int );
QString toString( const QVariant& );
virtual void cloneData( ImageInfoShared* other );
protected:
KURL _url;
private:
ImageInfoShared() {} // Disable
friend class ImageInfo;
void addRef();
void removeRef();
int _count;
Interface* _interface;
};
}
#endif /* IMAGEINFOSHARED_H */

@ -0,0 +1,221 @@
/* ============================================================
* File : interface.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
/** @file interface.cpp */
// KDE includes.
#include <kdebug.h>
#include <kimageio.h>
// Local includes.
#include "pluginloader.h"
#include "interface.h"
/*!
@enum KIPI::Features
Not all host applications support the full subset of features that KIPI
allows access to. As an example <a
href="http://ktown.kde.org/kimdaba/">KimDaBa</a> do not support comments
for albums. Thus before a plugin expect a decant value for the comment,
it should check whether KIPI::AlbumsHaveComments are set. It does so
using KIPI::Interface::hasFeature()
When adding new items, remember to update "hasFeature( const QString& feature )"
and the hello world plugin.
*/
/*!
\enum KIPI::AlbumsHaveComments
This feature specify that albums have descriptions associated to them.
*/
/*!
\enum KIPI::ImagesHasComments
This feature specifies that images in the host application has descriptions associated to them.
*/
/*!
\enum KIPI::ImagesHasTime
This feature specifies that images has a date associated with it, which the host application can display and set
*/
/*!
\enum KIPI::SupportsDateRanges
This feature specify whether the host application supports that the user can specify a date range for images,
like 1998-2000.
*/
/*!
\enum KIPI::AcceptNewImages
This feature specifies that the host application do accept new images.
Use \ref ImageCollection::uploadPath to find the location to place the image, and
\ref KIPI::Interface::addImage() to tell the host application about the new image.
*/
/*!
\enum KIPI::ImageTitlesWritable
This features specifies whether the plugin can change the title for images
*/
/*!
\enum KIPI::AlbumsHaveCategory
This feature specify that albums are category associated to them ('travels', 'friends', 'monuments', etc.).
*/
/*!
\enum KIPI::AlbumsHaveCreationDate
This feature specify that albums are a creation date associated to them.
*/
/*!
\enum KIPI::AlbumsUseFirstImagePreview
This feature specify that albums use the first image of the collection like preview.
This flag is used in ImageGallery, CDArchiving, and FinDuplicateImages dialog for
to lauch a preview of the album.
*/
KIPI::Interface::Interface(QObject *parent, const char *name )
: QObject(parent, name)
{
}
KIPI::Interface::~Interface()
{
}
/**
Tells the host app that the following images has changed on disk
*/
void KIPI::Interface::refreshImages( const KURL::List& )
{
}
/**
Tells whether the host application under which the plugin currently executes a given feature.
See KIPI::Features for details on the individual features.
*/
bool KIPI::Interface::hasFeature( KIPI::Features feature )
{
return ( features() & feature ) != 0;
}
bool KIPI::Interface::hasFeature( const QString& feature )
{
if ( feature == "AlbumsHaveComments" )
return hasFeature( KIPI::AlbumsHaveComments );
else if ( feature == "ImagesHasComments" )
return hasFeature( KIPI::ImagesHasComments );
else if ( feature == "ImagesHasTime" )
return hasFeature( KIPI::ImagesHasTime );
else if ( feature == "SupportsDateRanges" )
return hasFeature( KIPI::SupportsDateRanges );
else if ( feature == "AcceptNewImages" )
return hasFeature( KIPI::AcceptNewImages );
else if ( feature == "ImageTitlesWritable" )
return hasFeature( KIPI::ImageTitlesWritable );
else if ( feature == "AlbumsHaveCategory" )
return hasFeature( KIPI::AlbumsHaveCategory );
else if ( feature == "AlbumsHaveCreationDate" )
return hasFeature( KIPI::AlbumsHaveCreationDate );
else if ( feature == "AlbumsUseFirstImagePreview" )
return hasFeature( KIPI::AlbumsUseFirstImagePreview );
else if ( feature == "HostSupportsTags" )
return hasFeature( KIPI::HostSupportsTags );
else {
kdWarning( 51000 ) << "Unknown feature asked for in KIPI::Interface::hasFeature: " << feature << endl;
return false;
}
}
/*!
Tell the host application that a new image has been made available to it.
Returns true if the host application did accept the new image, otherwise err will be filled with
an error description.
*/
bool KIPI::Interface::addImage( const KURL&, QString& /*err*/ )
{
kdWarning(51000) << "Interface::addImage should only be invoked if the host application supports the KIPI::Features\n"
"AcceptNewImages - if the host application do support that, then this function should\n"
"have been overriden in the host application.\n";
return false;
}
void KIPI::Interface::delImage( const KURL& )
{
}
/**
Returns list of all images in current album.
If there are no current album, the returned
KIPI::ImageCollection::isValid() will return false.
*/
KIPI::ImageCollection KIPI::Interface::currentAlbum()
{
// This implementation is just to be able to write documentation above.
return KIPI::ImageCollection();
}
/**
Current selection in a thumbnail view for example.
If there are no current selection, the returned
KIPI::ImageCollection::isValid() will return false.
*/
KIPI::ImageCollection KIPI::Interface::currentSelection()
{
// This implementation is just to be able to write documentation above.
return KIPI::ImageCollection();
}
/**
Returns a list of albums.
*/
QValueList<KIPI::ImageCollection> KIPI::Interface::allAlbums()
{
// This implementation is just to be able to write documentation above.
return QValueList<KIPI::ImageCollection>();
}
/**
Return a bitwise or of the KIPI::Features that thus application support.
*/
int KIPI::Interface::features() const
{
// This implementation is just to be able to write documentation above.
return 0;
}
/**
Return a list of images file extention will be used in the plugins for
to sort the files list before a treatment. The default implementation return,
the supported images formats by KDE.
*/
QString KIPI::Interface::fileExtensions()
{
QStringList KDEImagetypes = KImageIO::mimeTypes( KImageIO::Reading );
QString imagesFileFilter = KDEImagetypes.join(" ");
return ( imagesFileFilter.lower() + " " + imagesFileFilter.upper() );
}
#include "interface.moc"

@ -0,0 +1,94 @@
/* ============================================================
* File : interface.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
/** @file interface.h */
#ifndef KIPI_INTERFACE_H
#define KIPI_INTERFACE_H
// Qt includes.
#include <qstring.h>
#include <qobject.h>
// KDE includes.
#include <kurl.h>
// Local includes.
#include "libkipi/imagecollection.h"
#include "libkipi/imageinfo.h"
#include "libkipi/libkipi_export.h"
/** @namespace KIPI */
namespace KIPI
{
enum Features {
AlbumsHaveComments = 1 << 0,
ImagesHasComments = 1 << 1,
ImagesHasTime = 1 << 2,
SupportsDateRanges = 1 << 3,
AcceptNewImages = 1 << 4,
ImageTitlesWritable = 1 << 5,
AlbumsHaveCategory = 1 << 6,
AlbumsHaveCreationDate = 1 << 7,
AlbumsUseFirstImagePreview = 1 << 8,
HostSupportsTags = 1 << 9
};
/** class Interface */
class LIBKIPI_EXPORT Interface : public QObject
{
Q_OBJECT
public:
Interface(QObject *parent, const char *name=0);
virtual ~Interface();
virtual ImageCollection currentAlbum() = 0;
virtual ImageCollection currentSelection() = 0;
virtual QValueList<ImageCollection> allAlbums() = 0;
virtual ImageInfo info( const KURL& ) = 0;
virtual bool addImage( const KURL&, QString& err );
virtual void delImage( const KURL& );
virtual void refreshImages( const KURL::List& );
virtual QString fileExtensions();
bool hasFeature( KIPI::Features feature );
protected:
virtual int features() const = 0;
private:
friend class PluginLoader;
bool hasFeature( const QString& feature );
signals:
void selectionChanged( bool hasSelection );
void currentAlbumChanged( bool anyAlbum );
};
}
#endif /* KIPI_INTERFACE_H */

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

@ -0,0 +1,67 @@
[Desktop Entry]
Encoding=UTF-8
Type=ServiceType
X-KDE-ServiceType=KIPI/Plugin
X-KDE-DerivedName=KIPI Plugin
Name=KIPIPlugin
Name[br]=Lugent KIPIP
Name[cs]=KIPI modul
Name[da]=KIPI-plugin
Name[es]=Extensión de KIPI
Name[et]=KIPI plugin
Name[fi]=KIPILiitännäinen
Name[gl]=Plugin de KIPI
Name[it]=PluginDiKIPI
Name[nb]=KIPI programtillegg
Name[nl]=KIPI-plugin
Name[pl]=Wtyczka KIPI
Name[pt]='Plugin' do KIPI
Name[pt_BR]='Plugin' do KIPI
Name[sk]=KIPI modul
Name[sr]=KIPI прикључак
Name[sr@Latn]=KIPI priključak
Name[sv]=KIPI-insticksprogram
Name[tg]=МодулиKIPI
Name[tr]=KIPIEklentisi
Name[xx]=xxKIPIPluginxx
Name[zh_CN]=KIPI 插件
Comment=A KIPI Plugin
Comment[ar]=قابس KIPI
Comment[bg]=Приставка за KIPI
Comment[br]=Ul lugent KIPI
Comment[cs]=KIPI modul
Comment[da]=Et KIPI-plugin
Comment[de]=Ein KIPI-Plugin
Comment[el]=Ένα πρόσθετο του KIPI
Comment[es]=Una extensión para KIPI
Comment[et]=KIPI plugin
Comment[fi]=Kipi-liitännäinen
Comment[fr]=Un module externe KIPI
Comment[ga]=Breiseán KIPI
Comment[gl]=Un plugin de KIPI
Comment[it]=Un plugin di KIPI
Comment[ja]=Kipi プラグイン
Comment[ka]=KIPI-ს მოდული
Comment[lt]=KIPI priedas
Comment[nb]=Et KIPI programtillegg
Comment[nl]=Een KIPI-plugin
Comment[pa]=ਇੱਕ KIPI ਪਲੱਗਿੰਨ
Comment[pl]=Wtyczka KIPI
Comment[pt]=Um 'Plugin' do KIPI
Comment[pt_BR]=Um 'Plugin' do KIPI
Comment[sk]=KIPI modul
Comment[sr]=KIPI прикључак
Comment[sr@Latn]=KIPI priključak
Comment[sv]=Ett KIPI-insticksprogram
Comment[tg]=Модули KIPI
Comment[tr]=Bir KIPI Eklentisi
Comment[uk]=Втулок KIPI
Comment[xx]=xxA KIPI Pluginxx
Comment[zh_CN]=一个 KIPI 插件
[PropertyDef::X-KIPI-Id]
Type=QString
[PropertyDef::X-KIPI-ReqFeatures]
Type=QStringList

@ -0,0 +1,37 @@
/*
This file is part of libkipi project
Copyright (c) 2005 Laurent Montel <montel@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef _LIBKIPI_EXPORT_H
#define _LIBKIPI_EXPORT_H
#undef KDEMACROS_USABLE
#ifdef KDEMACROS_USABLE
#include <kdemacros.h>
#endif
#ifdef KDE_EXPORT
#define LIBKIPI_EXPORT KDE_EXPORT
#else
#define LIBKIPI_EXPORT
#endif
#endif /* _LIBKIPI_EXPORT_H */

@ -0,0 +1,100 @@
/**
\mainpage libkipi reference page.
This page will tell you both how to develop a new
plugin for KIPI, and how to add KIPI support to a new
application (referred to as host application).
You can find more information about KIPI at this <a
href="http://extragear.kde.org/apps/kipi">url</a>.
This documentation has been writen by Renchi Raju, Gilles Caulier,
Jesper K. Pedersen, and Aurelien Gateau.
<h1>Developing a new Plugin</h1>
The easiest way to start a new plugin, is to copy the hello world
plugin, which you may find in kdeextragear-libs-1/kipi-plugins. Please
also read <a
href="http://developer.kde.org/documentation/tutorials/developing-a-plugin-structure/index.html">
this tutorial</a> which tells in general about developing a plugin
structure for an application, but it also gives some background
information on how plugins are loaded, and especially on the macros
involved. The tutorial has been written by one of the KIPI authors, so
it matches fairly good the model of KIPI (except the part on merging
GUI's from plugins).
<h2>General things to do to implement a plugin</h2>
Here is a list of things to do.
<ul>
<li> Create a class that inherits KIPI::Plugin. In the constructor you
must create instances of KAction for your application. The topmost
actions should be given to the Plugin super class using
KIPI::Plugin::addAction().
<li> As described in the tutorial <a href="http://developer.kde.org/documentation/tutorials/developing-a-plugin-structure/index.html#understanding_loading">here</a>, you must call the macro
<tt>K_EXPORT_COMPONENT_FACTORY</tt>.
<li> You also need to create a desktop file, as described <a href="http://developer.kde.org/documentation/tutorials/developing-a-plugin-structure/index.html#makefile_am_client">here</a>
</ul>
<h2>Retrieving information from the host application</h2>
The above was the required step to build the plugin. The following will
tell you about the functions with which you communicate with the host
application.
The origin of all your communication with the host application is
\ref KIPI::Interface. You obtain a pointer to this by casting the parent
pointer given to your plugin during construction.
Selection of images can be obtained using
KIPI::Interface::currentSelection(), KIPI::Interface::currentAlbum() and
KIPI::Interface::allAlbums(). These methods uses KIPI::ImageCollection
to wrap a selection of images.
Finally to obtain information about individual images, call
KIPI::Interface::info(), which returns a KIPI::ImageInfo, with the
information.
When developing plugins, you should pay special attention to the fact the different
host applications may have different feature sets they
support. Information about what the host application support can be
obtained from KIPI::Interface::hasFeature().
<h2>Utilities for Plugins</h2>
KIPI has a number of utilities useful when developing plugins:
<ul>
<li> use KIPI::ImageCollectionDialog to ask the user for an image.
<li> use KIPI::UploadWidget when the user should specify a directory to
write images into.
<li> KIPI::ThumbnailJob helps you load thumb nails of images.
</ul>
<h1>Adding KIPI support to a new host application.</h1>
To add KIPI support to your application you must inherit
KIPI::Interface, and give an instance of this class to
KIPI::PluginLoader. See \ref KIPI::PluginLoader for details on loading plugins.
To be able to create an instance of your subclass of KIPI::Interface,
you must of course implement all the pure virtual method of the super
class, among others this requires you to create and return instances of
KIPI::ImageCollection and KIPI::ImageInfo. The only way you can do so
are by giving the classes a pointer to a subclass of
KIPI::ImageCollectionShared and KIPI::ImageInfoShared. These sub classes
are also your responsibility to implement.
The reason why things are that complicated, are to solve the problem of
ownership of pointers to the classes in question. The
KIPI::ImageCollectionShared pointer you give to KIPI::ImageCollection
constructor will be the owned by the ImageCollection instance.
*/

@ -0,0 +1,91 @@
/* ============================================================
* File : plugin.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// Qt includes.
#include <qwidget.h>
// KDE includes.
#include <kaction.h>
#include <kinstance.h>
#include <kdebug.h>
// Local includes.
#include "plugin.h"
struct KIPI::Plugin::Private {
QMap<QWidget*, KActionCollection*> m_actionCollection;
KInstance* m_instance;
QMap<QWidget*, KActionPtrList> m_actions;
QWidget* m_defaultWidget;
};
KIPI::Plugin::Plugin( KInstance* instance, QObject *parent, const char* name)
: QObject( parent, name)
{
d=new Private;
d->m_instance=instance;
}
KIPI::Plugin::~Plugin()
{
delete d;
}
KActionCollection* KIPI::Plugin::actionCollection( QWidget* widget )
{
if ( widget == 0 )
widget = d->m_defaultWidget;
if (!d->m_actionCollection.contains( widget ))
kdWarning( 51000 ) << "Error in the plugin. The plugin needs to call Plugin::setup( QWidget* ) "
<< "as the very first line when overriding the setup method." << endl;
return d->m_actionCollection[widget];
}
void KIPI::Plugin::addAction( KAction* action )
{
d->m_actions[d->m_defaultWidget].append( action );
}
KActionPtrList KIPI::Plugin::actions( QWidget* widget )
{
if ( widget == 0 )
widget = d->m_defaultWidget;
return d->m_actions[widget];
}
void KIPI::Plugin::setup( QWidget* widget )
{
d->m_defaultWidget = widget;
d->m_actions.insert( widget, KActionPtrList() );
QString name = QString( "action collection for %1" ).arg( widget->name() );
d->m_actionCollection.insert( widget, new KActionCollection( widget, widget, name.latin1(), d->m_instance ) );
}

@ -0,0 +1,76 @@
/* ============================================================
* File : plugin.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef KIPI_PLUGIN_H
#define KIPI_PLUGIN_H
// Qt includes.
#include <qobject.h>
// KDE includes.
#include <kaction.h>
// Lib KIPI includes.
#include "libkipi/interface.h"
#include "libkipi/libkipi_export.h"
class KInstance;
/** @namespace KIPI */
namespace KIPI
{
enum Category
{
IMAGESPLUGIN = 0,
EFFECTSPLUGIN,
TOOLSPLUGIN,
IMPORTPLUGIN,
EXPORTPLUGIN,
BATCHPLUGIN,
COLLECTIONSPLUGIN
};
class LIBKIPI_EXPORT Plugin : public QObject
{
public:
Plugin( KInstance* instance, QObject *parent, const char* name);
virtual ~Plugin();
virtual void setup( QWidget* widget ) = 0;
KActionPtrList actions( QWidget* parent = 0 );
KActionCollection* actionCollection( QWidget* parent = 0 );
virtual Category category( KAction* action ) const = 0;
protected:
void addAction( KAction* action );
private:
struct Private;
Private* d;
};
}
#endif // KIPI_PLUGIN_H

@ -0,0 +1,388 @@
/* ============================================================
* File : pluginloader.cpp
* Author: Renchi Raju <renchi@pooh.tam.uiuc.edu>
* Date : 2004-02-19
* Description :
*
* Copyright 2004 by Renchi Raju
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
/** @file pluginloader.cpp */
#include <qstringlist.h>
#include <ktrader.h>
#include <kparts/componentfactory.h>
#include <kdebug.h>
#include <kdialog.h>
#include "plugin.h"
#include "pluginloader.h"
#include "interface.h"
#include <kconfig.h>
#include <qcheckbox.h>
#include <qlayout.h>
/**
\author Renchi Raju
\class KIPI::PluginLoader
This is the class that will help host applications to load plugins.
The host application must create an instance of the plugin loader, and
call the method loadPlugins() to get the plugins loaded. To ensure that
plugins are correctly removed from menus and toolbars when loaded and
unloaded after constructions, the application must connect to either the
signals plug() / unplug() or the signal replug(). These signals are
emitted when a plugin is to be inserted into the menus.
If your application is using XMLGUI, the easiest way to get the plugins
inserted into the menus is by adding an item in the ui.rc file looking
list this:
&lt;ActionList name="image_actions"/&gt;
Then plugin plugins into menus could be done with code similiar to this from KimDaBa:
\code
void slotReplug() {
unplugActionList( QString::fromLatin1("file_actions") );
unplugActionList( QString::fromLatin1("image_actions") );
unplugActionList( QString::fromLatin1("tool_actions") );
QPtrList<KAction> fileActions;
QPtrList<KAction> imageActions;
QPtrList<KAction> toolsActions;
KIPI::PluginLoader::PluginList list = _pluginLoader->pluginList();
for( KIPI::PluginLoader::PluginList::Iterator it = list.begin(); it != list.end(); ++it ) {
KIPI::Plugin* plugin = (*it)->plugin;
if ( !plugin || !(*it)->shouldLoad )
continue;
plugin->setup( this );
QPtrList<KAction>* popup = 0;
if ( plugin->category() == KIPI::IMAGESPLUGIN )
popup = &imageActions;
else if ( plugin->category() == KIPI::EXPORTPLUGIN ||
plugin->category() == KIPI::IMPORTPLUGIN )
popup = &fileActions;
else if ( plugin->category() == KIPI::TOOLSPLUGIN )
popup = &toolsActions;
if ( popup ) {
KActionPtrList actions = plugin->actions();
for( KActionPtrList::Iterator it = actions.begin(); it != actions.end(); ++it ) {
popup->append( *it );
}
}
else {
kdDebug() << "No menu found\n";
}
plugin->actionCollection()->readShortcutSettings();
}
// For this to work I need to pass false as second arg for createGUI
plugActionList( QString::fromLatin1("file_actions"), fileActions );
plugActionList( QString::fromLatin1("image_actions"), imageActions );
plugActionList( QString::fromLatin1("tool_actions"), toolsActions );
}
\endcode
To configure which plugins should be loaded, simply call
PluginLoader::configWidget(), and insert the widget into your normal
configuration dialog.
*/
namespace KIPI {
//---------------------------------------------------------------------
//
// PluginLoader::Info
//
//---------------------------------------------------------------------
struct PluginLoader::Info::Private {
QString m_name;
QString m_comment;
QString m_library;
Plugin* m_plugin;
bool m_shouldLoad;
};
PluginLoader::Info::Info(const QString& name, const QString& comment, const QString& library, bool shouldLoad)
{
d=new Private;
d->m_name=name;
d->m_comment=comment;
d->m_library=library;
d->m_plugin=0;
d->m_shouldLoad=shouldLoad;
}
PluginLoader::Info::~Info()
{
delete d;
}
QString PluginLoader::Info::name() const
{
return d->m_name;
}
QString PluginLoader::Info::comment() const
{
return d->m_comment;
}
QString PluginLoader::Info::library() const
{
return d->m_library;
}
Plugin* PluginLoader::Info::plugin() const
{
return d->m_plugin;
}
void PluginLoader::Info::setPlugin(Plugin* plugin)
{
d->m_plugin=plugin;
}
bool PluginLoader::Info::shouldLoad() const
{
return d->m_shouldLoad;
}
void PluginLoader::Info::setShouldLoad(bool value)
{
d->m_shouldLoad=value;
}
//---------------------------------------------------------------------
//
// PluginLoader
//
//---------------------------------------------------------------------
static PluginLoader* s_instance = 0;
struct PluginLoader::Private
{
PluginList m_pluginList;
Interface* m_interface;
QStringList m_ignores;
};
PluginLoader::PluginLoader( const QStringList& ignores, Interface* interface )
{
Q_ASSERT( s_instance == 0 );
s_instance = this;
d=new Private;
d->m_interface = interface;
d->m_ignores = ignores;
KTrader::OfferList offers = KTrader::self()->query("KIPI/Plugin");
KConfig* config = KGlobal::config();
config->setGroup( QString::fromLatin1( "KIPI/EnabledPlugin" ) );
KTrader::OfferList::ConstIterator iter;
for(iter = offers.begin(); iter != offers.end(); ++iter) {
KService::Ptr service = *iter;
QString name = service->name();
QString comment = service->comment();
QString library = service->library();
QStringList reqFeatures = service->property( QString::fromLatin1( "X-KIPI-ReqFeatures" ) ).toStringList();
if (library.isEmpty() || name.isEmpty() ) {
kdWarning( 51001 ) << "KIPI::PluginLoader: Plugin had an empty name or library file - this should not happen." << endl;
continue;
}
if ( d->m_ignores.contains( name ) ) {
kdDebug( 51001 ) << "KIPI::PluginLoader: plugin " << name << " is in the ignore list for host application" << endl;
continue;
}
bool appHasAllReqFeatures=true;
for( QStringList::Iterator featureIt = reqFeatures.begin(); featureIt != reqFeatures.end(); ++featureIt ) {
if ( !d->m_interface->hasFeature( *featureIt ) ) {
kdDebug( 51001 ) << "Plugin " << name << " was not loaded because the host application is missing\n"
<< "the feature " << *featureIt << endl;
appHasAllReqFeatures=false;
break;
}
}
bool load = config->readBoolEntry( name, true );
if (!appHasAllReqFeatures)
continue;
Info* info = new Info( name, comment, library, load );
d->m_pluginList.append( info );
}
}
PluginLoader::~PluginLoader()
{
delete d;
}
void PluginLoader::loadPlugins()
{
for( PluginList::Iterator it = d->m_pluginList.begin(); it != d->m_pluginList.end(); ++it ) {
loadPlugin( *it );
}
emit replug();
}
void PluginLoader::loadPlugin( Info* info )
{
if ( info->plugin() == 0 && info->shouldLoad() ) {
Plugin *plugin = 0;
int error;
plugin = KParts::ComponentFactory
::createInstanceFromLibrary<Plugin>(info->library().local8Bit().data(),
d->m_interface, 0, QStringList(), &error);
if (plugin)
kdDebug( 51001 ) << "KIPI::PluginLoader: Loaded plugin " << plugin->name()<< endl;
else
{
kdWarning( 51001 ) << "KIPI::PluginLoader:: createInstanceFromLibrary returned 0 for "
<< info->name()
<< " (" << info->library() << ")"
<< " with error number "
<< error << endl;
if (error == KParts::ComponentFactory::ErrNoLibrary)
kdWarning( 51001 ) << "KLibLoader says: "
<< KLibLoader::self()->lastErrorMessage() << endl;
}
info->setPlugin(plugin);
}
if ( info->plugin() ) // Do not emit if we had trouble loading the plugin.
emit PluginLoader::instance()->plug( info );
}
const PluginLoader::PluginList& PluginLoader::pluginList()
{
return d->m_pluginList;
}
PluginLoader* PluginLoader::instance()
{
Q_ASSERT( s_instance != 0);
return s_instance;
}
//---------------------------------------------------------------------
//
// ConfigWidget
//
//---------------------------------------------------------------------
ConfigWidget* PluginLoader::configWidget( QWidget* parent )
{
return new ConfigWidget( parent );
}
class PluginCheckBox :public QCheckBox
{
public:
PluginCheckBox( PluginLoader::Info* info, QWidget* parent )
: QCheckBox( info->comment(), parent ), info( info )
{
setChecked( info->shouldLoad() );
}
PluginLoader::Info* info;
};
struct ConfigWidget::Private
{
QValueList< PluginCheckBox* > _boxes;
};
ConfigWidget::ConfigWidget( QWidget* parent )
:QScrollView( parent, "KIPI::PluginLoader::ConfigWidget" )
{
d=new Private;
QWidget* top = new QWidget( viewport() );
addChild( top );
setResizePolicy( AutoOneFit );
QVBoxLayout* lay = new QVBoxLayout( top, KDialog::marginHint(), KDialog::spacingHint() );
PluginLoader::PluginList list = PluginLoader::instance()->d->m_pluginList;
for( PluginLoader::PluginList::Iterator it = list.begin(); it != list.end(); ++it ) {
PluginCheckBox* cb = new PluginCheckBox( *it, top );
lay->addWidget( cb );
d->_boxes.append( cb );
}
lay->addStretch(10);
}
ConfigWidget::~ConfigWidget()
{
delete d;
}
void ConfigWidget::apply()
{
KConfig* config = KGlobal::config();
config->setGroup( QString::fromLatin1( "KIPI/EnabledPlugin" ) );
bool changes = false;
for( QValueList<PluginCheckBox*>::Iterator it = d->_boxes.begin(); it != d->_boxes.end(); ++it ) {
bool orig = (*it)->info->shouldLoad();
bool load = (*it)->isChecked();
if ( orig != load ) {
changes = true;
config->writeEntry( (*it)->info->name(), load );
(*it)->info->setShouldLoad(load);
if ( load ) {
PluginLoader::instance()->loadPlugin( (*it)->info);
}
else {
if ( (*it)->info->plugin() ) // Do not emit if we had trouble loading plugin.
emit PluginLoader::instance()->unplug( (*it)->info);
}
}
}
emit PluginLoader::instance()->replug();
}
} // namespace
#include "pluginloader.moc"

@ -0,0 +1,102 @@
/* ============================================================
* File : pluginloader.h
* Author: Renchi Raju <renchi@pooh.tam.uiuc.edu>
* Date : 2004-02-19
* Description :
*
* Copyright 2004 by Renchi Raju
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef KIPI_PLUGINLOADER_H
#define KIPI_PLUGINLOADER_H
#include "libkipi/interface.h"
#include "libkipi/libkipi_export.h"
#include <qwidget.h>
#include <qscrollview.h>
namespace KIPI
{
class Plugin;
class Interface;
class ConfigWidget;
class LIBKIPI_EXPORT PluginLoader :public QObject
{
Q_OBJECT
public:
class LIBKIPI_EXPORT Info
{
public:
Info( const QString& name, const QString& comment, const QString& library, bool shouldLoad );
~Info();
QString name() const;
QString comment() const;
QString library() const;
Plugin* plugin() const;
void setPlugin(Plugin*);
bool shouldLoad() const;
void setShouldLoad(bool);
private:
struct Private;
Private* d;
};
PluginLoader( const QStringList& ignores, Interface* interface );
virtual ~PluginLoader();
void loadPlugins();
static PluginLoader* instance();
ConfigWidget* configWidget( QWidget* parent );
typedef QValueList<Info*> PluginList;
const PluginList& pluginList();
void loadPlugin( Info* );
signals:
void plug( KIPI::PluginLoader::Info* );
void unplug( KIPI::PluginLoader::Info* );
void replug();
private:
friend class ConfigWidget;
friend class PluginCheckBox;
struct Private;
Private* d;
};
class LIBKIPI_EXPORT ConfigWidget :public QScrollView
{
Q_OBJECT
public:
ConfigWidget( QWidget* parent );
~ConfigWidget();
public slots:
void apply();
private:
struct Private;
Private* d;
};
}
#endif /* PLUGINLOADER_H */

@ -0,0 +1,209 @@
/* ============================================================
* File : uploadwidget.cpp
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
// Qt includes.
#include <qlayout.h>
#include <qheader.h>
#include <qlistview.h>
#include <qdir.h>
// KDE includes
#include <kdebug.h>
#include <klocale.h>
#include <kio/jobclasses.h>
#include <kmessagebox.h>
#include <kdeversion.h>
#if KDE_VERSION >= 0x30200
#include <kinputdialog.h>
#else
#include <klineeditdlg.h>
#define KInputDialog KLineEditDlg
#endif
// Local includes.
#include "uploadwidget.h"
#include "libkipi/imagecollection.h"
struct KIPI::UploadWidget::Private
{
KFileTreeView* m_treeView;
KFileTreeBranch* m_branch;
QStringList m_pendingPath;
};
/*!
\class KIPI::UploadWidget
This widget is used to specify an upload directory for new images.
*/
KIPI::UploadWidget::UploadWidget( KIPI::Interface* interface, QWidget* parent, const char* name )
: QWidget( parent, name )
{
d = new Private;
QVBoxLayout* layout = new QVBoxLayout( this, 0 );
d->m_treeView = new KFileTreeView( this );
d->m_treeView->setRootIsDecorated( true );
layout->addWidget( d->m_treeView );
// Fetch the current album, so we can start out there.
KIPI::ImageCollection album = interface->currentAlbum();
// If no current album selected, get the first album in the list.
if ( !album.isValid() || !album.isDirectory() )
album = interface->allAlbums().first();
d->m_branch = d->m_treeView->addBranch( QDir::cleanDirPath(album.uploadRoot().path()),
album.uploadRootName() );
d->m_treeView->setDirOnlyMode( d->m_branch, true );
d->m_treeView->addColumn( i18n("Folder" ) );
d->m_treeView->header()->setStretchEnabled( true, 0 );
d->m_treeView->header()->hide();
QString root = album.uploadRoot().path();
QString uploadPath = album.isDirectory() ? album.uploadPath().path() : root;
root = QDir::cleanDirPath(root);
uploadPath = QDir::cleanDirPath(uploadPath);
if ( !uploadPath.startsWith( root ) )
{
kdWarning(51000) << "Error in Host application: uploadPath() should start with uploadRoot()." << endl
<< "uploadPath() = " << album.uploadPath().prettyURL() << endl
<< "uploadRoot() = " << album.uploadRoot().prettyURL() << endl;
}
else
{
uploadPath = uploadPath.mid( root.length() );
d->m_pendingPath = QStringList::split( "/", uploadPath, false );
connect( d->m_branch, SIGNAL( populateFinished(KFileTreeViewItem *) ),
this, SLOT( slotPopulateFinished(KFileTreeViewItem *) ) );
d->m_branch->setOpen(true);
}
connect( d->m_treeView, SIGNAL( executed(QListViewItem *) ),
this, SLOT( slotFolderSelected(QListViewItem *) ) );
}
KIPI::UploadWidget::~UploadWidget()
{
delete d;
}
KURL KIPI::UploadWidget::path() const
{
return d->m_treeView->currentURL();
}
void KIPI::UploadWidget::load( )
{
kdWarning() << "KIPI::UploadWidget::load(): This method is obsolete\n";
}
void KIPI::UploadWidget::slotPopulateFinished( KFileTreeViewItem * parentItem )
{
if ( d->m_pendingPath.isEmpty() )
{
disconnect( d->m_branch, SIGNAL( populateFinished(KFileTreeViewItem *) ),
this, SLOT( slotPopulateFinished(KFileTreeViewItem *) ) );
return;
}
QString itemName = d->m_pendingPath.front();
d->m_pendingPath.pop_front();
QListViewItem * item;
for ( item = parentItem->firstChild(); item; item = item->nextSibling() )
{
if ( item->text(0) == itemName )
{
break;
}
}
if ( !item )
{
kdDebug( 51000 ) << "Unable to open " << itemName << endl;
}
else
{
item->setOpen( true );
d->m_treeView->setSelected( item, true );
d->m_treeView->ensureItemVisible ( item );
KFileTreeViewItem * ftvItem = static_cast<KFileTreeViewItem *>( item );
if ( ftvItem->alreadyListed() )
slotPopulateFinished( ftvItem );
}
}
void KIPI::UploadWidget::mkdir()
{
if ( !path().isValid() )
{
KMessageBox::error( this, i18n("Please select a directory first.") );
return;
}
bool ok;
QString dir = KInputDialog::getText( i18n("Create Directory"),
i18n("<qt>Enter new directory name (to be created as subdir of %1):</qt>")
.arg(path().prettyURL()), "", &ok, this);
if (!ok) return;
KURL url = path();
url.addPath( dir );
KIO::SimpleJob* job = KIO::mkdir(url);
connect(job, SIGNAL(result(KIO::Job*)),
this, SLOT(slotAlbumCreated(KIO::Job*)));
}
void KIPI::UploadWidget::slotAlbumCreated(KIO::Job* job)
{
int code = job->error();
if ( code )
job->showErrorDialog( this );
}
void KIPI::UploadWidget::slotFolderSelected(QListViewItem *)
{
emit folderItemSelected(d->m_treeView->currentURL());
}
#include "uploadwidget.moc"

@ -0,0 +1,75 @@
/* ============================================================
* File : uploadwidget.h
* Authors: KIPI team developers (see AUTHORS files for details)
*
* Date : 2004-02-19
* Description :
*
* Copyright 2004 by the KIPI team
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU Library General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* 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 Library General Public License for more details.
*
* ============================================================ */
#ifndef KIPI_UPLOADWIDGET_H
#define KIPI_UPLOADWIDGET_H
// Qt includes.
#include <qwidget.h>
// KDE includes.
#include <kfiletreeview.h>
#include <kurl.h>
// LibKIPI includes.
#include "libkipi/interface.h"
#include "libkipi/libkipi_export.h"
class QListViewItem;
namespace KIPI
{
class LIBKIPI_EXPORT UploadWidget :public QWidget
{
Q_OBJECT
public:
UploadWidget( KIPI::Interface* interface, QWidget* parent, const char* name = 0 );
~UploadWidget();
KURL path() const;
public slots:
void mkdir();
signals :
void folderItemSelected(const KURL &url);
protected slots:
void load();
void slotAlbumCreated(KIO::Job* job);
void slotFolderSelected(QListViewItem *);
private slots:
void slotPopulateFinished(KFileTreeViewItem *);
private:
struct Private;
Private* d;
};
}
#endif /* KIPI_UPLOADWIDGET_H */

@ -0,0 +1,31 @@
/* ============================================================
* File : version.h
* Authors: Gilles Caulier <caulier dot gilles at free.fr>
* Date : 2004-09-09
* Description : KIPI release ID header.
*
* Copyright 2004 by Gilles Caulier
*
* 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 2, or (at your option)
* any later version.
*
* 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.
*
* ============================================================ */
#ifndef KIPI_VERSION_H
#define KIPI_VERSION_H
static const char kipi_version[] = "0.1.5";
#define KIPI_VERSION 0x000105
#endif // KIPI_VERSION_H

@ -0,0 +1,637 @@
<?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://web.resource.org/cc/"
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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="128"
id="svg20305"
inkscape:export-filename="/tmp/a/32x32.png"
inkscape:export-xdpi="22.5"
inkscape:export-ydpi="22.5"
inkscape:version="0.44.1"
sodipodi:docbase="/home/wally/KDE/src/libs/libkipi/pics"
sodipodi:docname="kipi-icon.svg"
sodipodi:version="0.32"
width="128"
version="1.0">
<metadata
id="metadata1983">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>KIPI icon</dc:title>
<dc:description />
<dc:subject>
<rdf:Bag />
</dc:subject>
<dc:publisher>
<cc:Agent
rdf:about="http://www.openclipart.org/">
<dc:title />
</cc:Agent>
</dc:publisher>
<dc:creator>
<cc:Agent>
<dc:title>Valerio Fuoglio</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title></dc:title>
</cc:Agent>
</dc:rights>
<dc:date />
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.5/" />
<dc:language />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.5/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:prohibits
rdf:resource="http://web.resource.org/cc/CommercialUse" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<defs
id="defs20307">
<linearGradient
id="linearGradient610">
<stop
style="stop-color:#a89f9f;stop-opacity:1;"
offset="0"
id="stop611" />
<stop
style="stop-color:#696969;stop-opacity:1;"
offset="1"
id="stop612" />
</linearGradient>
<linearGradient
id="linearGradient616">
<stop
style="stop-color:#deff12;stop-opacity:1;"
offset="0"
id="stop617" />
<stop
style="stop-color:#efaa00;stop-opacity:1;"
offset="1"
id="stop618" />
</linearGradient>
<linearGradient
id="linearGradient3532">
<stop
id="stop3533"
offset="0.0000000"
style="stop-color:#000000;stop-opacity:0.48677248;" />
<stop
id="stop3534"
offset="0.50000000"
style="stop-color:#000000;stop-opacity:0.079096042;" />
<stop
id="stop3535"
offset="1.0000000"
style="stop-color:#000000;stop-opacity:0.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient21044">
<stop
id="stop21045"
offset="0.0000000"
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
<stop
id="stop21046"
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient21036">
<stop
id="stop21037"
offset="0.0000000"
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
<stop
id="stop21038"
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient21012">
<stop
id="stop21013"
offset="0.0000000"
style="stop-color:#000000;stop-opacity:1.0000000;" />
<stop
id="stop21014"
offset="1.0000000"
style="stop-color:#000000;stop-opacity:0.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient20962">
<stop
id="stop20963"
offset="0.0000000"
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
<stop
id="stop20964"
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient20965"
inkscape:collect="always"
x1="55.498672"
x2="31.814259"
xlink:href="#linearGradient21044"
y1="51.981258"
y2="24.857855"
gradientTransform="scale(0.989192,1.010926)"
gradientUnits="userSpaceOnUse" />
<radialGradient
id="radialGradient21017"
inkscape:collect="always"
xlink:href="#linearGradient21012"
gradientTransform="scale(1.115263,0.896649)"
cx="124.12419"
cy="198.78021"
fx="124.12419"
fy="198.78021"
r="67.5401"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient21035"
inkscape:collect="always"
x1="57.450615"
x2="51.829426"
xlink:href="#linearGradient21036"
y1="22.078526"
y2="17.653362"
gradientTransform="scale(0.948271,1.054551)"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="0.5"
cy="0.5"
fx="0.18039216"
fy="0.47916666"
id="radialGradient1502"
r="0.5"
xlink:href="#linearGradient1918" />
<linearGradient
id="linearGradient1918">
<stop
id="stop1919"
offset="0.0000000"
style="stop-color:#000000;stop-opacity:0.31638417;" />
<stop
id="stop1920"
offset="0.50000000"
style="stop-color:#000000;stop-opacity:0.079096042;" />
<stop
id="stop1921"
offset="1.0000000"
style="stop-color:#000000;stop-opacity:0.0000000;" />
</linearGradient>
<radialGradient
cx="0.5"
cy="0.5"
fx="0.18039216"
fy="0.47916666"
id="radialGradient2541"
r="0.5"
xlink:href="#linearGradient3532" />
<linearGradient
id="linearGradient2121"
x1="0.41568628"
x2="0.59607846"
xlink:href="#linearGradient1513"
y1="0.27687296"
y2="0.44299674" />
<linearGradient
id="linearGradient1513">
<stop
id="stop1514"
offset="0.0000000"
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
<stop
id="stop1515"
offset="1.0000000"
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient2316"
x1="0.47450981"
x2="0.80392158"
xlink:href="#linearGradient2317"
y1="0.21771218"
y2="0.5202952" />
<linearGradient
id="linearGradient2317">
<stop
id="stop2318"
offset="0.0000000"
style="stop-color:#d6d6d6;stop-opacity:1.0000000;" />
<stop
id="stop2322"
offset="0.25769231"
style="stop-color:#eaeaea;stop-opacity:1.0000000;" />
<stop
id="stop2320"
offset="0.70594490"
style="stop-color:#919191;stop-opacity:1.0000000;" />
<stop
id="stop2321"
offset="0.73347497"
style="stop-color:#d2d2d2;stop-opacity:1.0000000;" />
<stop
id="stop2319"
offset="1.0000000"
style="stop-color:#a6a6a6;stop-opacity:1.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient2315"
x1="0.27843139"
x2="0.4509804"
xlink:href="#linearGradient1513"
y1="-0.063694268"
y2="0.61146498" />
<linearGradient
id="linearGradient1512"
x1="0.99512196"
x2="0.32682925"
xlink:href="#linearGradient1918"
y1="0.64396286"
y2="0.3003096" />
<linearGradient
id="linearGradient2224"
x1="-0.14213198"
x2="0.49753696"
xlink:href="#linearGradient1513"
y1="-0.28792569"
y2="0.35603714" />
<linearGradient
id="linearGradient2138"
x1="1.3783784"
x2="0.58378381"
xlink:href="#linearGradient2122"
y1="0.25386998"
y2="0.13003096" />
<linearGradient
id="linearGradient2122">
<stop
id="stop2123"
offset="0.0000000"
style="stop-color:#000000;stop-opacity:0.40784314;" />
<stop
id="stop2124"
offset="1.0000000"
style="stop-color:#000000;stop-opacity:0.0000000;" />
</linearGradient>
<linearGradient
id="linearGradient2223"
x1="-0.18232045"
x2="0.68508285"
xlink:href="#linearGradient1513"
y1="-0.43962848"
y2="0.42414862" />
<linearGradient
id="linearGradient1516"
x1="0.45882353"
x2="0.6901961"
xlink:href="#linearGradient2122"
y1="1.2772278"
y2="-0.2970297" />
<linearGradient
id="linearGradient2314"
x1="-0.4509804"
x2="0.47058824"
xlink:href="#linearGradient1513"
y1="-0.15053764"
y2="0.36559141" />
<linearGradient
id="linearGradient2313"
x1="-0.0078431377"
x2="0.59607846"
xlink:href="#linearGradient1513"
y1="-1.244898"
y2="0.3605442" />
<linearGradient
id="linearGradient2312"
x1="0.45882353"
x2="0.65490198"
xlink:href="#linearGradient1513"
y1="-0.58685446"
y2="0.45070422" />
<linearGradient
id="linearGradient2222"
x1="-0.10588235"
x2="0.58431375"
xlink:href="#linearGradient1513"
y1="-0.10497238"
y2="0.55248618" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21036"
id="linearGradient2072"
x1="31.343283"
y1="60.651524"
x2="25.262003"
y2="55.864162"
gradientTransform="scale(0.902087,1.108541)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21036"
id="linearGradient2074"
x1="50.463959"
y1="59.3046"
x2="44.333637"
y2="54.478634"
gradientTransform="scale(0.926563,1.079257)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21036"
id="linearGradient2076"
x1="57.88905"
y1="52.688183"
x2="51.929722"
y2="47.99683"
gradientTransform="scale(1.005313,0.994715)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient21036"
id="linearGradient2078"
x1="64.260979"
y1="37.175373"
x2="58.719795"
y2="32.81319"
gradientTransform="scale(0.975987,1.024604)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient616"
id="linearGradient3098"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.474979,0.677976)"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient616"
id="linearGradient3100"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.474979,0.677976)"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient610"
id="linearGradient3102"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.156977,0,0,0.151837,98.48398,-6.931272)"
x1="183.59398"
y1="246.02464"
x2="368.13855"
y2="435.15115" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient616"
id="linearGradient3136"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.474979,0.677976)"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient616"
id="linearGradient3138"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.474979,0.677976)"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient610"
id="linearGradient3140"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-0.156977,0,0,0.151837,98.48398,-6.931272)"
x1="183.59398"
y1="246.02464"
x2="368.13855"
y2="435.15115" />
</defs>
<sodipodi:namedview
bordercolor="#666666"
borderopacity="1.0"
id="base"
inkscape:cx="69.507751"
inkscape:cy="72.501038"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:window-height="721"
inkscape:window-width="1264"
inkscape:window-x="8"
inkscape:window-y="24"
inkscape:zoom="4"
pagecolor="#ffffff"
width="128px"
height="128px"
inkscape:current-layer="layer2" />
<g
id="g21200"
transform="matrix(1.720376,0,0,1.612464,-7.805174,-11.32108)">
<path
d="M 80.038306,139.98171 A 75.326637,60.566689 0 1 1 79.600141,140.41828 L 138.43814,178.23611 z"
id="path21016"
sodipodi:cx="138.43814"
sodipodi:cy="178.23611"
sodipodi:end="10.099141"
sodipodi:rx="75.326637"
sodipodi:ry="60.566689"
sodipodi:start="3.8252181"
sodipodi:type="arc"
style="fill:url(#radialGradient21017);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="matrix(0.476914,0,0,0.267047,-23.63522,21.65749)" />
<path
d="M 56.964452,9.6436025 C 52.703192,6.7734207 45.987673,6.4848753 43.087575,10.980078 C 39.455492,16.782437 39.651089,24.597615 34.788703,29.670482 C 28.819708,36.547896 19.661454,39.992573 14.662947,47.835307 C 11.22661,52.53752 8.856009,59.176396 11.790275,65.010658 C 15.024885,71.357938 21.806185,74.634411 28.0092,77.156007 C 37.565721,80.699173 48.649966,79.273378 56.243983,72.95514 C 66.568849,65.055233 73.162354,52.530821 74.222673,39.263848 C 74.440095,32.31612 72.524065,25.071249 68.406436,19.230786 C 65.15022,15.430234 61.352312,12.02286 56.964452,9.6436025 z "
id="path20328"
style="fill:#e6c5a2;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.08800097pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 61.390968,12.647344 C 59.908904,11.499452 58.344782,10.463499 56.699338,9.5712772 C 52.438078,6.7010954 45.723193,6.412567 42.823095,10.907764 C 39.191023,16.710123 39.388771,24.525891 34.52639,29.598759 C 28.557392,36.476174 19.397455,39.921037 14.398951,47.763772 C 10.962617,52.465984 8.589355,59.10399 11.523621,64.938254 C 14.758231,71.285532 21.541332,74.561547 27.744339,77.083142 C 37.30086,80.626308 48.385953,79.201451 55.979959,72.883212 C 66.304824,64.983311 72.898196,52.45949 73.958528,39.192517 C 74.17595,32.244788 72.258137,24.998486 68.140507,19.158018 C 66.105369,16.782675 63.861084,14.560501 61.390968,12.647344 z M 60.03341,13.531356 C 61.973797,15.025379 63.809914,16.658446 65.458714,18.482135 C 69.690122,23.472711 71.752137,30.029989 71.862694,36.377711 C 71.662426,48.405007 66.132505,59.797732 57.585212,67.662677 C 52.041002,73.407166 43.78389,76.344263 35.639863,75.417421 C 30.808905,74.790676 26.126266,72.910002 21.865631,70.415834 C 18.092196,68.213477 14.353363,64.900531 13.446526,60.43771 C 12.721209,55.81984 14.734521,51.396059 17.344008,47.882888 C 22.616578,40.840362 30.83202,36.958831 36.729091,30.548811 C 40.525823,26.511744 41.641072,20.815239 43.565314,15.723052 C 44.411499,13.276481 45.436005,10.41926 48.090865,9.526032 C 51.489628,8.360668 55.161953,10.092248 58.057796,12.081048 C 58.724784,12.549882 59.386616,13.033346 60.03341,13.531356 z "
id="path21001"
style="fill:#ae7172;fill-opacity:0.29375;fill-rule:evenodd;stroke:none;stroke-width:1.08800097pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 59.792029,13.407478 C 57.022986,11.126228 53.757988,9.1117056 50.1577,9.0660911 C 47.618511,8.9293384 45.100473,10.161181 43.93158,12.415163 C 41.607985,15.974614 40.809885,20.31841 38.901622,24.107275 C 36.926682,28.526629 33.671953,32.197742 29.909511,35.125255 C 24.775734,39.632281 19.193393,43.783926 15.163162,49.395895 C 12.902943,52.847696 11.759045,57.251243 12.635823,61.485157 C 13.435637,64.81753 15.877286,67.529146 18.559111,69.56834 C 20.762463,68.105464 22.293328,65.870397 24.194306,64.074004 C 30.780676,57.107752 38.139514,50.854043 46.348819,45.868036 C 54.235255,40.898272 62.790113,37.031037 71.552135,33.757244 C 70.745571,25.811718 66.404038,18.127162 59.792029,13.407478 z "
id="path20961"
style="fill:url(#linearGradient20965);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.08800097pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
d="M 52.219162,17.613379 C 62.648396,16.766988 63.187839,24.892353 57.074149,27.262252 C 44.666955,28.277926 45.026584,20.321837 52.219162,17.613379 z "
id="path21018"
sodipodi:nodetypes="ccc"
style="fill:#ffb300;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 52.276081,17.708296 C 45.083503,20.416759 44.731404,28.381166 57.138604,27.365493 C 63.252289,24.9956 62.705309,16.861899 52.276081,17.708296 z M 54.466071,18.20526 C 56.899161,18.000501 60.804697,20.004472 59.538937,23.107733 C 57.69706,27.441449 52.378385,26.184117 49.071512,24.907547 C 46.173802,22.482652 49.540608,18.685031 52.164722,18.272415 C 52.930762,18.273358 53.702372,18.132992 54.466071,18.20526 z "
id="path21019"
style="fill:black;fill-opacity:0.21874994;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 60.226117,32.125462 C 70.807408,31.314804 71.354717,39.097061 65.151892,41.36689 C 52.563811,42.339676 52.928681,34.719548 60.226117,32.125462 z "
id="path21026"
sodipodi:nodetypes="ccc"
style="fill:#ff8000;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 60.283867,32.216368 C 52.986424,34.810453 52.629199,42.438559 65.217281,41.465778 C 71.4201,39.195948 70.865151,31.405715 60.283867,32.216368 z M 62.505785,32.692342 C 64.974349,32.496231 68.93682,34.415581 67.652608,37.387799 C 65.783884,41.538518 60.387665,40.334284 57.032575,39.111612 C 54.09262,36.789117 57.50851,33.151858 60.170888,32.756662 C 60.948092,32.757571 61.730957,32.623132 62.505785,32.692342 z "
id="path21027"
style="fill:black;fill-opacity:0.21874994;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 55.349068,46.446177 C 67.070754,45.599786 67.677051,53.725145 60.805723,56.09505 C 46.860948,57.110718 47.265144,49.154635 55.349068,46.446177 z "
id="path21028"
sodipodi:nodetypes="ccc"
style="fill:#ff3a00;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 55.413039,46.541094 C 47.329109,49.249552 46.933384,57.213964 60.878159,56.198291 C 67.749487,53.828392 67.13473,45.694702 55.413039,46.541094 z M 57.874424,47.038058 C 60.609048,46.833293 64.998573,48.83727 63.575954,51.940525 C 61.505821,56.274241 55.528023,55.01691 51.811339,53.740339 C 48.554529,51.315445 52.338569,47.517829 55.287882,47.105214 C 56.148852,47.106163 57.016089,46.96579 57.874424,47.038058 z "
id="path21029"
style="fill:black;fill-opacity:0.21874994;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 43.927053,57.270954 C 55.040533,56.326271 55.615365,65.395184 49.100569,68.040287 C 35.879362,69.1739 36.26259,60.293923 43.927053,57.270954 z "
id="path21030"
sodipodi:nodetypes="ccc"
style="fill:#23b300;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 43.987697,57.376888 C 36.323233,60.399863 35.948037,69.28913 49.169251,68.155517 C 55.684047,65.510413 55.101177,56.43221 43.987697,57.376888 z M 46.321372,57.931564 C 48.914094,57.703026 53.075864,59.939706 51.727058,63.403325 C 49.764344,68.240285 44.096726,66.83695 40.572893,65.412144 C 37.485068,62.705659 41.072763,58.467046 43.86904,58.00652 C 44.685338,58.007577 45.507575,57.850909 46.321372,57.931564 z "
id="path21031"
style="fill:black;fill-opacity:0.21874994;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 25.812991,60.121426 C 36.546335,59.158872 37.101503,68.399334 30.809549,71.094478 C 18.040567,72.249535 18.410684,63.201577 25.812991,60.121426 z "
id="path21032"
sodipodi:nodetypes="ccc"
style="fill:#0002ff;fill-opacity:0.75;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 25.871566,60.229365 C 18.469258,63.309523 18.106895,72.366941 30.875878,71.211883 C 37.167838,68.516751 36.604903,59.266812 25.871566,60.229365 z M 28.125416,60.794529 C 30.629453,60.561673 34.648869,62.840661 33.346201,66.3698 C 31.45062,71.298255 25.976857,69.86838 22.573555,68.416613 C 19.591354,65.658933 23.056329,61.340148 25.756962,60.870901 C 26.545337,60.87198 27.339452,60.712346 28.125416,60.794529 z "
id="path21033"
style="fill:black;fill-opacity:0.21874994;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 23.897359,62.344055 C 21.725291,63.62579 20.442819,67.828504 23.38916,69.024187 C 27.718971,70.147448 28.88379,66.207597 28.099692,61.123769 C 26.51485,60.7902 25.254904,61.410889 23.897359,62.344055 z "
id="path21034"
sodipodi:nodetypes="cccc"
style="fill:url(#linearGradient2072);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 42.226034,59.205072 C 39.977037,60.463018 38.649146,64.587701 41.699836,65.761191 C 46.182993,66.863593 47.389066,62.996886 46.577196,58.007441 C 44.936227,57.68007 43.63166,58.289236 42.226034,59.205072 z "
id="path21040"
sodipodi:nodetypes="cccc"
style="fill:url(#linearGradient2074);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 53.416597,48.109256 C 51.04452,49.236324 49.643951,52.931874 52.861596,53.983259 C 57.590108,54.970971 58.862187,51.506562 58.005889,47.036229 C 56.275109,46.742916 54.899146,47.2887 53.416597,48.109256 z "
id="path21041"
sodipodi:nodetypes="cccc"
style="fill:url(#linearGradient2076);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 58.4029,33.971158 C 56.261599,35.050628 54.997299,38.59013 57.9019,39.597128 C 62.170375,40.543129 63.318688,37.225007 62.545699,32.943444 C 60.983312,32.662519 59.741211,33.18525 58.4029,33.971158 z "
id="path21042"
sodipodi:nodetypes="cccc"
style="fill:url(#linearGradient2078);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
<path
d="M 50.225748,18.982481 C 48.115222,20.109543 46.86909,23.805093 49.731949,24.856489 C 53.939083,25.844196 55.070898,22.379786 54.309016,17.909454 C 52.769077,17.616141 51.544828,18.16193 50.225748,18.982481 z "
id="path21043"
sodipodi:nodetypes="cccc"
style="fill:url(#linearGradient21035);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.89375" />
</g>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="plug" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="K">
<g
id="g3122">
<g
transform="matrix(-1.119977,0,0,1.119977,91.5323,-2.95296)"
id="g3089">
<g
id="g654"
transform="matrix(-0.17971,0,0,0.11319,112.938,24.0727)">
<path
style="font-size:12px;fill:url(#linearGradient3136);fill-rule:evenodd;stroke:#da6d00;stroke-width:8.94388962"
d="M 445.8627,250.6016 C 445.5426,249.6783 553.5527,247.8569 554.3144,250.4038 C 576.618,262.7523 575.1416,299.3077 556.3294,313.6764 C 547.1875,313.427 447.4558,315.5964 442.5106,314.1833 C 397.3899,299.9316 422.9359,254.3613 445.8627,250.6016 z "
id="path655"
sodipodi:nodetypes="ccccc"
sodipodi:stroke-cmyk="(0 0.5 1 0.1466)" />
<path
style="font-size:12px;fill-opacity:0.45;fill-rule:evenodd"
d="M 457.1213,245.6608 L 457.1213,318.0827 L 488.5497,318.0827 C 483.0839,298.0414 481.7175,265.7021 488.5497,245.6608 L 457.1213,245.6608 z "
id="path656"
sodipodi:nodetypes="ccccc" />
</g>
<g
id="g651"
transform="matrix(-0.17971,0,0,0.11319,112.938,6.172162)">
<path
style="font-size:12px;fill:url(#linearGradient3138);fill-rule:evenodd;stroke:#da6d00;stroke-width:8.94388962"
d="M 445.8627,250.6016 C 445.5426,249.6783 553.5527,247.8569 554.3144,250.4038 C 576.618,262.7523 575.1416,299.3077 556.3294,313.6764 C 547.1875,313.427 447.4558,315.5964 442.5106,314.1833 C 397.3899,299.9316 422.9359,254.3613 445.8627,250.6016 z "
id="path607"
sodipodi:nodetypes="ccccc"
sodipodi:stroke-cmyk="(0 0.5 1 0.1466)" />
<path
style="font-size:12px;fill-opacity:0.45;fill-rule:evenodd"
d="M 457.1213,245.6608 L 457.1213,318.0827 L 488.5497,318.0827 C 483.0839,298.0414 481.7175,265.7021 488.5497,245.6608 L 457.1213,245.6608 z "
id="path648"
sodipodi:nodetypes="ccccc" />
</g>
<path
style="font-size:12px;fill:url(#linearGradient3140);fill-rule:evenodd;stroke:#545454;stroke-width:1.47967303;stroke-opacity:1"
d="M 30.323257,25.354528 L 61.406971,25.352537 C 71.639815,25.351873 74.306308,50.375323 74.068819,59.906907 C 73.950976,64.635913 68.267666,67.65884 63.190828,67.630976 L 30.657763,67.452425 L 30.323257,25.354528 z "
id="path606"
sodipodi:nodetypes="cssscc" />
</g>
<g
transform="matrix(0.275912,0,0,0.275912,10.43846,22.91225)"
id="g3104"
style="fill:white;display:inline">
<path
clip-rule="evenodd"
d="M 72.216369,26.435215 L 96.316461,24.681094 C 96.316461,39.171655 96.316461,53.58595 96.316461,68.000245 C 105.92599,53.509684 116.60325,39.095389 128.65223,25.138691 L 154.50645,31.697576 C 142.91506,44.586549 131.09275,58.924578 121.63681,73.262607 C 130.71248,88.515829 140.70334,102.47359 154.04991,118.33588 L 129.11195,125.73369 C 115.15525,110.09914 106.76598,95.074714 96.316461,78.906299 L 96.316461,121.84412 L 72.216369,124.89582 L 72.216369,26.435215 L 72.216369,26.435215 z "
id="path1084"
style="fill:white;fill-rule:evenodd" />
<path
clip-rule="evenodd"
d="M 96.546321,145.56394 C 110.65555,142.58849 107.07104,138.31866 118.58617,145.03008 L 126.0613,150.29137 C 127.43515,150.97778 128.73062,152.19908 130.02714,150.90151 C 132.84899,148.23219 135.59457,145.48766 138.41641,142.81835 C 139.63667,141.52077 138.41641,140.07065 137.80629,139.08025 L 137.72896,139.08025 L 132.31513,131.37844 L 128.72956,132.67603 C 127.81543,133.28616 126.59411,132.98003 125.52744,131.53204 L 117.59577,121.15878 C 110.27422,131.30218 98.452971,137.86106 85.030135,137.86106 C 62.914022,137.86106 44.91522,119.86438 44.91522,97.746146 C 44.91522,82.035328 53.990888,68.383694 67.183865,61.824808 L 67.183865,52.596609 C 66.726269,52.825407 66.269731,52.97794 65.886282,53.130472 C 60.701246,55.265923 60.395122,56.257382 51.929584,51.376351 L 44.456565,46.037724 C 43.082715,45.427595 41.786191,44.131071 40.490727,45.427595 C 37.668881,48.173175 34.923301,50.918755 32.101455,53.664335 C 30.881197,54.884592 32.177721,56.409915 32.711584,57.401374 L 38.429423,65.485582 L 42.625119,71.434338 C 43.235247,72.273266 43.462987,72.349532 43.158981,72.959661 C 42.77871,73.569789 42.472586,74.103652 42.091256,74.713781 C 36.52383,84.323311 40.413401,85.085972 28.515888,88.212883 L 19.440221,89.738205 C 18.06849,90.195802 16.238104,90.195802 16.160778,92.102454 C 16.160778,95.992026 16.084512,99.881595 16.084512,103.77117 C 16.008246,105.5253 17.992224,105.67889 19.136216,105.98289 L 28.823071,107.73701 L 36.068352,109.03459 C 37.059811,109.18818 37.286491,109.03459 37.516348,109.79619 C 40.491786,122.68516 44.380298,119.63557 37.89662,130.8467 L 32.635317,138.39598 C 31.948922,139.69356 30.727605,140.99008 32.025189,142.28555 C 34.770768,145.10739 37.439023,147.8551 40.184603,150.67694 C 41.404861,151.89508 42.930183,150.60067 43.922702,150.06682 L 52.00585,144.34686 L 58.030873,140.22742 C 58.870859,139.54104 58.947125,139.31329 59.557254,139.69356 C 71.606241,147.24496 72.063837,141.82901 75.572078,154.56652 L 77.249933,163.64006 C 77.707529,165.01391 77.783795,166.76804 79.614182,166.84429 C 83.503754,166.84429 87.469592,166.84429 91.359161,166.84429 C 93.113281,166.84429 93.266871,164.86033 93.494611,163.71632 L 95.172471,153.95532 L 96.316461,146.78419 C 96.392731,146.09779 96.392731,145.79062 96.546321,145.56394 z M 111.11315,139.46265 C 111.03688,139.5368 110.95956,139.5368 110.88329,139.5368 C 110.95956,139.5368 110.95956,139.46265 111.03688,139.46265 L 111.11315,139.46265 z M 97.306861,145.25781 C 97.079121,145.33408 96.773001,145.41141 96.545261,145.56394 C 96.696731,145.41034 96.926591,145.33408 97.306861,145.25781 z "
id="path1086"
style="fill:white;fill-rule:evenodd" />
<path
clip-rule="evenodd"
d="M 85.3352,134.96294 C 97.994321,134.96294 109.12917,128.55553 115.84059,118.79242 L 115.38299,118.03082 C 107.52758,126.72408 98.758041,132.36778 85.258934,132.6739 C 68.480389,132.97791 51.473047,117.95455 51.395721,98.276835 C 51.244248,85.616657 57.11568,77.074853 67.10654,70.973564 L 67.10654,65.634936 C 55.895422,71.965023 48.26987,84.091335 48.26987,97.89656 C 48.26987,118.25854 64.894823,134.96294 85.3352,134.96294 z "
id="path1088"
style="fill:white;fill-rule:evenodd" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

@ -0,0 +1,269 @@
<?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://web.resource.org/cc/"
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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="310"
height="190"
id="svg2052"
sodipodi:version="0.32"
inkscape:version="0.44.1"
version="1.0"
sodipodi:docbase="/home/wally/KDE/src/libs/libkipi/pics"
sodipodi:docname="kipi-logo.svg"
inkscape:export-filename="/home/wally/Desktop/kipi-hybrid2.png"
inkscape:export-xdpi="89.419998"
inkscape:export-ydpi="89.419998">
<defs
id="defs2054">
<linearGradient
id="linearGradient610">
<stop
style="stop-color:#a89f9f;stop-opacity:1;"
offset="0"
id="stop611" />
<stop
style="stop-color:#525252;stop-opacity:1;"
offset="1"
id="stop612" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient610"
id="linearGradient613"
x1="183.59398"
y1="246.02464"
x2="368.13855"
y2="435.15115"
gradientTransform="scale(1.016784,0.983493)"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient616">
<stop
style="stop-color:#deff12;stop-opacity:1;"
offset="0"
id="stop617" />
<stop
style="stop-color:#efaa00;stop-opacity:1;"
offset="1"
id="stop618" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient616"
id="linearGradient619"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572"
gradientTransform="scale(1.474979,0.677976)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient610"
id="linearGradient2075"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.016784,0.983493)"
x1="183.59398"
y1="246.02464"
x2="368.13855"
y2="435.15115" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient616"
id="linearGradient2041"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.474979,0.677976)"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient616"
id="linearGradient2043"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(1.474979,0.677976)"
x1="292.90677"
y1="378.85536"
x2="351.51759"
y2="438.09572" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient610"
id="linearGradient2045"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.28107,0,0,0.271867,135.2167,35.29152)"
x1="183.59398"
y1="246.02464"
x2="368.13855"
y2="435.15115" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="black"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="148.77854"
inkscape:cy="72.624991"
inkscape:document-units="px"
inkscape:current-layer="layer2"
width="310px"
height="190px"
inkscape:window-width="1272"
inkscape:window-height="950"
inkscape:window-x="0"
inkscape:window-y="24" />
<metadata
id="metadata2057">
<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>KIPI logo</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Valerio Fuoglio</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title></dc:title>
</cc:Agent>
</dc:rights>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.5/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.5/">
<cc:permits
rdf:resource="http://web.resource.org/cc/Reproduction" />
<cc:permits
rdf:resource="http://web.resource.org/cc/Distribution" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Notice" />
<cc:requires
rdf:resource="http://web.resource.org/cc/Attribution" />
<cc:prohibits
rdf:resource="http://web.resource.org/cc/CommercialUse" />
<cc:permits
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
<cc:requires
rdf:resource="http://web.resource.org/cc/ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="plug"
style="display:inline" />
<g
inkscape:label="Livello 1"
inkscape:groupmode="layer"
id="layer1"
style="display:inline">
<path
clip-rule="evenodd"
d="M 14.058476,7.6886644 L 296.8922,7.6886644 C 301.86421,7.6886644 305.94453,11.328347 305.94453,15.821082 L 305.94453,172.37821 C 305.94453,176.81329 301.8651,180.45297 296.8922,180.45297 L 14.058476,180.45297 C 9.0864814,180.45297 5.006169,176.81407 5.006169,172.37821 L 5.006169,15.821082 C 5.006169,11.328347 9.0864814,7.6886644 14.058476,7.6886644 z "
id="path2937"
style="fill:#0068c6;fill-rule:evenodd;fill-opacity:1"
sodipodi:nodetypes="ccccccccc" />
<path
sodipodi:nodetypes="ccccccccc"
style="fill:white;fill-rule:evenodd"
id="path2935"
d="M 16.732988,10.320441 L 293.86055,10.320441 C 298.73224,10.320441 302.73024,13.841711 302.73024,18.188279 L 302.73024,169.65199 C 302.73024,173.94278 298.73312,177.46405 293.86055,177.46405 L 16.732988,177.46405 C 11.861304,177.46405 7.8633118,173.94354 7.8633118,169.65199 L 7.8633118,18.188279 C 7.8633118,13.841711 11.861304,10.320441 16.732988,10.320441 z "
clip-rule="evenodd" />
<path
clip-rule="evenodd"
d="M 18.954005,12.463298 L 291.99668,12.463298 C 296.79655,12.463298 300.73562,15.89428 300.73562,20.129398 L 300.73562,167.70944 C 300.73562,171.89021 296.79742,175.32119 291.99668,175.32119 L 18.954005,175.32119 C 14.15413,175.32119 10.215069,171.89095 10.215069,167.70944 L 10.215069,20.129398 C 10.215069,15.89428 14.15413,12.463298 18.954005,12.463298 z "
id="path1067"
style="fill:#0068c6;fill-rule:evenodd;fill-opacity:1"
sodipodi:nodetypes="ccccccccc" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="ipi"
style="display:inline">
<g
id="g2026"
transform="translate(0,-4)">
<path
style="fill:white;fill-rule:evenodd;display:inline"
id="path1084"
d="M 72.216369,26.435215 L 96.316461,24.681094 C 96.316461,39.171655 96.316461,53.58595 96.316461,68.000245 C 105.92599,53.509684 116.60325,39.095389 128.65223,25.138691 L 154.50645,31.697576 C 142.91506,44.586549 131.09275,58.924578 121.63681,73.262607 C 130.71248,88.515829 140.70334,102.47359 154.04991,118.33588 L 129.11195,125.73369 C 115.15525,110.09914 106.76598,95.074714 96.316461,78.906299 L 96.316461,121.84412 L 72.216369,124.89582 L 72.216369,26.435215 L 72.216369,26.435215 z "
clip-rule="evenodd" />
<path
style="fill:white;fill-rule:evenodd;display:inline"
id="path1086"
d="M 96.546321,145.56394 C 110.65555,142.58849 107.07104,138.31866 118.58617,145.03008 L 126.0613,150.29137 C 127.43515,150.97778 128.73062,152.19908 130.02714,150.90151 C 132.84899,148.23219 135.59457,145.48766 138.41641,142.81835 C 139.63667,141.52077 138.41641,140.07065 137.80629,139.08025 L 137.72896,139.08025 L 132.31513,131.37844 L 128.72956,132.67603 C 127.81543,133.28616 126.59411,132.98003 125.52744,131.53204 L 117.59577,121.15878 C 110.27422,131.30218 98.452971,137.86106 85.030135,137.86106 C 62.914022,137.86106 44.91522,119.86438 44.91522,97.746146 C 44.91522,82.035328 53.990888,68.383694 67.183865,61.824808 L 67.183865,52.596609 C 66.726269,52.825407 66.269731,52.97794 65.886282,53.130472 C 60.701246,55.265923 60.395122,56.257382 51.929584,51.376351 L 44.456565,46.037724 C 43.082715,45.427595 41.786191,44.131071 40.490727,45.427595 C 37.668881,48.173175 34.923301,50.918755 32.101455,53.664335 C 30.881197,54.884592 32.177721,56.409915 32.711584,57.401374 L 38.429423,65.485582 L 42.625119,71.434338 C 43.235247,72.273266 43.462987,72.349532 43.158981,72.959661 C 42.77871,73.569789 42.472586,74.103652 42.091256,74.713781 C 36.52383,84.323311 40.413401,85.085972 28.515888,88.212883 L 19.440221,89.738205 C 18.06849,90.195802 16.238104,90.195802 16.160778,92.102454 C 16.160778,95.992026 16.084512,99.881595 16.084512,103.77117 C 16.008246,105.5253 17.992224,105.67889 19.136216,105.98289 L 28.823071,107.73701 L 36.068352,109.03459 C 37.059811,109.18818 37.286491,109.03459 37.516348,109.79619 C 40.491786,122.68516 44.380298,119.63557 37.89662,130.8467 L 32.635317,138.39598 C 31.948922,139.69356 30.727605,140.99008 32.025189,142.28555 C 34.770768,145.10739 37.439023,147.8551 40.184603,150.67694 C 41.404861,151.89508 42.930183,150.60067 43.922702,150.06682 L 52.00585,144.34686 L 58.030873,140.22742 C 58.870859,139.54104 58.947125,139.31329 59.557254,139.69356 C 71.606241,147.24496 72.063837,141.82901 75.572078,154.56652 L 77.249933,163.64006 C 77.707529,165.01391 77.783795,166.76804 79.614182,166.84429 C 83.503754,166.84429 87.469592,166.84429 91.359161,166.84429 C 93.113281,166.84429 93.266871,164.86033 93.494611,163.71632 L 95.172471,153.95532 L 96.316461,146.78419 C 96.392731,146.09779 96.392731,145.79062 96.546321,145.56394 z M 111.11315,139.46265 C 111.03688,139.5368 110.95956,139.5368 110.88329,139.5368 C 110.95956,139.5368 110.95956,139.46265 111.03688,139.46265 L 111.11315,139.46265 z M 97.306861,145.25781 C 97.079121,145.33408 96.773001,145.41141 96.545261,145.56394 C 96.696731,145.41034 96.926591,145.33408 97.306861,145.25781 z "
clip-rule="evenodd" />
<path
style="fill:white;fill-rule:evenodd;display:inline"
id="path1088"
d="M 85.3352,134.96294 C 97.994321,134.96294 109.12917,128.55553 115.84059,118.79242 L 115.38299,118.03082 C 107.52758,126.72408 98.758041,132.36778 85.258934,132.6739 C 68.480389,132.97791 51.473047,117.95455 51.395721,98.276835 C 51.244248,85.616657 57.11568,77.074853 67.10654,70.973564 L 67.10654,65.634936 C 55.895422,71.965023 48.26987,84.091335 48.26987,97.89656 C 48.26987,118.25854 64.894823,134.96294 85.3352,134.96294 z "
clip-rule="evenodd" />
<g
id="g2006"
style="display:inline">
<g
id="g654"
transform="matrix(0.321775,0,0,0.202669,109.3365,90.80475)">
<path
style="font-size:12px;fill:url(#linearGradient2041);fill-rule:evenodd;stroke:#da6d00;stroke-width:8.94388962"
d="M 445.8627,250.6016 C 445.5426,249.6783 553.5527,247.8569 554.3144,250.4038 C 576.618,262.7523 575.1416,299.3077 556.3294,313.6764 C 547.1875,313.427 447.4558,315.5964 442.5106,314.1833 C 397.3899,299.9316 422.9359,254.3613 445.8627,250.6016 z "
id="path655"
sodipodi:nodetypes="ccccc"
sodipodi:stroke-cmyk="(0 0.5 1 0.1466)" />
<path
style="font-size:12px;fill-opacity:0.45;fill-rule:evenodd"
d="M 457.1213,245.6608 L 457.1213,318.0827 L 488.5497,318.0827 C 483.0839,298.0414 481.7175,265.7021 488.5497,245.6608 L 457.1213,245.6608 z "
id="path656"
sodipodi:nodetypes="ccccc" />
</g>
<g
id="g651"
transform="matrix(0.321775,0,0,0.202669,109.3365,58.75348)">
<path
style="font-size:12px;fill:url(#linearGradient2043);fill-rule:evenodd;stroke:#da6d00;stroke-width:8.94388962"
d="M 445.8627,250.6016 C 445.5426,249.6783 553.5527,247.8569 554.3144,250.4038 C 576.618,262.7523 575.1416,299.3077 556.3294,313.6764 C 547.1875,313.427 447.4558,315.5964 442.5106,314.1833 C 397.3899,299.9316 422.9359,254.3613 445.8627,250.6016 z "
id="path607"
sodipodi:nodetypes="ccccc"
sodipodi:stroke-cmyk="(0 0.5 1 0.1466)" />
<path
style="font-size:12px;fill-opacity:0.45;fill-rule:evenodd"
d="M 457.1213,245.6608 L 457.1213,318.0827 L 488.5497,318.0827 C 483.0839,298.0414 481.7175,265.7021 488.5497,245.6608 L 457.1213,245.6608 z "
id="path648"
sodipodi:nodetypes="ccccc" />
</g>
<path
style="font-size:12px;fill:url(#linearGradient2045);fill-rule:evenodd;stroke:#313131;stroke-width:2.64938402"
d="M 257.25983,93.099888 L 201.60382,93.096323 C 183.28171,93.095134 178.5073,137.90012 178.93253,154.96661 C 179.14353,163.43399 189.31961,168.8466 198.40979,168.79671 L 256.66089,168.47701 L 257.25983,93.099888 z "
id="path606"
sodipodi:nodetypes="cssscc" />
</g>
<text
transform="scale(0.923679,1.082627)"
id="text2071"
y="120.63637"
x="172.36639"
style="font-size:111.22277069px;font-style:normal;font-weight:normal;fill:white;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Brushstroke"
xml:space="preserve"><tspan
y="120.63637"
x="172.36639"
id="tspan2073"
sodipodi:role="line">ipi</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

@ -0,0 +1 @@
SUBDIRS = $(AUTODIRS)

@ -0,0 +1,3 @@
KDE_LANG = ar
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,125 @@
# translation of libkipi.po to
#
# محمد سعد Mohamed SAAD <metehyi@free.fr>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-08-10 18:01+0200\n"
"Last-Translator: محمد سعد Mohamed SAAD <metehyi@free.fr>\n"
"Language-Team: <ar@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "حالة"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr ""
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr ""
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr ""
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr ""
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr ""
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr ""
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr ""
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr ""
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr ""
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "اسم الصورة"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "لم تختار صورة"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "لم تختار صور"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Mohamed SAAD محمد سعد"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "metehyi@free.fr"

@ -0,0 +1,3 @@
KDE_LANG = br
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,123 @@
# KDE breton translation
# Thierry Vignaud <tvignaud@mandriva.com>, 2004-2005
msgid ""
msgstr ""
"Project-Id-Version: kdeextragear-libs-1/libkipi.po\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2004-09-20 15:44+0200\n"
"Last-Translator: Thierry Vignaud <tvignaud@mandriva.com>\n"
"Language-Team: br <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stad"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Obererezhioù red"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Renkell"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Krouiñ ur renkell"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Skeudennoù"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Eilpennañ an diuz"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Dibabit netra"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Skeudennoù :"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Askelennoù :"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Rumm :"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Deiziad :"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Dibabit ur skeudenn digant an albom"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Kendiviz dibaber skeudenn"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Ur prenestr Kipi evit dibab ur skeudenn"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Anv an albom"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Anv ar skeudenn"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Skeudenn dibabet ebet"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Skeudenn diuzet ebet"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr "%n skeudenn dibabet"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Thierry Vignaud, Jañ-Mai Drapier"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "tvignaud@mandriva.com, jdrapier@club-internet.fr"

@ -0,0 +1,3 @@
KDE_LANG = ca
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,124 @@
# translation of libkipi.po to Catalan
# Albert Astals Cid <astals11@terra.es>, 2004, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-04-29 17:01+0200\n"
"Last-Translator: Albert Astals Cid <astals11@terra.es>\n"
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9.1\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr ""
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr ""
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Carpeta"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr ""
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Imatges"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverteix la selecció"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr ""
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Imatges:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Comentaris:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categoria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr ""
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr ""
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nom d'imatge"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr ""
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr ""
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Albert Astals Cid"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "astals11@terra.es"

@ -0,0 +1,3 @@
KDE_LANG = cs
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,133 @@
# translation of libkipi.po to
# translation of libkipi.po to cs_CZ
# translation of libkipi.po to Czech
# Lukáš Tinkl <lukas@kde.org>, 2005.
# Klara Cihlarova <koty@seznam.cz>, 2005.
# Jakub Friedl <jfriedl@suse.cz>, 2005, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-07-14 10:46+0200\n"
"Last-Translator: Jakub Friedl <jfriedl@suse.cz>\n"
"Language-Team: <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stav"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Aktuální činnosti"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Toto je seznam aktuálních činností."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Toto je seznam procen aktuálních činností."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Složka"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Nejprve prosím zvolte adresář."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Vytvořit adresář"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>Zadejte jméno adresáře (vytvoří se jako podadresář %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Obrázky"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Invertovat výběr"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Zrušit výběr"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Obrázky:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Komentáře:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategorie:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Datum:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Vybrat obrázek z alba"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Dialog pro výběr obrázku"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Kipi dialog pro výběr obrázků"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Příručka Kipi modulů"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Název alba"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Název obrázku"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Žádný obrázek není vybrán"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Žádný obrázek není vybrán"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"Vybrán 1 obrázek\n"
"Vybrány %n obrázky\n"
"Vybráno %n obrázků"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Michal Škrobák,Lukáš Tinkl,Klára Cihlářová"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "skrobak@wo.cz,lukas@kde.org,koty@seznam.cz"

@ -0,0 +1,3 @@
KDE_LANG = cy
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,121 @@
msgid ""
msgstr ""
"Project-Id-Version: ../cy/messages//kdeextragear-libs-1/libkipi.po\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2004-09-20 15:44+0200\n"
"Last-Translator: Thierry Vignaud <tvignaud@mandrakesoft.com>\n"
"Language-Team: cy <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Cyflwr"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr ""
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Plygell"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr ""
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Delweddau"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Gwrthdroi Dewisiad"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Dewis Dim"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Delweddau :"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Sylwadau :"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categori :"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Dyddiad:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr ""
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr ""
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Enw'r Ddelwedd"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Delwedd heb ei ddewis!"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr ""
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "KD wrth KGyfieithu"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "kyfieithu@dotmon.com"

@ -0,0 +1,3 @@
KDE_LANG = da
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# Danish translation of libkipi
# Copyright (C).
# Rune Rønde Laursen <runerl@skjoldhoej.dk>, 2004, 2005.
# Erik Kjær Pedersen <erik@binghamton.edu>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-12 08:47-0400\n"
"Last-Translator: Erik Kjær Pedersen <erik@binghamton.edu>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Status"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Aktuelle handlinger"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Dette er den aktuelle opgaveliste."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Dette er den aktuelle procentvise opgaveliste."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Mappe"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Vælg venligst en mappe først."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Opret mappe"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Skriv navnet på den nye mappe (der skal oprettes som undermappe i %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Billeder"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverter markering"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Fjern alle markeringer"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Billeder:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Kommentarer:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategori:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Dato:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Markér et billede fra albummet"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Billedvælgerdialog"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Et KIPI-plugin til billedvalg"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Håndbøger til KIPI-plugin"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albummets navn"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Billednavn"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Intet billede markeret"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Ingen billeder markeret"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 billede markeret\n"
"%n billeder markeret"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Rune Rønde Laursen"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "runerl@skjoldhoej.dk"
#~ msgid "Batch process dialog"
#~ msgstr "Dialog for gruppekørsel"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Et KIPI-plugin til gruppevis behandling af billeder"

@ -0,0 +1,3 @@
KDE_LANG = de
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,132 @@
# translation of libkipi.po to German
# Oliver Dörr <kde@doerr-privat.de>, 2004, 2005.
# Cyrill Helg <linux@solnet.ch>, 2004.
# Stephan Johach <hunsum@gmx.de>, 2005.
# Thomas Reitelbach <tr@erdfunkstelle.de>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-07-06 20:15+0200\n"
"Last-Translator: Thomas Reitelbach <tr@erdfunkstelle.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Status"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Aktuelle Aufgaben"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Das ist die Liste der gelösten Aufgaben."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Das ist die Liste der prozentual gelösten Aufgaben."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Ordner"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Bitte wählen Sie zuerst einen Ordner."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Ordner erstellen"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Geben Sie den neuen Ordnernamen an, der als Unterordner von %1 erstellt "
"wird:</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Bilder"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Auswahl umkehren"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Auswahl aufheben"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Bilder:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Kommentare:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategorie:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Datum:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Bitte wählen Sie ein Bild aus dem Album."
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Bildauswahldialog"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Ein KIPI-Dialog zum Auswählen von Bildern"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Handbücher der KIPI-Module"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albumname"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Bildname"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Kein Bild ausgewählt"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Keine Bilder ausgewählt"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 Bild ausgewählt\n"
"%n Bilder ausgewählt"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Oliver Dörr"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "kde@doerr-privat.de"

@ -0,0 +1,3 @@
KDE_LANG = el
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to Greek
# Spiros Georgaras <sngeorgaras@otenet.gr>, 2005.
# Toussis Manolis <manolis@koppermind.homelinux.org>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-10-19 10:46+0300\n"
"Last-Translator: Toussis Manolis <manolis@koppermind.homelinux.org>\n"
"Language-Team: Greek <i18ngr@lists.hellug.gr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Κατάσταση"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Τρέχουσες ενέργειες"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Αυτή είναι η λίστα των τρέχοντων εργασιών."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Αυτή είναι η λίστα των ποσοστών των τρέχοντων εργασιών."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Φάκελος"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Παρακαλώ επιλέξτε έναν κατάλογο πρώτα."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Δημιουργία Καταλόγου"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Δώστε το όνομα του νέου καταλόγου (που θα δημιουργηθεί σαν υποκατάλογος του "
"%1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Εικόνες"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Αντιστροφή Επιλογής"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Επιλογή κανενός"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Εικόνες:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Σχόλια:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Κατηγορία:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Ημερομηνία:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Επιλέξτε εικόνες από το Άλμπουμ"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Διάλογος επιλογής εικόνων"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Ένας διάλογος του Kipi για επιλογή εικόνων"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Εγχειρίδια προσθέτων του Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Όνομα άλμπουμ"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Όνομα εικόνας"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Δεν επιλέχθηκε καμία εικόνα"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Δεν επιλέχθηκαν εικόνες"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"Επιλέχθηκε 1 εικόνα\n"
"Επιλέχθηκαν %n εικόνες"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Σπύρος Γεωργαράς"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "sngeorgaras@otenet.gr"
#~ msgid "Batch process dialog"
#~ msgstr "Διάλογος ομαδικής επεξεργασίας"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Ένα διάλογος του Kipi για λειτουργίες ομαδικής επεξεργασίας"

@ -0,0 +1,3 @@
KDE_LANG = en_GB
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,133 @@
# translation of libkipi.po to British English
# Andrew Coles <andrew_coles@yahoo.co.uk>, 2004, 2005.
# Malcolm Hunter <malcolm.hunter@gmx.co.uk>, 2004.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-16 13:52+0100\n"
"Last-Translator: Andrew Coles <andrew_coles@yahoo.co.uk>\n"
"Language-Team: British English <kde-en-gb@kde.me.uk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Status"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Current Actions"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>This is the current tasks list released."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>This is the list current percent task released."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Folder"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Please select a directory first."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Create Directory"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Images"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Invert Selection"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Select None"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Images:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Comments:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Category:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Date:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Select Image From Album"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Image selector dialogue"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "A Kipi dialogue for image selection"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Kipi Plugins Handbooks"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Album Name"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Image Name"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "No image selected"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "No images selected"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 image selected\n"
"%n images selected"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Andrew Coles"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "andrew_coles@yahoo.co.uk"
#~ msgid "Batch process dialog"
#~ msgstr "Batch process dialogue"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "A Kipi dialogue for batch process operations"

@ -0,0 +1,3 @@
KDE_LANG = es
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,139 @@
# translation of libkipi.po to Español
# translation of libkipi.po to Spanish
# Translation of libkipi to Castilian aka Spanish
# Enrique Matias Sanchez <cronopios@gmail.com>, 2004, 2005.
# Eloy Cuadra <ecuadra@eloihr.net>, 2005.
# santi <santi@kde-es.org>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-10-08 16:26+0200\n"
"Last-Translator: santi <santi@kde-es.org>\n"
"Language-Team: Español <kde-es@kybs.de>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Estado"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Acciones actuales"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Ésta es la lista de las tareas terminadas actualmente."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Éste es el porcentaje de las tareas terminadas actualmente."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Carpeta"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Por favor, seleccione antes un directorio."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Crear directorio"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Introduzca el nombre del nuevo directorio (para crearse como subdirectorio "
"de %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Imágenes"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Invertir la selección"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "No seleccionar nada"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Imágenes:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Comentarios:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categoría:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Fecha:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Seleccionae una imagen del álbum"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Ventana de selección de imágenes"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Una ventana de Kipi para seleccionar imágenes"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Manuales de las extensiones de Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nombre del álbum"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nombre de la imagen"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Ninguna imagen seleccionada"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Ninguna imagen seleccionada"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"Una imagen seleccionada\n"
"%n imágenes seleccionadas"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Enrique Matías Sánchez (Quique)"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "cronopios@gmail.com"
#~ msgid "Batch process dialog"
#~ msgstr "Ventana de procesamiento de conjuntos de imágenes"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Una ventana de Kipi para operaciones de procesamiento de conjuntos de imágenes"

@ -0,0 +1,3 @@
KDE_LANG = et
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,134 @@
# translation of libkipi.po to Estonian
# Copyright (C) 2004 Free Software Foundation, Inc.
# Marek Laane <bald@starman.ee>, 2004-2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-21 16:10+0300\n"
"Last-Translator: Marek Laane <bald@starman.ee>\n"
"Language-Team: Estonian <kde-et@linux.ee>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3.1\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Olek"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Praegused toimingud"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>See on praeguseks sooritatud toimingute nimekiri."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>See on praeguseks sooritatud toimingute protsent."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Kataloog"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Palun vali esmalt kataloog."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Kataloogi loomine"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>Uue kataloogi nimi (luuakse %1 alamkataloogina):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Pildid"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverteeri valik"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Tühista kõigi valik"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Pildid:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Kommentaarid:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategooria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Kuupäev:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Pildi valik albumist"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Pildivalija dialoog"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Kipi pildi valimise dialoog"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Kipi pluginate käsiraamatud"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albumi nimi"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Pildi nimi"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Pilti pole valitud"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Pilti pole valitud"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 pilt valitud\n"
"%n pilti valitud"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Marek Laane"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "bald@starman.ee"
#~ msgid "Batch process dialog"
#~ msgstr "Pakktöötluse dialoog"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Kipi pakktöötluse operatsioonide dialoog"

@ -0,0 +1,3 @@
KDE_LANG = fi
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,128 @@
# translation of libkipi.po to Finnish
# Mikael Lammentausta <mikael.lammentausta@student.savonia-amk.fi>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-06-17 06:39+0300\n"
"Last-Translator: Mikael Lammentausta "
"<mikael.lammentausta@student.savonia-amk.fi>\n"
"Language-Team: Finnish <fi@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Tila"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Nykyiset toiminnot"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Kansio"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Valitse ensin kansio."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Luo kansio"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Syötä nimi uudelle kansiolle (joka luodaan kansion %1 alikansioksi):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Kuvat"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Käännä valinta"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Poista valinta"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Kuvat:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Kommentit:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Luokka:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Päiväys:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Valitse kuva albumista"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Valintaikkuna"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Kipin kuvanvalintaikkuna"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Kipi-liitännäisten käyttöohje"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albumi"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Kuva"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Ei valittua kuvaa"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Ei valittuja kuvia"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 valittu kuva\n"
"%n valittua kuvaa"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Mikael Lammentausta,Teemu Rytilahti"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "lamikae@dnainternet.net"

@ -0,0 +1,3 @@
KDE_LANG = fr
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to français
# Gilles Caulier <caulier.gilles@free.fr>, 2004.
# David Jobet <david.jobet@free.fr>, 2005.
# Tung Nguyen <ntung@free.fr>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-11-28 14:13+0100\n"
"Last-Translator: Tung Nguyen <ntung@free.fr>\n"
"Language-Team: français <kde-francophone@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "État"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Actions courantes"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Ceci est la liste des tâches actuellement terminées."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Ceci est le pourcentage des tâches actuellement terminées."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Dossier"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Veuillez sélectionner d'abord un dossier."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Créer un dossier"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Saisissez le nouveau nom de dossier (à créer comme sous-dossier de %1) : "
"</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Images"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverser la sélection"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Ne rien sélectionner"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Images : "
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Commentaires : "
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Collection : "
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Date : "
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Sélectionner des images dans un album"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Sélecteur d'images"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Boîte de dialogue pour sélectionner des images"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Manuel de : Modules externes KIPI"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nom des albums"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nom des images"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Aucune image sélectionnée"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Aucune image sélectionnée"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 image sélectionnée\n"
"%n images sélectionnées"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Gilles Caulier,Tung Nguyen"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "caulier dot gilles at free.fr,ntung@free.fr"
#~ msgid "Batch process dialog"
#~ msgstr "Boîte de dialogue du traitement par lots"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Une boîte de dialogue pour les traitements par lots"

@ -0,0 +1,3 @@
KDE_LANG = ga
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,124 @@
msgid ""
msgstr ""
"Project-Id-Version: kdeextragear-libs-1/libkipi.po\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2004-12-03 14:52-0500\n"
"Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
"Language-Team: ga <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stádas"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Gníomhartha Reatha"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Fillteán"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Roghnaigh comhadlann ar dtús le do thoil."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Cruthaigh Comhadlann"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Íomhánna"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inbhéartaigh an Rogha"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Ná Roghnaigh"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Íomhánna:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Nótaí:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Catagóir:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Dáta:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Roghnaigh Íomhá Ó Albam"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Lámhleabhar Breiseán Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Ainm Albaim"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Ainm Íomhá"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr ""
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr ""
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Séamus Ó Ciardhuáin,Kevin Scannell"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "seoc at iolfree dot ie,scannell at slu dot edu"
#~ msgid "Batch process dialog"
#~ msgstr "Dialóg bhaiscphróiseála"

@ -0,0 +1,3 @@
KDE_LANG = gl
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,134 @@
# translation of libkipi.po to Galician
# mvillarino <mvillarino@users.sourceforge.net>, 2005, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-01-28 10:07+0100\n"
"Last-Translator: mvillarino <mvillarino@users.sourceforge.net>\n"
"Language-Team: Galician <trasno@ceu.fi.udc.es>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Estado"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Aczóns Actuais"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Esta é a lista publicada das tarefas actuais."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Esta é a lista publicada do porcento das tarefas."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Cartafol"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Por favor seleccione primeiro un cartafol."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Criar o cartafol"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Indique o nome do novo cartafol (criará-se como subcartafol de %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Imaxes"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverter a Seleczón"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Escoller Nada"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Imaxes:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Comentários:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categoria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Escolla unha Imaxe do Álbum"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Diálogo de seleczón de imaxes"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Un diálogo de Kipi para escoller imaxes"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Manuais dos Plugins de Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nome do Álbum"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nome da Imaxe"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Non escolleu nengunha imaxe"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Non escolleu nengunha imaxe"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n imaxe escollida<\n"
"%n imaxes escollidas"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "mvillarino"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "mvillarino@users.sourceforge.net"
#~ msgid "Batch process dialog"
#~ msgstr "Diálogo de procesamento de lote"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Un diálogo de Kipi para operazóns en lotes"

@ -0,0 +1,3 @@
KDE_LANG = is
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,125 @@
# SOME DESCRIPTIVE TITLE.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: ENCODING\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr ""
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr ""
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr ""
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr ""
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr ""
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr ""
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr ""
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr ""
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr ""
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr ""
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr ""
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr ""
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr ""
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr ""
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr ""

@ -0,0 +1,3 @@
KDE_LANG = it
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,388 @@
# translation of libkipi.po to Italian
# Federico Zenith <zenith@chemeng.ntnu.no>, 2004, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-15 01:46+0200\n"
"Last-Translator: Federico Zenith <zenith@chemeng.ntnu.no>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9.1\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stato"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Azioni attuali"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Questo è l'elenco di compiti correnti completati."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
"<p>Questa è la percentuale attuale di completamento dell'elenco dei compiti."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Cartella"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Per piacere seleziona prima una cartella."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Crea cartella"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Inserisci il nome della nuova cartella (da creare come sottocartella di "
"%1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Immagini"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverti la selezione"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Non selezionare nessuno"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Immagini:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Commenti:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categoria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Seleziona immagine da un album"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Finestra di selezione delle immagini"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Una finestra di Kipi per la selezione delle immagini"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Manuali dei plugin di Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nome dell'album"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nome dell'immagine"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Nessuna immagine selezionata"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Nessuna immagine selezionata"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 immagine selezionata\n"
"%n immagini selezionate"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Federico Zenith"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "zenith@chemeng.ntnu.no"
#~ msgid "Batch process dialog"
#~ msgstr "Finestra dei processi non interattivi"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Una finestra di Kipi per le operazioni non interattive"
#~ msgid ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Did you know that you could brighten up your images using Batch Color Images plugin for increased contrast?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgstr ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Sapevi che puoi illuminare le tue immagini usando il plugin non interattivo dei colori per aumentare il contrasto?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgid ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Did you know that you could abort a slideshow using <b>ESC</b>?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgstr ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Sapevi che puoi interrompere una presentazione usando <b>ESC</b>?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgid ""
#~ "<p>Did you know that you could brighten up your images using Batch Color Images plugin for increased contrast?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi illuminare le tue immagini usando il plugin non interattivo Colore delle immagini per aumentare il contrasto?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you could abort a slideshow using <b>ESC</b>?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi interrompere una presentazione usando <b>ESC</b>?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that Kipi library provide a scanner plugin that gives you direct access to your scanner?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che la libreria Kipi fornisce un plugin di scansione che ti dà accesso diretto al tuo scanner piatto?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can take a screenshoot with Kipi library and save the result to an Album with some comments?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi fare un'istantanea con la libreria Kipi e salvarne il risultato in un album con dei commenti?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can use the <b>LZW</b> compression to reduce the size of the <b>TIFF</b> image files in the Convert Images plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi usare la compressione <b>LZW</b> per ridurre le dimensioni dei file immagine <b>TIFF</b> nel plugin Converti immagini?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that all images operations in the batch processing images plugins run without losing the <b>EXIF</b> information in the <b>JPEG</b> files?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che tutte le operazioni sulle immagini nei plugin di elaborazione non interattiva delle immagini funzionano senza perdere le informazioni <b>EXIF</b> nei file JPEG?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that the <b>Noise Reduction</b> option in the <b>Filter Images</b> plugin can be used to improve the rendering of images taken with an analog camera?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che l'opzione <b>Riduzione del rumore</b> nel plugin <b>Filtra immagini</b> può essere usata per migliorare la resa delle immagini prese con una fotocamera analogica?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can use the drag and drop feature in e-mail images to add some items to the list?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi usare la funzionalità di trascinamento nelle immagini della posta elettronica per aggiungere elementi all'elenco?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that if you want reduce the space disk used by your images in the Albums database, you could try using the recompressImages plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che se vuoi ridurre lo spazio su disco usato dalle tue immagini nella banca dati degli album, potresti provare a usare il plugin di Ricomprimi immagini?</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that if you want to resize images to prepare them for printing on photographic paper sizes, you could use the resizeImages plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che se vuoi ridimensionare delle immagini per prepararle alla stampa su carta di dimensione fotografica, puoi usare il plugin Ridimensiona immagini?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you could use image files from different Albums in the 'batch-process images' \n"
#~ "plugin? The processed results will then be merged in the selected target Album.\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che potresti usare i file immagine da diversi album nei plugin 'processi non interattivi'?\n"
#~ "I risultati del processo saranno poi riversati nell'album di destinazione selezionato.\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can change the timeStamp of the target images files in the batch-rename images plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi cambiare la data e ora dei file immagine di destinazione nel plugin non interattivo Rinomina immagini?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can navigate on the slideshow with the left and right mouse buttons?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sapevi che puoi navigare nella presentazione con i pulsanti destro e sinistro del mouse?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid "%1 images selected"
#~ msgstr "%1 immagini selezionata"

@ -0,0 +1,3 @@
KDE_LANG = ja
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,124 @@
# translation of libkipi.pot to Japanese
# Yukiko BANDO <ybando@k6.dion.ne.jp>, 2005, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-10-20 23:00+0900\n"
"Last-Translator: Yukiko BANDO <ybando@k6.dion.ne.jp>\n"
"Language-Team: Japanese <Kdeveloper@kde.gr.jp>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "状態"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "現在の動作"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>現在のタスクリストの進捗率です。"
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>現在のタスクリストの進捗率です。"
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "フォルダ"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "先にディレクトリを選んでください。"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "ディレクトリを作成"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>新しいディレクトリ名を入力 (%1 のサブディレクトリとして作成):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "画像"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "選択反転"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "選択解除"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "画像:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "コメント:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "カテゴリ:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "日付:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "アルバムから画像を選択"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "画像選択ダイアログ"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "KIPI 画像選択ダイアログ"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "KIPI プラグインハンドブック"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "アルバム名"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "画像名"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "画像が選択されていません"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "画像が選択されていません"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr "選択済みの画像 %n 個"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Yukiko BANDO"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "ybando@k6.dion.ne.jp"

@ -0,0 +1,3 @@
KDE_LANG = lt
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,176 @@
# Lithuanian translation of the packate
# Automatically generated, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: ziogelis 77\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-12 01:26+0200\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
#, fuzzy
msgid "Status"
msgstr ""
"#-#-#-#-# kdmchooser.po (kdmchooser) #-#-#-#-#\n"
"Statusas\n"
"#-#-#-#-# kdmgreet.po (kdmgreet) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# khelpcenter.po (khelpcenter) #-#-#-#-#\n"
"Būvis\n"
"#-#-#-#-# kcminfo.po (kcminfo) #-#-#-#-#\n"
"Statusas\n"
"#-#-#-#-# konqueror.po (konqueror) #-#-#-#-#\n"
"Būvis\n"
"#-#-#-#-# kcmkded.po (kcmkded) #-#-#-#-#\n"
"Būvis\n"
"#-#-#-#-# ksysguard.po (ksysguard) #-#-#-#-#\n"
"Būklė\n"
"#-#-#-#-# ktorrent.po (ktorrent) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kbackgammon.po (kbackgammon) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kstars.po (kstars) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# libkdepim.po (libkdepim) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# korganizer.po (korganizer) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# akregator.po (akregator) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kmail.po (kmail) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kbabel.po (kbabel) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kfileshare.po (kfileshare) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# kpf.po (kpf) #-#-#-#-#\n"
"Būsena\n"
"#-#-#-#-# ksirc.po (ksirc) #-#-#-#-#\n"
"Būsena"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr ""
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Aplankas"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Sukurti aplanką"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Paveikslai"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr ""
#: libkipi/imagecollectionselector.cpp:110
#, fuzzy
msgid "Select None"
msgstr ""
"#-#-#-#-# privacy.po (privacy) #-#-#-#-#\n"
"Nieko nežymėti\n"
"#-#-#-#-# digikam.po (digikam) #-#-#-#-#\n"
"Pasirinkti nieko\n"
"#-#-#-#-# kstars.po (kstars) #-#-#-#-#\n"
"Pasirinkti nieko"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:300
#, fuzzy
msgid "Comments:"
msgstr ""
"#-#-#-#-# digikam.po (digikam) #-#-#-#-#\n"
"#-#-#-#-# quanta.po (quanta) #-#-#-#-#\n"
"Komentaras"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategorija:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr ""
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albumo pavadinimas"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Atvaizdo vardas"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr ""
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr ""
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
#, fuzzy
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "nobody"
#: _translatorinfo.cpp:3
#, fuzzy
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "nobody@nowhere.lt"

@ -0,0 +1,3 @@
KDE_LANG = mt
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,140 @@
# translation of libkipi.po to Maltese
# translation of libkipi.po to
# Kevin Attard Compagno <kac_comp@webhostmalta.com>, 2004, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-02-02 08:07+0100\n"
"Last-Translator: Kevin Attard Compagno <kac_comp@webhostmalta.com>\n"
"Language-Team: Maltese <mt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9.1\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stat"
#: libkipi/batchprogressdialog.cpp:172
#, fuzzy
msgid "Current Actions"
msgstr "Proċessi kurrenti"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Din hija l-lista kurrenti ta' xogħolijiet imlestija."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
"<p>Dan huwa l-persentaġġ kurrenti ta' tlestija tal-lista tax-xogħolijiet."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Direttorju"
#: libkipi/uploadwidget.cpp:176
#, fuzzy
msgid "Please select a directory first."
msgstr "L-ewwel trid tagħżel direttorju"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Oħloq direttorju"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Daħħal isem id-direttorju l-ġdid (bħala sotto-direttorju ta' %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Stampi"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Aqleb l-għażla"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Xejn magħżul"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Stampi:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Kummenti:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategoriji:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Għażel stampa minn Album"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Djalogu tal-għażla ta' l-istampi"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Djalogu Kipi għall-għażla ta' l-istampi"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Plugins Kipi - Manwal"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Isem ta' l-Album"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Isem ta' l-istampa"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Ebda stampa magħżula"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Ebda stampi magħżula"
#: libkipi/imagedialog.cpp:293
#, fuzzy, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"Stampa waħda magħzula\n"
"%1 stampi magħżula\n"
"%1-il stampa magħżula\n"
"%1 stampa magħzula"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Kevin Attard Compagno"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "kac_comp@webhostmalta.com"
#~ msgid "Batch process dialog"
#~ msgstr "Djalogu għal proċessar simultanju"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Djalogu Kipi għal operazzjonijiet ta' proċessar simultanju"

@ -0,0 +1,3 @@
KDE_LANG = nb
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to Norwegian Bokmaal
# translation of libkipi.po to Norsk Bokmål
# Nils Kristian Tomren <project@nilsk.net>, 2005, 2006.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-02-25 23:12+0100\n"
"Last-Translator: Nils Kristian Tomren <project@nilsk.net>\n"
"Language-Team: Norwegian Bokmaal <i18n-no@lister.ping.uio.no>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Status"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Aktuelle handlinger"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Dette er den aktuelle oppgavelisten."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Dette er den aktuelle prosentvise oppgavelisten."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Mappe"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Vennligst velg en mappe først."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Opprett mappe"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Skriv navnet på den nye mappen (som skal opprettes som undermappe i "
"%1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Bilder"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverter markering"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Fjern alle markeringer"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Bilder:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Kommentarer:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategori:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Dato:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Marker et bilde fra albumet"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Bildevelgerdialog"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Et KIPI-tillegg til bildevalg"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Håndbøker til KIPI-tillegg"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albumnavn"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Bildenavn"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Inget bilde markert"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Ingen bilder markert"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 bilde markert\n"
"%n bilder markert"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Nils Kristian Tomren"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "project@nilsk.net"
#~ msgid "Batch process dialog"
#~ msgstr "Dialog for flerbildevektøy"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Et KIPI-tillegg til gruppevis behandling av bilder"

@ -0,0 +1,3 @@
KDE_LANG = nl
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,138 @@
# translation of libkipi.po to
# translation of libkipi.po to Dutch
# translation of libkipi.po to Nederlands
# Wilbert Berendsen <wbsoft@xs4all.nl>, 2004.
# Rinse de Vries <rinsedevries@kde.nl>, 2004, 2005.
# Rinse de Vries <RinseDeVries@home.nl>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-15 23:46+0200\n"
"Last-Translator: Rinse de Vries <RinseDeVries@home.nl>\n"
"Language-Team: <nl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Status"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Huidige acties"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Dit is de lijst met voltooide taken."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Dit is het percentage voltooide taken."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Map"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Selecteer eerst een map."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Map aanmaken"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Voer de nieuwe mapnaam in (deze wordt aangemaakt als submap van %1)</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Afbeeldingen"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Selectie omkeren"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Niets selecteren"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Afbeeldingen:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Commentaar:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categorie:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Datum:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Afbeelding uit album selecteren"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "KIPI-dialoog voor afbeeldingsselectie"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Een KIPI-dialoog voor het selecteren van afbeeldingen"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "KIPI-plugins-handboeken"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albumnaam"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Afbeeldingnaam"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Geen afbeelding geselecteerd"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Geen afbeeldingen geselecteerd"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n afbeelding geselecteerd\n"
"%n afbeeldingen geselecteerd"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Wilbert Berendsen,Rinse de Vries"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "wbsoft@xs4all.nl,rinsedevries@kde.nl"
#~ msgid "Batch process dialog"
#~ msgstr "KIPI' verwerkingsdialoog"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Een KIPI-dialoog voor verwerkingsoperaties"

@ -0,0 +1,3 @@
KDE_LANG = pa
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to Punjabi
# translation of libkipi.po to Panjabi
# Amanpreet Singh Alam <aalam@redhat.com>, 2005.
# Amanpreet Singh Alam <amanpreetalam@yahoo.com>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-10-30 12:32+0530\n"
"Last-Translator: Amanpreet Singh Alam <amanpreetalam@yahoo.com>\n"
"Language-Team: Punjabi <fedora-trans-pa@redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "ਹਾਲਤ"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "ਮੌਜੂਦਾ ਕਾਰਵਾਈ"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>ਇਹ ਮੌਜੂਦਾ ਕੰਮ ਸੂਚੀ ਜਾਰੀ ਹੈ।"
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>ਇਹ ਫ਼ੀ-ਸਦੀ ਜਾਰੀ ਕੰਮਾਂ ਦੀ ਸੂਚੀ ਹੈ।"
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "ਫੋਲਡਰ"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "ਕਿਰਪਾ ਕਰਕੇ ਪਹਿਲਾਂ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਚੁਣੋ।"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>ਇੱਕ ਨਵਾਂ ਡਾਇਰੈਕਟਰੀ ਨਾਂ (%1 ਦੀ ਸਬ-ਡਾਇ ਬਣਾਉਣ ਲਈ) ਦਿਓ:</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "ਚਿੱਤਰ"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "ਉਲਟ ਚੋਣ"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "ਕੋਈ ਨਾ ਚੁਣੋ"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "ਚਿੱਤਰ:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "ਟਿੱਪਣੀ:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "ਵਰਗ:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "ਮਿਤੀ:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "ਐਲਬਮ ਤੋਂ ਚਿੱਤਰ ਚੁਣੋ"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "ਚਿੱਤਰ ਚੋਣਕਾਰ ਵਾਰਤਾਲਾਪ"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "ਚਿੱਤਰ ਚੋਣ ਲਈ ਕਿੱਪੀ ਵਾਰਤਾਲਾਪ"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "ਕਿੱਪੀ ਪਲੱਗਿੰਨ ਹੱਥਲੀ ਕਿਤਾਬ"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "ਐਲਬਮ ਨਾਂ"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "ਚਿੱਤਰ ਨਾਂ"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "ਕੋਈ ਚਿੱਤਰ ਨਹੀਂ ਚੁਣਿਆ"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "ਕੋਈ ਚਿੱਤਰ ਨਹੀਂ ਚੁਣੇ"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 ਚਿੱਤਰ ਚੁਣਿਆ\n"
"%n ਚਿੱਤਰ ਚੁਣੇ"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "aalam@redhat.com"
#~ msgid "Batch process dialog"
#~ msgstr "ਬੈਂਚ ਕਾਰਵਾਈ ਵਾਰਤਾਲਾਪ"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "ਬੈਂਚ ਕਾਰਵਾਈ ਲਈ ਕਿੱਪੀ ਵਾਰਤਾਲਾਪ"

@ -0,0 +1,3 @@
KDE_LANG = pl
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to
# translation of libkipi.po to Polish
# Igor Klimer <kigro@op.pl>, 2004.
# Igor Klimer <kigro@vp.pl>, 2005.
# Igor Klimer <igro@localhost.localdomain>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-09-04 19:57+0200\n"
"Last-Translator: Igor Klimer <igro@localhost.localdomain>\n"
"Language-Team: Polish <pl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Status"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Aktualne operacje"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>To jest lista aktualnych zadań."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>To jest lista procentowego ukończenia aktualnych zadań."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Folder"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Proszę najpierw wybrać katalog."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Utwórz katalog"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>Wpisywanie nowej nazwy katalogu (jako podkatalog %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Zdjęcia"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Odwróć zaznaczenie"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Odznacz wszystko"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Zdjęcia:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Komentarze:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategoria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Wybierz zdjęcie z albumu"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Okno wyboru zdjęcia"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Okno Kipi do wyboru zdjęcia"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Podręczniki wtyczek Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nazwa albumu"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nazwa zdjęcia"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Nie wybrano żadnego zdjęcia"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Nie wybrano żadnych zdjęć"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"Wybrano jedno zdjęcie\n"
"Wybrano %n zdjęcia\n"
"Wybrano %n zdjęć"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Igor Klimer"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "kigro@vp.pl"
#~ msgid "Batch process dialog"
#~ msgstr "Okno operacji grupowych"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Okno Kipi do operacji grupowych"

@ -0,0 +1,3 @@
KDE_LANG = pt
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,381 @@
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-06-05 23:03+0100\n"
"Last-Translator: Pedro Morais <morais@kde.org>\n"
"Language-Team: pt <kde-i18n-pt@kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POFile-SpellExtra: Kipi \n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Estado"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Acções Actuais"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Esta é a lista de libertação das tarefas actuais."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Esta é a lista de libertação percentual das tarefas actuais."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Pasta"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Por favor seleccione primeiro uma pasta."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Criar a Pasta"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Indique o nome da nova pasta (a ser criada como subpasta de %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Imagens"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverter a Selecção"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Seleccionar Nada"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Imagens:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Comentários:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categoria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Seleccione uma Imagem do Álbum"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Janela de selecção de imagens"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Uma janela do Kipi para seleccionar imagens"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Manuais dos 'Plugins' Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nome do Álbum"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nome da Imagem"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Nenhuma imagem seleccionada"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Nenhuma imagem seleccionada"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n imagem seleccionada<\n"
"%n imagens seleccionadas"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "José Nuno Pires"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "jncp@netcabo.pt"
#~ msgid "Batch process dialog"
#~ msgstr "Janela de processamento em lote"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Uma janela do Kipi para operações de processamento em lote"
#~ msgid ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Did you know that you could brighten up your images using Batch Color Images plugin for increased contrast?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgstr ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Sabia que pode aumentar o brilho das suas imagens utilizando o 'plugin' de cor de de imagens em lote para melhoria de contraste?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgid ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Did you know that you could abort a slideshow using <b>ESC</b>?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgstr ""
#~ "<p>\n"
#~ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" align=\"center\">\n"
#~ "<tr>\n"
#~ "<td>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</td>\n"
#~ "<td>\n"
#~ "Sabia que pode cancelar uma apresentação utilizando o <b>ESC</b>?\n"
#~ "</td>\n"
#~ "</tr>\n"
#~ "</table>\n"
#~ "</p>\n"
#~ msgid ""
#~ "<p>Did you know that you could brighten up your images using Batch Color Images plugin for increased contrast?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode aumentar o brilho das suas imagens utilizando o 'plugin' de aumento de contraste em lote de imagens?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you could abort a slideshow using <b>ESC</b>?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode cancelar uma apresentação utilizando o <b>ESC</b>?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that Kipi library provide a scanner plugin that gives you direct access to your scanner?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que a biblioteca Kipi fornece um 'plugin' de digitalização que lhe dá acesso directo ao seu digitalizador?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can take a screenshoot with Kipi library and save the result to an Album with some comments?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode fazer uma captura de ecrã com a biblioteca Kipi e gravar o resultado para um Álbum com comentários?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can use the <b>LZW</b> compression to reduce the size of the <b>TIFF</b> image files in the Convert Images plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode utilizar a compressão <b>LZW</b> para reduzir o tamanho dos ficheiros de imagem <b>TIFF</b> no 'plugin' Converter Imagens?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that all images operations in the batch processing images plugins run without losing the <b>EXIF</b> information in the <b>JPEG</b> files?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que todas as operações sobre imagens nos 'plugins' de processamento de imagens em lote correm sem perder os dados <b>EXIF</b> dos ficheiros <b>JPEG</b>?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that the <b>Noise Reduction</b> option in the <b>Filter Images</b> plugin can be used to improve the rendering of images taken with an analog camera?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode utilizar a opção de <b>Redução de Ruído</b> no 'plugin' <b>Filtrar Imagem</b> pode ser utilizado para melhorar a aparência de imagens tiradas com uma máquina analógica?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can use the drag and drop feature in e-mail images to add some items to the list?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode utilizar o arrastar e largar nas imagens e-mail para adicionar alguns itens à lista?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that if you want reduce the space disk used by your images in the Albums database, you could try using the recompressImages plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que se quiser reduzir o espaço em disco utilizado pelas suas imagens na base de dados de Álbuns pode tentar utilizar o 'plugin' recomprimir imagens?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that if you want to resize images to prepare them for printing on photographic paper sizes, you could use the resizeImages plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que se quiser mudar o tamanho das imagens para as preparar para impressão em papel fotográfico, pode utilizar o 'plugin' mudar o tamanho de imagens?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you could use image files from different Albums in the 'batch-process images' \n"
#~ "plugin? The processed results will then be merged in the selected target Album.\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode utilizar os ficheiros de imagens de vários álbuns no 'plugin' de processamento de imagens em lote? O resultado do processamento será então reunido no álbum alvo seleccionado.\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can change the timeStamp of the target images files in the batch-rename images plugin?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode mudar a data dos ficheiros no 'plugin' de mudança de nome de imagens em lote?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgid ""
#~ "<p>Did you know that you can navigate on the slideshow with the left and right mouse buttons?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"
#~ msgstr ""
#~ "<p>Sabia que pode navegar a apresentação com o botão direito e esquerdo do rato?\n"
#~ "</p>\n"
#~ "<br>\n"
#~ "<center>\n"
#~ "<img src=\"hicolor/48x48/apps/kipi.png\">\n"
#~ "</center>\n"

@ -0,0 +1,3 @@
KDE_LANG = pt_BR
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,139 @@
# translation of libkipi.po to Brazilian Portuguese
# tradução de libkipi.po para Brazilian portuguese
# tradução de libkipi.po para Brazilian Portuguese
# Lisiane Sztoltz Teixeira <lisiane@kdemail.net>, 2004.
# Marcus Gama <marcus_gama@uol.com.br>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-02-17 21:56+0000\n"
"Last-Translator: Marcus Gama <marcus_gama@uol.com.br>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Estado"
#: libkipi/batchprogressdialog.cpp:172
#, fuzzy
msgid "Current Actions"
msgstr "Ações atuais"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Esta é a lista atual de tarefas liberadas."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Esta é a lista da porcentagem atual liberada da tarefa."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Pasta"
#: libkipi/uploadwidget.cpp:176
#, fuzzy
msgid "Please select a directory first."
msgstr "Por favor, selecione uma pasta primeiro"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Criar Pasta"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Digite o nome da nova pasta (a ser criada como sub-pasta de %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Imagens"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Inverter Seleção"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Não selecionar"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Imagens:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Comentários:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Categoria:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Data:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Selecione uma imagem do álbum"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Diálogo de seleção de imagens"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Um diálogo do Kipi para a seleção de imagens"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Manual dos Plug-ins do Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Nome do Álbum"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Nome da Imagem"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Nenhuma imagem selecionada"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Nenhuma imagem selecionada"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"1 imagem selecionada\n"
"%n imagens selecionadas"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Lisiane S. Teixeira"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "lisiane@kdemail.net"
#~ msgid "Batch process dialog"
#~ msgstr "Diálogo de processo em lote"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Um diálogo do Kipi para operações em lote"

@ -0,0 +1,3 @@
KDE_LANG = ru
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,131 @@
# translation of libkipi.po to russian
#
# Nick Shaforostoff <shafff@ukr.net>, 2006.
# Dmitry A. Bugay <sam@vhnet.ru>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-10-04 02:03+0300\n"
"Last-Translator: Nick Shaforostoff <shafff@ukr.net>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\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"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Состояние"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Текущие действия"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Папка"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Выберите каталог."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Создать каталог"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Изображения"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Обратить выделение"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Снять выбор"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Изображения:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Комментарии:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Категория:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Дата:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Выбрать изображение из альбома"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Диалог выбора изображений"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Диалог Kipi для выбора изображения"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Руководство по модулям Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Имя альбома"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Имя изображения"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Нет выбранного изображения"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Нет выбранных изображений"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n изображение выбрано\n"
"%n изображения выбрано\n"
"%n изображений выбрано"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Николай Шафоростов,Дмитрий Бугай"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "shafff@ukr.net,sam@vhnet.ru"

@ -0,0 +1,3 @@
KDE_LANG = rw
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,163 @@
# translation of libkipi to Kinyarwanda.
# Copyright (C)
# This file is distributed under the same license as the libkipi package.
# Steve Murphy <murf@e-tools.com>, 2005.
# Steve performed initial rough translation from compendium built from translations provided by the following translators:
# Philibert Ndandali <ndandali@yahoo.fr>, 2005.
# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
# Carole Karema <karemacarole@hotmail.com>, 2005.
# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005.
# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
# Antoine Bigirimana <antoine@e-tools.com>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi 3.4\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-25 18:44-0600\n"
"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Imimerere"
#: libkipi/batchprogressdialog.cpp:172
#, fuzzy
msgid "Current Actions"
msgstr "Ibikorwa biriho:"
#: libkipi/batchprogressdialog.cpp:177
#, fuzzy
msgid "<p>This is the current tasks list released."
msgstr "<p> ni i KIGEZWEHO Ibikorwa Urutonde . "
#: libkipi/batchprogressdialog.cpp:184
#, fuzzy
msgid "<p>This is the list current percent task released."
msgstr "<p> ni i Urutonde KIGEZWEHO ku ijana Igikorwa . "
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Ububiko"
#: libkipi/uploadwidget.cpp:176
#, fuzzy
msgid "Please select a directory first."
msgstr "Guhitamo A Ububiko Itangira . "
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Guhanga ububiko "
#: libkipi/uploadwidget.cpp:182
#, fuzzy
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt> Gishya Ububiko Izina: ( Kuri Byaremwe Nka Bya %1 ) : </qt> "
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Ishusho"
#: libkipi/imagecollectionselector.cpp:109
#, fuzzy
msgid "Invert Selection"
msgstr "Gucurika Itoranya"
#: libkipi/imagecollectionselector.cpp:110
#, fuzzy
msgid "Select None"
msgstr "Guhitamo Umanuka"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Amashusho:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Ibisobanuro:"
#: libkipi/imagecollectionselector.cpp:308
#, fuzzy
msgid "Category:"
msgstr "Icyiciro"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Itariki:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
#, fuzzy
msgid "Select Image From Album"
msgstr "Hitamo Idosiye y'Ishusho"
#: libkipi/imagedialog.cpp:128
#, fuzzy
msgid "Image selector dialog"
msgstr "itoranya Ikiganiro "
#: libkipi/imagedialog.cpp:130
#, fuzzy
msgid "A Kipi dialog for image selection"
msgstr "A Ikiganiro ya: Ishusho Ihitamo "
#: libkipi/imagedialog.cpp:139
#, fuzzy
msgid "Kipi Plugins Handbooks"
msgstr "&Agatabo k'Amacomeka"
#: libkipi/imagedialog.cpp:147
#, fuzzy
msgid "Album Name"
msgstr "Izina ry'Inyumvo"
#: libkipi/imagedialog.cpp:152
#, fuzzy
msgid "Image Name"
msgstr "Nomero y'Ishusho"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
#, fuzzy
msgid "No image selected"
msgstr "Ishusho Byahiswemo "
#: libkipi/imagedialog.cpp:274
#, fuzzy
msgid "No images selected"
msgstr "Ishusho Byahiswemo "
#: libkipi/imagedialog.cpp:293
#, fuzzy, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr "1 Ishusho %n Ishusho Byahiswemo "
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr ""
"Viateur MUGENZI, JEAN BAPTISTE NGENDAHAYO, Augustin KIBERWA, Donatien "
"NSENGIYUMVA"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr ""
"muvia1@yahoo.fr, ngenda_denis@yahoo.co.uk, akiberwa@yahoo.co.uk, "
"ndonatienuk@yahoo.co.uk"
#, fuzzy
#~ msgid "Batch process dialog"
#~ msgstr "Ikiganiro "
#, fuzzy
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "A Ikiganiro ya: Ibikorwa: "

@ -0,0 +1,3 @@
KDE_LANG = sk
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,126 @@
# translation of libkipi.po to Slovak
#
# Richard Fric <Richard.Fric@kdemail.net>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-09-15 18:49+0200\n"
"Last-Translator: Richard Fric <Richard.Fric@kdemail.net>\n"
"Language-Team: Slovak <sk@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr ""
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr ""
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr ""
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr ""
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr ""
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr ""
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr ""
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr ""
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr ""
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr ""
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr ""
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr ""
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr ""
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr ""
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr ""
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr ""
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr ""
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr ""
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr ""
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr ""

@ -0,0 +1,3 @@
KDE_LANG = sl
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,135 @@
# Translation of libkipi.po to Slovenian
# translation of libkipi.po to Slovenian
# Andrej Vernekar <andrej.vernekar@moj.net>, 2004.
# Gregor Rakar <gregor.rakar@kiss.si>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-04-05 15:53+0200\n"
"Last-Translator: Gregor Rakar <gregor.rakar@kiss.si>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.3.1\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
"n%100==4 ? 2 : 3);\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stanje"
#: libkipi/batchprogressdialog.cpp:172
#, fuzzy
msgid "Current Actions"
msgstr "Trenutna dejanja"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr ""
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Mapa"
#: libkipi/uploadwidget.cpp:176
#, fuzzy
msgid "Please select a directory first."
msgstr "Prosim, najprej izberite imenik"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Ustvari mapo"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Vnesite ime novega imenika (ustvarjen bo kot podimenik od %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Slike"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Obrni izbiro"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Izberi brez"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Slike:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Komentarji:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategorija:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Datum:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Izberite sliko iz albuma"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Pogovorno okno izbiranja slik"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Pogovorno okno Kipi za izbiranje slik"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Priročniki vstavkov Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Ime albuma"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Ime slike"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Slika ni izbrana"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Ni izbranih slik"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n izbranih slik\n"
"%n izbrana slika\n"
"%n izbrani sliki\n"
"%n izbrane slike"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Gregor Rakar"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "gregor.rakar@kiss.si"

@ -0,0 +1,3 @@
KDE_LANG = sr
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to Serbian
# Chusslove Illich <caslav.ilic@gmx.net>, 2004.
# Slobodan Simic <simicsl@verat.net>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-30 23:07+0200\n"
"Last-Translator: Slobodan Simic <simicsl@verat.net>\n"
"Language-Team: Serbian <kde-yu@kde.org.yu>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Стање"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Тренутне радње"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Ово је издата листа текућих задатака."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Ово је издата листа процената текућих задатака."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Фасцикла"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Изаберите прво директоријум."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Направи директоријум"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Унесите име новог директоријума (биће поддиректоријум директоријума "
"%1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Слике"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Обрни избор"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Поништи сав избор"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Слике:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Коментари:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Категорија:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Датум:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Изаберите слике из албума"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Дијалог избора слике"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Kipi-јев дијалог за избор слике"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Приручници за Kipi-јеве прикључке"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Име албума"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Име слике"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Ниједна слика није изабрана"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Нема изабраних слика"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n слика је изабрана\n"
"%n слике су изабране\n"
"%n слика је изабрано"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Слободан Симић"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "simicsl@verat.net"
#~ msgid "Batch process dialog"
#~ msgstr "Дијалог пакетне обраде"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Kipi-јев дијалог за операције пакетне обраде"

@ -0,0 +1,3 @@
KDE_LANG = sr@Latn
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,136 @@
# translation of libkipi.po to Serbian
# Chusslove Illich <caslav.ilic@gmx.net>, 2004.
# Slobodan Simic <simicsl@verat.net>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-30 23:07+0200\n"
"Last-Translator: Slobodan Simic <simicsl@verat.net>\n"
"Language-Team: Serbian <kde-yu@kde.org.yu>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Stanje"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Trenutne radnje"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Ovo je izdata lista tekućih zadataka."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Ovo je izdata lista procenata tekućih zadataka."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Fascikla"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Izaberite prvo direktorijum."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Napravi direktorijum"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Unesite ime novog direktorijuma (biće poddirektorijum direktorijuma "
"%1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Slike"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Obrni izbor"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Poništi sav izbor"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Slike:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Komentari:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Kategorija:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Datum:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Izaberite slike iz albuma"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Dijalog izbora slike"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Kipi-jev dijalog za izbor slike"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Priručnici za Kipi-jeve priključke"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Ime albuma"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Ime slike"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Nijedna slika nije izabrana"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Nema izabranih slika"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"%n slika je izabrana\n"
"%n slike su izabrane\n"
"%n slika je izabrano"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Slobodan Simić"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "simicsl@verat.net"
#~ msgid "Batch process dialog"
#~ msgstr "Dijalog paketne obrade"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Kipi-jev dijalog za operacije paketne obrade"

@ -0,0 +1,3 @@
KDE_LANG = ta
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,130 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-03-22 03:04-0800\n"
"Last-Translator: Tamil PC <tamilpc@ambalam.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "நிலை"
#: libkipi/batchprogressdialog.cpp:172
#, fuzzy
msgid "Current Actions"
msgstr "நடப்பு செயல்கள்"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>இது வெளியிடப்பட்ட தற்போதைய பணிகளின் பட்டியல்"
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>இது வெளியிடப்பட்ட பணி தற்போதையை விகித பட்டியல்"
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "அடைவு"
#: libkipi/uploadwidget.cpp:176
#, fuzzy
msgid "Please select a directory first."
msgstr "முதலில் ஒரு அடைவை தேர்ந்தெடுக்கவும்"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "அடைவை உருவாக்கு"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>புதிய அடைவு பெயரை உள்ளிடவும் (%1ன் துணை அடைவாக உருவாக்கப்படவேண்டும்):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "பிம்பங்கள்"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "தேர்ந்தெடுத்ததைப் புரட்டு"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "எதுவும் தேர்ந்தெடுக்கப்படவில்லை"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "பிம்பங்கள்"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "குறிப்புகள்:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "வகை:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "தேதி:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "ஆல்பத்தில் இருந்து பிம்பத்தை தேர்ந்தெடு"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "பிம்ப தேர்ந்தெடுப்பான் உரையாடல் பெட்டி"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "பிம்ப தேர்வுக்கான ஒரு கிபி உரையாடல் பெட்டி"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "கிபி சொருகுப்பொருள்கள் கைப்புத்தகங்கள்"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "ஆல்பம் பெயர்"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "பிம்பத்தின் பெயர்"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "பிம்பம் தேர்ந்தெடுக்கப்படவில்லை"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "எந்த பிம்பமும் தேர்ந்தெடுக்கப்படவில்லை"
#: libkipi/imagedialog.cpp:293
#, fuzzy, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr "%n பிம்பங்கள் தேர்ந்தெடுக்கப்பட்டுள்ளது"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "tamilpcteam"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "tamilpc@ambalam.com"
#~ msgid "Batch process dialog"
#~ msgstr "தொகுதி செயல்பாட்டு உரையாடல் பெட்டி"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "தொகுதி செயல்பாட்டு செயல்களுக்கான ஒரு கிபி உரையாடல் பெட்டி"

@ -0,0 +1,3 @@
KDE_LANG = tr
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,134 @@
# translation of libkipi.po to
# translation of libkipi.po to Türkçe
# Görkem Çetin <gorkem@kde.org>, 2004.
# İsmail Şimşek <thelightning@mynet.com>, 2004.
# İsmail Şimşek <simsek@kde.org.tr>, 2005.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-06-25 03:31+0300\n"
"Last-Translator: İsmail Şimşek <simsek@kde.org.tr>\n"
"Language-Team: Türkçe <yerellestirme@kde.org.tr>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Durum"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Geçerli İşlemler"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Yayınlanan geçerli görevler listesi."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>Yayınlanan geçerli oranlı görevler listesi."
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Dizin"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Lütfen önce bir dizin seçiniz."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Dizin Oluştur"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr ""
"<qt>Yeni dizin adı giriniz (%1'in bir alt dizini olarak oluşturulacak):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Resimler"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Seçimi Çevir"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Hiçbirini Seçme"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Resimler:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Yorumlar:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Sınıf:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Tarih:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Albümden Resim Seç"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Resim seçme diyaloğu"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Resim seçmek için bir Kipi diyaloğu"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Kipi Eklentileri El Kitapları"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Albüm Adı"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Resim Adı"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Seçilen resim yok"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Seçilen resim yok"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr "%n resim seçildi"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "İsmail Şimşek"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "thelightning@mynet.com"
#~ msgid "Batch process dialog"
#~ msgstr "Çoklu işlemler diyaloğu"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "Çoklu işlemler için bir Kipi diyaloğu"

@ -0,0 +1,3 @@
KDE_LANG = uk
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,130 @@
# Translation of libkipi.po to Ukrainian
#
# Ivan Petrouchtchak <ivanpetrouchtchak@yahoo.com>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2006-06-13 11:39-0700\n"
"Last-Translator: Ivan Petrouchtchak <ivanpetrouchtchak@yahoo.com>\n"
"Language-Team: Ukrainian <translation@linux.org.ua>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.2\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"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "Стан"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "Поточні дії"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>Це список виданих поточних завдань."
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr ""
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "Тека"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "Будь ласка, спочатку виберіть каталог."
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "Створити каталог"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>Введіть назву нового каталогу (який буде під каталогом %1):</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "Зображення"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "Інвертувати вибір"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "Нічого не вибирати"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "Зображення:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "Коментарі:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "Категорія:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "Дата:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "Виберіть зображення в альбомі"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "Вікно вибору зображень"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "Вікно Kipi для вибору зображень"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Підручники для втулок Kipi"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "Назва альбому"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "Назва зображення"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "Не вибрано жодного зображення"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "Не вибрано жодного зображення"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr ""
"Вибрано %n зображення\n"
"Вибрано %n зображення\n"
"Вибрано %n зображень"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "Іван Петрущак"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "ivanpetrouchtchak@yahoo.com"

@ -0,0 +1,3 @@
KDE_LANG = zh_CN
SUBDIRS = $(AUTODIRS)
POFILES = AUTO

@ -0,0 +1,130 @@
# SOME DESCRIPTIVE TITLE.
# Funda Wang <fundawang@linux.net.cn>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: libkipi\n"
"POT-Creation-Date: 2006-10-03 08:51+0200\n"
"PO-Revision-Date: 2005-05-07 22:18+0800\n"
"Last-Translator: Funda Wang <fundawang@linux.net.cn>\n"
"Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: libkipi/batchprogressdialog.cpp:171
msgid "Status"
msgstr "状态"
#: libkipi/batchprogressdialog.cpp:172
msgid "Current Actions"
msgstr "当前动作"
#: libkipi/batchprogressdialog.cpp:177
msgid "<p>This is the current tasks list released."
msgstr "<p>这是当前发布的任务列表。"
#: libkipi/batchprogressdialog.cpp:184
msgid "<p>This is the list current percent task released."
msgstr "<p>这是目前发布的任务百分比列表。"
#: libkipi/uploadwidget.cpp:85
msgid "Folder"
msgstr "文件夹"
#: libkipi/uploadwidget.cpp:176
msgid "Please select a directory first."
msgstr "请先选择一个目录。"
#: libkipi/uploadwidget.cpp:181
msgid "Create Directory"
msgstr "创建目录"
#: libkipi/uploadwidget.cpp:182
msgid "<qt>Enter new directory name (to be created as subdir of %1):</qt>"
msgstr "<qt>输入新目录名(即将创建为 %1 的子目录)</qt>"
#: libkipi/imagecollectionshared.cpp:81
msgid "Images"
msgstr "图像"
#: libkipi/imagecollectionselector.cpp:109
msgid "Invert Selection"
msgstr "反转选择"
#: libkipi/imagecollectionselector.cpp:110
msgid "Select None"
msgstr "全部不选"
#: libkipi/imagecollectionselector.cpp:283
msgid "Images:"
msgstr "图像:"
#: libkipi/imagecollectionselector.cpp:300
msgid "Comments:"
msgstr "注释:"
#: libkipi/imagecollectionselector.cpp:308
msgid "Category:"
msgstr "类别:"
#: libkipi/imagecollectionselector.cpp:317
msgid "Date:"
msgstr "日期:"
#: libkipi/imagedialog.cpp:90 libkipi/imagedialog.cpp:110
msgid "Select Image From Album"
msgstr "从相册选择图像"
#: libkipi/imagedialog.cpp:128
msgid "Image selector dialog"
msgstr "图像选择器对话框"
#: libkipi/imagedialog.cpp:130
msgid "A Kipi dialog for image selection"
msgstr "图像选择的 Kipi 对话框"
#: libkipi/imagedialog.cpp:139
msgid "Kipi Plugins Handbooks"
msgstr "Kipi 插件手册"
#: libkipi/imagedialog.cpp:147
msgid "Album Name"
msgstr "相册名称"
#: libkipi/imagedialog.cpp:152
msgid "Image Name"
msgstr "图像名称"
#: libkipi/imagedialog.cpp:161 libkipi/imagedialog.cpp:240
msgid "No image selected"
msgstr "未选中图像"
#: libkipi/imagedialog.cpp:274
msgid "No images selected"
msgstr "未选中图像"
#: libkipi/imagedialog.cpp:293
#, c-format
msgid ""
"_n: 1 image selected\n"
"%n images selected"
msgstr "选中了 %n 个图像"
#: _translatorinfo.cpp:1
msgid ""
"_: NAME OF TRANSLATORS\n"
"Your names"
msgstr "开源软件国际化之 KDE 简体中文组"
#: _translatorinfo.cpp:3
msgid ""
"_: EMAIL OF TRANSLATORS\n"
"Your emails"
msgstr "i18n-translation@lists.linux.net.cn"
#~ msgid "Batch process dialog"
#~ msgstr "批处理对话框"
#~ msgid "A Kipi dialog for batch process operations"
#~ msgstr "进行批处理操作的 Kipi 对话框"

@ -0,0 +1,4 @@
libkexif
libkipi
doc
po
Loading…
Cancel
Save