summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2013-07-28 02:30:20 +0200
committerSlávek Banko <slavek.banko@axis.cz>2013-07-28 02:30:20 +0200
commit48a589b8c526b34e79e8cdddc4cb7f5fc7b76815 (patch)
tree0f30d90998669b60a0aa840f824cc3d4ea7ddc66
downloadkshutdown-48a589b8c526b34e79e8cdddc4cb7f5fc7b76815.tar.gz
kshutdown-48a589b8c526b34e79e8cdddc4cb7f5fc7b76815.zip
Initial import of kshutdown 1.0.4
-rw-r--r--AUTHORS1
-rw-r--r--COPYING340
-rw-r--r--ChangeLog410
-rw-r--r--Doxyfile278
-rw-r--r--INSTALL180
-rw-r--r--Makefile.am23
-rw-r--r--NEWS1
-rw-r--r--README33
-rwxr-xr-xSetup266
-rw-r--r--TODO55
-rw-r--r--VERSION1
-rw-r--r--acinclude.m411809
-rw-r--r--aclocal.m4863
-rw-r--r--config.h.in237
-rw-r--r--configure.files2
-rw-r--r--configure.in136
-rw-r--r--configure.in.in10
-rw-r--r--doc/Makefile.am1
-rw-r--r--doc/de/Makefile.am2
-rw-r--r--doc/de/index.docbook269
-rw-r--r--doc/de/mainwindow.pngbin0 -> 11222 bytes
-rw-r--r--doc/kshutdown/Makefile.am2
-rw-r--r--doc/kshutdown/index.docbook270
-rw-r--r--doc/kshutdown/mainwindow.pngbin0 -> 20976 bytes
-rw-r--r--extras/Makefile.am11
-rw-r--r--extras/hibernate.desktop17
-rw-r--r--extras/multimedia/.directory7
-rw-r--r--extras/multimedia/Makefile.am13
-rw-r--r--extras/multimedia/amarok.desktop12
-rw-r--r--extras/multimedia/juk.desktop19
-rw-r--r--extras/multimedia/kaffeine.desktop20
-rw-r--r--extras/multimedia/kdetv.desktop19
-rw-r--r--extras/multimedia/kscd.desktop20
-rw-r--r--extras/multimedia/noatun.desktop18
-rw-r--r--extras/multimedia/xmms.desktop12
-rw-r--r--extras/shutdown/.directory7
-rw-r--r--extras/shutdown/Makefile.am8
-rw-r--r--extras/shutdown/cancelshutdown.desktop19
-rw-r--r--extras/shutdown/fsck.desktop19
-rw-r--r--extras/system/.directory6
-rw-r--r--extras/system/Makefile.am9
-rw-r--r--extras/system/adsl-stop.desktop20
-rw-r--r--extras/system/kdeeject.desktop19
-rw-r--r--extras/system/kppp.desktop19
-rw-r--r--karamba/Makefile.am8
-rw-r--r--karamba/kshutdown-48x48.pngbin0 -> 3502 bytes
-rw-r--r--karamba/kshutdown-classic-notext.theme8
-rw-r--r--karamba/kshutdown-classic-text.theme11
-rw-r--r--kshutdown-mdk.spec86
-rw-r--r--kshutdown-suse.spec94
-rw-r--r--kshutdown.kdevelop321
-rw-r--r--kshutdown.lsm12
-rw-r--r--kshutdown.spec65
-rw-r--r--kshutdown/Makefile.am44
-rw-r--r--kshutdown/actions.cpp455
-rw-r--r--kshutdown/actions.h217
-rw-r--r--kshutdown/appobserver.cpp290
-rw-r--r--kshutdown/appobserver.h99
-rw-r--r--kshutdown/configuration.cpp80
-rw-r--r--kshutdown/configuration.h91
-rw-r--r--kshutdown/confirmation.cpp97
-rw-r--r--kshutdown/confirmation.h38
-rw-r--r--kshutdown/extras.cpp309
-rw-r--r--kshutdown/extras.h115
-rw-r--r--kshutdown/kshutdown.desktop19
-rw-r--r--kshutdown/kshutdown.upd10
-rw-r--r--kshutdown/kshutdowniface.h98
-rw-r--r--kshutdown/kshutdowniface.kidl53
-rw-r--r--kshutdown/kshutdowniface_skel.cpp135
-rw-r--r--kshutdown/kshutdowniface_stub.cpp229
-rw-r--r--kshutdown/kshutdowniface_stub.h38
-rw-r--r--kshutdown/links.cpp210
-rw-r--r--kshutdown/links.h74
-rw-r--r--kshutdown/mactioneditdialog.cpp225
-rw-r--r--kshutdown/mactioneditdialog.h76
-rw-r--r--kshutdown/main.cpp393
-rw-r--r--kshutdown/miscutils.cpp244
-rw-r--r--kshutdown/miscutils.h135
-rw-r--r--kshutdown/mmainwindow.cpp954
-rw-r--r--kshutdown/mmainwindow.h209
-rw-r--r--kshutdown/mmessagedialog.cpp184
-rw-r--r--kshutdown/mmessagedialog.h68
-rw-r--r--kshutdown/msettingsdialog.cpp622
-rw-r--r--kshutdown/msettingsdialog.h127
-rw-r--r--kshutdown/mstatstab.cpp196
-rw-r--r--kshutdown/mstatstab.h74
-rw-r--r--kshutdown/msystemtray.cpp212
-rw-r--r--kshutdown/msystemtray.h113
-rw-r--r--kshutdown/mtip.cpp90
-rw-r--r--kshutdown/mtip.h65
-rw-r--r--kshutdown/progressbar.cpp153
-rw-r--r--kshutdown/progressbar.h66
-rw-r--r--kshutdown/systemconfig.cpp189
-rw-r--r--kshutdown/systemconfig.h60
-rw-r--r--kshutdownlockout/Makefile.am15
-rw-r--r--kshutdownlockout/kshutdownlockout.desktop71
-rw-r--r--kshutdownlockout/lockout.cpp236
-rw-r--r--kshutdownlockout/lockout.h59
-rw-r--r--pics/Makefile.am15
-rw-r--r--pics/hi32-app-kshutdown.pngbin0 -> 2082 bytes
-rw-r--r--pics/hi48-app-kshutdown.pngbin0 -> 3502 bytes
-rw-r--r--pics/kshutdown.svg153
-rw-r--r--po/Makefile.am2
-rw-r--r--po/README32
-rw-r--r--po/ar.po841
-rw-r--r--po/bg.po830
-rw-r--r--po/cs.po796
-rw-r--r--po/de.po850
-rw-r--r--po/el.po859
-rw-r--r--po/es.po878
-rw-r--r--po/fr.po823
-rw-r--r--po/hu.po1301
-rw-r--r--po/it.po801
-rw-r--r--po/nl.po1303
-rw-r--r--po/pl.po799
-rw-r--r--po/pt_BR.po846
-rw-r--r--po/ru.po1299
-rw-r--r--po/sk.po837
-rw-r--r--po/sv.po1182
-rw-r--r--po/tr.po794
-rw-r--r--po/zh_CN.po915
-rw-r--r--sounds/1m.oggbin0 -> 12529 bytes
-rw-r--r--sounds/5m.oggbin0 -> 11810 bytes
-rw-r--r--sounds/COPYRIGHT1
-rw-r--r--sounds/Makefile.am10
-rw-r--r--sounds/eventsrc29
-rw-r--r--stamp-h.in1
-rw-r--r--subdirs8
128 files changed, 39830 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..62bd678
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+See Help -> About KShutDown -> Thanks To...
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..5b6e7c6
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..4009e5e
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,410 @@
+// svn log -r 347:HEAD|tac|xsel -i -b
+// See also: http://kshutdown.sourceforge.net/releases/
+
+2009/01/15 1.0.4
+
+* Fixed Restart/Turn Off Computer action in newer distributions
+* Removed deprecated entries and values from *.desktop files
+
+
+2008/05/26 1.0.3
+
+* Updated Czech translation
+* Updated Italian translation
+* Updated Polish translation
+* Updated Slovak translation
+* Extras: Show icon of the selected action (thanks to Guillaume Millet)
+* Setup: Automatically create "configure" file if necessary
+* Source: Added RPM .spec file for SUSE
+
+2007/11/25 1.0.2
+- Now the sound is disabled by default.
+ You can re-enable sound notifications via menu -> Settings -> Configure Notifications...
+- Updated Italian translation (thanks to Andrea Florio)
+- Updated Turkish translation
+- Updated Polish translation
+- NEW: Added "extra" command line option. Run "kshutdown --help" for more info.
+- NEW: Remember recent "Extras" command
+
+2007/07/08 1.0.1
+- NEW: Arabic translation. Thanks to Abdulaziz Alsharif and Youssef Chahibi.
+- NEW: Bulgarian translation. Thanks to Zlatko Popov
+- Updated Greek (el) translation
+- Minor fixes
+
+2007/04/14 1.0
+- NEW: Added "Hibernate Computer" action (see Extras -> Select a command...)
+- NEW: Added action to mute and quit kdetv (see Extras -> Select a command...)
+- Fixed compilation problems
+- Fixed system tray icon size
+- Updated language translations (es, sk, tr)
+
+2006/10/10 0.9.1 Beta
+- Updated German, Greek, Portuguese-Brazilian, and Spanish translations
+- NEW: French translation (thanks to Maxime Chéramy)
+- Fixed some DCOP functions
+- Fixed KShutDown autostart and session saving
+- NEW: Warning info in task bar title
+- Improved progress bar
+
+2006/06/29 0.9 Beta
+- NEW: Progress bar
+- FIXED: Setup: Launch installer in existing Konsole window
+- FIXED: Fixed compilation errors (thanks to Ole)
+- NEW: Global keyboard shortcuts
+- NEW: Redesigned and improved KShutDown panel applet
+- NEW: DCOP: Added "makeInvisible()" function
+- Added missing "What's this?" texts
+- Action icons are now cached
+- Addded passive messages
+- NEW: Greek translation (thanks to Spiros Georgaras)
+- Patches from the FreeBSD (thanks to Markus Brueffer)
+- Simplified "link creator" in the "Settings" dialog
+- NEW: "Presets" menu in the "Custom Message" configuration
+- FIXED: "Test" button in the "Custom Message" configuration
+- Code cleanup
+- NEW: Redesigned the system tray context menu
+- Statistics: Changed the "Options" view
+- NEW: Statistics: Ctrl+R or F5 refreshes the view
+- NEW: Selected action/time in the confirmation dialog
+- NEW: Shortcut configuration (Settings -> Configure Shortcuts...)
+- NEW: "Actions" menu in the menu bar
+
+2006/02/05 0.8.2
+- NEW: Turkish translation (thanks to Ahmet AYGÜN)
+- French desktop entry (e.g. in the "K" Menu)
+- Updated the "./admin" directory
+
+2006/01/09 0.8.1
+- NEW: Chinese translation
+- NEW: German Handbook
+- Setup: Do not ask for root password
+ if prefix directory exists and is writeable by the current user
+- Changed some GUI texts
+- Added generic name for "K" menu entry
+- Setup: Removed the "Changes" command (ChangeLog);
+ added "What's new?" instead (NEWS)
+- Removed "Help" from the system tray context menu
+- API: public MiscUtils::playSound -> private MiscUtils::notifyUser
+- Action list: display "s" suffix for pause value
+- Action editor: display "No pause" instead of "0 second(s)"
+- Updated "kshutdown/templates" files
+- FIXED: Do not display popup message if "test mode" is already enabled/disabled
+- Setup: Removed confusing "root password" message
+- Setup: Fixed Polish encoding
+- Setup: Added support for "LANG=pl_PL.UTF-8"
+- Changed title time separator from " - " to " > "
+- FIXED: "dcop kshutdown KShutdownIface makeVisible"
+- Removed broken links from the About dialog
+- Removed unused "kshutdown/karamba/kshutdown-32x32.png" file
+- NEW: NEWS file with human readable list of changes
+- Updated German translation
+- Updated Czech translation
+
+2005/11/27 0.8
+- NEW: Swedish translation (thanks to Daniel Nylander)
+- Minor bugfixes
+- Removed the Authors tab from the About dialog
+- Setup: Fast compilation is now enabled by default (--enable-final)
+- Updated documentation
+- Setup: "kdesu" instead of "su" (works on both Fedora and Kubuntu)
+
+2005/10/18 0.7.1 Beta
+- NEW: Ability to execute a specified action when selected application exit
+- Removed "Download" menu item
+- FIXED: Captions in system tray menu
+- NEW: Changed default custom message command to:
+ "kdialog --title \"%title\" --passivepopup \"%text\" 10"
+- NEW: System configuration checker (EXPERIMENTAL)
+- Updated Handbook
+- Removed obsolete FAQ
+- Removed "locolor" icon
+- RPM .spec: Removed "kdebase" dependency
+- Removed deprecated Wizard and Scheduler functions
+- NEW: "Shut Down" and "Reboot" commands are now disabled if KDM is not running.
+ To enable these commands go to "Settings" -> "Configure KShutDown" -> "Actions",
+ and set methods to "/sbin/...", "poweroff" or "reboot".
+- NEW: Balloon popup messages based on the "kdialog" program
+- QListView* -> KListView*
+- Improved and fixed KDE Kiosk support
+- FIXED: System tray icon hidding option
+- FIXED: Confirmation message box position
+- FIXED: Enter key now starts/stops the selected action
+- Removed the "Action" menu from the menu bar
+- FIXED: "Common Problems" buttons in the "Settings" dialog
+- FIXED: DCOP "cancel()" function now can cancel the warning message dialog
+- Misc. bugfixes
+- Updated the "admin" directory
+ACTION EDIT DIALOG:
+- Removed the "Help" button
+- "KDE" -> "KDE (default)"
+- Improved tip text
+- Changed the default external "Lock Session" command
+ from "xlock" to "xscreensaver-command -lock"
+
+2005/07/02 0.7.0 Beta
+NEW:
+- Redesigned the main window (thanks to Stephen)
+- Redesigned the settings dialog
+- Menu bar
+- Link to the "Download" page in the "File" menu
+- KShutDown Kicker Applet (based on the KDE Lock/Logout Applet)
+- New icons
+- System tray icon configuration
+- Redesigned "Statistics" dialog
+- Cool tray icon fade effects
+- Portuguese Brazilian language translation (also in version 0.6.1)
+- The "--confirm" command line option forces confirmation message box:
+ EXAMPLE 1 - with confirmation:
+ "kshutdown --confirm --shutdown"
+ EXAMPLE 2 - without confirmation (default):
+ "kshutdown --shutdown"
+IMPORTANT:
+- Since version 0.7.0 KShutDown requires KDE 3.3.x or newer
+- "K Menu" link is now placed in the "Accessories" menu.
+ Old menu items (Utilities->KShutDown and Utilities->KShutDown Wizard)
+ are now obsolete. You can remove these items manually.
+- Removed the Wizard dialog
+- Removed "Examples" directory from the "Extras" menu
+- Removed "Scheduler".
+ "Scheduler" DCOP functions are now deprecated, and should not be used.
+- "-w" and "--wizard" command line arguments are now deprecated, and should not be used.
+IMPROVED:
+- Setup script
+- Usability
+- KShutDown is now smaller and faster
+- Link creator: confirmation messages, shut down, reboot, lock screen and logout links
+- Warning message
+- A confirmation message box
+- Visual and sound notifications
+UNDER CONSTRUCTION:
+- A new popup messages (based on the Kopete "balloon")
+- Action execution when a desired application exit
+- .spec file for Fedora Core
+- System configuration checker
+FIXED/MISC:
+- Fixed possible "make install" error (thanks to Gregorio)
+- Removed "build" info from the "About" dialog
+
+2005/02/28 0.6.0
+- NEW: Settings: "Default" button in action edit dialog
+- NEW: DCOP functions: "configure" and "makeVisible"
+- REMOVED: Removed color configuration from the "Statistics" tab
+- FIXED: Text alignment in reversed layout
+- Cleaned up the settings dialog
+- Small fixes related to window management
+- Updated Italian translation
+
+2005/02/12 0.5.1 Beta
+- NEW: Added options to execute a shell commad before
+ shut down, reboot, logout or lock screen
+ (Configure -> Actions & Extras Menu)
+- NEW: Added option to close the CD-ROM tray before logout
+ (Configure -> Automation)
+- NEW: Changed window caption and system tray tool tip to be more usable
+- FIXED: Now the Wizard dialog window does not block the entire desktop
+- FIXED: Do not show minimized main window after Wizard cancel
+- Updated Manual and README
+- A shorter date/time format in window title
+- Minor fixes and improvements
+
+2004/12/15 0.5.0 Beta
+- NEW: A custom message command
+- NEW: Selected time in the main window
+- NEW: Added support for AM/PM time format
+- NEW: Statistics: Added option to toggle the "from" (remote hostname) field
+- NEW: A new notifications configuration dialog
+- NEW: Last selected tab page is remembered
+- NEW: Last selected settings page is remembered
+- NEW: Warning 1 hour before action
+- FIXED: Fixed focus and default button in the Wizard
+- Added help button to the Wizard dialog
+- Info is displayed if "test" mode has been toggled
+- Now KShutDown should compile on KDE 3.1.1+
+- Cleaned up the source files
+- Updated API documentation
+- Added link to "xscreensaver-command" manual in action edit dialog
+- Link to the SuperKaramba home page in settings dialog
+- Smaller bugfixes and improvements
+- The source package is smaller
+
+2004/11/13 0.4.0
+- NEW: Cancel button in passive message
+- NEW: Now the date/time editor will automatically advance focus
+ to the next date/time section if a user has completed a section
+- Kiosk: Time selection is disabled in Wizard
+ if "kshutdown_tab_time" is set to "false"
+- Updated translations
+
+2004/10/23 0.3.2 Beta
+- NEW: Added Karamba info (click Configure button)
+- NEW: Standard KDE notifications
+ (Control Center > Sound & Multimedia > System Notifications > KShutDown
+ or
+ KShutDown > Configure > Confirmations & Messages > Configure Notifications)
+- NEW: Added option to re-enable all messages which have been disabled with the
+ "Do not show this message again" option
+- NEW: Changed Wizard image
+- NEW: Changed statistics default colors
+- NEW: Title in the system tray context menu
+- FIXED: Fixed amaroK "stop" function
+- FIXED: Wizard window is now centered on screen
+- FIXED: No confirmations if you execute a KShutDown action from the command
+ line
+- SETUP: Added Polish language
+- SETUP: Added option "--enable-final" (press "F" to toggle)
+- SETUP: "Setup" is launched in a new Konsole window,
+ so you can run it from a Konqueror (EXPERIMENTAL)
+- Improved and updated help
+- Bugfixes
+
+2004/09/11 0.3.1 Beta
+- NEW: Russian translation
+- NEW: Simple Karamba themes
+ (see /YOUR_INSTALL_PATH/share/apps/kshutdown/karamba)
+- CHANGE: Smaller Vorbis Ogg sound files
+- CHANGE: All KIOSK keys are now prefixed with "kshutdown_" string
+ (see Handbook)
+- Updated translations
+
+2004/08/30 0.3.0 Beta
+- NEW: Ability to run a command before shut down
+ (click "Configure", "Automation")
+- NEW: Automatic screen locking after login (click "Configure", "Automation")
+- NEW: Reorganized and improved settings dialog
+- NEW: Colors in the "Setup" script
+- NEW: Added help buttons
+- NEW: Icons in tool tips
+- NEW: Italian translation
+- NEW: Links creator (click "Configure", "Links")
+- SYSTEM TRAY: Middle mouse button displays the actions menu
+- SYSTEM TRAY: Added confirmations
+- SYSTEM TRAY: Tear off handles in menus
+- FIXED: Source code and API cleanup
+- FIXED: Better usability
+- FIXED: Added "now" argument to the command line options
+- FIXED: Message window is now always on top
+- Added new items to the "Extras" menu
+
+2004/07/19 0.2.0
+- Improved "Extras" menu
+- Better sounds quality; Vorbis Ogg format
+- Added Handbook (see Help menu)
+- Fixed documentation
+
+2004/07/05 0.1.9 Beta
+- Changed DCOP API:
+ changed "registerTask"
+ removed "command"; use "activateAction" instead
+ added "getStatusInfo"
+- Updated translations
+- Added .spec file
+- Changed Wizard "finish" button
+- Bugfixes
+
+2004/06/13 0.1.8 Beta
+- NEW: New name - KShutDown
+- NEW: Wizard
+- NEW: Dutch translation
+- NEW: KDE Kiosk support. For example you can disable "Shut down" command,
+ or the "Statistics" tab. See README for details.
+- NEW: "Extras" - user commands.
+ Now you can add as many new commands as you want.
+- NEW: Options in the "Statistics" tab
+- NEW: Rewritten popup messages
+- NEW: Time argument in the command line. Examples:
+ "kshutdown --your-option HH:MM" (absolute time),
+ or "kshutdown --your-option MM" (time from now in minutes)
+- NEW: "--default" command line option disables test mode
+- FIXED: Sound configuration
+- IMPROVED: User interface
+- IMPROVED: "Setup" script
+- Updated translations
+- Bugfixes
+
+2004/03/27 0.1.7 Beta
+- Slovak translation
+- German translation
+- Improved usability
+- Updated CVS...
+- More tool tips
+- Source files cleanup
+- Bugfixes
+
+2004/03/11 0.1.6 Beta
+- Fixed "Statistics" tab
+- Command line option to display standard logout dialog (--standard)
+- Flat buttons
+- Removed "Options" tab
+- Settings dialog size is saved in the configuration file
+- "Remove All" button in the "Scheduler" tab
+- Czech translation and FAQ
+- Hungarian translation
+- Changed some icons
+- Bugfixes
+
+2004/02/22 0.1.5 Beta
+- Bugfixes
+- Improved warning message box
+- Improved scheduler and DCOP server (still under construction)
+- Code cleanups
+- Fixed memory leaks
+- Added cancel option to the command line (-c and --cancel)
+
+2004/02/07 0.1.4 Beta
+- Code cleanups
+- Fixed keyboard shortcuts
+- Fixed default window size
+- Added -s and --shutdown to the command line options
+- LED icon has been replaced with the system tray icon
+- Spanish translation by Quique
+- Test mode (kshutdown --test)
+- Error message if selected date/time is earlier than current date/time
+- Bugfixes
+
+2004/01/17 0.1.3 Beta
+- "Exit" to the system tray
+- "Settings" command in the system tray context menu
+- Links to "man" manuals
+- Some tabs are initialized on demand (faster startup)
+- Tab icons
+- Statistics: colorized `w` output (logged-in users, uptime)
+- Scheduler: changed columns order, application icons
+- Bugfixes
+- System tray: caption
+
+2003/12/08 0.1.2 Beta
+- ui improvements
+- system tray context menu
+- migration to KDevelop 3
+- user interface fixes
+- now you can directly specify delay in seconds, minutes, or hours
+- fixed "about" window
+- FAQ file
+- system tray icon is now always visible
+- changed default external commands to /sbin/reboot and /sbin/poweroff
+- experimental DCOP interface (will be useful in v0.2.0)
+- code and api cleanups + api docs
+- fixed settings saving
+- "embedded" tool tips
+- only 1 instance of kshutdown is now allowed
+- bugfixes
+- new icons (created with Sodipodi and GIMP)
+- warning is displayed 10 seconds before timeout
+
+2003/11/09 0.1.1 Beta
+- polska jezyk, trudna jezyk ;-))) (pl.po)
+- standard gui items
+- passive popup warning messages (optional)
+- status info
+- install script
+- simple system tray configuration
+- support for /sbin/shutdown, xlock, and user commands
+- added command line options for lock screen (-k and --lock)
+- a new settings dialog
+- code and API clean-ups
+- different "cancel" button texts (Close/Cancel)
+- added "Whats This" texts
+
+2003/10/27 0.1.0 Beta
+- first version
diff --git a/Doxyfile b/Doxyfile
new file mode 100644
index 0000000..e94f44f
--- /dev/null
+++ b/Doxyfile
@@ -0,0 +1,278 @@
+# Doxyfile 1.4.1-KDevelop
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = KShutDown
+PROJECT_NUMBER =
+OUTPUT_DIRECTORY =
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = NO
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH = /home/kdt/Documents/src/kshutdown/kshutdown/
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = YES
+INHERIT_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 4
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+SUBGROUPING = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = YES
+EXTRACT_LOCAL_CLASSES = NO
+EXTRACT_LOCAL_METHODS = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = YES
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = YES
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = NO
+GENERATE_TESTLIST = NO
+GENERATE_BUGLIST = NO
+GENERATE_DEPRECATEDLIST= NO
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = YES
+FILE_VERSION_FILTER =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = /home/kdt/src/kshutdown
+FILE_PATTERNS = *.c \
+ *.cc \
+ *.cxx \
+ *.cpp \
+ *.c++ \
+ *.java \
+ *.ii \
+ *.ixx \
+ *.ipp \
+ *.i++ \
+ *.inl \
+ *.h \
+ *.hh \
+ *.hxx \
+ *.hpp \
+ *.h++ \
+ *.idl \
+ *.odl \
+ *.cs \
+ *.php \
+ *.php3 \
+ *.inc \
+ *.m \
+ *.mm \
+ *.dox \
+ *.C \
+ *.CC \
+ *.C++ \
+ *.II \
+ *.I++ \
+ *.H \
+ *.HH \
+ *.H++ \
+ *.CS \
+ *.PHP \
+ *.PHP3 \
+ *.M \
+ *.MM \
+ *.C \
+ *.H \
+ *.tlh \
+ *.diff \
+ *.patch \
+ *.moc \
+ *.xpm \
+ *.dox
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS = *.moc.cpp \
+ kshutdowniface_stub.h \
+ kshutdowniface_stub.cpp \
+ kshutdowniface_skel.cpp
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NO
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE = kshutdown.tag
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = NO
+HIDE_UNDOC_RELATIONS = NO
+HAVE_DOT = NO
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+MAX_DOT_GRAPH_WIDTH = 1024
+MAX_DOT_GRAPH_HEIGHT = 1024
+MAX_DOT_GRAPH_DEPTH = 1000
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..3c990f0
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,180 @@
+
+Cool Installation ;-)
+=====================
+
+Run ./Setup
+
+Gentoo ebuild installation (.ebuild file)
+=========================================
+
+1. Be sure, $PORTDIR_OVERLAY is set in /etc/make.conf
+ (usually, it's /usr/local/portage)
+2. Extract the content of the .tar.gz to $PORTDIR_OVERLAY
+3. Execute "emerge kshutdown" as root.
+
+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 a while. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 4. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'.
+
+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.
+
+ 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.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..6ac2cd6
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,23 @@
+SUBDIRS = doc extras karamba kshutdown kshutdownlockout pics po sounds
+EXTRA_DIST = admin AUTHORS COPYING INSTALL README Setup TODO VERSION ChangeLog kshutdown.lsm NEWS
+
+AUTOMAKE_OPTIONS = foreign
+
+$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
+ cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in
+
+$(top_srcdir)/subdirs:
+ cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
+
+$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
+ cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
+
+MAINTAINERCLEANFILES = acinclude.m4 configure.files configure.in subdirs
+
+package-messages:
+ $(MAKE) -f admin/Makefile.common package-messages
+ $(MAKE) -C po merge
+
+dist-hook:
+ cd $(top_distdir) && perl admin/am_edit -padmin
+ cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..76f126a
--- /dev/null
+++ b/NEWS
@@ -0,0 +1 @@
+See: http://kshutdown.sourceforge.net/releases/ \ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..02141cc
--- /dev/null
+++ b/README
@@ -0,0 +1,33 @@
+
+KShutDown is an advanced shut down utility for KDE.
+
+Odd numbers in version mean it's unstable/beta (e.g. 0.7.1, 0.9).
+Even numbers mean it's stable (e.g. 0.8, 0.10.5).
+
+FEATURES
+--------
+- Turn Off Computer (logout and halt the system)
+- Restart Computer (logout and reboot the system)
+- Lock Session (lock the screen using a screen saver)
+- End Current Session (end the current KDE session and logout the user)
+- Extras (additional, user commands)
+- Time and delay options
+- Command line and DCOP support
+- System tray and panel applet
+- Visual and sound notifications
+- KDE Kiosk support
+- And more...
+
+LINKS
+-----
+http://kshutdown.sourceforge.net (Home Page)
+http://sourceforge.net/projects/kshutdown (Project Page)
+http://freshmeat.net/projects/kshutdown (freshmeat.net Page)
+http://www.kde-apps.org/content/show.php?content=9754 (KDE-Apps.org Page)
+http://www.kde.org (KDE Home Page)
+
+COPYRIGHT & LICENSE
+-------------------
+(C) Konrad Twardowski <kdtonline@poczta.onet.pl>
+KShutDown is licensed under the GNU General Public License (GPL)
+(http://www.gnu.org/licenses/gpl.html)
diff --git a/Setup b/Setup
new file mode 100755
index 0000000..e6a2ef1
--- /dev/null
+++ b/Setup
@@ -0,0 +1,266 @@
+#!/bin/bash
+
+# TODO: 2.0: use kdialog
+
+META_FULL_NAME="KShutDown"
+META_VERSION="`cat VERSION`"
+
+#if [[ (("$TERM" == "dumb") || ("$TERM" == "xterm")) && ("${1}" != "--launch-in-konsole") ]]; then
+# echo
+# echo "Press Ctrl+C to exit $META_FULL_NAME installer"
+# konsole --notabbar --notoolbar --workdir `dirname "${0}"` -T "$META_FULL_NAME Installer" -e ${0} --launch-in-konsole
+# exit
+#fi
+
+# installation dirs
+DEFAULT_DIR=`kde-config --prefix`
+if [ -z "$DEFAULT_DIR" ]; then
+ DEFAULT_DIR="/usr"
+fi
+INSTALL_DIR="$DEFAULT_DIR"
+
+# colors
+DEF_C="\E[37;40m"
+KEY_C="\E[31;40m"
+
+# configure options
+CONFIGURE_OPTIONS=""
+FAST_COMPILATION="true"
+
+# i18n
+# english
+I18N_TITLE_DOCS="Documentation and License"
+I18N_TITLE_SETUP="Compilation and Installation"
+I18N_CHANGE_DIR="Change installation directory (prefix)"
+I18N_DISABLE_FAST="Disable fast compilation"
+I18N_ENABLE_FAST="Enable fast compilation"
+I18N_INSTALL="Install"
+I18N_LICENSE="License"
+I18N_NEWS="What's new? (q - quit)"
+I18N_PRESS_ENTER="Press <Enter> to exit"
+I18N_QUIT="Quit"
+I18N_THANKS="Thank you for using"
+I18N_MENU="K Menu: Accessories -> KShutDown"
+I18N_CONF_WITH="Configuring with"
+I18N_INST_FAILED="Installation failed!"
+I18N_COMP_FAILED="Compilation failed!"
+I18N_CONF_FAILED="Configuration failed!"
+I18N_COMP_START="Compiling..."
+I18N_MINU=" This may take a few minutes."
+I18N_MISSING_DEPEN1="Make sure you have installed the 'kdelibs-devel' package"
+I18N_MISSING_DEPEN2=" which is required to compile any KDE application."
+I18N_ENTER_DIR="Enter a new prefix"
+I18N_SETUP="Setup"
+I18N_README="Readme"
+
+# polish
+if [[ ("$LANG" == "pl_PL.UTF-8") || ("$LANG" == "pl_PL") || ("$LANG" == "pl") ]]; then
+ I18N_TITLE_DOCS="Dokumentacja i licencja"
+ I18N_TITLE_SETUP="Kompilacja i instalacja"
+ I18N_CHANGE_DIR="Zmien katalog instalacji (prefix)"
+ I18N_DISABLE_FAST="Wylacz szybka kompilacje"
+ I18N_ENABLE_FAST="Wlacz szybka kompilacje"
+ I18N_INSTALL="Instaluj"
+ I18N_LICENSE="Licencja"
+ I18N_NEWS="Co nowego? (q - wyjscie)"
+ I18N_PRESS_ENTER="Nacisnij <Enter>, aby wyjsc"
+ I18N_QUIT="Zakoncz"
+ I18N_THANKS="Dziekujemy za uzycie"
+ I18N_MENU="Menu K: Akcesoria -> KShutDown"
+ I18N_CONF_WITH="Konfigurowanie z"
+ I18N_INST_FAILED="Instalacja nie powiodla sie!"
+ I18N_COMP_FAILED="Kompilacja nie powiodla sie!"
+ I18N_CONF_FAILED="Konfiguracja nie powiodla sie!"
+ I18N_COMP_START="Kompilowanie..."
+ I18N_MINU=" To moze potrwac kilka minut."
+ I18N_MISSING_DEPEN1="Upewnij sie, ze masz zainstalowana paczke 'kdelibs-devel',"
+ I18N_MISSING_DEPEN2=" ktora jest wymagana do kompilacji jakiejkolwiek aplikacji KDE."
+ I18N_ENTER_DIR="Wprowadz nowy prefix"
+ I18N_SETUP="Instalator"
+ I18N_README="Przeczytaj (readme)"
+fi
+
+#italian
+if [[ ("$LANG" == "it_IT.UTF-8") || ("$LANG" == "it_IT") || ("$LANG" == "it") ]]; then
+ I18N_TITLE_DOCS="Documentazione e Licenza"
+ I18N_TITLE_SETUP="Compilazione ed Installazione"
+ I18N_CHANGE_DIR="Cambia la cartella di destinazione (prefix)"
+ I18N_DISABLE_FAST="Disabilita compilazione veloce"
+ I18N_ENABLE_FAST="Abilita compilazione veloce"
+ I18N_INSTALL="Installa"
+ I18N_LICENSE="Licenza"
+ I18N_NEWS="Cosa c'è di nuovo? (q - esci)"
+ I18N_PRESS_ENTER="Premi <Enter> per uscire"
+ I18N_QUIT="Esci"
+ I18N_THANKS="Grazie di usare"
+ I18N_MENU="Menu K: Accessori -> KShutDown"
+ I18N_CONF_WITH="Configurazione con"
+ I18N_INST_FAILED="Installazione fallita!"
+ I18N_COMP_FAILED="Compilazione fallita!"
+ I18N_CONF_FAILED="Configurazione fallita!"
+ I18N_COMP_START="Compilazione..."
+ I18N_MINU=" Per questo potrebbero volerci alcuni minuti."
+ I18N_MISSING_DEPEN1="Assicurati di aver installato il pacchetto 'kdelibs-devel'"
+ I18N_MISSING_DEPEN2=" che è necessario per compilare ogni applicazione KDE."
+ I18N_ENTER_DIR="Inserisci una nuova destinazione"
+ I18N_SETUP="Installazione"
+ I18N_README="Leggimi"
+fi
+# internal functions
+
+ks_kill()
+{
+ echo
+ echo
+ echo "$I18N_SETUP: ${1}"
+ echo
+ echo "$I18N_PRESS_ENTER"
+ read
+ ks_quit 1
+}
+
+ks_quit()
+{
+ ks_reset
+ exit ${1}
+}
+
+ks_reset()
+{
+ tput sgr0
+}
+
+ks_show_finish_info()
+{
+ echo
+ echo "$I18N_THANKS $META_FULL_NAME!"
+ echo " The $META_FULL_NAME Team"
+ echo
+ echo "HOW TO RUN?"
+ echo
+ echo "$I18N_MENU"
+ echo "Command: kshutdown"
+ echo "Command line options: kshutdown --help"
+ echo
+ echo -e "$I18N_PRESS_ENTER"
+ read
+}
+
+ks_show_menu()
+{
+ echo -e "$DEF_C"
+ clear
+ echo
+ echo
+ echo " $I18N_SETUP"
+ echo " $META_FULL_NAME $META_VERSION"
+ echo
+ echo
+ echo -e " ${KEY_C}${I18N_TITLE_SETUP}${DEF_C}"
+ echo -e " [${KEY_C}i${DEF_C}] $I18N_INSTALL (./configure --prefix=${INSTALL_DIR}, make, kdesu -c \"make install\")"
+ echo -e " [${KEY_C}p${DEF_C}] $I18N_CHANGE_DIR"
+ if [ -n "$FAST_COMPILATION" ]; then
+ echo -e " [${KEY_C}f${DEF_C}] $I18N_DISABLE_FAST";
+ else
+ echo -e " [${KEY_C}f${DEF_C}] $I18N_ENABLE_FAST (--enable-final)";
+ fi
+ echo
+ echo -e " ${KEY_C}${I18N_TITLE_DOCS}${DEF_C}"
+ echo -e " [${KEY_C}n${DEF_C}] $I18N_NEWS"
+ echo -e " [${KEY_C}l${DEF_C}] $I18N_LICENSE (GNU GPL)"
+ echo -e " [${KEY_C}r${DEF_C}] $I18N_README"
+ echo
+ echo -e " [${KEY_C}q${DEF_C}] $I18N_QUIT"
+ echo
+ echo
+ echo " http://kshutdown.sourceforge.net"
+}
+
+while [ 1 ]; do
+ ks_show_menu
+ # wait for a single key
+ read -n 1 -s
+
+ # install
+ if [[ ("$REPLY" == "i") || ( "$REPLY" == "I" ) ]]; then
+ if [ -n "$FAST_COMPILATION" ]; then
+ CONFIGURE_OPTIONS="--prefix=${INSTALL_DIR} --enable-final";
+ else
+ CONFIGURE_OPTIONS="--prefix=${INSTALL_DIR}";
+ fi
+ echo
+ echo "$I18N_SETUP: $I18N_CONF_WITH '$CONFIGURE_OPTIONS'..."
+ echo
+ # configure
+ if ! [ -f ./configure ]; then
+ make -f admin/Makefile.common cvs
+ fi
+ if ./configure $CONFIGURE_OPTIONS; then
+ echo "$I18N_SETUP: $I18N_COMP_START"
+ echo "$I18N_MINU"
+ if make; then
+ if [ -w "${INSTALL_DIR}" ]; then
+ if make install; then
+ ks_show_finish_info
+ ks_quit
+ else
+ ks_kill "$I18N_INST_FAILED"
+ fi
+ else
+ if kdesu -c "make install"; then
+ ks_show_finish_info
+ ks_quit
+ else
+ ks_kill "$I18N_INST_FAILED"
+ fi
+ fi
+ else
+ ks_kill "$I18N_COMP_FAILED"
+ fi
+ else
+ echo
+ echo
+ echo "$I18N_SETUP: $I18N_MISSING_DEPEN1"
+ echo "$I18N_MISSING_DEPEN2"
+ ks_kill "$I18N_CONF_FAILED"
+ fi
+ ks_quit
+
+ # prefix
+ elif [[ ("$REPLY" == "p") || ( "$REPLY" == "P" ) ]]; then
+ echo
+ echo "$I18N_ENTER_DIR [${DEFAULT_DIR}]: "
+ read -e
+ if [ -z "$REPLY" ]; then
+ REPLY="$DEFAULT_DIR"
+ fi
+ INSTALL_DIR="$REPLY"
+
+ # toggle fast compilation
+ elif [[ ("$REPLY" == "f") || ( "$REPLY" == "F" ) ]]; then
+ if [ -z "$FAST_COMPILATION" ]; then
+ FAST_COMPILATION="true";
+ else
+ FAST_COMPILATION="";
+ fi
+
+ # news
+ elif [[ ("$REPLY" == "n") || ( "$REPLY" == "N" ) ]]; then
+ less "NEWS"
+
+ # license
+ elif [[ ("$REPLY" == "l") || ( "$REPLY" == "L" ) ]]; then
+ less "COPYING"
+
+ # readme
+ elif [[ ("$REPLY" == "r") || ( "$REPLY" == "R" ) ]]; then
+ less "README"
+
+ # quit
+ elif [[ ("$REPLY" == "q") || ( "$REPLY" == "Q" ) ]]; then
+ ks_reset
+ clear
+ exit
+ fi
+
+done
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..d54661b
--- /dev/null
+++ b/TODO
@@ -0,0 +1,55 @@
+
+IDEAS FROM KDE-APPS.ORG (http://kde-apps.org/content/show.php?content=9754)
+-----------------------
+
+- by MasterD on: 01/22/2006, 15:26
+ "Maybe you could add under "Extras" an option called "Beep warning" or
+ something like that. So there will be an loud beep at this time you had set.
+ So if you work on your computer hard and you forget the time there will be
+ an beep and then you know that you wanted to do something."
+
+- by aaron-koensgen on: 05/08/2006, 14:55
+ "(...) What about shutting down the computer when the CPU usage goes under
+ a certain level? I know this function from a windows program which is similar
+ to your application.
+ (see http://us.jpa-software.de/cms/index.php?option=content&task=view&id=7&Itemid=26)
+
+- "Reboot choice"
+ https://sourceforge.net/tracker/?func=detail&atid=605273&aid=1484842&group_id=93707
+
+- by DigitalCyanide on: 07/05/2004, 8:39
+ "How about adding "Console Mode" to the options? Saw this in one of the
+ Distro's a long time ago where the logout dialog had "End Session",
+ "Console Mode", "Turn Off", and "Restart". Kinda miss just being able
+ to go to init 3 without having end session, then going to another vc to
+ issue the init 3 (when you want to be graceful about it). Could just
+ have the ability to add it as a user command rather than just edit
+ existing commands too."
+
+- by Yaba on: 07/20/2004, 7:44
+ "What would be really great would be an option to be able to tell grub
+ which configuration to boot on the next boot."
+ /* lilo too */
+
+- by zero on: 12/02/2004, 1:35
+ "(...)add that grayed-out background effect
+ like when KDE logout is selected from the main menu(...)"
+
+- by Superstoned on: 04/06/2005, 15:27
+ "hey, someone asked for a way to auto-logout after a certain time of inactivity."
+
+- by klj on: 11/13/2005, 16:40
+ "(...) What I would really like to see was some kind of interaction with the bootloader, so it would be possible to reboot directy to windows/other distro without having to wait and choose it manually at boot."
+
+MISC. TODOS
+-----------
+
+- Grep for "FIXME" and "TODO" in *.cpp/*.h files
+- GDM/GNOME support
+- Add to KDE Extra Gear (KDE Base?)
+- "remote reboot and shutdown, maybe using ssh" (Giovanni Venturi)
+- Web interface? (probably via https)
+- System suspend (shutdown+z)
+- Shut down notification sent via KMail or IM/Kopete
+- Kopete plugin (shutdown via Jabber ;-)
+- Killing the specified application/process at the selected time
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..a6a3a43
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+1.0.4 \ No newline at end of file
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..d674ff8
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,11809 @@
+## -*- autoconf -*-
+
+dnl This file is part of the KDE libraries/packages
+dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu)
+dnl (C) 1997,98,99 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.
+
+dnl IMPORTANT NOTE:
+dnl Please do not modify this file unless you expect your modifications to be
+dnl carried into every other module in the repository.
+dnl
+dnl Single-module modifications are best placed in configure.in for kdelibs
+dnl and kdebase or configure.in.in if present.
+
+# KDE_PATH_X_DIRECT
+dnl Internal subroutine of AC_PATH_X.
+dnl Set ac_x_includes and/or ac_x_libraries.
+AC_DEFUN([KDE_PATH_X_DIRECT],
+[
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+if test "$ac_x_includes" = NO; then
+ # Guess where to find include files, by looking for this one X11 .h file.
+ test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+
+ # First, try using that file with no special directory specified.
+AC_TRY_CPP([#include <$x_direct_test_include>],
+[# We can compile using X headers with no special include directory.
+ac_x_includes=],
+[# Look for the header file in a standard set of common directories.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ for ac_dir in \
+ /usr/X11/include \
+ /usr/X11R6/include \
+ /usr/X11R5/include \
+ /usr/X11R4/include \
+ \
+ /usr/include/X11 \
+ /usr/include/X11R6 \
+ /usr/include/X11R5 \
+ /usr/include/X11R4 \
+ \
+ /usr/local/X11/include \
+ /usr/local/X11R6/include \
+ /usr/local/X11R5/include \
+ /usr/local/X11R4/include \
+ \
+ /usr/local/include/X11 \
+ /usr/local/include/X11R6 \
+ /usr/local/include/X11R5 \
+ /usr/local/include/X11R4 \
+ \
+ /usr/X386/include \
+ /usr/x386/include \
+ /usr/XFree86/include/X11 \
+ \
+ /usr/include \
+ /usr/local/include \
+ /usr/unsupported/include \
+ /usr/athena/include \
+ /usr/local/x11r5/include \
+ /usr/lpp/Xamples/include \
+ \
+ /usr/openwin/include \
+ /usr/openwin/share/include \
+ ; \
+ do
+ if test -r "$ac_dir/$x_direct_test_include"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+ done])
+fi # $ac_x_includes = NO
+
+if test "$ac_x_libraries" = NO; then
+ # Check for the libraries.
+
+ test -z "$x_direct_test_library" && x_direct_test_library=Xt
+ test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
+
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS="$LIBS"
+ LIBS="-l$x_direct_test_library $LIBS"
+AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)],
+[LIBS="$ac_save_LIBS"
+# We can link X programs with no special library path.
+ac_x_libraries=],
+[LIBS="$ac_save_LIBS"
+# First see if replacing the include by lib works.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
+ /usr/X11/lib${kdelibsuff} \
+ /usr/X11R6/lib${kdelibsuff} \
+ /usr/X11R5/lib${kdelibsuff} \
+ /usr/X11R4/lib${kdelibsuff} \
+ \
+ /usr/lib${kdelibsuff}/X11 \
+ /usr/lib${kdelibsuff}/X11R6 \
+ /usr/lib${kdelibsuff}/X11R5 \
+ /usr/lib${kdelibsuff}/X11R4 \
+ \
+ /usr/local/X11/lib${kdelibsuff} \
+ /usr/local/X11R6/lib${kdelibsuff} \
+ /usr/local/X11R5/lib${kdelibsuff} \
+ /usr/local/X11R4/lib${kdelibsuff} \
+ \
+ /usr/local/lib${kdelibsuff}/X11 \
+ /usr/local/lib${kdelibsuff}/X11R6 \
+ /usr/local/lib${kdelibsuff}/X11R5 \
+ /usr/local/lib${kdelibsuff}/X11R4 \
+ \
+ /usr/X386/lib${kdelibsuff} \
+ /usr/x386/lib${kdelibsuff} \
+ /usr/XFree86/lib${kdelibsuff}/X11 \
+ \
+ /usr/lib${kdelibsuff} \
+ /usr/local/lib${kdelibsuff} \
+ /usr/unsupported/lib${kdelibsuff} \
+ /usr/athena/lib${kdelibsuff} \
+ /usr/local/x11r5/lib${kdelibsuff} \
+ /usr/lpp/Xamples/lib${kdelibsuff} \
+ /lib/usr/lib${kdelibsuff}/X11 \
+ \
+ /usr/openwin/lib${kdelibsuff} \
+ /usr/openwin/share/lib${kdelibsuff} \
+ ; \
+do
+dnl Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl; do
+ if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done])
+fi # $ac_x_libraries = NO
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find a file (or one of more files in a list of dirs)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_FIND_FILE],
+[
+$3=NO
+for i in $2;
+do
+ for j in $1;
+ do
+ echo "configure: __oline__: $i/$j" >&AC_FD_CC
+ if test -r "$i/$j"; then
+ echo "taking that" >&AC_FD_CC
+ $3=$i
+ break 2
+ fi
+ done
+done
+])
+
+dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs,
+dnl if-not-found, test-parameter, prepend-path)
+dnl
+dnl Look for program-name in list-of-dirs+$PATH.
+dnl If prepend-path is set, look in $PATH+list-of-dirs instead.
+dnl If found, $variable-name is set. If not, if-not-found is evaluated.
+dnl test-parameter: if set, the program is executed with this arg,
+dnl and only a successful exit code is required.
+AC_DEFUN([KDE_FIND_PATH],
+[
+ AC_MSG_CHECKING([for $1])
+ if test -n "$$2"; then
+ kde_cv_path="$$2";
+ else
+ kde_cache=`echo $1 | sed 'y%./+-%__p_%'`
+
+ AC_CACHE_VAL(kde_cv_path_$kde_cache,
+ [
+ kde_cv_path="NONE"
+ kde_save_IFS=$IFS
+ IFS=':'
+ dirs=""
+ for dir in $PATH; do
+ dirs="$dirs $dir"
+ done
+ if test -z "$6"; then dnl Append dirs in PATH (default)
+ dirs="$3 $dirs"
+ else dnl Prepend dirs in PATH (if 6th arg is set)
+ dirs="$dirs $3"
+ fi
+ IFS=$kde_save_IFS
+
+ for dir in $dirs; do
+ if test -x "$dir/$1"; then
+ if test -n "$5"
+ then
+ evalstr="$dir/$1 $5 2>&1 "
+ if eval $evalstr; then
+ kde_cv_path="$dir/$1"
+ break
+ fi
+ else
+ kde_cv_path="$dir/$1"
+ break
+ fi
+ fi
+ done
+
+ eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+ ])
+
+ eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+ fi
+
+ if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+ AC_MSG_RESULT(not found)
+ $4
+ else
+ AC_MSG_RESULT($kde_cv_path)
+ $2=$kde_cv_path
+
+ fi
+])
+
+AC_DEFUN([KDE_MOC_ERROR_MESSAGE],
+[
+ AC_MSG_ERROR([No Qt meta object compiler (moc) found!
+Please check whether you installed Qt correctly.
+You need to have a running moc binary.
+configure tried to run $ac_cv_path_moc and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable MOC to the right one before running
+configure.
+])
+])
+
+AC_DEFUN([KDE_UIC_ERROR_MESSAGE],
+[
+ AC_MSG_WARN([No Qt ui compiler (uic) found!
+Please check whether you installed Qt correctly.
+You need to have a running uic binary.
+configure tried to run $ac_cv_path_uic and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable UIC to the right one before running
+configure.
+])
+])
+
+
+AC_DEFUN([KDE_CHECK_UIC_FLAG],
+[
+ AC_MSG_CHECKING([whether uic supports -$1 ])
+ kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'`
+ AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache,
+ [
+ cat >conftest.ui <<EOT
+ <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
+EOT
+ ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null"
+ if AC_TRY_EVAL(ac_uic_testrun); then
+ eval "kde_cv_prog_uic_$kde_cache=yes"
+ else
+ eval "kde_cv_prog_uic_$kde_cache=no"
+ fi
+ rm -f conftest*
+ ])
+
+ if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT([yes])
+ :
+ $3
+ else
+ AC_MSG_RESULT([no])
+ :
+ $4
+ fi
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find the meta object compiler and the ui compiler in the PATH,
+dnl in $QTDIR/bin, and some more usual places
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_MOC_UIC],
+[
+ AC_REQUIRE([KDE_CHECK_PERL])
+ qt_bindirs=""
+ for dir in $kde_qt_dirs; do
+ qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
+ done
+ qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
+ if test ! "$ac_qt_bindir" = "NO"; then
+ qt_bindirs="$ac_qt_bindir $qt_bindirs"
+ fi
+
+ KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE])
+ if test -z "$UIC_NOT_NEEDED"; then
+ KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""])
+ if test -z "$UIC_PATH" ; then
+ KDE_UIC_ERROR_MESSAGE
+ exit 1
+ else
+ UIC=$UIC_PATH
+
+ if test $kde_qtver = 3; then
+ KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no)
+ KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no)
+
+ if test x$ac_uic_supports_libpath = xyes; then
+ UIC="$UIC -L \$(kde_widgetdir)"
+ fi
+ if test x$ac_uic_supports_nounload = xyes; then
+ UIC="$UIC -nounload"
+ fi
+ fi
+ fi
+ else
+ UIC="echo uic not available: "
+ fi
+
+ AC_SUBST(MOC)
+ AC_SUBST(UIC)
+
+ UIC_TR="i18n"
+ if test $kde_qtver = 3; then
+ UIC_TR="tr2i18n"
+ fi
+
+ AC_SUBST(UIC_TR)
+])
+
+AC_DEFUN([KDE_1_CHECK_PATHS],
+[
+ KDE_1_CHECK_PATH_HEADERS
+
+ KDE_TEST_RPATH=
+
+ if test -n "$USE_RPATH"; then
+
+ if test -n "$kde_libraries"; then
+ KDE_TEST_RPATH="-R $kde_libraries"
+ fi
+
+ if test -n "$qt_libraries"; then
+ KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
+ fi
+
+ if test -n "$x_libraries"; then
+ KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
+ fi
+
+ KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
+ fi
+
+AC_MSG_CHECKING([for KDE libraries installed])
+ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_ERROR([your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log.])
+fi
+
+if eval `KDEDIR= ./conftest 2>&5`; then
+ kde_result=done
+else
+ kde_result=problems
+fi
+
+KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
+kde_have_all_paths=yes
+
+KDE_SET_PATHS($kde_result)
+
+])
+
+AC_DEFUN([KDE_SET_PATHS],
+[
+ kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+ kde_htmldir=\"$kde_htmldir\" \
+ kde_appsdir=\"$kde_appsdir\" \
+ kde_icondir=\"$kde_icondir\" \
+ kde_sounddir=\"$kde_sounddir\" \
+ kde_datadir=\"$kde_datadir\" \
+ kde_locale=\"$kde_locale\" \
+ kde_cgidir=\"$kde_cgidir\" \
+ kde_confdir=\"$kde_confdir\" \
+ kde_kcfgdir=\"$kde_kcfgdir\" \
+ kde_mimedir=\"$kde_mimedir\" \
+ kde_toolbardir=\"$kde_toolbardir\" \
+ kde_wallpaperdir=\"$kde_wallpaperdir\" \
+ kde_templatesdir=\"$kde_templatesdir\" \
+ kde_bindir=\"$kde_bindir\" \
+ kde_servicesdir=\"$kde_servicesdir\" \
+ kde_servicetypesdir=\"$kde_servicetypesdir\" \
+ kde_moduledir=\"$kde_moduledir\" \
+ kde_styledir=\"$kde_styledir\" \
+ kde_widgetdir=\"$kde_widgetdir\" \
+ xdg_appsdir=\"$xdg_appsdir\" \
+ xdg_menudir=\"$xdg_menudir\" \
+ xdg_directorydir=\"$xdg_directorydir\" \
+ kde_result=$1"
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_PATHS],
+[
+if test "$1" = "default"; then
+
+ if test -z "$kde_htmldir"; then
+ kde_htmldir='\${datadir}/doc/HTML'
+ fi
+ if test -z "$kde_appsdir"; then
+ kde_appsdir='\${datadir}/applnk'
+ fi
+ if test -z "$kde_icondir"; then
+ kde_icondir='\${datadir}/icons'
+ fi
+ if test -z "$kde_sounddir"; then
+ kde_sounddir='\${datadir}/sounds'
+ fi
+ if test -z "$kde_datadir"; then
+ kde_datadir='\${datadir}/apps'
+ fi
+ if test -z "$kde_locale"; then
+ kde_locale='\${datadir}/locale'
+ fi
+ if test -z "$kde_cgidir"; then
+ kde_cgidir='\${exec_prefix}/cgi-bin'
+ fi
+ if test -z "$kde_confdir"; then
+ kde_confdir='\${datadir}/config'
+ fi
+ if test -z "$kde_kcfgdir"; then
+ kde_kcfgdir='\${datadir}/config.kcfg'
+ fi
+ if test -z "$kde_mimedir"; then
+ kde_mimedir='\${datadir}/mimelnk'
+ fi
+ if test -z "$kde_toolbardir"; then
+ kde_toolbardir='\${datadir}/toolbar'
+ fi
+ if test -z "$kde_wallpaperdir"; then
+ kde_wallpaperdir='\${datadir}/wallpapers'
+ fi
+ if test -z "$kde_templatesdir"; then
+ kde_templatesdir='\${datadir}/templates'
+ fi
+ if test -z "$kde_bindir"; then
+ kde_bindir='\${exec_prefix}/bin'
+ fi
+ if test -z "$kde_servicesdir"; then
+ kde_servicesdir='\${datadir}/services'
+ fi
+ if test -z "$kde_servicetypesdir"; then
+ kde_servicetypesdir='\${datadir}/servicetypes'
+ fi
+ if test -z "$kde_moduledir"; then
+ if test "$kde_qtver" = "2"; then
+ kde_moduledir='\${libdir}/kde2'
+ else
+ kde_moduledir='\${libdir}/kde3'
+ fi
+ fi
+ if test -z "$kde_styledir"; then
+ kde_styledir='\${libdir}/kde3/plugins/styles'
+ fi
+ if test -z "$kde_widgetdir"; then
+ kde_widgetdir='\${libdir}/kde3/plugins/designer'
+ fi
+ if test -z "$xdg_appsdir"; then
+ xdg_appsdir='\${datadir}/applications/kde'
+ fi
+ if test -z "$xdg_menudir"; then
+ xdg_menudir='\${sysconfdir}/xdg/menus'
+ fi
+ if test -z "$xdg_directorydir"; then
+ xdg_directorydir='\${datadir}/desktop-directories'
+ fi
+
+ KDE_SET_PATHS(defaults)
+
+else
+
+ if test $kde_qtver = 1; then
+ AC_MSG_RESULT([compiling])
+ KDE_1_CHECK_PATHS
+ else
+ AC_MSG_ERROR([path checking not yet supported for KDE 2])
+ fi
+
+fi
+])
+
+AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS],
+[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
+ test -z "$kde_icondir" || test -z "$kde_sounddir" ||
+ test -z "$kde_datadir" || test -z "$kde_locale" ||
+ test -z "$kde_cgidir" || test -z "$kde_confdir" ||
+ test -z "$kde_kcfgdir" ||
+ test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
+ test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
+ test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
+ test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
+ test -z "$kde_styledir" || test -z "kde_widgetdir" ||
+ test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
+ test "x$kde_have_all_paths" != "xyes"; then
+ kde_have_all_paths=no
+ fi
+])
+
+AC_DEFUN([KDE_MISSING_PROG_ERROR],
+[
+ AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed KDE correctly.
+])
+])
+
+AC_DEFUN([KDE_MISSING_ARTS_ERROR],
+[
+ AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+])
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_BINDIRS],
+[
+ kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
+ test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
+ if test -n "$KDEDIRS"; then
+ kde_save_IFS=$IFS
+ IFS=:
+ for dir in $KDEDIRS; do
+ kde_default_bindirs="$dir/bin $kde_default_bindirs "
+ done
+ IFS=$kde_save_IFS
+ fi
+])
+
+AC_DEFUN([KDE_SUBST_PROGRAMS],
+[
+ AC_ARG_WITH(arts,
+ AC_HELP_STRING([--without-arts],[build without aRts [default=no]]),
+ [build_arts=$withval],
+ [build_arts=yes]
+ )
+ AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
+ if test "$build_arts" = "no"; then
+ AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts])
+ fi
+
+ KDE_SET_DEFAULT_BINDIRS
+ kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs"
+ KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)])
+ KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)])
+ if test "$build_arts" '!=' "no"; then
+ KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)])
+ KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)])
+ fi
+ KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs])
+
+ kde32ornewer=1
+ kde33ornewer=1
+ if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
+ kde32ornewer=
+ kde33ornewer=
+ else
+ if test "$kde_qtver" = "3"; then
+ if test "$kde_qtsubver" -le 1; then
+ kde32ornewer=
+ fi
+ if test "$kde_qtsubver" -le 2; then
+ kde33ornewer=
+ fi
+ if test "$KDECONFIG" != "compiled"; then
+ if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then
+ kde33ornewer=
+ fi
+ fi
+ fi
+ fi
+
+ if test -n "$kde32ornewer"; then
+ KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)])
+ KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
+ fi
+ if test -n "$kde33ornewer"; then
+ KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)])
+ AC_SUBST(MAKEKDEWIDGETS)
+ fi
+ KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""])
+
+ if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then
+ kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
+ test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
+ AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET)
+ if test "$KDE_XSL_STYLESHEET" = "NO"; then
+ KDE_XSL_STYLESHEET=""
+ else
+ KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
+ fi
+ fi
+
+ DCOP_DEPENDENCIES='$(DCOPIDL)'
+ if test -n "$kde32ornewer"; then
+ KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
+ DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
+ AC_SUBST(KCONFIG_COMPILER)
+ AC_SUBST(KCFG_DEPENDENCIES)
+ AC_SUBST(DCOPIDLNG)
+ fi
+ AC_SUBST(DCOPIDL)
+ AC_SUBST(DCOPIDL2CPP)
+ AC_SUBST(DCOP_DEPENDENCIES)
+ AC_SUBST(MCOPIDL)
+ AC_SUBST(ARTSCCONFIG)
+ AC_SUBST(MEINPROC)
+ AC_SUBST(KDE_XSL_STYLESHEET)
+ AC_SUBST(XMLLINT)
+])dnl
+
+AC_DEFUN([AC_CREATE_KFSSTND],
+[
+AC_REQUIRE([AC_CHECK_RPATH])
+
+AC_MSG_CHECKING([for KDE paths])
+kde_result=""
+kde_cached_paths=yes
+AC_CACHE_VAL(kde_cv_all_paths,
+[
+ KDE_SET_DEFAULT_PATHS($1)
+ kde_cached_paths=no
+])
+eval "$kde_cv_all_paths"
+KDE_CHECK_PATHS_FOR_COMPLETENESS
+if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
+ # wrong values were cached, may be, we can set better ones
+ kde_result=
+ kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
+ kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir=
+ kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
+ kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
+ kde_have_all_paths=
+ kde_styledir=
+ kde_widgetdir=
+ xdg_appsdir = xdg_menudir= xdg_directorydir=
+ KDE_SET_DEFAULT_PATHS($1)
+ eval "$kde_cv_all_paths"
+ KDE_CHECK_PATHS_FOR_COMPLETENESS
+ kde_result="$kde_result (cache overridden)"
+fi
+if test "$kde_have_all_paths" = "no"; then
+ AC_MSG_ERROR([configure could not run a little KDE program to test the environment.
+Since it had compiled and linked before, it must be a strange problem on your system.
+Look at config.log for details. If you are not able to fix this, look at
+http://www.kde.org/faq/installation.html or any www.kde.org mirror.
+(If you're using an egcs version on Linux, you may update binutils!)
+])
+else
+ rm -f conftest*
+ AC_MSG_RESULT($kde_result)
+fi
+
+bindir=$kde_bindir
+
+KDE_SUBST_PROGRAMS
+
+])
+
+AC_DEFUN([AC_SUBST_KFSSTND],
+[
+AC_SUBST(kde_htmldir)
+AC_SUBST(kde_appsdir)
+AC_SUBST(kde_icondir)
+AC_SUBST(kde_sounddir)
+AC_SUBST(kde_datadir)
+AC_SUBST(kde_locale)
+AC_SUBST(kde_confdir)
+AC_SUBST(kde_kcfgdir)
+AC_SUBST(kde_mimedir)
+AC_SUBST(kde_wallpaperdir)
+AC_SUBST(kde_bindir)
+dnl X Desktop Group standards
+AC_SUBST(xdg_appsdir)
+AC_SUBST(xdg_menudir)
+AC_SUBST(xdg_directorydir)
+dnl for KDE 2
+AC_SUBST(kde_templatesdir)
+AC_SUBST(kde_servicesdir)
+AC_SUBST(kde_servicetypesdir)
+AC_SUBST(kde_moduledir)
+AC_SUBST(kdeinitdir, '$(kde_moduledir)')
+AC_SUBST(kde_styledir)
+AC_SUBST(kde_widgetdir)
+if test "$kde_qtver" = 1; then
+ kde_minidir="$kde_icondir/mini"
+else
+# for KDE 1 - this breaks KDE2 apps using minidir, but
+# that's the plan ;-/
+ kde_minidir="/dev/null"
+fi
+dnl AC_SUBST(kde_minidir)
+dnl AC_SUBST(kde_cgidir)
+dnl AC_SUBST(kde_toolbardir)
+])
+
+AC_DEFUN([KDE_MISC_TESTS],
+[
+ dnl Checks for libraries.
+ AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD
+ AC_SUBST(LIBUTIL)
+ AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD
+ AC_SUBST(LIBCOMPAT)
+ kde_have_crypt=
+ AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes],
+ AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [
+ AC_MSG_WARN([you have no crypt in either libcrypt or libc.
+You should install libcrypt from another source or configure with PAM
+support])
+ kde_have_crypt=no
+ ]))
+ AC_SUBST(LIBCRYPT)
+ if test $kde_have_crypt = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function])
+ fi
+ AC_CHECK_SOCKLEN_T
+ AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ AC_CHECK_LIB(dnet_stub, dnet_ntoa,
+ [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
+ fi
+ AC_CHECK_FUNC(inet_ntoa)
+ if test $ac_cv_func_inet_ntoa = no; then
+ AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
+ fi
+ AC_CHECK_FUNC(connect)
+ if test $ac_cv_func_connect = no; then
+ AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
+ $X_EXTRA_LIBS)
+ fi
+
+ AC_CHECK_FUNC(remove)
+ if test $ac_cv_func_remove = no; then
+ AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ AC_CHECK_FUNC(shmat, ,
+ AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
+
+ # more headers that need to be explicitly included on darwin
+ AC_CHECK_HEADERS(sys/types.h stdint.h)
+
+ # sys/bitypes.h is needed for uint32_t and friends on Tru64
+ AC_CHECK_HEADERS(sys/bitypes.h)
+
+ # darwin requires a poll emulation library
+ AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll")
+
+ # for some image handling on Mac OS X
+ AC_CHECK_HEADERS(Carbon/Carbon.h)
+
+ # CoreAudio framework
+ AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
+ AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
+ FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio"
+ ])
+
+ AC_CHECK_RES_INIT
+ AC_SUBST(LIB_POLL)
+ AC_SUBST(FRAMEWORK_COREAUDIO)
+ LIBSOCKET="$X_EXTRA_LIBS"
+ AC_SUBST(LIBSOCKET)
+ AC_SUBST(X_EXTRA_LIBS)
+ AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4
+ AC_SUBST(LIBUCB)
+
+ case $host in dnl this *is* LynxOS specific
+ *-*-lynxos* )
+ AC_MSG_CHECKING([LynxOS header file wrappers])
+ [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"]
+ AC_MSG_RESULT(disabled)
+ AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS
+ ;;
+ esac
+
+ KDE_CHECK_TYPES
+ KDE_CHECK_LIBDL
+ KDE_CHECK_STRLCPY
+ KDE_CHECK_PIE_SUPPORT
+
+# darwin needs this to initialize the environment
+AC_CHECK_HEADERS(crt_externs.h)
+AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
+
+AH_VERBATIM(_DARWIN_ENVIRON,
+[
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+])
+
+AH_VERBATIM(_AIX_STRINGS_H_BZERO,
+[
+/*
+ * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
+ * that defines bzero.
+ */
+
+#if defined(_AIX)
+#include <strings.h>
+#endif
+])
+
+AC_CHECK_FUNCS([vsnprintf snprintf])
+
+AH_VERBATIM(_TRU64,[
+/*
+ * 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
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Find the header files and libraries for X-Windows. Extended the
+dnl macro AC_PATH_X
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([K_PATH_X],
+[
+AC_REQUIRE([KDE_MISC_TESTS])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_ARG_ENABLE(
+ embedded,
+ AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]),
+ kde_use_qt_emb=$enableval,
+ kde_use_qt_emb=no
+)
+
+AC_ARG_ENABLE(
+ qtopia,
+ AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]),
+ kde_use_qt_emb_palm=$enableval,
+ kde_use_qt_emb_palm=no
+)
+
+AC_ARG_ENABLE(
+ mac,
+ AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]),
+ kde_use_qt_mac=$enableval,
+ kde_use_qt_mac=no
+)
+
+# used to disable x11-specific stuff on special platforms
+AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
+
+AC_MSG_CHECKING(for X)
+
+AC_CACHE_VAL(kde_cv_have_x,
+[# One or both of the vars are not set, and there is no cached value.
+if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
+ kde_x_includes=NO
+else
+ kde_x_includes=$x_includes
+fi
+if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
+ kde_x_libraries=NO
+else
+ kde_x_libraries=$x_libraries
+fi
+
+# below we use the standard autoconf calls
+ac_x_libraries=$kde_x_libraries
+ac_x_includes=$kde_x_includes
+
+KDE_PATH_X_DIRECT
+dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries.
+dnl Unfortunately, if compiling with the N32 ABI, this is not the correct
+dnl location. The correct location is /usr/lib32 or an undefined value
+dnl (the linker is smart enough to pick the correct default library).
+dnl Things work just fine if you use just AC_PATH_X_DIRECT.
+dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to
+dnl /usr/openwin/include, which doesn't work. /usr/include does work, so
+dnl x_includes should be left alone.
+case "$host" in
+mips-sgi-irix6*)
+ ;;
+*-*-solaris*)
+ ;;
+*)
+ _AC_PATH_X_XMKMF
+ if test -z "$ac_x_includes"; then
+ ac_x_includes="."
+ fi
+ if test -z "$ac_x_libraries"; then
+ ac_x_libraries="/usr/lib${kdelibsuff}"
+ fi
+esac
+#from now on we use our own again
+
+# when the user already gave --x-includes, we ignore
+# what the standard autoconf macros told us.
+if test "$kde_x_includes" = NO; then
+ kde_x_includes=$ac_x_includes
+fi
+
+# for --x-libraries too
+if test "$kde_x_libraries" = NO; then
+ kde_x_libraries=$ac_x_libraries
+fi
+
+if test "$kde_x_includes" = NO; then
+ AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!])
+fi
+
+if test "$kde_x_libraries" = NO; then
+ AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!])
+fi
+
+# Record where we found X for the cache.
+kde_cv_have_x="have_x=yes \
+ kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
+])dnl
+
+eval "$kde_cv_have_x"
+
+if test "$have_x" != yes; then
+ AC_MSG_RESULT($have_x)
+ no_x=yes
+else
+ AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes])
+fi
+
+if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
+ X_INCLUDES=""
+ x_includes="."; dnl better than nothing :-
+ else
+ x_includes=$kde_x_includes
+ X_INCLUDES="-I$x_includes"
+fi
+
+if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE; then
+ X_LDFLAGS=""
+ x_libraries="/usr/lib"; dnl better than nothing :-
+ else
+ x_libraries=$kde_x_libraries
+ X_LDFLAGS="-L$x_libraries"
+fi
+all_includes="$X_INCLUDES"
+all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS"
+
+# Check for libraries that X11R6 Xt/Xaw programs need.
+ac_save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+# check for ICE first), but we must link in the order -lSM -lICE or
+# we get undefined symbols. So assume we have SM if we have ICE.
+# These have to be linked with before -lX11, unlike the other
+# libraries we check for below, so use a different variable.
+# --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
+AC_CHECK_LIB(ICE, IceConnectionNumber,
+ [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS)
+LDFLAGS="$ac_save_LDFLAGS"
+
+LIB_X11='-lX11 $(LIBSOCKET)'
+
+AC_MSG_CHECKING(for libXext)
+AC_CACHE_VAL(kde_cv_have_libXext,
+[
+kde_ldflags_safe="$LDFLAGS"
+kde_libs_safe="$LIBS"
+
+LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
+LIBS="-lXext -lX11 $LIBSOCKET"
+
+AC_TRY_LINK([
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+],
+[
+printf("hello Xext\n");
+],
+kde_cv_have_libXext=yes,
+kde_cv_have_libXext=no
+)
+
+LDFLAGS=$kde_ldflags_safe
+LIBS=$kde_libs_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_libXext)
+
+if test "$kde_cv_have_libXext" = "no"; then
+ AC_MSG_ERROR([We need a working libXext to proceed. Since configure
+can't find it itself, we stop here assuming that make wouldn't find
+them either.])
+fi
+
+LIB_XEXT="-lXext"
+QTE_NORTTI=""
+
+elif test "$kde_use_qt_emb" = "yes"; then
+ dnl We're using QT Embedded
+ CPPFLAGS=-DQWS
+ CXXFLAGS="$CXXFLAGS -fno-rtti"
+ QTE_NORTTI="-fno-rtti -DQWS"
+ X_PRE_LIBS=""
+ LIB_X11=""
+ LIB_XEXT=""
+ LIB_XRENDER=""
+ LIBSM=""
+ X_INCLUDES=""
+ X_LDFLAGS=""
+ x_includes=""
+ x_libraries=""
+elif test "$kde_use_qt_mac" = "yes"; then
+ dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
+ dnl be included to get the information) --Sam
+ CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
+ CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
+ X_PRE_LIBS=""
+ LIB_X11=""
+ LIB_XEXT=""
+ LIB_XRENDER=""
+ LIBSM=""
+ X_INCLUDES=""
+ X_LDFLAGS=""
+ x_includes=""
+ x_libraries=""
+fi
+AC_SUBST(X_PRE_LIBS)
+AC_SUBST(LIB_X11)
+AC_SUBST(LIB_XRENDER)
+AC_SUBST(LIBSM)
+AC_SUBST(X_INCLUDES)
+AC_SUBST(X_LDFLAGS)
+AC_SUBST(x_includes)
+AC_SUBST(x_libraries)
+AC_SUBST(QTE_NORTTI)
+AC_SUBST(LIB_XEXT)
+
+])
+
+AC_DEFUN([KDE_PRINT_QT_PROGRAM],
+[
+AC_REQUIRE([KDE_USE_QT])
+cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qglobal.h>
+#include <qapplication.h>
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qevent.h>
+#include <qstring.h>
+#include <qstyle.h>
+EOF
+
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+#if QT_VERSION < 210
+#error 1
+#endif
+EOF
+fi
+fi
+
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qcursor.h>
+#include <qstylefactory.h>
+#include <private/qucomextra_p.h>
+EOF
+fi
+
+echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
+cat >> conftest.$ac_ext <<EOF
+#error 1
+#endif
+
+int main() {
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+ QStringList *t = new QStringList();
+ Q_UNUSED(t);
+EOF
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+ QString s;
+ s.setLatin1("Elvis is alive", 14);
+EOF
+fi
+fi
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+ (void)QStyleFactory::create(QString::null);
+ QCursor c(Qt::WhatsThisCursor);
+EOF
+fi
+cat >> conftest.$ac_ext <<EOF
+ return 0;
+}
+EOF
+])
+
+AC_DEFUN([KDE_USE_QT],
+[
+if test -z "$1"; then
+ # Current default Qt version: 3.3
+ kde_qtver=3
+ kde_qtsubver=3
+else
+ kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
+ # following is the check if subversion isnt found in passed argument
+ if test "$kde_qtsubver" = "$1"; then
+ kde_qtsubver=1
+ fi
+ kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
+ if test "$kde_qtver" = "1"; then
+ kde_qtsubver=42
+ fi
+fi
+
+if test -z "$2"; then
+ if test "$kde_qtver" = "2"; then
+ if test $kde_qtsubver -gt 0; then
+ kde_qt_minversion=">= Qt 2.2.2"
+ else
+ kde_qt_minversion=">= Qt 2.0.2"
+ fi
+ fi
+ if test "$kde_qtver" = "3"; then
+ if test $kde_qtsubver -gt 0; then
+ if test $kde_qtsubver -gt 1; then
+ if test $kde_qtsubver -gt 2; then
+ kde_qt_minversion=">= Qt 3.3 and < 4.0"
+ else
+ kde_qt_minversion=">= Qt 3.2 and < 4.0"
+ fi
+ else
+ kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0"
+ fi
+ else
+ kde_qt_minversion=">= Qt 3.0 and < 4.0"
+ fi
+ fi
+ if test "$kde_qtver" = "1"; then
+ kde_qt_minversion=">= 1.42 and < 2.0"
+ fi
+else
+ kde_qt_minversion="$2"
+fi
+
+if test -z "$3"; then
+ if test $kde_qtver = 3; then
+ if test $kde_qtsubver -gt 0; then
+ kde_qt_verstring="QT_VERSION >= 0x03@VER@00 && QT_VERSION < 0x040000"
+ qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
+ kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"`
+ else
+ kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000"
+ fi
+ fi
+ if test $kde_qtver = 2; then
+ if test $kde_qtsubver -gt 0; then
+ kde_qt_verstring="QT_VERSION >= 222"
+ else
+ kde_qt_verstring="QT_VERSION >= 200"
+ fi
+ fi
+ if test $kde_qtver = 1; then
+ kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
+ fi
+else
+ kde_qt_verstring="$3"
+fi
+
+if test $kde_qtver = 4; then
+ kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4"
+fi
+if test $kde_qtver = 3; then
+ kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3"
+fi
+if test $kde_qtver = 2; then
+ kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
+fi
+if test $kde_qtver = 1; then
+ kde_qt_dirs="$QTDIR /usr/lib/qt"
+fi
+])
+
+AC_DEFUN([KDE_CHECK_QT_DIRECT],
+[
+AC_REQUIRE([KDE_USE_QT])
+AC_MSG_CHECKING([if Qt compiles without flags])
+AC_CACHE_VAL(kde_cv_qt_direct,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
+ac_LIBRARY_PATH="$LIBRARY_PATH"
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_includes"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
+else
+LIBS="$LIBQT $LIBSOCKET"
+fi
+LD_LIBRARY_PATH=
+export LD_LIBRARY_PATH
+LIBRARY_PATH=
+export LIBRARY_PATH
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ kde_cv_qt_direct="yes"
+else
+ kde_cv_qt_direct="no"
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat conftest.$ac_ext >&AC_FD_CC
+fi
+
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
+export LD_LIBRARY_PATH
+LIBRARY_PATH="$ac_LIBRARY_PATH"
+export LIBRARY_PATH
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_qt_direct" = "yes"; then
+ AC_MSG_RESULT(yes)
+ $1
+else
+ AC_MSG_RESULT(no)
+ $2
+fi
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the Qt headers and libraries.
+dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed)
+dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_1_3],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([KDE_USE_QT])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+dnl ------------------------------------------------------------------------
+dnl Add configure flag to enable linking to MT version of Qt library.
+dnl ------------------------------------------------------------------------
+
+AC_ARG_ENABLE(
+ mt,
+ AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]),
+ kde_use_qt_mt=$enableval,
+ [
+ if test $kde_qtver = 3; then
+ kde_use_qt_mt=yes
+ else
+ kde_use_qt_mt=no
+ fi
+ ]
+)
+
+USING_QT_MT=""
+
+dnl ------------------------------------------------------------------------
+dnl If we not get --disable-qt-mt then adjust some vars for the host.
+dnl ------------------------------------------------------------------------
+
+KDE_MT_LDFLAGS=
+KDE_MT_LIBS=
+if test "x$kde_use_qt_mt" = "xyes"; then
+ KDE_CHECK_THREADING
+ if test "x$kde_use_threading" = "xyes"; then
+ CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
+ KDE_MT_LDFLAGS="$USE_THREADS"
+ KDE_MT_LIBS="$LIBPTHREAD"
+ else
+ kde_use_qt_mt=no
+ fi
+fi
+AC_SUBST(KDE_MT_LDFLAGS)
+AC_SUBST(KDE_MT_LIBS)
+
+kde_qt_was_given=yes
+
+dnl ------------------------------------------------------------------------
+dnl If we haven't been told how to link to Qt, we work it out for ourselves.
+dnl ------------------------------------------------------------------------
+if test -z "$LIBQT_GLOB"; then
+ if test "x$kde_use_qt_emb" = "xyes"; then
+ LIBQT_GLOB="libqte.*"
+ else
+ LIBQT_GLOB="libqt.*"
+ fi
+fi
+
+dnl ------------------------------------------------------------
+dnl If we got --enable-embedded then adjust the Qt library name.
+dnl ------------------------------------------------------------
+if test "x$kde_use_qt_emb" = "xyes"; then
+ qtlib="qte"
+else
+ qtlib="qt"
+fi
+
+kde_int_qt="-l$qtlib"
+
+if test -z "$LIBQPE"; then
+dnl ------------------------------------------------------------
+dnl If we got --enable-palmtop then add -lqpe to the link line
+dnl ------------------------------------------------------------
+ if test "x$kde_use_qt_emb" = "xyes"; then
+ if test "x$kde_use_qt_emb_palm" = "xyes"; then
+ LIB_QPE="-lqpe"
+ else
+ LIB_QPE=""
+ fi
+ else
+ LIB_QPE=""
+ fi
+fi
+
+dnl ------------------------------------------------------------------------
+dnl If we got --enable-qt-mt then adjust the Qt library name for the host.
+dnl ------------------------------------------------------------------------
+
+if test "x$kde_use_qt_mt" = "xyes"; then
+ LIBQT="-l$qtlib-mt"
+ kde_int_qt="-l$qtlib-mt"
+ LIBQT_GLOB="lib$qtlib-mt.*"
+ USING_QT_MT="using -mt"
+else
+ LIBQT="-l$qtlib"
+fi
+
+if test $kde_qtver != 1; then
+
+ AC_REQUIRE([AC_FIND_PNG])
+ AC_REQUIRE([AC_FIND_JPEG])
+ LIBQT="$LIBQT $LIBPNG $LIBJPEG"
+fi
+
+if test $kde_qtver = 3; then
+ AC_REQUIRE([KDE_CHECK_LIBDL])
+ LIBQT="$LIBQT $LIBDL"
+fi
+
+AC_MSG_CHECKING([for Qt])
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
+fi
+ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
+qt_libraries=""
+qt_includes=""
+AC_ARG_WITH(qt-dir,
+ AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]),
+ [ ac_qt_includes="$withval"/include
+ ac_qt_libraries="$withval"/lib${kdelibsuff}
+ ac_qt_bindir="$withval"/bin
+ ])
+
+AC_ARG_WITH(qt-includes,
+ AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]),
+ [
+ ac_qt_includes="$withval"
+ ])
+
+kde_qt_libs_given=no
+
+AC_ARG_WITH(qt-libraries,
+ AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]),
+ [ ac_qt_libraries="$withval"
+ kde_qt_libs_given=yes
+ ])
+
+AC_CACHE_VAL(ac_cv_have_qt,
+[#try to guess Qt locations
+
+qt_incdirs=""
+for dir in $kde_qt_dirs; do
+ qt_incdirs="$qt_incdirs $dir/include $dir"
+done
+qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
+if test ! "$ac_qt_includes" = "NO"; then
+ qt_incdirs="$ac_qt_includes $qt_incdirs"
+fi
+
+if test "$kde_qtver" != "1"; then
+ kde_qt_header=qstyle.h
+else
+ kde_qt_header=qglobal.h
+fi
+
+AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir)
+ac_qt_includes="$qt_incdir"
+
+qt_libdirs=""
+for dir in $kde_qt_dirs; do
+ qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir"
+done
+qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
+if test ! "$ac_qt_libraries" = "NO"; then
+ qt_libdir=$ac_qt_libraries
+else
+ qt_libdirs="$ac_qt_libraries $qt_libdirs"
+ # if the Qt was given, the chance is too big that libqt.* doesn't exist
+ qt_libdir=NONE
+ for dir in $qt_libdirs; do
+ try="ls -1 $dir/${LIBQT_GLOB}"
+ if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+ done
+fi
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+ if test -e "$a"; then
+ LIBQT="$LIBQT ${kde_int_qt}_incremental"
+ break
+ fi
+done
+
+ac_qt_libraries="$qt_libdir"
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ rm -f conftest*
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat conftest.$ac_ext >&AC_FD_CC
+ ac_qt_libraries="NO"
+fi
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+AC_LANG_RESTORE
+if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
+ ac_cv_have_qt="have_qt=no"
+ ac_qt_notfound=""
+ missing_qt_mt=""
+ if test "$ac_qt_includes" = NO; then
+ if test "$ac_qt_libraries" = NO; then
+ ac_qt_notfound="(headers and libraries)";
+ else
+ ac_qt_notfound="(headers)";
+ fi
+ else
+ if test "x$kde_use_qt_mt" = "xyes"; then
+ missing_qt_mt="
+Make sure that you have compiled Qt with thread support!"
+ ac_qt_notfound="(library $qtlib-mt)";
+ else
+ ac_qt_notfound="(library $qtlib)";
+ fi
+ fi
+
+ AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
+For more details about this problem, look at the end of config.log.$missing_qt_mt])
+else
+ have_qt="yes"
+fi
+])
+
+eval "$ac_cv_have_qt"
+
+if test "$have_qt" != yes; then
+ AC_MSG_RESULT([$have_qt]);
+else
+ ac_cv_have_qt="have_qt=yes \
+ ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
+ AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT])
+
+ qt_libraries="$ac_qt_libraries"
+ qt_includes="$ac_qt_includes"
+fi
+
+if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
+ KDE_CHECK_QT_DIRECT(qt_libraries= ,[])
+fi
+
+AC_SUBST(qt_libraries)
+AC_SUBST(qt_includes)
+
+if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
+ QT_INCLUDES=""
+else
+ QT_INCLUDES="-I$qt_includes"
+ all_includes="$QT_INCLUDES $all_includes"
+fi
+
+if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
+ QT_LDFLAGS=""
+else
+ QT_LDFLAGS="-L$qt_libraries"
+ all_libraries="$QT_LDFLAGS $all_libraries"
+fi
+test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
+
+AC_SUBST(QT_INCLUDES)
+AC_SUBST(QT_LDFLAGS)
+AC_PATH_QT_MOC_UIC
+
+KDE_CHECK_QT_JPEG
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
+else
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
+fi
+test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+ if test -e "$a"; then
+ LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
+ break
+ fi
+done
+
+AC_SUBST(LIB_QT)
+AC_SUBST(LIB_QPE)
+
+AC_SUBST(kde_qtver)
+])
+
+AC_DEFUN([AC_PATH_QT],
+[
+AC_PATH_QT_1_3
+])
+
+AC_DEFUN([KDE_CHECK_UIC_PLUGINS],
+[
+AC_REQUIRE([AC_PATH_QT_MOC_UIC])
+
+if test x$ac_uic_supports_libpath = xyes; then
+
+AC_MSG_CHECKING([if UIC has KDE plugins available])
+AC_CACHE_VAL(kde_cv_uic_plugins,
+[
+cat > actest.ui << EOF
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>NewConnectionDialog</class>
+<widget class="QDialog">
+ <widget class="KLineEdit">
+ <property name="name">
+ <cstring>testInput</cstring>
+ </property>
+ </widget>
+</widget>
+</UI>
+EOF
+
+
+
+kde_cv_uic_plugins=no
+kde_line="$UIC_PATH -L $kde_widgetdir"
+if test x$ac_uic_supports_nounload = xyes; then
+ kde_line="$kde_line -nounload"
+fi
+kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
+if AC_TRY_EVAL(kde_line); then
+ # if you're trying to debug this check and think it's incorrect,
+ # better check your installation. The check _is_ correct - your
+ # installation is not.
+ if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
+ kde_cv_uic_plugins=yes
+ fi
+fi
+rm -f actest.ui actest.cpp
+])
+
+AC_MSG_RESULT([$kde_cv_uic_plugins])
+if test "$kde_cv_uic_plugins" != yes; then
+ AC_MSG_ERROR([
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs.
+The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the
+_same Qt version_, compiled with the _same compiler_ and the same Qt
+configuration settings.
+])
+fi
+fi
+])
+
+AC_DEFUN([KDE_CHECK_FINAL],
+[
+ AC_ARG_ENABLE(final,
+ AC_HELP_STRING([--enable-final],
+ [build size optimized apps (experimental - needs lots of memory)]),
+ kde_use_final=$enableval, kde_use_final=no)
+
+ if test "x$kde_use_final" = "xyes"; then
+ KDE_USE_FINAL_TRUE=""
+ KDE_USE_FINAL_FALSE="#"
+ else
+ KDE_USE_FINAL_TRUE="#"
+ KDE_USE_FINAL_FALSE=""
+ fi
+ AC_SUBST(KDE_USE_FINAL_TRUE)
+ AC_SUBST(KDE_USE_FINAL_FALSE)
+])
+
+AC_DEFUN([KDE_CHECK_CLOSURE],
+[
+ AC_ARG_ENABLE(closure,
+ AC_HELP_STRING([--enable-closure],[delay template instantiation]),
+ kde_use_closure=$enableval, kde_use_closure=no)
+
+ KDE_NO_UNDEFINED=""
+ if test "x$kde_use_closure" = "xyes"; then
+ KDE_USE_CLOSURE_TRUE=""
+ KDE_USE_CLOSURE_FALSE="#"
+# CXXFLAGS="$CXXFLAGS $REPO"
+ else
+ KDE_USE_CLOSURE_TRUE="#"
+ KDE_USE_CLOSURE_FALSE=""
+ KDE_NO_UNDEFINED=""
+ case $host in
+ *-*-linux-gnu)
+ KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined],
+ [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined],
+ [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"],
+ [KDE_NO_UNDEFINED=""])],
+ [KDE_NO_UNDEFINED=""])
+ ;;
+ esac
+ fi
+ AC_SUBST(KDE_USE_CLOSURE_TRUE)
+ AC_SUBST(KDE_USE_CLOSURE_FALSE)
+ AC_SUBST(KDE_NO_UNDEFINED)
+])
+
+dnl Check if the linker supports --enable-new-dtags and --as-needed
+AC_DEFUN([KDE_CHECK_NEW_LDFLAGS],
+[
+ AC_ARG_ENABLE(new_ldflags,
+ AC_HELP_STRING([--enable-new-ldflags],
+ [enable the new linker flags]),
+ kde_use_new_ldflags=$enableval,
+ kde_use_new_ldflags=no)
+
+ LDFLAGS_AS_NEEDED=""
+ LDFLAGS_NEW_DTAGS=""
+ if test "x$kde_use_new_ldflags" = "xyes"; then
+ LDFLAGS_NEW_DTAGS=""
+ KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags],
+ [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],)
+
+ KDE_CHECK_COMPILER_FLAG([Wl,--as-needed],
+ [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],)
+ fi
+ AC_SUBST(LDFLAGS_AS_NEEDED)
+ AC_SUBST(LDFLAGS_NEW_DTAGS)
+])
+
+AC_DEFUN([KDE_CHECK_NMCHECK],
+[
+ AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]),
+ kde_use_nmcheck=$enableval, kde_use_nmcheck=no)
+
+ if test "$kde_use_nmcheck" = "yes"; then
+ KDE_USE_NMCHECK_TRUE=""
+ KDE_USE_NMCHECK_FALSE="#"
+ else
+ KDE_USE_NMCHECK_TRUE="#"
+ KDE_USE_NMCHECK_FALSE=""
+ fi
+ AC_SUBST(KDE_USE_NMCHECK_TRUE)
+ AC_SUBST(KDE_USE_NMCHECK_FALSE)
+])
+
+AC_DEFUN([KDE_EXPAND_MAKEVAR], [
+savex=$exec_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+tmp=$$2
+while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done
+exec_prefix=$savex
+])
+
+dnl ------------------------------------------------------------------------
+dnl Now, the same with KDE
+dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed)
+dnl and $(kde_includes) will be the kdehdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_BASE_PATH_KDE],
+[
+AC_REQUIRE([KDE_CHECK_STL])
+AC_REQUIRE([AC_PATH_QT])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_CHECK_RPATH
+AC_MSG_CHECKING([for KDE])
+
+if test "${prefix}" != NONE; then
+ kde_includes=${includedir}
+ KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir)
+
+ kde_libraries=${libdir}
+ KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir)
+
+else
+ ac_kde_includes=
+ ac_kde_libraries=
+ kde_libraries=""
+ kde_includes=""
+fi
+
+AC_CACHE_VAL(ac_cv_have_kde,
+[#try to guess kde locations
+
+if test "$kde_qtver" = 1; then
+ kde_check_header="ksock.h"
+ kde_check_lib="libkdecore.la"
+else
+ kde_check_header="ksharedptr.h"
+ kde_check_lib="libkio.la"
+fi
+
+if test -z "$1"; then
+
+kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
+test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
+kde_incdirs="$ac_kde_includes $kde_incdirs"
+AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir)
+ac_kde_includes="$kde_incdir"
+
+if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
+ AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE headers installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
+test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
+kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
+AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir)
+ac_kde_libraries="$kde_libdir"
+
+kde_widgetdir=NO
+dnl this might be somewhere else
+AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
+
+if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
+AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE libraries installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
+AC_MSG_ERROR([
+I can't find the designer plugins. These are required and should have been installed
+by kdelibs])
+fi
+
+if test -n "$kde_widgetdir"; then
+ kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
+fi
+
+
+if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
+ ac_cv_have_kde="have_kde=no"
+else
+ ac_cv_have_kde="have_kde=yes \
+ ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+fi
+
+else dnl test -z $1, e.g. from kdelibs
+
+ ac_cv_have_kde="have_kde=no"
+
+fi
+])dnl
+
+eval "$ac_cv_have_kde"
+
+if test "$have_kde" != "yes"; then
+ if test "${prefix}" = NONE; then
+ ac_kde_prefix="$ac_default_prefix"
+ else
+ ac_kde_prefix="$prefix"
+ fi
+ if test "$exec_prefix" = NONE; then
+ ac_kde_exec_prefix="$ac_kde_prefix"
+ AC_MSG_RESULT([will be installed in $ac_kde_prefix])
+ else
+ ac_kde_exec_prefix="$exec_prefix"
+ AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix])
+ fi
+
+ kde_libraries="${libdir}"
+ kde_includes="${includedir}"
+
+else
+ ac_cv_have_kde="have_kde=yes \
+ ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+ AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes])
+
+ kde_libraries="$ac_kde_libraries"
+ kde_includes="$ac_kde_includes"
+fi
+AC_SUBST(kde_libraries)
+AC_SUBST(kde_includes)
+
+if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+else
+ KDE_INCLUDES="-I$kde_includes"
+ all_includes="$KDE_INCLUDES $all_includes"
+fi
+
+KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+
+KDE_LDFLAGS="-L$kde_libraries"
+if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then
+ all_libraries="$KDE_LDFLAGS $all_libraries"
+fi
+
+AC_SUBST(KDE_LDFLAGS)
+AC_SUBST(KDE_INCLUDES)
+
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+all_libraries="$all_libraries $USER_LDFLAGS"
+all_includes="$all_includes $USER_INCLUDES"
+AC_SUBST(all_includes)
+AC_SUBST(all_libraries)
+
+if test -z "$1"; then
+KDE_CHECK_UIC_PLUGINS
+fi
+
+ac_kde_libraries="$kde_libdir"
+
+AC_SUBST(AUTODIRS)
+
+
+])
+
+AC_DEFUN([KDE_CHECK_EXTRA_LIBS],
+[
+AC_MSG_CHECKING(for extra includes)
+AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]),
+ kde_use_extra_includes="$withval",
+ kde_use_extra_includes=NONE
+)
+kde_extra_includes=
+if test -n "$kde_use_extra_includes" && \
+ test "$kde_use_extra_includes" != "NONE"; then
+
+ ac_save_ifs=$IFS
+ IFS=':'
+ for dir in $kde_use_extra_includes; do
+ kde_extra_includes="$kde_extra_includes $dir"
+ USER_INCLUDES="$USER_INCLUDES -I$dir"
+ done
+ IFS=$ac_save_ifs
+ kde_use_extra_includes="added"
+else
+ kde_use_extra_includes="no"
+fi
+AC_SUBST(USER_INCLUDES)
+
+AC_MSG_RESULT($kde_use_extra_includes)
+
+kde_extra_libs=
+AC_MSG_CHECKING(for extra libs)
+AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]),
+ kde_use_extra_libs=$withval,
+ kde_use_extra_libs=NONE
+)
+if test -n "$kde_use_extra_libs" && \
+ test "$kde_use_extra_libs" != "NONE"; then
+
+ ac_save_ifs=$IFS
+ IFS=':'
+ for dir in $kde_use_extra_libs; do
+ kde_extra_libs="$kde_extra_libs $dir"
+ KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
+ USER_LDFLAGS="$USER_LDFLAGS -L$dir"
+ done
+ IFS=$ac_save_ifs
+ kde_use_extra_libs="added"
+else
+ kde_use_extra_libs="no"
+fi
+
+AC_SUBST(USER_LDFLAGS)
+
+AC_MSG_RESULT($kde_use_extra_libs)
+
+])
+
+AC_DEFUN([KDE_1_CHECK_PATH_HEADERS],
+[
+ AC_MSG_CHECKING([for KDE headers installed])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include "confdefs.h"
+#include <kapp.h>
+
+int main() {
+ printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
+ printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
+ printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
+ printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
+ printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
+ printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
+ printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
+ printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
+ printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
+ printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
+ printf("kde_wallpaperdir=\\"%s\\"\n",
+ KApplication::kde_wallpaperdir().data());
+ printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
+ printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
+ printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
+ printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
+ printf("kde_moduledir=\\"/tmp/dummy\\"\n");
+ printf("kde_styledir=\\"/tmp/dummy\\"\n");
+ printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
+ printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
+ printf("xdg_menudir=\\"/tmp/dummy\\"\n");
+ printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
+ printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
+ return 0;
+ }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$all_includes $CPPFLAGS"
+ if AC_TRY_EVAL(ac_compile); then
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_ERROR([your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log.])
+ fi
+ CPPFLAGS=$ac_save_CPPFLAGS
+
+ AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_CHECK_KDEQTADDON],
+[
+AC_MSG_CHECKING(for kde-qt-addon)
+AC_CACHE_VAL(kde_cv_have_kdeqtaddon,
+[
+ kde_ldflags_safe="$LDFLAGS"
+ kde_libs_safe="$LIBS"
+ kde_cxxflags_safe="$CXXFLAGS"
+
+ LIBS="-lkde-qt-addon $LIBQT $LIBS"
+ CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes"
+ LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS"
+
+ AC_TRY_LINK([
+ #include <qdom.h>
+ ],
+ [
+ QDomDocument doc;
+ ],
+ kde_cv_have_kdeqtaddon=yes,
+ kde_cv_have_kdeqtaddon=no
+ )
+
+ LDFLAGS=$kde_ldflags_safe
+ LIBS=$kde_libs_safe
+ CXXFLAGS=$kde_cxxflags_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_kdeqtaddon)
+
+if test "$kde_cv_have_kdeqtaddon" = "no"; then
+ AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first.
+It is a separate package (and CVS module) named kde-qt-addon.])
+fi
+])
+
+AC_DEFUN([KDE_CREATE_LIBS_ALIASES],
+[
+ AC_REQUIRE([KDE_MISC_TESTS])
+ AC_REQUIRE([KDE_CHECK_LIBDL])
+ AC_REQUIRE([K_PATH_X])
+
+if test $kde_qtver = 3; then
+ case $host in
+ *cygwin*) lib_kded="-lkdeinit_kded" ;;
+ *) lib_kded="" ;;
+ esac
+ AC_SUBST(LIB_KDED, $lib_kded)
+ AC_SUBST(LIB_KDECORE, "-lkdecore")
+ AC_SUBST(LIB_KDEUI, "-lkdeui")
+ AC_SUBST(LIB_KIO, "-lkio")
+ AC_SUBST(LIB_KJS, "-lkjs")
+ AC_SUBST(LIB_SMB, "-lsmb")
+ AC_SUBST(LIB_KAB, "-lkab")
+ AC_SUBST(LIB_KABC, "-lkabc")
+ AC_SUBST(LIB_KHTML, "-lkhtml")
+ AC_SUBST(LIB_KSPELL, "-lkspell")
+ AC_SUBST(LIB_KPARTS, "-lkparts")
+ AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+ AC_SUBST(LIB_KUTILS, "-lkutils")
+ AC_SUBST(LIB_KDEPIM, "-lkdepim")
+ AC_SUBST(LIB_KIMPROXY, "-lkimproxy")
+ AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff")
+ AC_SUBST(LIB_KDNSSD, "-lkdnssd")
+ AC_SUBST(LIB_KUNITTEST, "-lkunittest")
+# these are for backward compatibility
+ AC_SUBST(LIB_KSYCOCA, "-lkio")
+ AC_SUBST(LIB_KFILE, "-lkio")
+elif test $kde_qtver = 2; then
+ AC_SUBST(LIB_KDECORE, "-lkdecore")
+ AC_SUBST(LIB_KDEUI, "-lkdeui")
+ AC_SUBST(LIB_KIO, "-lkio")
+ AC_SUBST(LIB_KSYCOCA, "-lksycoca")
+ AC_SUBST(LIB_SMB, "-lsmb")
+ AC_SUBST(LIB_KFILE, "-lkfile")
+ AC_SUBST(LIB_KAB, "-lkab")
+ AC_SUBST(LIB_KHTML, "-lkhtml")
+ AC_SUBST(LIB_KSPELL, "-lkspell")
+ AC_SUBST(LIB_KPARTS, "-lkparts")
+ AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+else
+ AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)")
+ AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)")
+ AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)")
+ AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)")
+ AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)")
+fi
+])
+
+AC_DEFUN([AC_PATH_KDE],
+[
+ AC_BASE_PATH_KDE
+ AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]),
+ [
+ if test "$enableval" = "no";
+ then ac_use_path_checking="default"
+ else ac_use_path_checking=""
+ fi
+ ],
+ [
+ if test "$kde_qtver" = 1;
+ then ac_use_path_checking=""
+ else ac_use_path_checking="default"
+ fi
+ ]
+ )
+
+ AC_CREATE_KFSSTND($ac_use_path_checking)
+
+ AC_SUBST_KFSSTND
+ KDE_CREATE_LIBS_ALIASES
+])
+
+dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found])
+AC_DEFUN([KDE_CHECK_FUNC_EXT],
+[
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL(kde_cv_func_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+AC_TRY_COMPILE([
+$2
+],
+[
+$3
+],
+kde_cv_func_$1=yes,
+kde_cv_func_$1=no)
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+AC_LANG_RESTORE
+])
+
+AC_MSG_RESULT($kde_cv_func_$1)
+
+AC_MSG_CHECKING([if $1 needs custom prototype])
+AC_CACHE_VAL(kde_cv_proto_$1,
+[
+if test "x$kde_cv_func_$1" = xyes; then
+ kde_cv_proto_$1=no
+else
+ case "$1" in
+ setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+ kde_cv_proto_$1="yes - in libkdefakes"
+ ;;
+ *)
+ kde_cv_proto_$1=unknown
+ ;;
+ esac
+fi
+
+if test "x$kde_cv_proto_$1" = xunknown; then
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ kde_safe_libs=$LIBS
+ LIBS="$LIBS $X_EXTRA_LIBS"
+ AC_TRY_LINK([
+$2
+
+extern "C" $4;
+],
+[
+$3
+],
+[ kde_cv_func_$1=yes
+ kde_cv_proto_$1=yes ],
+ [kde_cv_proto_$1="$1 unavailable"]
+)
+LIBS=$kde_safe_libs
+AC_LANG_RESTORE
+fi
+])
+AC_MSG_RESULT($kde_cv_proto_$1)
+
+if test "x$kde_cv_func_$1" = xyes; then
+ AC_DEFINE(HAVE_$5, 1, [Define if you have $1])
+ $6
+fi
+if test "x$kde_cv_proto_$1" = xno; then
+ AC_DEFINE(HAVE_$5_PROTO, 1,
+ [Define if you have the $1 prototype])
+fi
+
+AH_VERBATIM([_HAVE_$5_PROTO],
+[
+#if !defined(HAVE_$5_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+$4;
+#ifdef __cplusplus
+}
+#endif
+#endif
+])
+])
+
+AC_DEFUN([AC_CHECK_SETENV],
+[
+ KDE_CHECK_FUNC_EXT(setenv, [
+#include <stdlib.h>
+],
+ [setenv("VAR", "VALUE", 1);],
+ [int setenv (const char *, const char *, int)],
+ [SETENV])
+])
+
+AC_DEFUN([AC_CHECK_UNSETENV],
+[
+ KDE_CHECK_FUNC_EXT(unsetenv, [
+#include <stdlib.h>
+],
+ [unsetenv("VAR");],
+ [void unsetenv (const char *)],
+ [UNSETENV])
+])
+
+AC_DEFUN([AC_CHECK_GETDOMAINNAME],
+[
+ KDE_CHECK_FUNC_EXT(getdomainname, [
+#include <stdlib.h>
+#include <unistd.h>
+#include <netdb.h>
+],
+ [
+char buffer[200];
+getdomainname(buffer, 200);
+],
+ [#include <sys/types.h>
+ int getdomainname (char *, size_t)],
+ [GETDOMAINNAME])
+])
+
+AC_DEFUN([AC_CHECK_GETHOSTNAME],
+[
+ KDE_CHECK_FUNC_EXT(gethostname, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+ [
+char buffer[200];
+gethostname(buffer, 200);
+],
+ [int gethostname (char *, unsigned int)],
+ [GETHOSTNAME])
+])
+
+AC_DEFUN([AC_CHECK_USLEEP],
+[
+ KDE_CHECK_FUNC_EXT(usleep, [
+#include <unistd.h>
+],
+ [
+usleep(200);
+],
+ [int usleep (unsigned int)],
+ [USLEEP])
+])
+
+
+AC_DEFUN([AC_CHECK_RANDOM],
+[
+ KDE_CHECK_FUNC_EXT(random, [
+#include <stdlib.h>
+],
+ [
+random();
+],
+ [long int random(void)],
+ [RANDOM])
+
+ KDE_CHECK_FUNC_EXT(srandom, [
+#include <stdlib.h>
+],
+ [
+srandom(27);
+],
+ [void srandom(unsigned int)],
+ [SRANDOM])
+
+])
+
+AC_DEFUN([AC_CHECK_INITGROUPS],
+[
+ KDE_CHECK_FUNC_EXT(initgroups, [
+#include <sys/types.h>
+#include <unistd.h>
+#include <grp.h>
+],
+ [
+char buffer[200];
+initgroups(buffer, 27);
+],
+ [int initgroups(const char *, gid_t)],
+ [INITGROUPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMPS],
+[
+ KDE_CHECK_FUNC_EXT(mkstemps, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+ [
+mkstemps("/tmp/aaaXXXXXX", 6);
+],
+ [int mkstemps(char *, int)],
+ [MKSTEMPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMP],
+[
+ KDE_CHECK_FUNC_EXT(mkstemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+ [
+mkstemp("/tmp/aaaXXXXXX");
+],
+ [int mkstemp(char *)],
+ [MKSTEMP])
+])
+
+AC_DEFUN([AC_CHECK_MKDTEMP],
+[
+ KDE_CHECK_FUNC_EXT(mkdtemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+ [
+mkdtemp("/tmp/aaaXXXXXX");
+],
+ [char *mkdtemp(char *)],
+ [MKDTEMP])
+])
+
+
+AC_DEFUN([AC_CHECK_RES_INIT],
+[
+ AC_MSG_CHECKING([if res_init needs -lresolv])
+ kde_libs_safe="$LIBS"
+ LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
+ AC_TRY_LINK(
+ [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+ ],
+ [
+ res_init();
+ ],
+ [
+ LIBRESOLV="-lresolv"
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
+ ],
+ [ AC_MSG_RESULT(no) ]
+ )
+ LIBS=$kde_libs_safe
+ AC_SUBST(LIBRESOLV)
+
+ KDE_CHECK_FUNC_EXT(res_init,
+ [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+ ],
+ [res_init()],
+ [int res_init(void)],
+ [RES_INIT])
+])
+
+AC_DEFUN([AC_CHECK_STRLCPY],
+[
+ KDE_CHECK_FUNC_EXT(strlcpy, [
+#include <string.h>
+],
+[ char buf[20];
+ strlcpy(buf, "KDE function test", sizeof(buf));
+],
+ [unsigned long strlcpy(char*, const char*, unsigned long)],
+ [STRLCPY])
+])
+
+AC_DEFUN([AC_CHECK_STRLCAT],
+[
+ KDE_CHECK_FUNC_EXT(strlcat, [
+#include <string.h>
+],
+[ char buf[20];
+ buf[0]='\0';
+ strlcat(buf, "KDE function test", sizeof(buf));
+],
+ [unsigned long strlcat(char*, const char*, unsigned long)],
+ [STRLCAT])
+])
+
+AC_DEFUN([AC_CHECK_RES_QUERY],
+[
+ KDE_CHECK_FUNC_EXT(res_query, [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <netdb.h>
+],
+[
+res_query(NULL, 0, 0, NULL, 0);
+],
+ [int res_query(const char *, int, int, unsigned char *, int)],
+ [RES_QUERY])
+])
+
+AC_DEFUN([AC_CHECK_DN_SKIPNAME],
+[
+ KDE_CHECK_FUNC_EXT(dn_skipname, [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+],
+[
+dn_skipname (NULL, NULL);
+],
+ [int dn_skipname (unsigned char *, unsigned char *)],
+ [DN_SKIPNAME])
+])
+
+
+AC_DEFUN([AC_FIND_GIF],
+ [AC_MSG_CHECKING([for giflib])
+AC_CACHE_VAL(ac_cv_lib_gif,
+[ac_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
+else
+LIBS="$all_libraries -lgif"
+fi
+AC_TRY_LINK(dnl
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+int GifLastError(void);
+#ifdef __cplusplus
+}
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+],
+ [return GifLastError();],
+ eval "ac_cv_lib_gif=yes",
+ eval "ac_cv_lib_gif=no")
+LIBS="$ac_save_LIBS"
+])dnl
+if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif])
+else
+ AC_MSG_ERROR(You need giflib30. Please install the kdesupport package)
+fi
+])
+
+AC_DEFUN([KDE_FIND_JPEG_HELPER],
+[
+AC_MSG_CHECKING([for libjpeg$2])
+AC_CACHE_VAL(ac_cv_lib_jpeg_$1,
+[
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+void jpeg_CreateDecompress();
+#ifdef __cplusplus
+}
+#endif
+],
+[jpeg_CreateDecompress();],
+ eval "ac_cv_lib_jpeg_$1=-ljpeg$2",
+ eval "ac_cv_lib_jpeg_$1=no")
+LIBS="$ac_save_LIBS"
+CFLAGS="$ac_save_CFLAGS"
+])
+
+if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then
+ LIBJPEG="$ac_cv_lib_jpeg_$1"
+ AC_MSG_RESULT($ac_cv_lib_jpeg_$1)
+else
+ AC_MSG_RESULT(no)
+ $3
+fi
+
+])
+
+AC_DEFUN([AC_FIND_JPEG],
+[
+dnl first look for libraries
+KDE_FIND_JPEG_HELPER(6b, 6b,
+ KDE_FIND_JPEG_HELPER(normal, [],
+ [
+ LIBJPEG=
+ ]
+ )
+)
+
+dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h
+dnl requires system dependent includes loaded before it)
+jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
+AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir)
+test "x$jpeg_incdir" = xNO && jpeg_incdir=
+
+dnl if headers _and_ libraries are missing, this is no error, and we
+dnl continue with a warning (the user will get no jpeg support in khtml)
+dnl if only one is missing, it means a configuration error, but we still
+dnl only warn
+if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
+ AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg])
+else
+ if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
+ AC_MSG_WARN([
+There is an installation error in jpeg support. You seem to have only one
+of either the headers _or_ the libraries installed. You may need to either
+provide correct --with-extra-... options, or the development package of
+libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
+Disabling JPEG support.
+])
+ else
+ AC_MSG_WARN([libjpeg not found. disable JPEG support.])
+ fi
+ jpeg_incdir=
+ LIBJPEG=
+fi
+
+AC_SUBST(LIBJPEG)
+AH_VERBATIM(_AC_CHECK_JPEG,
+[/*
+ * 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
+])
+])
+
+AC_DEFUN([KDE_CHECK_QT_JPEG],
+[
+if test -n "$LIBJPEG"; then
+AC_MSG_CHECKING([if Qt needs $LIBJPEG])
+AC_CACHE_VAL(kde_cv_qt_jpeg,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
+LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[#include <qapplication.h>],
+ [
+ int argc;
+ char** argv;
+ QApplication app(argc, argv);],
+ eval "kde_cv_qt_jpeg=no",
+ eval "kde_cv_qt_jpeg=yes")
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+fi
+])
+
+if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
+ AC_MSG_RESULT(yes)
+ LIBJPEG_QT='$(LIBJPEG)'
+else
+ AC_MSG_RESULT(no)
+ LIBJPEG_QT=
+fi
+
+])
+
+AC_DEFUN([AC_FIND_ZLIB],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for libz])
+AC_CACHE_VAL(ac_cv_lib_z,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#include<zlib.h>
+],
+[
+ char buf[42];
+ gzFile f = (gzFile) 0;
+ /* this would segfault.. but we only link, don't run */
+ (void) gzgets(f, buf, sizeof(buf));
+
+ return (zlibVersion() == ZLIB_VERSION);
+],
+ eval "ac_cv_lib_z='-lz'",
+ eval "ac_cv_lib_z=no")
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if test ! "$ac_cv_lib_z" = no; then
+ AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
+ LIBZ="$ac_cv_lib_z"
+ AC_MSG_RESULT($ac_cv_lib_z)
+else
+ AC_MSG_ERROR(not found.
+ Possibly configure picks up an outdated version
+ installed by XFree86. Remove it from your system.
+
+ Check your installation and look into config.log)
+ LIBZ=""
+fi
+AC_SUBST(LIBZ)
+])
+
+AC_DEFUN([KDE_TRY_TIFFLIB],
+[
+AC_MSG_CHECKING([for libtiff $1])
+
+AC_CACHE_VAL(kde_cv_libtiff_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
+else
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
+fi
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+[
+#include<tiffio.h>
+],
+ [return (TIFFOpen( "", "r") == 0); ],
+[
+ kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ"
+], [
+ kde_cv_libtiff_$1=no
+])
+
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_libtiff_$1" = "no"; then
+ AC_MSG_RESULT(no)
+ LIBTIFF=""
+ $3
+else
+ LIBTIFF="$kde_cv_libtiff_$1"
+ AC_MSG_RESULT(yes)
+ AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff])
+ $2
+fi
+
+])
+
+AC_DEFUN([AC_FIND_TIFF],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+KDE_TRY_TIFFLIB(tiff, [],
+ KDE_TRY_TIFFLIB(tiff34))
+
+AC_SUBST(LIBTIFF)
+])
+
+AC_DEFUN([KDE_FIND_LIBEXR],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_CACHE_VAL(ac_cv_libexr,
+[
+ if test -z "$PKG_CONFIG"; then
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+ fi
+
+ AC_MSG_CHECKING([for OpenEXR libraries])
+
+ if test "$PKG_CONFIG" = "no" ; then
+ AC_MSG_RESULT(no)
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ if !(`$PKG_CONFIG --exists OpenEXR`) ; then
+ AC_MSG_RESULT(no)
+ EXRSTATUS=no
+ else
+ if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then
+ AC_MSG_RESULT(no)
+ EXRSTATUS=old
+ else
+ kde_save_LIBS="$LIBS"
+ LIBS="$LIBS $all_libraries $USER_LDFLAGS $LIBZ `pkg-config --libs OpenEXR`"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ kde_save_CXXFLAGS="$CXXFLAGS"
+ EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR`
+ CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS"
+
+ AC_TRY_LINK(dnl
+ [
+ #include <ImfRgbaFile.h>
+ ],
+ [
+ using namespace Imf;
+ RgbaInputFile file ("dummy");
+ return 0;
+ ],
+ eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'",
+ eval "ac_cv_libexr=no"
+ )
+ LIBS="$kde_save_LIBS"
+ CXXFLAGS="$kde_save_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])dnl
+ if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then
+ AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR])
+ LIB_EXR="$ac_cv_libexr"
+ AC_MSG_RESULT($ac_cv_libexr)
+ else
+ AC_MSG_RESULT(no)
+ LIB_EXR=""
+ fi
+ fi
+ fi
+ fi
+ AC_SUBST(LIB_EXR)
+ AC_SUBST(EXR_FLAGS)
+])
+
+
+
+AC_DEFUN([AC_FIND_PNG],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_MSG_CHECKING([for libpng])
+AC_CACHE_VAL(ac_cv_lib_png,
+[
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
+else
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
+fi
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+ [
+ #include<png.h>
+ ],
+ [
+ png_structp png_ptr = png_create_read_struct( /* image ptr */
+ PNG_LIBPNG_VER_STRING, 0, 0, 0 );
+ return( png_ptr != 0 );
+ ],
+ eval "ac_cv_lib_png='-lpng $LIBZ -lm'",
+ eval "ac_cv_lib_png=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
+ AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng])
+ LIBPNG="$ac_cv_lib_png"
+ AC_SUBST(LIBPNG)
+ AC_MSG_RESULT($ac_cv_lib_png)
+else
+ AC_MSG_RESULT(no)
+ LIBPNG=""
+ AC_SUBST(LIBPNG)
+fi
+])
+
+
+AC_DEFUN([AC_FIND_JASPER],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_MSG_CHECKING([for jasper])
+AC_CACHE_VAL(ac_cv_jasper,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+ [
+ #include<jasper/jasper.h>
+ ],
+ [
+ return( jas_init() );
+ ],
+ eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'",
+ eval "ac_cv_jasper=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then
+ AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper])
+ LIB_JASPER="$ac_cv_jasper"
+ AC_MSG_RESULT($ac_cv_jasper)
+else
+ AC_MSG_RESULT(no)
+ LIB_JASPER=""
+fi
+AC_SUBST(LIB_JASPER)
+])
+
+AC_DEFUN([AC_CHECK_BOOL],
+[
+ AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool])
+])
+
+AC_DEFUN([AC_CHECK_GNU_EXTENSIONS],
+[
+AC_MSG_CHECKING(if you need GNU extensions)
+AC_CACHE_VAL(ac_cv_gnu_extensions,
+[
+cat > conftest.c << EOF
+#include <features.h>
+
+#ifdef __GNU_LIBRARY__
+yes
+#endif
+EOF
+
+if (eval "$ac_cpp conftest.c") 2>&5 |
+ egrep "yes" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_gnu_extensions=yes
+else
+ ac_cv_gnu_extensions=no
+fi
+])
+
+AC_MSG_RESULT($ac_cv_gnu_extensions)
+if test "$ac_cv_gnu_extensions" = "yes"; then
+ AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CXX supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache,
+[
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -$1"
+ AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], [])
+ CXXFLAGS="$save_CXXFLAGS"
+ AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CC supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache,
+[
+ AC_LANG_SAVE
+ AC_LANG_C
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -$1"
+ AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], [])
+ CFLAGS="$save_CFLAGS"
+ AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+
+dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables
+dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever])
+dnl it's all white-space separated
+AC_DEFUN([AC_REMOVE_FORBIDDEN],
+[ __val=$$1
+ __forbid=" $2 "
+ if test -n "$__val"; then
+ __new=""
+ ac_save_IFS=$IFS
+ IFS=" "
+ for i in $__val; do
+ case "$__forbid" in
+ *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;;
+ *) # Careful to not add spaces, where there were none, because otherwise
+ # libtool gets confused, if we change e.g. CXX
+ if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+ esac
+ done
+ IFS=$ac_save_IFS
+ $1=$__new
+ fi
+])
+
+
+AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER],
+[
+ AC_MSG_CHECKING([whether $CC is blacklisted])
+
+ dnl In theory we have tu run this test against $CC and $CXX
+ dnl in C and in C++ mode, because its perfectly legal for
+ dnl the user to mix compiler versions, since C has a defined
+ dnl ABI.
+ dnl
+ dnl For now, we assume the user is not on crack.
+
+ AC_TRY_COMPILE([
+#ifdef __GNUC__
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
+choke me
+#endif
+#endif
+], ,
+ kde_bad_compiler=no,
+ kde_bad_compiler=yes
+)
+
+ AC_MSG_RESULT($kde_bad_compiler)
+
+if test "$kde_bad_compiler" = "yes"; then
+ AC_MSG_ERROR([
+
+This particular compiler version is blacklisted because it
+is known to miscompile KDE. Please use a newer version, or
+if that is not yet available, choose an older version.
+
+Please do not report a bug or bother us reporting this
+configure error. We know about it, and we introduced
+it by intention to avoid untraceable bugs or crashes in KDE.
+
+])
+fi
+
+])
+
+dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
+AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
+[dnl
+if test "x$kde_use_qt_emb" != "xyes"; then
+ AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
+else
+ AC_REMOVE_FORBIDDEN(CXX, [-rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
+fi
+])
+
+AC_DEFUN([AC_CHECK_COMPILERS],
+[
+ AC_ARG_ENABLE(debug,
+ AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
+ [
+ case $enableval in
+ yes)
+ kde_use_debug_code="yes"
+ kde_use_debug_define=no
+ ;;
+ full)
+ kde_use_debug_code="full"
+ kde_use_debug_define=no
+ ;;
+ *)
+ kde_use_debug_code="no"
+ kde_use_debug_define=yes
+ ;;
+ esac
+ ],
+ [kde_use_debug_code="no"
+ kde_use_debug_define=no
+ ])
+
+ dnl Just for configure --help
+ AC_ARG_ENABLE(dummyoption,
+ AC_HELP_STRING([--disable-debug],
+ [disables debug output and debug symbols [default=no]]),
+ [],[])
+
+ AC_ARG_ENABLE(strict,
+ AC_HELP_STRING([--enable-strict],
+ [compiles with strict compiler options (may not work!)]),
+ [
+ if test $enableval = "no"; then
+ kde_use_strict_options="no"
+ else
+ kde_use_strict_options="yes"
+ fi
+ ], [kde_use_strict_options="no"])
+
+ AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]),
+ [
+ if test $enableval = "no"; then
+ kde_use_warnings="no"
+ else
+ kde_use_warnings="yes"
+ fi
+ ], [kde_use_warnings="yes"])
+
+ dnl enable warnings for debug build
+ if test "$kde_use_debug_code" != "no"; then
+ kde_use_warnings=yes
+ fi
+
+ AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
+ [kde_use_profiling=$enableval],
+ [kde_use_profiling="no"]
+ )
+
+ dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+ CFLAGS=" $CFLAGS"
+
+ AC_PROG_CC
+
+ AC_PROG_CPP
+
+ if test "$GCC" = "yes"; then
+ if test "$kde_use_debug_code" != "no"; then
+ if test $kde_use_debug_code = "full"; then
+ CFLAGS="-g3 -fno-inline $CFLAGS"
+ else
+ CFLAGS="-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline $CFLAGS"
+ fi
+ else
+ CFLAGS="-O2 $CFLAGS"
+ fi
+ fi
+
+ if test "$kde_use_debug_define" = "yes"; then
+ CFLAGS="-DNDEBUG $CFLAGS"
+ fi
+
+
+ case "$host" in
+ *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
+ *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
+ esac
+
+ if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
+ LDFLAGS=""
+ fi
+
+ CXXFLAGS=" $CXXFLAGS"
+
+ AC_PROG_CXX
+
+ KDE_CHECK_FOR_BAD_COMPILER
+
+ if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+ if test "$kde_use_debug_code" != "no"; then
+ if test "$CXX" = "KCC"; then
+ CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
+ else
+ if test "$kde_use_debug_code" = "full"; then
+ CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
+ else
+ CXXFLAGS="-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline $CXXFLAGS"
+ fi
+ fi
+ KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
+
+ dnl convenience compiler flags
+ KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
+ AC_SUBST(WOVERLOADED_VIRTUAL)
+ else
+ if test "$CXX" = "KCC"; then
+ CXXFLAGS="+K3 $CXXFLAGS"
+ else
+ CXXFLAGS="-O2 $CXXFLAGS"
+ fi
+ fi
+ fi
+
+ if test "$kde_use_debug_define" = "yes"; then
+ CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
+ fi
+
+ if test "$kde_use_profiling" = "yes"; then
+ KDE_CHECK_COMPILER_FLAG(pg,
+ [
+ CFLAGS="-pg $CFLAGS"
+ CXXFLAGS="-pg $CXXFLAGS"
+ ])
+ fi
+
+ if test "$kde_use_warnings" = "yes"; then
+ if test "$GCC" = "yes"; then
+ CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
+ case $host in
+ *-*-linux-gnu)
+ CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
+ CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS"
+ KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"])
+ KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
+ ;;
+ esac
+ KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
+ KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
+ dnl ### FIXME: revert for KDE 4
+ KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"])
+ fi
+ fi
+
+ if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
+ CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
+ fi
+
+ AC_ARG_ENABLE(pch,
+ AC_HELP_STRING([--enable-pch],
+ [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]),
+ [ kde_use_pch=$enableval ],[ kde_use_pch=no ])
+
+ HAVE_GCC_VISIBILITY=0
+ AC_SUBST([HAVE_GCC_VISIBILITY])
+
+ if test "$GXX" = "yes"; then
+ KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
+ KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
+ KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
+ KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= )
+ ENABLE_PERMISSIVE_FLAG="-fpermissive"
+
+ if test "$kde_use_pch" = "yes"; then
+ AC_MSG_CHECKING(whether gcc supports precompiling c header files)
+ echo >conftest.h
+ if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
+ kde_gcc_supports_pch=yes
+ AC_MSG_RESULT(yes)
+ else
+ kde_gcc_supports_pch=no
+ AC_MSG_RESULT(no)
+ fi
+ if test "$kde_gcc_supports_pch" = "yes"; then
+ AC_MSG_CHECKING(whether gcc supports precompiling c++ header files)
+ if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
+ kde_gcc_supports_pch=yes
+ AC_MSG_RESULT(yes)
+ else
+ kde_gcc_supports_pch=no
+ AC_MSG_RESULT(no)
+ fi
+ fi
+ rm -f conftest.h conftest.h.gch
+ fi
+ fi
+ AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
+ if test "$CXX" = "KCC"; then
+ dnl unfortunately we currently cannot disable exception support in KCC
+ dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
+ dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
+ dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= )
+
+ if test "$kde_use_pch" = "yes"; then
+ dnl TODO: support --pch-dir!
+ KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
+ dnl the below works (but the dir must exist), but it's
+ dnl useless for a whole package.
+ dnl The are precompiled headers for each source file, so when compiling
+ dnl from scratch, it doesn't make a difference, and they take up
+ dnl around ~5Mb _per_ sourcefile.
+ dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
+ dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
+ fi
+ dnl this flag controls inlining. by default KCC inlines in optimisation mode
+ dnl all implementations that are defined inside the class {} declaration.
+ dnl because of templates-compatibility with broken gcc compilers, this
+ dnl can cause excessive inlining. This flag limits it to a sane level
+ KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
+ KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
+ KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
+ KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
+ dnl Some source files are shared between multiple executables
+ dnl (or libraries) and some of those need template instantiations.
+ dnl In that case KCC needs to compile those sources with
+ dnl --one_instantiation_per_object. To make it easy for us we compile
+ dnl _all_ objects with that flag (--one_per is a shorthand).
+ KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
+ fi
+ AC_SUBST(USE_EXCEPTIONS)
+ dnl obsolete macro - provided to keep things going
+ USE_RTTI=
+ AC_SUBST(USE_RTTI)
+
+ case "$host" in
+ *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
+ *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
+ *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
+ *-*-solaris*)
+ if test "$GXX" = yes; then
+ libstdcpp=`$CXX -print-file-name=libstdc++.so`
+ if test ! -f $libstdcpp; then
+ AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
+ fi
+ fi
+ ;;
+ esac
+
+ AC_VALIDIFY_CXXFLAGS
+
+ AC_PROG_CXXCPP
+
+ if test "$GCC" = yes; then
+ NOOPT_CFLAGS=-O0
+ fi
+ KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
+
+ AC_ARG_ENABLE(coverage,
+ AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [
+ if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
+ ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+ ac_coverage_linker="-lgcc"
+ elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
+ ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+ ac_coverage_linker=""
+ else
+ AC_MSG_ERROR([coverage with your compiler is not supported])
+ fi
+ CFLAGS="$CFLAGS $ac_coverage_compiler"
+ CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
+ LDFLAGS="$LDFLAGS $ac_coverage_linker"
+ ])
+
+ AC_SUBST(NOOPT_CXXFLAGS)
+ AC_SUBST(NOOPT_CFLAGS)
+ AC_SUBST(ENABLE_PERMISSIVE_FLAG)
+
+ KDE_CHECK_NEW_LDFLAGS
+ KDE_CHECK_FINAL
+ KDE_CHECK_CLOSURE
+ KDE_CHECK_NMCHECK
+
+ ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
+])
+
+AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG],
+ [
+ AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ safe_CXXFLAGS=$CXXFLAGS
+ safe_LDFLAGS=$LDFLAGS
+ CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0"
+ LDFLAGS="$LDFLAGS -shared -fPIC"
+
+ AC_TRY_LINK(
+ [
+ /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
+ #include <string>
+ int some_function( void ) __attribute__ ((visibility("default")));
+ int some_function( void )
+ {
+ std::string s("blafasel");
+ return 0;
+ }
+ ], [/* elvis is alive */],
+ kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes)
+
+ CXXFLAGS=$safe_CXXFLAGS
+ LDFLAGS=$safe_LDFLAGS
+ AC_LANG_RESTORE
+ ]
+ )
+
+ if test x$kde_cv_val_gcc_visibility_bug = xno; then
+ CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
+ fi
+ ]
+)
+
+AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
+[
+ AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
+
+ AC_MSG_CHECKING([grepping for visibility push/pop in headers])
+
+ if test "x$GXX" = "xyes"; then
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_EGREP_CPP(
+ [GCC visibility push],
+ [ #include <exception>
+ ],
+ [
+ AC_MSG_RESULT(yes)
+ kde_stdc_visibility_patched=yes ],
+ [
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for
+ visibility support. Disabling -fvisibility=hidden])
+
+ kde_stdc_visibility_patched=no ])
+
+ AC_LANG_RESTORE
+
+ kde_have_gcc_visibility=no
+ KDE_CHECK_COMPILER_FLAG(fvisibility=hidden,
+ [
+ kde_have_gcc_visibility=yes
+ dnl the whole toolchain is just a mess, gcc is just too buggy
+ dnl to handle STL with visibility enabled. Lets reconsider
+ dnl when gcc 4.2 is out or when things get fixed in the compiler.
+ dnl Contact mueller@kde.org for details.
+ AC_ARG_ENABLE(gcc-hidden-visibility,
+ AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]),
+ [kde_have_gcc_visibility=$enableval],
+ [kde_have_gcc_visibility=no])
+
+ AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ safe_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="$CXXFLAGS $all_includes"
+
+ AC_TRY_COMPILE(
+ [
+#include <qglobal.h>
+#if Q_EXPORT - 0 != 0
+/* if this compiles, then Q_EXPORT is undefined */
+/* if Q_EXPORT is nonempty, this will break compilation */
+#endif
+ ], [/* elvis is alive */],
+ kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
+
+ CXXFLAGS=$safe_CXXFLAGS
+ AC_LANG_RESTORE
+ ]
+ )
+
+ if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then
+ CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+ KDE_CHECK_VISIBILITY_GCC_BUG
+ HAVE_GCC_VISIBILITY=1
+ AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported])
+ fi
+ ])
+ fi
+])
+
+AC_DEFUN([KDE_ADD_DEPENDENCIES],
+[
+ [A]M_DEPENDENCIES(CC)
+ [A]M_DEPENDENCIES(CXX)
+])
+
+dnl just a wrapper to clean up configure.in
+AC_DEFUN([KDE_PROG_LIBTOOL],
+[
+AC_REQUIRE([AC_CHECK_COMPILERS])
+AC_REQUIRE([AC_ENABLE_SHARED])
+AC_REQUIRE([AC_ENABLE_STATIC])
+
+AC_REQUIRE([AC_LIBTOOL_DLOPEN])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_OBJEXT
+AC_EXEEXT
+
+AM_PROG_LIBTOOL
+AC_LIBTOOL_CXX
+
+LIBTOOL_SHELL="/bin/sh ./libtool"
+# LIBTOOL="$LIBTOOL --silent"
+KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
+AC_SUBST(KDE_PLUGIN)
+
+# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
+KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
+AC_SUBST(KDE_CHECK_PLUGIN)
+
+# we patch configure quite some so we better keep that consistent for incremental runs
+AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
+])
+
+AC_DEFUN([KDE_CHECK_LIB64],
+[
+ kdelibsuff="$kde_libs_suffix"
+ if test -z "$kdelibsuff"; then
+ kdelibsuff=no
+ fi
+ AC_ARG_ENABLE(libsuffix,
+ AC_HELP_STRING([--enable-libsuffix],
+ [/lib directory suffix (64,32,none[=default])]),
+ kdelibsuff=$enableval)
+ # TODO: add an auto case that compiles a little C app to check
+ # where the glibc is
+ if test "$kdelibsuff" = "no"; then
+ kdelibsuff=
+ fi
+ if test -z "$kdelibsuff"; then
+ AC_MSG_RESULT([not using lib directory suffix])
+ AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
+ else
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir="$libdir${kdelibsuff}"
+ AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms
+ fi
+ AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories)
+ AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
+ fi
+])
+
+AC_DEFUN([KDE_CHECK_TYPES],
+[ AC_CHECK_SIZEOF(int, 4)dnl
+ AC_CHECK_SIZEOF(short)dnl
+ AC_CHECK_SIZEOF(long, 4)dnl
+ AC_CHECK_SIZEOF(char *, 4)dnl
+])dnl
+
+dnl Not used - kept for compat only?
+AC_DEFUN([KDE_DO_IT_ALL],
+[
+AC_CANONICAL_SYSTEM
+AC_ARG_PROGRAM
+AM_INIT_AUTOMAKE($1, $2)
+AM_DISABLE_LIBRARIES
+AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+AC_CHECK_COMPILERS
+KDE_PROG_LIBTOOL
+AM_KDE_WITH_NLS
+AC_PATH_KDE
+])
+
+AC_DEFUN([AC_CHECK_RPATH],
+[
+AC_MSG_CHECKING(for rpath)
+AC_ARG_ENABLE(rpath,
+ AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
+ USE_RPATH=$enableval, USE_RPATH=yes)
+
+if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
+
+ KDE_RPATH="-R \$(libdir)"
+
+ if test "$kde_libraries" != "$libdir"; then
+ KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)"
+ fi
+
+ if test -n "$qt_libraries"; then
+ KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
+ fi
+ dnl $x_libraries is set to /usr/lib in case
+ if test -n "$X_LDFLAGS"; then
+ X_RPATH="-R \$(x_libraries)"
+ KDE_RPATH="$KDE_RPATH $X_RPATH"
+ fi
+ if test -n "$KDE_EXTRA_RPATH"; then
+ KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
+ fi
+fi
+AC_SUBST(KDE_EXTRA_RPATH)
+AC_SUBST(KDE_RPATH)
+AC_SUBST(X_RPATH)
+AC_MSG_RESULT($USE_RPATH)
+])
+
+dnl Check for the type of the third argument of getsockname
+AC_DEFUN([AC_CHECK_SOCKLEN_T],
+[
+ AC_MSG_CHECKING(for socklen_t)
+ AC_CACHE_VAL(kde_cv_socklen_t,
+ [
+ AC_LANG_PUSH(C++)
+ kde_cv_socklen_t=no
+ AC_TRY_COMPILE([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ],
+ [
+ socklen_t len;
+ getpeername(0,0,&len);
+ ],
+ [
+ kde_cv_socklen_t=yes
+ kde_cv_socklen_t_equiv=socklen_t
+ ])
+ AC_LANG_POP(C++)
+ ])
+ AC_MSG_RESULT($kde_cv_socklen_t)
+ if test $kde_cv_socklen_t = no; then
+ AC_MSG_CHECKING([for socklen_t equivalent for socket functions])
+ AC_CACHE_VAL(kde_cv_socklen_t_equiv,
+ [
+ kde_cv_socklen_t_equiv=int
+ AC_LANG_PUSH(C++)
+ for t in int size_t unsigned long "unsigned long"; do
+ AC_TRY_COMPILE([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ ],
+ [
+ $t len;
+ getpeername(0,0,&len);
+ ],
+ [
+ kde_cv_socklen_t_equiv="$t"
+ break
+ ])
+ done
+ AC_LANG_POP(C++)
+ ])
+ AC_MSG_RESULT($kde_cv_socklen_t_equiv)
+ fi
+ AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv,
+ [type to use in place of socklen_t if not defined])
+ AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv,
+ [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)])
+])
+
+dnl This is a merge of some macros out of the gettext aclocal.m4
+dnl since we don't need anything, I took the things we need
+dnl the copyright for them is:
+dnl >
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+dnl This Makefile.in is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+dnl >
+dnl for this file it is relicensed under LGPL
+
+AC_DEFUN([AM_KDE_WITH_NLS],
+ [
+ dnl If we use NLS figure out what method
+
+ AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
+ [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
+ AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
+ GMSGFMT=":"
+ fi
+ MSGFMT=$GMSGFMT
+ AC_SUBST(GMSGFMT)
+ AC_SUBST(MSGFMT)
+
+ AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext programs is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ fi
+ AC_SUBST(XGETTEXT)
+
+ ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# serial 1
+# Stephan Kulow: I appended a _KDE against name conflicts
+
+dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ /*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word"
+ break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# serial 1
+
+AC_DEFUN([AM_LC_MESSAGES],
+ [if test $ac_cv_header_locale_h = yes; then
+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+ if test $am_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
+ fi
+ fi])
+
+dnl From Jim Meyering.
+dnl FIXME: migrate into libit.
+
+AC_DEFUN([AM_FUNC_OBSTACK],
+[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
+ [AC_TRY_LINK([#include "obstack.h"],
+ [struct obstack *mem;obstack_free(mem,(char *) 0)],
+ am_cv_func_obstack=yes,
+ am_cv_func_obstack=no)])
+ if test $am_cv_func_obstack = yes; then
+ AC_DEFINE(HAVE_OBSTACK)
+ else
+ LIBOBJS="$LIBOBJS obstack.o"
+ fi
+])
+
+dnl From Jim Meyering. Use this if you use the GNU error.[ch].
+dnl FIXME: Migrate into libit
+
+AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
+[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
+ [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
+ am_cv_lib_error_at_line=yes,
+ am_cv_lib_error_at_line=no)])
+ if test $am_cv_lib_error_at_line = no; then
+ LIBOBJS="$LIBOBJS error.o"
+ fi
+ AC_SUBST(LIBOBJS)dnl
+])
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper@cygnus.com>, 1995.
+
+# serial 1
+# Stephan Kulow: I put a KDE in it to avoid name conflicts
+
+AC_DEFUN([AM_KDE_GNU_GETTEXT],
+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([AM_KDE_WITH_NLS])dnl
+ AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
+ AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next])
+
+ AC_MSG_CHECKING(for stpcpy)
+ AC_CACHE_VAL(kde_cv_func_stpcpy,
+ [
+ kde_safe_cxxflags=$CXXFLAGS
+ CXXFLAGS="-Werror"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([
+ #include <string.h>
+ ],
+ [
+ char buffer[200];
+ stpcpy(buffer, buffer);
+ ],
+ kde_cv_func_stpcpy=yes,
+ kde_cv_func_stpcpy=no)
+ AC_LANG_RESTORE
+ CXXFLAGS=$kde_safe_cxxflags
+ ])
+ AC_MSG_RESULT($kde_cv_func_stpcpy)
+ if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then
+ AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
+ fi
+
+ AM_LC_MESSAGES
+
+ if test "x$CATOBJEXT" != "x"; then
+ if test "x$ALL_LINGUAS" = "x"; then
+ LINGUAS=
+ else
+ AC_MSG_CHECKING(for catalogs to be installed)
+ NEW_LINGUAS=
+ for lang in ${LINGUAS=$ALL_LINGUAS}; do
+ case "$ALL_LINGUAS" in
+ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+ esac
+ done
+ LINGUAS=$NEW_LINGUAS
+ AC_MSG_RESULT($LINGUAS)
+ fi
+
+ dnl Construct list of names of catalog files to be constructed.
+ if test -n "$LINGUAS"; then
+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+ fi
+ fi
+
+ ])
+
+AC_DEFUN([AC_HAVE_XPM],
+ [AC_REQUIRE_CPP()dnl
+ AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
+ test -z "$XPM_INCLUDE" && XPM_INCLUDE=
+
+ AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
+ xpm_test=$withval, xpm_test="yes")
+ if test "x$xpm_test" = xno; then
+ ac_cv_have_xpm=no
+ else
+ AC_MSG_CHECKING(for XPM)
+ AC_CACHE_VAL(ac_cv_have_xpm,
+ [
+ ac_save_ldflags="$LDFLAGS"
+ ac_save_cflags="$CFLAGS"
+ if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+ LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
+ else
+ LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
+ fi
+ CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
+ test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
+ AC_TRY_LINK([#include <X11/xpm.h>],[],
+ ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
+ LDFLAGS="$ac_save_ldflags"
+ CFLAGS="$ac_save_cflags"
+ ])dnl
+
+ if test "$ac_cv_have_xpm" = no; then
+ AC_MSG_RESULT(no)
+ XPM_LDFLAGS=""
+ XPMINC=""
+ $2
+ else
+ AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
+ if test "$XPM_LDFLAGS" = ""; then
+ XPMLIB='-lXpm $(LIB_X11)'
+ else
+ XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
+ fi
+ if test "$XPM_INCLUDE" = ""; then
+ XPMINC=""
+ else
+ XPMINC="-I$XPM_INCLUDE"
+ fi
+ AC_MSG_RESULT(yes)
+ $1
+ fi
+ fi
+ AC_SUBST(XPMINC)
+ AC_SUBST(XPMLIB)
+])
+
+AC_DEFUN([AC_HAVE_DPMS],
+ [AC_REQUIRE_CPP()dnl
+ AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
+ test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
+ DPMS_LIB=
+
+ AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
+ dpms_test=$withval, dpms_test="yes")
+ if test "x$dpms_test" = xno; then
+ ac_cv_have_dpms=no
+ else
+ AC_MSG_CHECKING(for DPMS)
+ dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
+ dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
+ AC_CACHE_VAL(ac_cv_have_dpms,
+ [
+ if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
+ AC_MSG_RESULT(no)
+ ac_cv_have_dpms="no"
+ else
+ ac_save_ldflags="$LDFLAGS"
+ ac_save_cflags="$CFLAGS"
+ ac_save_libs="$LIBS"
+ LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries"
+ LIBS="-lX11 -lXext $LIBSOCKET"
+ CFLAGS="$CFLAGS $X_INCLUDES"
+ test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+ AC_TRY_LINK([
+ #include <X11/Xproto.h>
+ #include <X11/X.h>
+ #include <X11/Xlib.h>
+ #include <X11/extensions/dpms.h>
+ int foo_test_dpms()
+ { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+ ac_cv_have_dpms="yes", [
+ LIBS="-lXdpms $LIBS"
+ AC_TRY_LINK([
+ #include <X11/Xproto.h>
+ #include <X11/X.h>
+ #include <X11/Xlib.h>
+ #include <X11/extensions/dpms.h>
+ int foo_test_dpms()
+ { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+ [
+ ac_cv_have_dpms="-lXdpms"
+ ],ac_cv_have_dpms="no")
+ ])
+ LDFLAGS="$ac_save_ldflags"
+ CFLAGS="$ac_save_cflags"
+ LIBS="$ac_save_libs"
+ fi
+ ])dnl
+
+ if test "$ac_cv_have_dpms" = no; then
+ AC_MSG_RESULT(no)
+ DPMS_LDFLAGS=""
+ DPMSINC=""
+ $2
+ else
+ AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
+ if test "$ac_cv_have_dpms" = "-lXdpms"; then
+ DPMS_LIB="-lXdpms"
+ fi
+ if test "$DPMS_LDFLAGS" = ""; then
+ DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
+ else
+ DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
+ fi
+ if test "$DPMS_INCLUDE" = ""; then
+ DPMSINC=""
+ else
+ DPMSINC="-I$DPMS_INCLUDE"
+ fi
+ AC_MSG_RESULT(yes)
+ $1
+ fi
+ fi
+ ac_save_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS $X_INCLUDES"
+ test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+ AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
+ [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSCapable,
+ AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
+ [#include <X11/Xlib.h>
+ #include <X11/extensions/dpms.h>])
+ AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
+ [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSInfo,
+ AC_DEFINE(HAVE_DPMSINFO_PROTO),,
+ [#include <X11/Xlib.h>
+ #include <X11/extensions/dpms.h>])
+ CFLAGS="$ac_save_cflags"
+ AC_SUBST(DPMSINC)
+ AC_SUBST(DPMSLIB)
+])
+
+AC_DEFUN([AC_HAVE_GL],
+ [AC_REQUIRE_CPP()dnl
+ AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$GL_LDFLAGS" && GL_LDFLAGS=
+ test -z "$GL_INCLUDE" && GL_INCLUDE=
+
+ AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
+ gl_test=$withval, gl_test="yes")
+ if test "x$kde_use_qt_emb" = "xyes"; then
+ # GL and Qt Embedded is a no-go for now.
+ ac_cv_have_gl=no
+ elif test "x$gl_test" = xno; then
+ ac_cv_have_gl=no
+ else
+ AC_MSG_CHECKING(for GL)
+ AC_CACHE_VAL(ac_cv_have_gl,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_ldflags=$LDFLAGS
+ ac_save_cxxflags=$CXXFLAGS
+ ac_save_libs=$LIBS
+ LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries"
+ LIBS="$LIBS -lGL -lGLU"
+ test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11"
+ LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET"
+ CXXFLAGS="$CFLAGS $X_INCLUDES"
+ test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
+ AC_TRY_LINK([#include <GL/gl.h>
+#include <GL/glu.h>
+], [],
+ ac_cv_have_gl="yes", ac_cv_have_gl="no")
+ AC_LANG_RESTORE
+ LDFLAGS=$ac_save_ldflags
+ CXXFLAGS=$ac_save_cxxflags
+ LIBS=$ac_save_libs
+ ])dnl
+
+ if test "$ac_cv_have_gl" = "no"; then
+ AC_MSG_RESULT(no)
+ GL_LDFLAGS=""
+ GLINC=""
+ $2
+ else
+ AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
+ if test "$GL_LDFLAGS" = ""; then
+ GLLIB='-lGLU -lGL $(LIB_X11)'
+ else
+ GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
+ fi
+ if test "$GL_INCLUDE" = ""; then
+ GLINC=""
+ else
+ GLINC="-I$GL_INCLUDE"
+ fi
+ AC_MSG_RESULT($ac_cv_have_gl)
+ $1
+ fi
+ fi
+ AC_SUBST(GLINC)
+ AC_SUBST(GLLIB)
+])
+
+
+ dnl shadow password and PAM magic - maintained by ossi@kde.org
+
+AC_DEFUN([KDE_PAM], [
+ AC_REQUIRE([KDE_CHECK_LIBDL])
+
+ want_pam=
+ AC_ARG_WITH(pam,
+ AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
+ [ if test "x$withval" = "xyes"; then
+ want_pam=yes
+ pam_service=kde
+ elif test "x$withval" = "xno"; then
+ want_pam=no
+ else
+ want_pam=yes
+ pam_service=$withval
+ fi
+ ], [ pam_service=kde ])
+
+ use_pam=
+ PAMLIBS=
+ if test "x$want_pam" != xno; then
+ AC_CHECK_LIB(pam, pam_start, [
+ AC_CHECK_HEADER(security/pam_appl.h,
+ [ pam_header=security/pam_appl.h ],
+ [ AC_CHECK_HEADER(pam/pam_appl.h,
+ [ pam_header=pam/pam_appl.h ],
+ [
+ AC_MSG_WARN([PAM detected, but no headers found!
+Make sure you have the necessary development packages installed.])
+ ]
+ )
+ ]
+ )
+ ], , $LIBDL)
+ if test -z "$pam_header"; then
+ if test "x$want_pam" = xyes; then
+ AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
+ fi
+ else
+ AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
+ PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
+ use_pam=yes
+
+ dnl darwin claims to be something special
+ if test "$pam_header" = "pam/pam_appl.h"; then
+ AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
+ fi
+
+ dnl test whether struct pam_message is const (Linux) or not (Sun)
+ AC_MSG_CHECKING(for const pam_message)
+ AC_EGREP_HEADER([struct pam_message], $pam_header,
+ [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
+ [AC_MSG_RESULT([const: Linux-type PAM])],
+ [AC_MSG_RESULT([nonconst: Sun-type PAM])
+ AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
+ )],
+ [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
+ fi
+ fi
+
+ AC_SUBST(PAMLIBS)
+])
+
+dnl DEF_PAM_SERVICE(arg name, full name, define name)
+AC_DEFUN([DEF_PAM_SERVICE], [
+ AC_ARG_WITH($1-pam,
+ AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
+ [ if test "x$use_pam" = xyes; then
+ $3_PAM_SERVICE=$withval
+ else
+ AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
+You may want to enforce it by using --with-pam.])
+ fi
+ ],
+ [ if test "x$use_pam" = xyes; then
+ $3_PAM_SERVICE="$pam_service"
+ fi
+ ])
+ if test -n "$$3_PAM_SERVICE"; then
+ AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
+ AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
+ fi
+ AC_SUBST($3_PAM_SERVICE)
+])
+
+AC_DEFUN([KDE_SHADOWPASSWD], [
+ AC_REQUIRE([KDE_PAM])
+
+ AC_CHECK_LIB(shadow, getspent,
+ [ LIBSHADOW="-lshadow"
+ ac_use_shadow=yes
+ ],
+ [ dnl for UnixWare
+ AC_CHECK_LIB(gen, getspent,
+ [ LIBGEN="-lgen"
+ ac_use_shadow=yes
+ ],
+ [ AC_CHECK_FUNC(getspent,
+ [ ac_use_shadow=yes ],
+ [ ac_use_shadow=no ])
+ ])
+ ])
+ AC_SUBST(LIBSHADOW)
+ AC_SUBST(LIBGEN)
+
+ AC_MSG_CHECKING([for shadow passwords])
+
+ AC_ARG_WITH(shadow,
+ AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
+ [ if test "x$withval" != "xno"; then
+ use_shadow=yes
+ else
+ use_shadow=no
+ fi
+ ], [
+ use_shadow="$ac_use_shadow"
+ ])
+
+ if test "x$use_shadow" = xyes; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
+ else
+ AC_MSG_RESULT(no)
+ LIBSHADOW=
+ LIBGEN=
+ fi
+
+ dnl finally make the relevant binaries setuid root, if we have shadow passwds.
+ dnl this still applies, if we could use it indirectly through pam.
+ if test "x$use_shadow" = xyes ||
+ ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
+ case $host in
+ *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
+ SETUIDFLAGS="-m 4755 -o root";;
+ *)
+ SETUIDFLAGS="-m 4755";;
+ esac
+ fi
+ AC_SUBST(SETUIDFLAGS)
+
+])
+
+AC_DEFUN([KDE_PASSWDLIBS], [
+ AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
+ AC_REQUIRE([KDE_PAM])
+ AC_REQUIRE([KDE_SHADOWPASSWD])
+
+ if test "x$use_pam" = "xyes"; then
+ PASSWDLIBS="$PAMLIBS"
+ else
+ PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
+ fi
+
+ dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
+ dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires
+ dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
+ dnl may need to read /etc/master.passwd).
+ case $host in
+ *-*-freebsd*)
+ SETUIDFLAGS="-m 4755 -o root"
+ ;;
+ *)
+ ;;
+ esac
+
+ AC_SUBST(PASSWDLIBS)
+])
+
+AC_DEFUN([KDE_CHECK_LIBDL],
+[
+AC_CHECK_LIB(dl, dlopen, [
+LIBDL="-ldl"
+ac_cv_have_dlfcn=yes
+])
+
+AC_CHECK_LIB(dld, shl_unload, [
+LIBDL="-ldld"
+ac_cv_have_shload=yes
+])
+
+AC_SUBST(LIBDL)
+])
+
+AC_DEFUN([KDE_CHECK_DLOPEN],
+[
+KDE_CHECK_LIBDL
+AC_CHECK_HEADERS(dlfcn.h dl.h)
+if test "$ac_cv_header_dlfcn_h" = "no"; then
+ ac_cv_have_dlfcn=no
+fi
+
+if test "$ac_cv_header_dl_h" = "no"; then
+ ac_cv_have_shload=no
+fi
+
+dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
+dnl (MM)
+AC_ARG_ENABLE(dlopen,
+AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
+enable_dlopen=$enableval,
+enable_dlopen=yes)
+
+# override the user's opinion, if we know it better ;)
+if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
+ enable_dlopen=no
+fi
+
+if test "$ac_cv_have_dlfcn" = "yes"; then
+ AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
+fi
+
+if test "$ac_cv_have_shload" = "yes"; then
+ AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
+fi
+
+if test "$enable_dlopen" = no ; then
+ test -n "$1" && eval $1
+else
+ test -n "$2" && eval $2
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
+[
+KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
+KDE_PROG_LIBTOOL
+AC_MSG_CHECKING([dynamic loading])
+eval "`egrep '^build_libtool_libs=' libtool`"
+if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
+ dynamic_loading=yes
+ AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
+else
+ dynamic_loading=no
+fi
+AC_MSG_RESULT($dynamic_loading)
+if test "$dynamic_loading" = "yes"; then
+ $1
+else
+ $2
+fi
+])
+
+AC_DEFUN([KDE_ADD_INCLUDES],
+[
+if test -z "$1"; then
+ test_include="Pix.h"
+else
+ test_include="$1"
+fi
+
+AC_MSG_CHECKING([for libg++ ($test_include)])
+
+AC_CACHE_VAL(kde_cv_libgpp_includes,
+[
+kde_cv_libgpp_includes=no
+
+ for ac_dir in \
+ \
+ /usr/include/g++ \
+ /usr/include \
+ /usr/unsupported/include \
+ /opt/include \
+ $extra_include \
+ ; \
+ do
+ if test -r "$ac_dir/$test_include"; then
+ kde_cv_libgpp_includes=$ac_dir
+ break
+ fi
+ done
+])
+
+AC_MSG_RESULT($kde_cv_libgpp_includes)
+if test "$kde_cv_libgpp_includes" != "no"; then
+ all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
+fi
+])
+])
+
+AC_DEFUN([KDE_CHECK_LIBPTHREAD],
+[
+ dnl This code is here specifically to handle the
+ dnl various flavors of threading library on FreeBSD
+ dnl 4-, 5-, and 6-, and the (weird) rules around it.
+ dnl There may be an environment PTHREAD_LIBS that
+ dnl specifies what to use; otherwise, search for it.
+ dnl -pthread is special cased and unsets LIBPTHREAD
+ dnl below if found.
+ LIBPTHREAD=""
+
+ if test -n "$PTHREAD_LIBS"; then
+ if test "x$PTHREAD_LIBS" = "x-pthread" ; then
+ LIBPTHREAD="PTHREAD"
+ else
+ PTHREAD_LIBS_save="$PTHREAD_LIBS"
+ PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
+ AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS])
+ KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [
+ LIBPTHREAD="$PTHREAD_LIBS_save"])
+ PTHREAD_LIBS="$PTHREAD_LIBS_save"
+ fi
+ fi
+
+ dnl Is this test really needed, in the face of the Tru64 test below?
+ if test -z "$LIBPTHREAD"; then
+ AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"])
+ fi
+
+ dnl This is a special Tru64 check, see BR 76171 issue #18.
+ if test -z "$LIBPTHREAD" ; then
+ AC_MSG_CHECKING([for pthread_create in -lpthread])
+ kde_safe_libs=$LIBS
+ LIBS="$LIBS -lpthread"
+ AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[
+ AC_MSG_RESULT(yes)
+ LIBPTHREAD="-lpthread"],[
+ AC_MSG_RESULT(no)])
+ LIBS=$kde_safe_libs
+ fi
+
+ dnl Un-special-case for FreeBSD.
+ if test "x$LIBPTHREAD" = "xPTHREAD" ; then
+ LIBPTHREAD=""
+ fi
+
+ AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
+[
+ USE_THREADS=""
+ if test -z "$LIBPTHREAD"; then
+ KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
+ fi
+
+ AH_VERBATIM(__svr_define, [
+#if defined(__SVR4) && !defined(__svr4__)
+#define __svr4__ 1
+#endif
+])
+ case $host_os in
+ solaris*)
+ KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
+ ;;
+ freebsd*)
+ CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
+ ;;
+ aix*)
+ CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+ LIBPTHREAD="$LIBPTHREAD -lc_r"
+ ;;
+ linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+ if test "$CXX" = "KCC"; then
+ CXXFLAGS="$CXXFLAGS --thread_safe"
+ NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
+ fi
+ ;;
+ *)
+ ;;
+ esac
+ AC_SUBST(USE_THREADS)
+ AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_THREADING],
+[
+ AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+ AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
+ dnl default is yes if libpthread is found and no if no libpthread is available
+ if test -z "$LIBPTHREAD"; then
+ if test -z "$USE_THREADS"; then
+ kde_check_threading_default=no
+ else
+ kde_check_threading_default=yes
+ fi
+ else
+ kde_check_threading_default=yes
+ fi
+ AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
+ kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
+ if test "x$kde_use_threading" = "xyes"; then
+ AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
+ fi
+])
+
+AC_DEFUN([KDE_TRY_LINK_PYTHON],
+[
+if test "$kde_python_link_found" = no; then
+
+if test "$1" = normal; then
+ AC_MSG_CHECKING(if a Python application links)
+else
+ AC_MSG_CHECKING(if Python depends on $2)
+fi
+
+AC_CACHE_VAL(kde_cv_try_link_python_$1,
+[
+kde_save_cflags="$CFLAGS"
+CFLAGS="$CFLAGS $PYTHONINC"
+kde_save_libs="$LIBS"
+LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
+kde_save_ldflags="$LDFLAGS"
+LDFLAGS="$LDFLAGS $PYTHONLIB"
+
+AC_TRY_LINK(
+[
+#include <Python.h>
+],[
+ PySys_SetArgv(1, 0);
+],
+ [kde_cv_try_link_python_$1=yes],
+ [kde_cv_try_link_python_$1=no]
+)
+CFLAGS="$kde_save_cflags"
+LIBS="$kde_save_libs"
+LDFLAGS="$kde_save_ldflags"
+])
+
+if test "$kde_cv_try_link_python_$1" = "yes"; then
+ AC_MSG_RESULT(yes)
+ kde_python_link_found=yes
+ if test ! "$1" = normal; then
+ LIBPYTHON="$LIBPYTHON $2"
+ fi
+ $3
+else
+ AC_MSG_RESULT(no)
+ $4
+fi
+
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_DIR],
+[
+AC_MSG_CHECKING([for Python directory])
+
+AC_CACHE_VAL(kde_cv_pythondir,
+[
+ if test -z "$PYTHONDIR"; then
+ kde_cv_pythondir=/usr/local
+ else
+ kde_cv_pythondir="$PYTHONDIR"
+ fi
+])
+
+AC_ARG_WITH(pythondir,
+AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
+[
+ ac_python_dir=$withval
+], ac_python_dir=$kde_cv_pythondir
+)
+
+AC_MSG_RESULT($ac_python_dir)
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
+[
+AC_REQUIRE([KDE_CHECK_LIBDL])
+AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
+
+if test -z "$1"; then
+ version="1.5"
+else
+ version="$1"
+fi
+
+AC_MSG_CHECKING([for Python$version])
+
+python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
+AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
+if test ! -r $python_incdir/Python.h; then
+ AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
+ python_incdir=$python_incdir/python$version
+ if test ! -r $python_incdir/Python.h; then
+ python_incdir=no
+ fi
+fi
+
+PYTHONINC=-I$python_incdir
+
+python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
+AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
+if test ! -r $python_libdir/libpython$version.so; then
+ AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
+ if test ! -r $python_libdir/libpython$version.a; then
+ AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
+ python_libdir=$python_libdir/python$version/config
+ if test ! -r $python_libdir/libpython$version.a; then
+ python_libdir=no
+ fi
+ fi
+fi
+
+PYTHONLIB=-L$python_libdir
+kde_orig_LIBPYTHON=$LIBPYTHON
+if test -z "$LIBPYTHON"; then
+ LIBPYTHON=-lpython$version
+fi
+
+AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
+python_moddir=$python_moddir/python$version
+if test ! -r $python_moddir/copy.py; then
+ python_moddir=no
+fi
+
+PYTHONMODDIR=$python_moddir
+
+AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
+
+if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then
+ LIBPYTHON=$kde_orig_LIBPYTHON
+ test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
+ test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
+ $2
+else
+ dnl Note: this test is very weak
+ kde_python_link_found=no
+ KDE_TRY_LINK_PYTHON(normal)
+ KDE_TRY_LINK_PYTHON(m, -lm)
+ KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
+ KDE_TRY_LINK_PYTHON(tcl, -ltcl)
+ KDE_TRY_LINK_PYTHON(db2, -ldb2)
+ KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
+ KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
+ KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
+ KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
+ KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
+ KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
+ KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
+ KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
+ [AC_MSG_WARN([it seems, Python depends on another library.
+ Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
+ and contact the authors to let them know about this problem])
+ ])
+
+ LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
+ AC_SUBST(PYTHONINC)
+ AC_SUBST(PYTHONLIB)
+ AC_SUBST(LIBPYTHON)
+ AC_SUBST(PYTHONMODDIR)
+ AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
+fi
+
+])
+
+
+AC_DEFUN([KDE_CHECK_PYTHON],
+[
+ KDE_CHECK_PYTHON_INTERN("2.4",
+ [KDE_CHECK_PYTHON_INTERN("2.3",
+ [KDE_CHECK_PYTHON_INTERN("2.2",
+ [KDE_CHECK_PYTHON_INTERN("2.1",
+ [KDE_CHECK_PYTHON_INTERN("2.0",
+ [KDE_CHECK_PYTHON_INTERN($1, $2) ])
+ ])
+ ])
+ ])
+ ])
+])
+
+AC_DEFUN([KDE_CHECK_STL],
+[
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
+
+ AC_MSG_CHECKING([if C++ programs can be compiled])
+ AC_CACHE_VAL(kde_cv_stl_works,
+ [
+ AC_TRY_COMPILE([
+#include <string>
+using namespace std;
+],[
+ string astring="Hallo Welt.";
+ astring.erase(0, 6); // now astring is "Welt"
+ return 0;
+], kde_cv_stl_works=yes,
+ kde_cv_stl_works=no)
+])
+
+ AC_MSG_RESULT($kde_cv_stl_works)
+
+ if test "$kde_cv_stl_works" = "yes"; then
+ # back compatible
+ AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
+ else
+ AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
+Check config.log for details - if you're using a Linux distribution you might miss
+a package named similar to libstdc++-dev.])
+ fi
+
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ AC_LANG_RESTORE
+])
+
+AC_DEFUN([AC_FIND_QIMGIO],
+ [AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for qimgio])
+AC_CACHE_VAL(ac_cv_lib_qimgio,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+ac_save_CXXFLAGS="$CXXFLAGS"
+LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+AC_TRY_RUN(dnl
+[
+#include <qimageio.h>
+#include <qstring.h>
+int main() {
+ QString t = "hallo";
+ t.fill('t');
+ qInitImageIO();
+}
+],
+ ac_cv_lib_qimgio=yes,
+ ac_cv_lib_qimgio=no,
+ ac_cv_lib_qimgio=no)
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then
+ LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
+ AC_MSG_RESULT(yes)
+ AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
+ AC_SUBST(LIBQIMGIO)
+else
+ AC_MSG_RESULT(not found)
+fi
+])
+
+AC_DEFUN([AM_DISABLE_LIBRARIES],
+[
+ AC_PROVIDE([AM_ENABLE_STATIC])
+ AC_PROVIDE([AM_ENABLE_SHARED])
+ enable_static=no
+ enable_shared=yes
+])
+
+
+AC_DEFUN([AC_CHECK_UTMP_FILE],
+[
+ AC_MSG_CHECKING([for utmp file])
+
+ AC_CACHE_VAL(kde_cv_utmp_file,
+ [
+ kde_cv_utmp_file=no
+
+ for ac_file in \
+ \
+ /var/run/utmp \
+ /var/adm/utmp \
+ /etc/utmp \
+ ; \
+ do
+ if test -r "$ac_file"; then
+ kde_cv_utmp_file=$ac_file
+ break
+ fi
+ done
+ ])
+
+ if test "$kde_cv_utmp_file" != "no"; then
+ AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
+ $1
+ AC_MSG_RESULT($kde_cv_utmp_file)
+ else
+ $2
+ AC_MSG_RESULT([non found])
+ fi
+])
+
+
+AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
+[
+
+DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
+TOPSUBDIRS=""
+
+if test ! -s $srcdir/subdirs; then
+ dnl Note: Makefile.common creates subdirs, so this is just a fallback
+ files=`cd $srcdir && ls -1`
+ dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
+ for i in $dirs; do
+ echo $i >> $srcdir/subdirs
+ done
+fi
+
+ac_topsubdirs=
+if test -s $srcdir/inst-apps; then
+ ac_topsubdirs="`cat $srcdir/inst-apps`"
+elif test -s $srcdir/subdirs; then
+ ac_topsubdirs="`cat $srcdir/subdirs`"
+fi
+
+for i in $ac_topsubdirs; do
+ AC_MSG_CHECKING([if $i should be compiled])
+ if test -d $srcdir/$i; then
+ install_it="yes"
+ for j in $DO_NOT_COMPILE; do
+ if test $i = $j; then
+ install_it="no"
+ fi
+ done
+ else
+ install_it="no"
+ fi
+ AC_MSG_RESULT($install_it)
+ vari=`echo $i | sed -e 's,[[-+.@]],_,g'`
+ if test $install_it = "yes"; then
+ TOPSUBDIRS="$TOPSUBDIRS $i"
+ eval "$vari""_SUBDIR_included=yes"
+ else
+ eval "$vari""_SUBDIR_included=no"
+ fi
+done
+
+AC_SUBST(TOPSUBDIRS)
+])
+
+AC_DEFUN([KDE_CHECK_NAMESPACES],
+[
+AC_MSG_CHECKING(whether C++ compiler supports namespaces)
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_TRY_COMPILE([
+],
+[
+namespace Foo {
+ extern int i;
+ namespace Bar {
+ extern int i;
+ }
+}
+
+int Foo::i = 0;
+int Foo::Bar::i = 1;
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_NAMESPACES)
+], [
+AC_MSG_RESULT(no)
+])
+AC_LANG_RESTORE
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_S_ISSOCK],
+[
+AC_MSG_CHECKING(for S_ISSOCK)
+AC_CACHE_VAL(ac_cv_have_s_issock,
+[
+AC_TRY_LINK(
+[
+#include <sys/stat.h>
+],
+[
+struct stat buff;
+int b = S_ISSOCK( buff.st_mode );
+],
+ac_cv_have_s_issock=yes,
+ac_cv_have_s_issock=no)
+])
+AC_MSG_RESULT($ac_cv_have_s_issock)
+if test "$ac_cv_have_s_issock" = "yes"; then
+ AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
+fi
+
+AH_VERBATIM(_ISSOCK,
+[
+#ifndef HAVE_S_ISSOCK
+#define HAVE_S_ISSOCK
+#define S_ISSOCK(mode) (1==0)
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
+[
+AC_MSG_CHECKING(for MAXPATHLEN)
+AC_CACHE_VAL(ac_cv_maxpathlen,
+[
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include <sys/param.h>
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+
+KDE_HELLO MAXPATHLEN
+
+EOF
+
+ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
+
+if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
+ ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
+else
+ ac_cv_maxpathlen=1024
+fi
+
+rm conftest.*
+
+])
+AC_MSG_RESULT($ac_cv_maxpathlen)
+AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
+])
+
+AC_DEFUN([KDE_CHECK_HEADER],
+[
+ kde_safe_cppflags=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $all_includes"
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_CHECK_HEADER([$1], [$2], [$3], [$4])
+ AC_LANG_RESTORE
+ CPPFLAGS=$kde_safe_cppflags
+])
+
+AC_DEFUN([KDE_CHECK_HEADERS],
+[
+ AH_CHECK_HEADERS([$1])
+ AC_LANG_SAVE
+ kde_safe_cppflags=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $all_includes"
+ AC_LANG_CPLUSPLUS
+ AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
+ CPPFLAGS=$kde_safe_cppflags
+ AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_FAST_CONFIGURE],
+[
+ dnl makes configure fast (needs perl)
+ AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
+ with_fast_perl=$enableval, with_fast_perl=yes)
+])
+
+AC_DEFUN([KDE_CONF_FILES],
+[
+ val=
+ if test -f $srcdir/configure.files ; then
+ val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
+ fi
+ CONF_FILES=
+ if test -n "$val" ; then
+ for i in $val ; do
+ CONF_FILES="$CONF_FILES $i"
+ done
+ fi
+ AC_SUBST(CONF_FILES)
+])dnl
+
+dnl This sets the prefix, for arts and kdelibs
+dnl Do NOT use in any other module.
+dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde
+AC_DEFUN([KDE_SET_PREFIX_CORE],
+[
+ unset CDPATH
+ dnl make $KDEDIR the default for the installation
+ AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+
+ if test "x$prefix" = "xNONE"; then
+ prefix=$ac_default_prefix
+ ac_configure_args="$ac_configure_args --prefix=$prefix"
+ fi
+ # And delete superfluous '/' to make compares easier
+ prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+ kde_libs_prefix='$(prefix)'
+ kde_libs_htmldir='$(kde_htmldir)'
+ AC_SUBST(kde_libs_prefix)
+ AC_SUBST(kde_libs_htmldir)
+ KDE_FAST_CONFIGURE
+ KDE_CONF_FILES
+])
+
+
+AC_DEFUN([KDE_SET_PREFIX],
+[
+ unset CDPATH
+ dnl We can't give real code to that macro, only a value.
+ dnl It only matters for --help, since we set the prefix in this function anyway.
+ AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+ KDE_SET_DEFAULT_BINDIRS
+ if test "x$prefix" = "xNONE"; then
+ dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+ KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+ else
+ dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+ kde_save_PATH="$PATH"
+ PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+ KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+ PATH="$kde_save_PATH"
+ fi
+
+ kde_libs_prefix=`$KDECONFIG --prefix`
+ if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+ AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+ This means it has been moved since you installed it.
+ This won't work. Please recompile kdelibs for the new prefix.
+ ])
+ fi
+ kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+ kde_libs_suffix=`$KDECONFIG --libsuffix`
+
+ AC_MSG_CHECKING([where to install])
+ if test "x$prefix" = "xNONE"; then
+ prefix=$kde_libs_prefix
+ AC_MSG_RESULT([$prefix (as returned by kde-config)])
+ else
+ dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+ given_prefix=$prefix
+ AC_MSG_RESULT([$prefix (as requested)])
+ fi
+
+ # And delete superfluous '/' to make compares easier
+ prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+ given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+ AC_SUBST(KDECONFIG)
+ AC_SUBST(kde_libs_prefix)
+ AC_SUBST(kde_libs_htmldir)
+
+ KDE_FAST_CONFIGURE
+ KDE_CONF_FILES
+])
+
+pushdef([AC_PROG_INSTALL],
+[
+ dnl our own version, testing for a -p flag
+ popdef([AC_PROG_INSTALL])
+ dnl as AC_PROG_INSTALL works as it works we first have
+ dnl to save if the user didn't specify INSTALL, as the
+ dnl autoconf one overwrites INSTALL and we have no chance to find
+ dnl out afterwards
+ test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
+ test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
+ test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
+ AC_PROG_INSTALL
+
+ if test -z "$kde_save_INSTALL_given" ; then
+ # OK, user hasn't given any INSTALL, autoconf found one for us
+ # now we test, if it supports the -p flag
+ AC_MSG_CHECKING(for -p flag to install)
+ rm -f confinst.$$.* > /dev/null 2>&1
+ echo "Testtest" > confinst.$$.orig
+ ac_res=no
+ if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
+ if test -f confinst.$$.new ; then
+ # OK, -p seems to do no harm to install
+ INSTALL="${INSTALL} -p"
+ ac_res=yes
+ fi
+ fi
+ rm -f confinst.$$.*
+ AC_MSG_RESULT($ac_res)
+ fi
+ dnl the following tries to resolve some signs and wonders coming up
+ dnl with different autoconf/automake versions
+ dnl e.g.:
+ dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
+ dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
+ dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
+ dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
+ dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
+ dnl install-@DIR@PROGRAMS targets to explicitly use that flag
+ dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
+ dnl INSTALL_SCRIPT, which breaks with automake <= 1.4
+ dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure
+ dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from
+ dnl automake (due to broken Makefile.am or whatever) to install programs,
+ dnl and so does not see the -s flag in automake > 1.4
+ dnl to clean up that mess we:
+ dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
+ dnl which cleans KDE's program with automake > 1.4;
+ dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
+ dnl with automake<=1.4
+ dnl note that dues to this sometimes two '-s' flags are used (if KDE
+ dnl properly uses install-@DIR@PROGRAMS, but I don't care
+ dnl
+ dnl And to all this comes, that I even can't write in comments variable
+ dnl names used by automake, because it is so stupid to think I wanted to
+ dnl _use_ them, therefor I have written A_M_... instead of AM_
+ dnl hmm, I wanted to say something ... ahh yes: Arghhh.
+
+ if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
+ INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
+ fi
+ if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
+ INSTALL_SCRIPT='${INSTALL}'
+ fi
+])dnl
+
+AC_DEFUN([KDE_LANG_CPLUSPLUS],
+[AC_LANG_CPLUSPLUS
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
+])
+
+pushdef([AC_LANG_CPLUSPLUS],
+[popdef([AC_LANG_CPLUSPLUS])
+KDE_LANG_CPLUSPLUS
+])
+
+AC_DEFUN([KDE_CHECK_LONG_LONG],
+[
+AC_MSG_CHECKING(for long long)
+AC_CACHE_VAL(kde_cv_c_long_long,
+[
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_LINK([], [
+ long long foo = 0;
+ foo = foo+1;
+ ],
+ kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
+ AC_LANG_RESTORE
+])
+AC_MSG_RESULT($kde_cv_c_long_long)
+if test "$kde_cv_c_long_long" = yes; then
+ AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_LIB],
+[
+ kde_save_LDFLAGS="$LDFLAGS"
+ dnl AC_CHECK_LIB modifies LIBS, so save it here
+ kde_save_LIBS="$LIBS"
+ LDFLAGS="$LDFLAGS $all_libraries"
+ case $host_os in
+ aix*) LDFLAGS="-brtl $LDFLAGS"
+ test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
+ ;;
+ esac
+ AC_CHECK_LIB($1, $2, $3, $4, $5)
+ LDFLAGS="$kde_save_LDFLAGS"
+ LIBS="$kde_save_LIBS"
+])
+
+AC_DEFUN([KDE_JAVA_PREFIX],
+[
+ dir=`dirname "$1"`
+ base=`basename "$1"`
+ list=`ls -1 $dir 2> /dev/null`
+ for entry in $list; do
+ if test -d $dir/$entry/bin; then
+ case $entry in
+ $base)
+ javadirs="$javadirs $dir/$entry/bin"
+ ;;
+ esac
+ elif test -d $dir/$entry/jre/bin; then
+ case $entry in
+ $base)
+ javadirs="$javadirs $dir/$entry/jre/bin"
+ ;;
+ esac
+ fi
+ done
+])
+
+dnl KDE_CHEC_JAVA_DIR(onlyjre)
+AC_DEFUN([KDE_CHECK_JAVA_DIR],
+[
+
+AC_ARG_WITH(java,
+AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
+[ ac_java_dir=$withval
+], ac_java_dir=""
+)
+
+AC_MSG_CHECKING([for Java])
+
+dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
+if test "x$ac_java_dir" = "xno"; then
+ kde_java_bindir=no
+ kde_java_includedir=no
+ kde_java_libjvmdir=no
+ kde_java_libgcjdir=no
+ kde_java_libhpidir=no
+else
+ if test "x$ac_java_dir" = "x"; then
+
+
+ dnl No option set -> collect list of candidate paths
+ if test -n "$JAVA_HOME"; then
+ KDE_JAVA_PREFIX($JAVA_HOME)
+ fi
+ KDE_JAVA_PREFIX(/usr/j2se)
+ KDE_JAVA_PREFIX(/usr/lib/j2se)
+ KDE_JAVA_PREFIX(/usr/j*dk*)
+ KDE_JAVA_PREFIX(/usr/lib/j*dk*)
+ KDE_JAVA_PREFIX(/opt/j*sdk*)
+ KDE_JAVA_PREFIX(/usr/lib/java*)
+ KDE_JAVA_PREFIX(/usr/java*)
+ KDE_JAVA_PREFIX(/usr/java/j*dk*)
+ KDE_JAVA_PREFIX(/usr/java/j*re*)
+ KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
+ KDE_JAVA_PREFIX(/usr/lib/SunJava*)
+ KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
+ KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
+ KDE_JAVA_PREFIX(/opt/java*)
+
+ kde_cv_path="NONE"
+ kde_save_IFS=$IFS
+ IFS=':'
+ for dir in $PATH; do
+ if test -d "$dir"; then
+ javadirs="$javadirs $dir"
+ fi
+ done
+ IFS=$kde_save_IFS
+ jredirs=
+
+ dnl Now javadirs contains a list of paths that exist, all ending with bin/
+ for dir in $javadirs; do
+ dnl Check for the java executable
+ if test -x "$dir/java"; then
+ dnl And also check for a libjvm.so somewhere under there
+ dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
+ if test "$dir" != "/usr/bin"; then
+ libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+ if test ! -f $libjvmdir/libjvm.so; then continue; fi
+ jredirs="$jredirs $dir"
+ fi
+ fi
+ done
+
+ dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
+ JAVAC=
+ JAVA=
+ kde_java_bindir=no
+ for dir in $jredirs; do
+ JAVA="$dir/java"
+ kde_java_bindir=$dir
+ if test -x "$dir/javac"; then
+ JAVAC="$dir/javac"
+ break
+ fi
+ done
+
+ if test -n "$JAVAC"; then
+ dnl this substitution might not work - well, we test for jni.h below
+ kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
+ else
+ kde_java_includedir=no
+ fi
+ else
+ dnl config option set
+ kde_java_bindir=$ac_java_dir/bin
+ if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
+ kde_java_includedir=no
+ else
+ kde_java_includedir=$ac_java_dir/include
+ fi
+ fi
+fi
+
+dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
+if test "x$kde_java_bindir" != "xno"; then
+
+ dnl Look for libjvm.so
+ kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+ dnl Look for libgcj.so
+ kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
+ dnl Look for libhpi.so and avoid green threads
+ kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
+
+ dnl Now check everything's fine under there
+ dnl the include dir is our flag for having the JDK
+ if test -d "$kde_java_includedir"; then
+ if test ! -x "$kde_java_bindir/javac"; then
+ AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
+ fi
+ if test ! -x "$kde_java_bindir/javah"; then
+ AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+ fi
+ if test ! -x "$kde_java_bindir/jar"; then
+ AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+ fi
+ if test ! -r "$kde_java_includedir/jni.h"; then
+ AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
+ fi
+
+ jni_includes="-I$kde_java_includedir"
+ dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
+ dnl and under linux here..
+
+ dnl not needed for gcj
+
+ if test "x$kde_java_libgcjdir" = "x"; then
+ test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
+ test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
+ test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
+ fi
+
+ else
+ JAVAC=
+ jni_includes=
+ fi
+
+ if test "x$kde_java_libgcjdir" = "x"; then
+ if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
+ AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
+ fi
+ else
+ if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
+ AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
+ fi
+ fi
+
+ if test ! -x "$kde_java_bindir/java"; then
+ AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+ fi
+
+ dnl not needed for gcj compile
+
+ if test "x$kde_java_libgcjdir" = "x"; then
+ if test ! -r "$kde_java_libhpidir/libhpi.so"; then
+ AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
+ fi
+ fi
+
+ if test -n "$jni_includes"; then
+ dnl Check for JNI version
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_cxxflags_safe="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
+
+ AC_TRY_COMPILE([
+ #include <jni.h>
+ ],
+ [
+ #ifndef JNI_VERSION_1_2
+ Syntax Error
+ #endif
+ ],[ kde_jni_works=yes ],
+ [ kde_jni_works=no ])
+
+ if test $kde_jni_works = no; then
+ AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
+ You need to have Java Development Kit (JDK) version 1.2.
+
+ Use --with-java to specify another location.
+ Use --without-java to configure without java support.
+ Or download a newer JDK and try again.
+ See e.g. http://java.sun.com/products/jdk/1.2 ])
+ fi
+
+ CXXFLAGS="$ac_cxxflags_safe"
+ AC_LANG_RESTORE
+
+ dnl All tests ok, inform and subst the variables
+
+ JAVAC=$kde_java_bindir/javac
+ JAVAH=$kde_java_bindir/javah
+ JAR=$kde_java_bindir/jar
+ AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+ if test "x$kde_java_libgcjdir" = "x"; then
+ JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
+ else
+ JVMLIBS="-L$kde_java_libgcjdir -lgcj"
+ fi
+ AC_MSG_RESULT([java JDK in $kde_java_bindir])
+
+ else
+ AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+ AC_MSG_RESULT([java JRE in $kde_java_bindir])
+ fi
+elif test -d "/Library/Java/Home"; then
+ kde_java_bindir="/Library/Java/Home/bin"
+ jni_includes="-I/Library/Java/Home/include"
+
+ JAVAC=$kde_java_bindir/javac
+ JAVAH=$kde_java_bindir/javah
+ JAR=$kde_java_bindir/jar
+ JVMLIBS="-Xlinker -framework -Xlinker JavaVM"
+
+ AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+ AC_MSG_RESULT([Apple Java Framework])
+else
+ AC_MSG_RESULT([none found])
+fi
+
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAH)
+AC_SUBST(JAR)
+AC_SUBST(JVMLIBS)
+AC_SUBST(jni_includes)
+
+# for backward compat
+kde_cv_java_includedir=$kde_java_includedir
+kde_cv_java_bindir=$kde_java_bindir
+])
+
+dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
+dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
+dnl big packages, m4_foreach is dog-slow. So use our own version of
+dnl it. (matz@kde.org)
+m4_define([mm_foreach],
+[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
+m4_define([mm_car], [[$1]])
+m4_define([mm_car2], [[$@]])
+m4_define([_mm_foreach],
+[m4_if(m4_quote($2), [], [],
+ [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
+ mm_car2(m4_shift($2)),
+ [$3])])])
+m4_define([AC_FOREACH],
+[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
+
+AC_DEFUN([KDE_NEED_FLEX],
+[
+kde_libs_safe=$LIBS
+LIBS="$LIBS $USER_LDFLAGS"
+AM_PROG_LEX
+LIBS=$kde_libs_safe
+if test -z "$LEXLIB"; then
+ AC_MSG_ERROR([You need to have flex installed.])
+fi
+AC_SUBST(LEXLIB)
+])
+
+AC_DEFUN([AC_PATH_QTOPIA],
+[
+ dnl TODO: use AC_CACHE_VAL
+
+ if test -z "$1"; then
+ qtopia_minver_maj=1
+ qtopia_minver_min=5
+ qtopia_minver_pat=0
+ else
+ qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
+ qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
+ qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
+ fi
+
+ qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
+ qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
+
+ AC_REQUIRE([AC_PATH_QT])
+
+ AC_MSG_CHECKING([for Qtopia])
+
+ LIB_QTOPIA="-lqpe"
+ AC_SUBST(LIB_QTOPIA)
+
+ kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
+
+ ac_qtopia_incdir=NO
+
+ AC_ARG_WITH(qtopia-dir,
+ AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
+ [ ac_qtopia_incdir="$withval"/include] )
+
+ qtopia_incdirs=""
+ for dir in $kde_qtopia_dirs; do
+ qtopia_incdirs="$qtopia_incdirs $dir/include"
+ done
+
+ if test ! "$ac_qtopia_incdir" = "NO"; then
+ qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
+ fi
+
+ qtopia_incdir=""
+ AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
+ ac_qtopia_incdir="$qtopia_incdir"
+
+ if test -z "$qtopia_incdir"; then
+ AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
+ fi
+
+ qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`;
+ qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`;
+ qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`;
+
+ qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
+ qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
+ if test "$qtopia_ver" -lt "$qtopia_minver"; then
+ AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
+is required.])
+ fi
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ ac_cxxflags_safe="$CXXFLAGS"
+ ac_ldflags_safe="$LDFLAGS"
+ ac_libs_safe="$LIBS"
+
+ CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
+ LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+ LIBS="$LIBS $LIB_QTOPIA $LIBQT"
+
+ cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qpe/qpeapplication.h>
+#include <qpe/version.h>
+
+int main( int argc, char **argv )
+{
+ QPEApplication app( argc, argv );
+ return 0;
+}
+EOF
+
+ if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ rm -f conftest*
+ else
+ rm -f conftest*
+ AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
+the end of config.log])
+ fi
+
+ CXXFLAGS="$ac_cxxflags_safe"
+ LDFLAGS="$ac_ldflags_safe"
+ LIBS="$ac_libs_safe"
+
+ AC_LANG_RESTORE
+
+ QTOPIA_INCLUDES="-I$qtopia_incdir"
+ AC_SUBST(QTOPIA_INCLUDES)
+
+ AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
+])
+
+
+AC_DEFUN([KDE_INIT_DOXYGEN],
+[
+AC_MSG_CHECKING([for Qt docs])
+kde_qtdir=
+if test "${with_qt_dir+set}" = set; then
+ kde_qtdir="$with_qt_dir"
+fi
+
+AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR)
+AC_MSG_RESULT($QTDOCDIR)
+
+AC_SUBST(QTDOCDIR)
+
+KDE_FIND_PATH(dot, DOT, [], [])
+if test -n "$DOT"; then
+ KDE_HAVE_DOT="YES"
+else
+ KDE_HAVE_DOT="NO"
+fi
+AC_SUBST(KDE_HAVE_DOT)
+KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
+AC_SUBST(DOXYGEN)
+
+DOXYGEN_PROJECT_NAME="$1"
+DOXYGEN_PROJECT_NUMBER="$2"
+AC_SUBST(DOXYGEN_PROJECT_NAME)
+AC_SUBST(DOXYGEN_PROJECT_NUMBER)
+
+KDE_HAS_DOXYGEN=no
+if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
+ KDE_HAS_DOXYGEN=yes
+fi
+AC_SUBST(KDE_HAS_DOXYGEN)
+
+])
+
+
+AC_DEFUN([AC_FIND_BZIP2],
+[
+AC_MSG_CHECKING([for bzDecompress in libbz2])
+AC_CACHE_VAL(ac_cv_lib_bzip2,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#define BZ_NO_STDIO
+#include<bzlib.h>
+],
+ [ bz_stream s; (void) bzDecompress(&s); ],
+ eval "ac_cv_lib_bzip2='-lbz2'",
+ eval "ac_cv_lib_bzip2=no")
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+AC_MSG_RESULT($ac_cv_lib_bzip2)
+
+if test ! "$ac_cv_lib_bzip2" = no; then
+ BZIP2DIR=bzip2
+
+ LIBBZ2="$ac_cv_lib_bzip2"
+ AC_SUBST(LIBBZ2)
+
+else
+
+ cxx_shared_flag=
+ ld_shared_flag=
+ KDE_CHECK_COMPILER_FLAG(shared, [
+ ld_shared_flag="-shared"
+ ])
+ KDE_CHECK_COMPILER_FLAG(fPIC, [
+ cxx_shared_flag="-fPIC"
+ ])
+
+ AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
+ AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ kde_save_LIBS="$LIBS"
+ LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
+ kde_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
+
+ AC_TRY_LINK(dnl
+ [
+ #define BZ_NO_STDIO
+ #include<bzlib.h>
+ ],
+ [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
+ eval "ac_cv_lib_bzip2_prefix='-lbz2'",
+ eval "ac_cv_lib_bzip2_prefix=no")
+ LIBS="$kde_save_LIBS"
+ CXXFLAGS="$kde_save_CXXFLAGS"
+ AC_LANG_RESTORE
+ ])dnl
+
+ AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
+
+ if test ! "$ac_cv_lib_bzip2_prefix" = no; then
+ BZIP2DIR=bzip2
+
+ LIBBZ2="$ac_cv_lib_bzip2_prefix"
+ AC_SUBST(LIBBZ2)
+
+ AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
+ dnl else, we just ignore this
+ fi
+
+fi
+AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the SSL headers and libraries.
+dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
+dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([KDE_CHECK_SSL],
+[
+LIBSSL="-lssl -lcrypto"
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+ac_ssl_includes=NO ac_ssl_libraries=NO
+ssl_libraries=""
+ssl_includes=""
+AC_ARG_WITH(ssl-dir,
+ AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
+ [ ac_ssl_includes="$withval"/include
+ ac_ssl_libraries="$withval"/lib$kdelibsuff
+ ])
+
+want_ssl=yes
+AC_ARG_WITH(ssl,
+ AC_HELP_STRING([--without-ssl],[disable SSL checks]),
+ [want_ssl=$withval])
+
+if test $want_ssl = yes; then
+
+AC_MSG_CHECKING(for OpenSSL)
+
+AC_CACHE_VAL(ac_cv_have_ssl,
+[#try to guess OpenSSL locations
+
+ ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
+ ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
+ AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
+ ac_ssl_includes="$ssl_incdir"
+
+ ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs"
+ if test ! "$ac_ssl_libraries" = "NO"; then
+ ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
+ fi
+
+ test=NONE
+ ssl_libdir=NONE
+ for dir in $ssl_libdirs; do
+ try="ls -1 $dir/libssl*"
+ if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+ done
+
+ ac_ssl_libraries="$ssl_libdir"
+
+ ac_ldflags_safe="$LDFLAGS"
+ ac_libs_safe="$LIBS"
+
+ LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
+ LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
+
+ AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
+ ac_ssl_rsaref="yes"
+ ,
+ ac_ssl_rsaref="no"
+ )
+
+ LDFLAGS="$ac_ldflags_safe"
+ LIBS="$ac_libs_safe"
+
+ if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
+ have_ssl=no
+ else
+ have_ssl=yes;
+ fi
+
+ ])
+
+ eval "$ac_cv_have_ssl"
+
+ AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
+
+ AC_MSG_CHECKING([whether OpenSSL uses rsaref])
+ AC_MSG_RESULT($ac_ssl_rsaref)
+
+ AC_MSG_CHECKING([for easter eggs])
+ AC_MSG_RESULT([none found])
+
+else
+ have_ssl=no
+fi
+
+if test "$have_ssl" = yes; then
+ AC_MSG_CHECKING(for OpenSSL version)
+ dnl Check for SSL version
+ AC_CACHE_VAL(ac_cv_ssl_version,
+ [
+
+ cat >conftest.$ac_ext <<EOF
+#include <openssl/opensslv.h>
+#include <stdio.h>
+ int main() {
+
+#ifndef OPENSSL_VERSION_NUMBER
+ printf("ssl_version=\\"error\\"\n");
+#else
+ if (OPENSSL_VERSION_NUMBER < 0x00906000)
+ printf("ssl_version=\\"old\\"\n");
+ else
+ printf("ssl_version=\\"ok\\"\n");
+#endif
+ return (0);
+ }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ if test "$ac_ssl_includes" != "/usr/include"; then
+ CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
+ fi
+
+ if AC_TRY_EVAL(ac_link); then
+
+ if eval `./conftest 2>&5`; then
+ if test $ssl_version = error; then
+ AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
+ else
+ if test $ssl_version = old; then
+ AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
+ have_ssl=no
+ fi
+ fi
+ ac_cv_ssl_version="ssl_version=$ssl_version"
+ else
+ AC_MSG_ERROR([Your system couldn't run a small SSL test program.
+ Check config.log, and if you can't figure it out, send a mail to
+ David Faure <faure@kde.org>, attaching your config.log])
+ fi
+
+ else
+ AC_MSG_ERROR([Your system couldn't link a small SSL test program.
+ Check config.log, and if you can't figure it out, send a mail to
+ David Faure <faure@kde.org>, attaching your config.log])
+ fi
+ CPPFLAGS=$ac_save_CPPFLAGS
+
+ ])
+
+ eval "$ac_cv_ssl_version"
+ AC_MSG_RESULT($ssl_version)
+fi
+
+if test "$have_ssl" != yes; then
+ LIBSSL="";
+else
+ AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
+ ac_cv_have_ssl="have_ssl=yes \
+ ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
+
+
+ ssl_libraries="$ac_ssl_libraries"
+ ssl_includes="$ac_ssl_includes"
+
+ if test "$ac_ssl_rsaref" = yes; then
+ LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref"
+ fi
+
+ if test $ssl_version = "old"; then
+ AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
+ fi
+fi
+
+SSL_INCLUDES=
+
+if test "$ssl_includes" = "/usr/include"; then
+ if test -f /usr/kerberos/include/krb5.h; then
+ SSL_INCLUDES="-I/usr/kerberos/include"
+ fi
+elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
+ SSL_INCLUDES="-I$ssl_includes"
+fi
+
+if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
+ SSL_LDFLAGS=""
+else
+ SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
+fi
+
+AC_SUBST(SSL_INCLUDES)
+AC_SUBST(SSL_LDFLAGS)
+AC_SUBST(LIBSSL)
+])
+
+AC_DEFUN([KDE_CHECK_STRLCPY],
+[
+ AC_REQUIRE([AC_CHECK_STRLCAT])
+ AC_REQUIRE([AC_CHECK_STRLCPY])
+ AC_CHECK_SIZEOF(size_t)
+ AC_CHECK_SIZEOF(unsigned long)
+
+ AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
+ AC_TRY_COMPILE(,[
+ #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
+ choke me
+ #endif
+ ],AC_MSG_RESULT([yes]),[
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR([
+ Apparently on your system our assumption sizeof size_t == sizeof unsigned long
+ does not apply. Please mail kde-devel@kde.org with a description of your system!
+ ])
+ ])
+])
+
+AC_DEFUN([KDE_CHECK_BINUTILS],
+[
+ AC_MSG_CHECKING([if ld supports unversioned version maps])
+
+ kde_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+ echo "{ local: extern \"C++\" { foo }; };" > conftest.map
+ AC_TRY_LINK([int foo;],
+[
+#ifdef __INTEL_COMPILER
+icc apparently does not support libtools version-info and version-script
+at the same time. Dunno where the bug is, but until somebody figured out,
+better disable the optional version scripts.
+#endif
+
+ foo = 42;
+], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
+ LDFLAGS="$kde_save_LDFLAGS"
+ rm -f conftest.map
+ AM_CONDITIONAL(include_VERSION_SCRIPT,
+ [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
+
+ AC_MSG_RESULT($kde_supports_versionmaps)
+])
+
+AC_DEFUN([AM_PROG_OBJC],[
+AC_CHECK_PROGS(OBJC, gcc, gcc)
+test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH])
+if test "x${OBJCFLAGS-unset}" = xunset; then
+ OBJCFLAGS="-g -O2"
+fi
+AC_SUBST(OBJCFLAGS)
+_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
+])
+
+AC_DEFUN([KDE_CHECK_PERL],
+[
+ KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
+ AC_MSG_ERROR([No Perl found in your $PATH.
+We need perl to generate some code.])
+ ])
+ AC_SUBST(PERL)
+])
+
+AC_DEFUN([KDE_CHECK_LARGEFILE],
+[
+AC_SYS_LARGEFILE
+if test "$ac_cv_sys_file_offset_bits" != no; then
+ CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
+fi
+
+if test "x$ac_cv_sys_large_files" != "xno"; then
+ CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1"
+fi
+
+])
+
+dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in)
+dnl which allows to search for libs that get installed into the KDE prefix.
+dnl
+dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not)
+dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page
+dnl also defines KSTUFF_PKG_ERRORS on error
+AC_DEFUN([KDE_PKG_CHECK_MODULES], [
+
+ PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
+ if test "$prefix" != "$kde_libs_prefix"; then
+ PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
+ fi
+ export PKG_CONFIG_PATH
+ PKG_CHECK_MODULES($1,$2,$3,$4)
+])
+
+
+dnl Check for PIE support in the compiler and linker
+AC_DEFUN([KDE_CHECK_PIE_SUPPORT],
+[
+ AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support,
+ [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ safe_CXXFLAGS=$CXXFLAGS
+ safe_LDFLAGS=$LDFLAGS
+ CXXFLAGS="$CXXFLAGS -fpie"
+ LDFLAGS="$LDFLAGS -pie"
+
+ AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no])
+
+ CXXFLAGS=$safe_CXXFLAGS
+ LDFLAGS=$safe_LDFLAGS
+ AC_LANG_RESTORE
+ ])
+
+ AC_MSG_CHECKING(if enabling -pie/fpie support)
+
+ AC_ARG_ENABLE(pie,
+ AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]),
+ [kde_has_pie_support=$enableval],
+ [kde_has_pie_support=detect])
+
+ if test "$kde_has_pie_support" = "detect"; then
+ kde_has_pie_support=$kde_cv_val_pie_support
+ fi
+
+ AC_MSG_RESULT([$kde_has_pie_support])
+
+ KDE_USE_FPIE=""
+ KDE_USE_PIE=""
+
+ AC_SUBST([KDE_USE_FPIE])
+ AC_SUBST([KDE_USE_PIE])
+
+ if test "$kde_has_pie_support" = "yes"; then
+ KDE_USE_FPIE="-fpie"
+ KDE_USE_PIE="-pie"
+ fi
+])
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+##
+## 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [m4_define([AC_PROVIDE_IFELSE],
+ [m4_ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [AC_LIBTOOL_CXX],
+ [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+ ])])
+dnl And a similar setup for Fortran 77 support
+ AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [AC_LIBTOOL_F77],
+ [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [ifdef([AC_PROG_GCJ],
+ [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([A][M_PROG_GCJ],
+ [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([LT_AC_PROG_GCJ],
+ [define([LT_AC_PROG_GCJ],
+ defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ AC_PATH_MAGIC
+ fi
+ ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+ [AC_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+ [AC_HELP_STRING([--with-pic],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [pic_mode="$withval"],
+ [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+ [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+ [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X[$]1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+[$]*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ IFS="$lt_save_ifs"
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "[$]0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AC_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case "`/usr/bin/file conftest.o`" in
+ *32-bit*)
+ LINUX_64_MODE="32"
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ LINUX_64_MODE="64"
+ case $host in
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+ ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test ! -s conftest.err; then
+ $2=yes
+ fi
+ fi
+ $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+ ifelse([$5], , :, [$5])
+else
+ ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $3"
+ printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ else
+ $2=yes
+ fi
+ fi
+ $rm conftest*
+ LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+ ifelse([$4], , :, [$4])
+else
+ ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ testring="ABCD"
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ *)
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
+ = "XX$testring") >/dev/null 2>&1 &&
+ new_result=`expr "X$testring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ testring=$testring$testring
+ done
+ testring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ ;;
+ esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+ [$4]
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}]
+EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_unknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+ # that will create temporary files in the current directory regardless of
+ # the output directory. Thus, making CWD read-only will cause this test
+ # to fail, enabling locking or at least warning the user not to do parallel
+ # builds.
+ chmod -w .
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test ! -s out/conftest.err; then
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w .
+ $rm conftest* out/*
+ rmdir out
+ cd ..
+ rmdir conftest
+ $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test "$hard_links" = no; then
+ AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+ test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+
+ # We can hardcode non-existant directories.
+ if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+ test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_AC_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ shrext=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$host_os in
+ yes,cygwin* | yes,mingw* | yes,pw32*)
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+ ;;
+ mingw*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH printed by
+ # mingw gcc, but we are running on Cygwin. Gcc prints its search
+ # path with ; separators, and with drive letters. We can handle the
+ # drive letters (cygwin fileutils understands them), so leave them,
+ # especially as we might pass files found there to a mingw objdump,
+ # which wouldn't understand a cygwinified path. Ahh.
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ ;;
+
+ *)
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+ # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+ if test "$GCC" = yes; then
+ sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+ else
+ sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+ fi
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+kfreebsd*-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='GNU ld.so'
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ *) # from 3.2 on
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case "$host_cpu" in
+ ia64*)
+ shrext='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ libsuff=
+ if test "x$LINUX_64_MODE" = x64; then
+ # Some platforms are per default 64-bit, so there's no /lib64
+ if test -d /lib64; then
+ libsuff=64
+ fi
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+ sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+nto-qnx*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[[89]] | openbsd2.[[89]].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+ [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+ [include additional configurations @<:@automatic@:>@])],
+ [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+ if test ! -f "${ofile}"; then
+ AC_MSG_WARN([output file `$ofile' does not exist])
+ fi
+
+ if test -z "$LTCC"; then
+ eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+ if test -z "$LTCC"; then
+ AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+ else
+ AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+ fi
+ fi
+
+ # Extract list of available tagged configurations in $ofile.
+ # Note that this assumes the entire list is on one line.
+ available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for tagname in $tagnames; do
+ IFS="$lt_save_ifs"
+ # Check whether tagname contains only valid characters
+ case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+ "") ;;
+ *) AC_MSG_ERROR([invalid tag name: $tagname])
+ ;;
+ esac
+
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+ then
+ AC_MSG_ERROR([tag name \"$tagname\" already exists])
+ fi
+
+ # Update the list of available tags.
+ if test -n "$tagname"; then
+ echo appending configuration tag \"$tagname\" to $ofile
+
+ case $tagname in
+ CXX)
+ if test -n "$CXX" && test "X$CXX" != "Xno"; then
+ AC_LIBTOOL_LANG_CXX_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ F77)
+ if test -n "$F77" && test "X$F77" != "Xno"; then
+ AC_LIBTOOL_LANG_F77_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ GCJ)
+ if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+ AC_LIBTOOL_LANG_GCJ_CONFIG
+ else
+ tagname=""
+ fi
+ ;;
+
+ RC)
+ AC_LIBTOOL_LANG_RC_CONFIG
+ ;;
+
+ *)
+ AC_MSG_ERROR([Unsupported tag name: $tagname])
+ ;;
+ esac
+
+ # Append the new tag name to the list of available tags.
+ if test -n "$tagname" ; then
+ available_tags="$available_tags $tagname"
+ fi
+ fi
+ done
+ IFS="$lt_save_ifs"
+
+ # Now substitute the updated list of available tags.
+ if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+ mv "${ofile}T" "$ofile"
+ chmod +x "$ofile"
+ else
+ rm -f "${ofile}T"
+ AC_MSG_ERROR([unable to update list of available tagged configurations.])
+ fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+ [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+ [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+ [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+ [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="ifelse([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+ [AC_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi4*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+mingw* | pw32*)
+ # win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='win32_libid'
+ ;;
+
+darwin* | rhapsody*)
+ # this will be overwritten by pass_all, but leave it in just in case
+ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+ ;;
+ *) # Darwin 1.3 on
+ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ ;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | kfreebsd*-gnu)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case "$host_cpu" in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ irix5* | nonstopux*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux*)
+ case $host_cpu in
+ alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+ lt_cv_deplibs_check_method=pass_all ;;
+ # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+ arm* )
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+nto-qnx*)
+ lt_cv_deplibs_check_method=unknown
+ ;;
+
+openbsd*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+ else
+ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM="-lm")
+ ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case $enable_ltdl_convenience in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments. Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!). If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, lt_dlinit,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+ LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ LTDLINCL=
+ fi
+ # For backwards non-gettext consistent compatibility...
+ INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+ [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+ [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+ [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+ case $host_os in
+ sco3.2v5*)
+ _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+ ;;
+ esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+ AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+ if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then :
+ else
+ AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+ _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+ fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+ _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+ $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+ [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ darwin* | rhapsody*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ output_verbose_link_cmd='echo'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+ unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+ unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+ AC_PROG_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+ grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # KDE requires run time linking. Make it the default.
+ aix_use_runtimelinking=yes
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_AC_TAGVAR(archive_cmds, $1)=''
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ else
+ # We have old collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='-qmkshrobj ${wl}-G'
+ else
+ shared_flag='-qmkshrobj'
+ fi
+ fi
+ fi
+
+ # Let the compiler handle the export list.
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ lt_int_apple_cc_single_mod=no
+ output_verbose_link_cmd='echo'
+ if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+ lt_int_apple_cc_single_mod=yes
+ fi
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+ fi
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before switch to ELF
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ freebsd-elf*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+ freebsd* | kfreebsd*-gnu)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+ gnu*)
+ ;;
+ hpux9*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+ esac
+ fi
+ case "$host_cpu" in
+ hppa*64*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC)
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case "$host_cpu" in
+ ia64*|hppa*64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC)
+ # SGI C++
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+ fi
+ fi
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc)
+ # Intel C++
+ with_gnu_ld=yes
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ cxx)
+ # Compaq C++
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ esac
+ ;;
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+ osf3*)
+ case $cc_basename in
+ KCC)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+ ;;
+ RCC)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ osf4* | osf5*)
+ case $cc_basename in
+ KCC)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+ ;;
+ RCC)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~
+ $rm $lib.exp'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ sco*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ case $cc_basename in
+ CC)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The C++ compiler is used as linker so we must use $wl
+ # flag to pass the commands to the underlying system
+ # linker.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+ if $CC --version | grep -v '^2\.7' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+ fi
+
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+ fi
+ ;;
+ esac
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ # The `*' in the case matches for architectures that use `case' in
+ # $output_verbose_cmd can trigger glob expansion during the loop
+ # eval without this substitution.
+ output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+ for p in `eval $output_verbose_link_cmd`; do
+ case $p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" \
+ || test $p = "-R"; then
+ prev=$p
+ continue
+ else
+ prev=
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ case $p in
+ -L* | -R*)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+ else
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+ _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+ else
+ _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+ fi
+ fi
+ ;;
+
+ *.$objext|*.$libext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+ _LT_AC_TAGVAR(predep_objects, $1)="$p"
+ else
+ _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+ _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+ else
+ _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=" program t\n end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+aix4*)
+ test "$enable_shared" = yes && enable_static=no
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined. Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars. Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ # See if we are running on zsh, and set the options which allow our commands through
+ # without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+ fi
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+ libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+ old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+ deplibs_check_method reload_flag reload_cmds need_locks \
+ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+ lt_cv_sys_global_symbol_to_c_name_address \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ old_postinstall_cmds old_postuninstall_cmds \
+ _LT_AC_TAGVAR(compiler, $1) \
+ _LT_AC_TAGVAR(CC, $1) \
+ _LT_AC_TAGVAR(LD, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+ _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+ _LT_AC_TAGVAR(old_archive_cmds, $1) \
+ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+ _LT_AC_TAGVAR(predep_objects, $1) \
+ _LT_AC_TAGVAR(postdep_objects, $1) \
+ _LT_AC_TAGVAR(predeps, $1) \
+ _LT_AC_TAGVAR(postdeps, $1) \
+ _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+ _LT_AC_TAGVAR(archive_cmds, $1) \
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+ _LT_AC_TAGVAR(postinstall_cmds, $1) \
+ _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+ _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+ _LT_AC_TAGVAR(no_undefined_flag, $1) \
+ _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+ _LT_AC_TAGVAR(hardcode_automatic, $1) \
+ _LT_AC_TAGVAR(module_cmds, $1) \
+ _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+ _LT_AC_TAGVAR(exclude_expsyms, $1) \
+ _LT_AC_TAGVAR(include_expsyms, $1); do
+
+ case $var in
+ _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+ _LT_AC_TAGVAR(archive_cmds, $1) | \
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+ _LT_AC_TAGVAR(module_cmds, $1) | \
+ _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+ extract_expsyms_cmds | reload_cmds | finish_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ case $lt_echo in
+ *'\[$]0 --fallback-echo"')
+ lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+ ;;
+ esac
+
+ifelse([$1], [],
+ [cfgfile="${ofile}T"
+ trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+ $rm -f "$cfgfile"
+ AC_MSG_NOTICE([creating $ofile])],
+ [cfgfile="$ofile"])
+
+ cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# 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 Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" || \
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+])
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ test -f Makefile && make "$ltmain"
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+ AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ if test "$host_cpu" = ia64; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris* | sysv5*)
+ symcode='[[BDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGISTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if grep ' nm_test_var$' "$nlist" >/dev/null; then
+ if grep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_save_LIBS="$LIBS"
+ lt_save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS="$lt_save_LIBS"
+ CFLAGS="$lt_save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | os2* | pw32*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix4* | aix5*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68)
+ # Green Hills C++ Compiler
+ # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | kfreebsd*-gnu)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ if test "$host_cpu" != ia64; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux*)
+ case $cc_basename in
+ KCC)
+ # KAI C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ icpc)
+ # Intel C++
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ cxx)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC)
+ # Rational C++ 2.4.1
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx)
+ # Digital/Compaq C++
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ sco*)
+ case $cc_basename in
+ CC)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx)
+ # Green Hills C++ Compiler
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC)
+ # Sun C++ 4.x
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc)
+ # Lucid
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC)
+ # NonStop-UX NCC 3.20
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ unixware*)
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+
+ beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ newsos6)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ linux*)
+ case $CC in
+ icc* | ecc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ ccc*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ esac
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+ ;;
+
+ solaris*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sunos4*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ uts4*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+ _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+ [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ case $host_os in
+ aix4* | aix5*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+ ;;
+ cygwin* | mingw*)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ *)
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+],[
+ runpath_var=
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)=
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+ _LT_AC_TAGVAR(module_cmds, $1)=
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_AC_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ fi
+ ;;
+
+ amigaos*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can't use
+ # them.
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sunos4*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+ runpath_var=LD_RUN_PATH
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+ fi
+
+ # KDE requires run time linking. Make it the default.
+ aix_use_runtimelinking=yes
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_AC_TAGVAR(archive_cmds, $1)=''
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ else
+ # We have old collect2
+ _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='-qmkshrobj ${wl}-G'
+ else
+ shared_flag='-qmkshrobj'
+ fi
+ fi
+ fi
+
+ # Let the compiler handle the export list.
+ _LT_AC_TAGVAR(always_export_symbols, $1)=no
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an empty executable.
+ _LT_AC_SYS_LIBPATH_AIX
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+ # -bexpall does not export symbols beginning with underscore (_)
+ _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ # This is similar to how AIX traditionally builds it's shared libraries.
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ # see comment about different semantics on the GNU ld section
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ bsdi4*)
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+
+ darwin* | rhapsody*)
+ if test "$GXX" = yes ; then
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+ ;;
+ *) # Darwin 1.3 on
+ if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+ else
+ case ${MACOSX_DEPLOYMENT_TARGET} in
+ 10.[012])
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+ ;;
+ 10.*)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ lt_int_apple_cc_single_mod=no
+ output_verbose_link_cmd='echo'
+ if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+ lt_int_apple_cc_single_mod=yes
+ fi
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+ fi
+ _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+ # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+ if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ else
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ dgux*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ freebsd1*)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | kfreebsd*-gnu)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ ;;
+
+ hpux10* | hpux11*)
+ if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+ ;;
+ esac
+ else
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ ia64*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ *)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ openbsd*)
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ else
+ case $host_os in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+ _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+ else
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ sco3.2v5*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ;;
+
+ solaris*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ esac
+ _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+ else
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+ fi
+ runpath_var='LD_RUN_PATH'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv5*)
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $_LT_AC_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+ $rm conftest*
+ printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+ then
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $rm conftest*
+ AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+ ;;
+ esac
+ fi
+ ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+ test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f $lt_ac_sed && break
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test $lt_ac_count -gt 10 && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test $lt_ac_count -gt $lt_ac_max; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..dd92cb3
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,863 @@
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+ [AM_AUTOMAKE_VERSION([1.9.6])])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # So let's grep whole file.
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $1 | $1:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake. There are at least two reasons why we must not
+# use `-m 0755':
+# - it causes special bits like SGID to be ignored,
+# - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out. Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+AC_SUBST([mkdir_p])])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([acinclude.m4])
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..01ee35e
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,237 @@
+/* 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
+
+/* 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
+
+
+
+#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
diff --git a/configure.files b/configure.files
new file mode 100644
index 0000000..030bce8
--- /dev/null
+++ b/configure.files
@@ -0,0 +1,2 @@
+./admin/configure.in.min
+configure.in.in
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..cc63495
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,136 @@
+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(kshutdown, 1.0.4) dnl searches for some needed programs
+
+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)
+AC_PATH_KDE
+dnl =======================================================
+dnl FILE: configure.in.in
+dnl =======================================================
+
+#MIN_CONFIG(3)
+
+dnl PACKAGE set before
+
+dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
+dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
+dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
+
+dnl KDE_NEED_FLEX dnl __kdevelop__
+dnl AC_PROG_YACC dnl __kdevelop__
+KDE_CREATE_SUBDIRSLIST
+AC_CONFIG_FILES([ Makefile ])
+AC_CONFIG_FILES([ doc/Makefile ])
+AC_CONFIG_FILES([ doc/de/Makefile ])
+AC_CONFIG_FILES([ doc/kshutdown/Makefile ])
+AC_CONFIG_FILES([ extras/Makefile ])
+AC_CONFIG_FILES([ extras/multimedia/Makefile ])
+AC_CONFIG_FILES([ extras/shutdown/Makefile ])
+AC_CONFIG_FILES([ extras/system/Makefile ])
+AC_CONFIG_FILES([ karamba/Makefile ])
+AC_CONFIG_FILES([ kshutdown/Makefile ])
+AC_CONFIG_FILES([ kshutdownlockout/Makefile ])
+AC_CONFIG_FILES([ pics/Makefile ])
+AC_CONFIG_FILES([ po/Makefile ])
+AC_CONFIG_FILES([ sounds/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
diff --git a/configure.in.in b/configure.in.in
new file mode 100644
index 0000000..197c972
--- /dev/null
+++ b/configure.in.in
@@ -0,0 +1,10 @@
+#MIN_CONFIG(3)
+
+AM_INIT_AUTOMAKE(kshutdown,1.0.4)
+
+dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
+dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
+dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
+
+dnl KDE_NEED_FLEX dnl __kdevelop__
+dnl AC_PROG_YACC dnl __kdevelop__
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..54cb7de
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = $(AUTODIRS)
diff --git a/doc/de/Makefile.am b/doc/de/Makefile.am
new file mode 100644
index 0000000..b2d29f6
--- /dev/null
+++ b/doc/de/Makefile.am
@@ -0,0 +1,2 @@
+KDE_DOCS = kshutdown
+KDE_LANG = de
diff --git a/doc/de/index.docbook b/doc/de/index.docbook
new file mode 100644
index 0000000..3c71555
--- /dev/null
+++ b/doc/de/index.docbook
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY kmyapplication "<application>KShutDown</application>">
+<!ENTITY kappname "&kmyapplication;">
+<!ENTITY package "kde-module">
+<!ENTITY % addindex "IGNORE">
+<!ENTITY % German "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<bookinfo>
+ <title>Das &kmyapplication; Handbuch</title>
+ <authorgroup>
+ <author>
+ <personname>
+ <firstname>Konrad</firstname>
+ <surname>Twardowski</surname>
+ </personname>
+ <email>kdtonline@poczta.onet.pl</email>
+ </author>
+ </authorgroup>
+ <copyright>
+ <year>2005</year>
+ <holder>Konrad Twardowski</holder>
+ </copyright>
+ <legalnotice>&FDLNotice;</legalnotice>
+ <date>2005-11-24</date>
+ <releaseinfo>1.08.00</releaseinfo><!-- sync. with KShutDown version -->
+ <abstract>
+ <para>&kmyapplication; ist ein Programm zum erweiterten Herunterfahren in &kde;.</para>
+ </abstract>
+ <keywordset>
+ <keyword>KDE</keyword>
+ <keyword>kshutdown</keyword>
+ <keyword>shutdown</keyword>
+ <keyword>shut</keyword>
+ <keyword>down</keyword>
+ <keyword>poweroff</keyword>
+ <keyword>reboot</keyword>
+ <keyword>lock</keyword>
+ <keyword>halt</keyword>
+ <keyword>exit</keyword>
+ <keyword>logout</keyword>
+ </keywordset>
+</bookinfo>
+
+<chapter id="introduction">
+ <title>Einführung</title>
+ <para>&kmyapplication; ist ein Programm zum erweiterten Herunterfahren in &kde;.</para>
+ <para>
+ Fähigkeiten:
+ <itemizedlist>
+ <listitem><para>Computer abschalten (ausloggen und anhalten des Systems)</para></listitem>
+ <listitem><para>Computer Neustart (ausloggen und neu booten des Systems)</para></listitem>
+ <listitem><para>Sitzung sperren (sperrt den Bildschirm mit dem Bildschirmschoner)</para></listitem>
+ <listitem><para>Beendet aktive Sitzung (Beendet die aktive Sitzung in &kde; und loggt den Benutzer aus)</para></listitem>
+ <listitem><para>Extras (zusätzliche, Benutzereingaben)</para></listitem>
+ <listitem><para>Zeit und Verzögerungsoptionen</para></listitem>
+ <listitem><para><link linkend="command-line">Kommandozeilen-</link> und <link linkend="dcop">DCOP-</link> Unterstützung</para></listitem>
+ <listitem><para><link linkend="using-systray">System tray</link></para></listitem>
+ <listitem><para>Visuelle und Klangbenachrichtigungen</para></listitem>
+ <listitem><para><link linkend="kiosk">&kde; Kiosk Unterstützung</link></para></listitem>
+ </itemizedlist>
+ </para>
+</chapter><!-- introduction -->
+
+<chapter id="using-kapp">
+ <title>Benutzen von &kmyapplication;</title>
+ <sect1 id="using-mainwindow">
+ <title>Hauptfenster</title>
+ <itemizedlist>
+ <listitem><para>Benutzen Sie das erste Aufklappmenü um eine Aktion auszuwählen (Computer ausschalten, Extras, usw).</para></listitem>
+ <listitem><para>Benutzen Sie das zweite Aufklappmenü um die Verzögerung einzustellen (Keine, Zeit ab jetzt, usw).</para></listitem>
+ <listitem><para>Klicken Sie den <guibutton>Start</guibutton> Knopf um eine ausgewählte Aktion zu aktivieren. Die Aktion wird zur angegebenen Zeit gestartet.</para></listitem>
+ <listitem><para>Klicken Sie den <guibutton>Stop</guibutton> Knopf oder die <keycap>Esc</keycap> Taste um die Aktion zu stoppen.</para></listitem>
+ </itemizedlist>
+ <screenshot>
+ <screeninfo>&kmyapplication; Hauptfenster</screeninfo>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mainwindow.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>Hauptfenster</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+ </sect1>
+ <sect1 id="using-systray">
+ <title>System Tray</title>
+ <itemizedlist>
+ <listitem><para>Linker Mausknopf - versteckt/zeigt Hauptfenster</para></listitem>
+ <listitem><para>Mittlerer Mausknopf - zeigt das Menü mit den Aktionen (Keine Verzögerung!)</para></listitem>
+ <listitem><para>Rechter Mausknopf - Zeigt das Kontextmenü</para></listitem>
+ </itemizedlist>
+ </sect1>
+</chapter><!-- using-kapp -->
+
+<chapter id="command-line">
+ <title>Kommandozeile</title>
+<!-- copied from the kshutdown command line help -->
+<programlisting>
+Anmerkung: Die Optionen werden in Englisch angezeigt!
+Auf der Kommandozeile kshutdown mit den gewünschten Optionen, ohne Klammern, angeben.
+
+Benutzung: kshutdown [Qt-options] [KDE-options] [options] [time]
+
+A Shut Down Utility for KDE
+
+Generic options:
+ --help Show help about options Hilfe Optionen
+ --help-qt Show Qt specific options QT-spezifische Optionen
+ --help-kde Show KDE specific options KDE-spezifische Optionen
+ --help-all Show all options Alle Optionen
+ --author Show author information Informationen über den Author
+ -v, --version Show version information Versionsinformationen
+ --license Show license information Lizenzinformationen
+ -- End of options Ende der Optionen
+
+Options:
+ -s, --shutdown Turn off computer Computer abschalten
+ -h, --halt Turn off computer " "
+ -r, --reboot Restart computer Computer neu starten
+ -k, --lock Lock session Sitzung sperren
+ -l, --logout End current session Sitzung beenden
+ --confirm Confirm command line action Bestätigung für Kommandozeilen Aktionen
+ --standard Show standard logout dialog Zeigt Standard Abmelden Dialog
+ -c, --cancel Cancel an active action Bricht eine aktive Aktion ab
+ --init Don't show window at startup Zeigt kein Fenster beim Start
+ --test Enable test mode Aktiviert Testmodus
+ --default Disable test mode Deaktiviert Testmodus
+
+Arguments:
+ time Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now
+</programlisting>
+</chapter><!-- command-line -->
+
+<chapter id="kiosk">
+ <title>Kiosk</title>
+ <para>
+ &kde; Kiosk erlaubt Ihnen die Kontrolle über sämtliche kritische Funktionen, wie zum Beispiel <guibutton>Computer Ausschalten</guibutton> oder <guibutton>Computer neu starten</guibutton>. Wollen Sie diese Restriktionen einschalten, können Sie eine globale Konfigurationsdatei namens <filename>kshutdownrc</filename> im allgemeinen &kde; Verzeichnis anlegen. Dieses liegt in (<filename>[prefix]/share/config</filename>).
+ </para>
+ <note>
+ <para>In den meisten Fällen müssen Sie &kmyapplication; neu starten damit die neuen Einstellungen übernommen werden.</para>
+ </note>
+ <note>
+ <para>Seit Version 0.3.1 Beta ist allen Schlüsseln eine "kshutdown_" Zeichenkette vorangestellt.</para>
+ </note>
+<example>
+<title>Beispiel kshutdownrc Datei mit den Einschränkungen</title>
+<programlisting>
+[KDE Aktionseinschränkungen][$i]
+# [$i] - Benutzer kann Gruppe nicht Überschreiben
+# false - Feature deaktiviert
+# true - Feature aktiviert
+# Standard ist angeschaltet
+Mit "false" verbieten, mit "true" erlauben.
+
+# Deaktiviert die Aktion "Computer ausschalten"
+kshutdown_action_shutdown=false
+# kshutdown_action_shutdown=true &lt;- "true" aktiviert diese Aktion
+
+# Computer neu starten
+kshutdown_action_reboot=true
+
+# Bilschirm sperren
+kshutdown_action_lockscreen=true
+
+# Sitzung beenden
+kshutdown_action_logout=true
+
+# "Extras" Aktionen
+kshutdown_action_extras=true
+
+# Deaktiviert die Aktionen Seite in den Einstellungen
+kshutdown_settings_actions=true
+
+# Deaktiviert "Zeit auswählen" Aufklappmenü und das Kommandozeilenargument dazu
+# and the command line "time" argument
+kshutdown_tab_time=true
+
+# Deaktiviert den Statistik Dialog
+kshutdown_tab_stats=true
+</programlisting>
+</example>
+</chapter><!-- kiosk -->
+
+<chapter id="dcop">
+ <title>DCOP API (KShutdownIface)</title>
+ <sect1 id="dcop-intro">
+ <title>Einführung</title>
+ <orderedlist>
+ <listitem><para>Achten Sie darauf das &kmyapplication; gestartet ist.</para></listitem>
+ <listitem><para>Tippen Sie <command>kshutdown --init</command> zum Starten von &kmyapplication; ohne Hauptfenster.</para></listitem>
+ <listitem><para>Zum Auflisten aller DCOP Functionen, tippen Sie <command>dcop kshutdown KShutdownIface</command>.</para></listitem>
+ <listitem><para>Mit <command>dcop kshutdown MMainWindow hide</command> verstecken Sie das Hauptfenster.</para></listitem>
+ <listitem><para>Mit <command>dcop kshutdown MMainWindow show</command> machen Sie das Hauptfenster wieder sichtbar.</para></listitem>
+ </orderedlist>
+ </sect1>
+ <sect1 id="dcop-func">
+ <title>Funktionen</title>
+ <sect2 id="dcop-func-cancel">
+ <title>ASYNC cancel()</title>
+ <para>Stoppt eine aktive Aktion.</para>
+ </sect2>
+ <sect2 id="dcop-func-shutdown">
+ <title>bool shutDown(), bool shutdown()</title>
+ <para>Fährt das System herunter.</para>
+ </sect2>
+ <sect2 id="dcop-func-reboot">
+ <title>bool reboot()</title>
+ <para>Startet den Rechner neu.</para>
+ </sect2>
+ <sect2 id="dcop-func-lock">
+ <title>bool lockScreen()</title>
+ <para>Sperrt den Bildschirm.</para>
+ </sect2>
+ <sect2 id="dcop-func-logout">
+ <title>bool logout()</title>
+ <para>Beendet die Sitzung und meldet den Benutzer ab.</para>
+ </sect2>
+ <sect2 id="dcop-func-config">
+ <title>ASYNC configure()</title>
+ <para>[Seit 0.6] Zeigt den Einstellungen Dialog.</para>
+ </sect2>
+ <sect2 id="dcop-func-status">
+ <title>QString getStatusInfo()</title>
+ <para>Zeigt &kmyapplication; Status Informationen.</para>
+ </sect2>
+ <sect2 id="dcop-func-makevisible">
+ <title>ASYNC makeVisible()</title>
+ <para>[Since 0.6] Macht das Hauptfenster auf der aktuellen Arbeitsfläche sichtbar.</para>
+ </sect2>
+ <sect2 id="dcop-func-test">
+ <title>ASYNC setTestMode(bool yes)</title>
+ <para>De-/aktiviert den Testmodus.</para>
+ <example>
+ <title>Aktiviert Testmodus</title>
+ <programlisting>dcop kshutdown KShutdownIface setTestMode true</programlisting>
+ </example>
+ <example>
+ <title>Deaktiviert Testmodus</title>
+ <programlisting>dcop kshutdown KShutdownIface setTestMode false</programlisting>
+ </example>
+ </sect2>
+ </sect1>
+</chapter><!-- dcop -->
+
+<chapter id="credits">
+ <title>Danksagung und Lizenz</title>
+ <para>&kmyapplication;</para>
+ <para>
+ Program Copyright 2005 Konrad Twardowski
+ <email>kdtonline@poczta.onet.pl</email>
+ </para>
+ <para>
+ Documentation Copyright &copy; 2005 Konrad Twardowski
+ <email>kdtonline@poczta.onet.pl</email>
+ </para>
+ <para>Czech FAQ Copyright &copy; Robert Kratky</para>
+ <para>Siehe <guimenuitem>Hilfe | Über &kmyapplication;</guimenuitem> für mehr Informationen.</para>
+ &underFDL;<!-- FDL: do not remove -->
+ &underGPL;<!-- GPL License -->
+</chapter><!-- credits -->
+
+&documentation.index;
+
+</book>
diff --git a/doc/de/mainwindow.png b/doc/de/mainwindow.png
new file mode 100644
index 0000000..ee7a104
--- /dev/null
+++ b/doc/de/mainwindow.png
Binary files differ
diff --git a/doc/kshutdown/Makefile.am b/doc/kshutdown/Makefile.am
new file mode 100644
index 0000000..c937e9c
--- /dev/null
+++ b/doc/kshutdown/Makefile.am
@@ -0,0 +1,2 @@
+KDE_DOCS = kshutdown
+KDE_LANG = en
diff --git a/doc/kshutdown/index.docbook b/doc/kshutdown/index.docbook
new file mode 100644
index 0000000..b481c22
--- /dev/null
+++ b/doc/kshutdown/index.docbook
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+<!ENTITY kmyapplication "<application>KShutDown</application>">
+<!ENTITY kappname "&kmyapplication;">
+<!ENTITY package "kde-module">
+<!ENTITY % addindex "IGNORE">
+<!ENTITY % English "INCLUDE">
+]>
+
+<book lang="&language;">
+
+<bookinfo>
+ <title>The &kmyapplication; Handbook</title>
+ <authorgroup>
+ <author>
+ <personname>
+ <firstname>Konrad</firstname>
+ <surname>Twardowski</surname>
+ </personname>
+ <email>kdtonline@poczta.onet.pl</email>
+ </author>
+ </authorgroup>
+ <copyright>
+ <year>2005</year>
+ <holder>Konrad Twardowski</holder>
+ </copyright>
+ <legalnotice>&FDLNotice;</legalnotice>
+ <date>2006-04-22</date>
+ <releaseinfo>1.09.00</releaseinfo><!-- sync. with KShutDown version -->
+ <abstract>
+ <para>&kmyapplication; is an advanced shut down utility for &kde;.</para>
+ </abstract>
+ <keywordset>
+ <keyword>KDE</keyword>
+ <keyword>kshutdown</keyword>
+ <keyword>shutdown</keyword>
+ <keyword>shut</keyword>
+ <keyword>down</keyword>
+ <keyword>poweroff</keyword>
+ <keyword>reboot</keyword>
+ <keyword>lock</keyword>
+ <keyword>halt</keyword>
+ <keyword>exit</keyword>
+ <keyword>logout</keyword>
+ </keywordset>
+</bookinfo>
+
+<chapter id="introduction">
+ <title>Introduction</title>
+ <para>&kmyapplication; is an advanced shut down utility for &kde;.</para>
+ <para>
+ Features:
+ <itemizedlist>
+ <listitem><para>Turn Off Computer (logout and halt the system)</para></listitem>
+ <listitem><para>Restart Computer (logout and reboot the system)</para></listitem>
+ <listitem><para>Lock Session (lock the screen using a screen saver)</para></listitem>
+ <listitem><para>End Current Session (end the current &kde; session and logout the user)</para></listitem>
+ <listitem><para>Extras (additional, user commands)</para></listitem>
+ <listitem><para>Time and delay options</para></listitem>
+ <listitem><para><link linkend="command-line">Command line</link> and <link linkend="dcop">DCOP</link> support</para></listitem>
+ <listitem><para><link linkend="using-systray">System tray</link></para></listitem>
+ <listitem><para>Visual and sound notifications</para></listitem>
+ <listitem><para><link linkend="kiosk">&kde; Kiosk support</link></para></listitem>
+ </itemizedlist>
+ </para>
+</chapter><!-- introduction -->
+
+<chapter id="using-kapp">
+ <title>Using &kmyapplication;</title>
+ <sect1 id="using-mainwindow">
+ <title>Main Window</title>
+ <itemizedlist>
+ <listitem><para>Use the first combo box to select an action (turn off computer, extras, etc).</para></listitem>
+ <listitem><para>Use the second combo box to select a delay type (no delay, time from now, etc).</para></listitem>
+ <listitem><para>Click the <guibutton>Start</guibutton> button to activate the selected action. The action will be executed at the selected time.</para></listitem>
+ <listitem><para>Click the <guibutton>Stop</guibutton> button or press <keycap>Esc</keycap> key to cancel an active action.</para></listitem>
+ </itemizedlist>
+ <screenshot>
+ <screeninfo>&kmyapplication; main window</screeninfo>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mainwindow.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase>Main window</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+ </sect1>
+ <sect1 id="using-systray">
+ <title>System Tray</title>
+ <itemizedlist>
+ <listitem><para>Left mouse button - hide/show main window</para></listitem>
+ <listitem><para>Middle mouse button - show menu with Actions (no delay!)</para></listitem>
+ <listitem><para>Right mouse button - show context menu</para></listitem>
+ </itemizedlist>
+ </sect1>
+</chapter><!-- using-kapp -->
+
+<chapter id="command-line">
+ <title>Command Line</title>
+<!-- copied from the kshutdown command line help -->
+<programlisting>
+Usage: kshutdown [Qt-options] [KDE-options] [options] [time]
+
+A Shut Down Utility for KDE
+
+Generic options:
+ --help Show help about options
+ --help-qt Show Qt specific options
+ --help-kde Show KDE specific options
+ --help-all Show all options
+ --author Show author information
+ -v, --version Show version information
+ --license Show license information
+ -- End of options
+
+Options:
+ -s, --shutdown Turn off computer
+ -h, --halt Turn off computer
+ -r, --reboot Restart computer
+ -k, --lock Lock session
+ -l, --logout End current session
+ -e, --extra &lt;file&gt; Execute "Extras" command (.desktop file)
+ --confirm Confirm command line action
+ --standard Show standard logout dialog
+ -c, --cancel Cancel an active action
+ --init Don't show window at startup
+ --test Enable test mode
+ --default Disable test mode
+
+Arguments:
+ time Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now
+</programlisting>
+</chapter><!-- command-line -->
+
+<chapter id="kiosk">
+ <title>Kiosk</title>
+ <para>
+ &kde; Kiosk allows you to control some critical features, such as <guibutton>Turn Off Computer</guibutton> or <guibutton>Restart Computer</guibutton> commands. To enable restrictions, you need to create a global configuration file - <filename>kshutdownrc</filename> in your global &kde; directory (<filename>[prefix]/share/config</filename>).
+ </para>
+ <note>
+ <para>In some cases you need to restart &kmyapplication; to see effects.</para>
+ </note>
+ <note>
+ <para>Since version 0.3.1 Beta all Kiosk keys are prefixed with a "kshutdown_" string.</para>
+ </note>
+<example>
+<title>Example kshutdownrc file with restrictions</title>
+<programlisting>
+[KDE Action Restrictions][$i]
+# [$i] - user cannot override this group
+# false - feature is disabled
+# true - feature is enabled
+# by default all features are enabled
+
+# Disables the "Turn Off Computer" action
+kshutdown_action_shutdown=true
+# kshutdown_action_shutdown=false &lt;- "false" will disable "Shut Down" action
+
+# Disables the "Restart Computer" action
+kshutdown_action_reboot=true
+
+# Disables the "Lock Session" action
+kshutdown_action_lockscreen=true
+
+# Disables the "End Current Session" action
+kshutdown_action_logout=true
+
+# Disables the "Extras" action
+kshutdown_action_extras=true
+
+# Disables the "Actions" page in the "Settings" dialog
+kshutdown_settings_actions=true
+
+# Disables the "Select a time" combo box,
+# and the command line "time" argument
+kshutdown_tab_time=true
+
+# Disables the "Statistics" dialog
+kshutdown_tab_stats=true
+</programlisting>
+</example>
+</chapter><!-- kiosk -->
+
+<chapter id="dcop">
+ <title>DCOP API (KShutdownIface)</title>
+ <sect1 id="dcop-intro">
+ <title>Introduction</title>
+ <orderedlist>
+ <listitem><para>Make sure &kmyapplication; is running.</para></listitem>
+ <listitem><para>Type <command>kshutdown --init</command> to start &kmyapplication; without displaying its main window.</para></listitem>
+ <listitem><para>To display all DCOP functions, type <command>dcop kshutdown KShutdownIface</command>.</para></listitem>
+ <listitem><para>Run <command>dcop kshutdown MMainWindow hide</command> to hide the main window.</para></listitem>
+ <listitem><para>Run <command>dcop kshutdown MMainWindow show</command> to restore the main window.</para></listitem>
+ </orderedlist>
+ </sect1>
+ <sect1 id="dcop-func">
+ <title>Functions</title>
+ <sect2 id="dcop-func-cancel">
+ <title>ASYNC cancel()</title>
+ <para>Cancels the active action.</para>
+ </sect2>
+ <sect2 id="dcop-func-shutdown">
+ <title>bool shutDown(), bool shutdown()</title>
+ <para>Shuts down the system.</para>
+ </sect2>
+ <sect2 id="dcop-func-reboot">
+ <title>bool reboot()</title>
+ <para>Reboots the system.</para>
+ </sect2>
+ <sect2 id="dcop-func-lock">
+ <title>bool lockScreen()</title>
+ <para>Locks the screen using a screen saver.</para>
+ </sect2>
+ <sect2 id="dcop-func-logout">
+ <title>bool logout()</title>
+ <para>Logouts the current user and ends the session.</para>
+ </sect2>
+ <sect2 id="dcop-func-config">
+ <title>ASYNC configure()</title>
+ <para>[Since 0.6] Shows the settings dialog.</para>
+ </sect2>
+ <sect2 id="dcop-func-status">
+ <title>QString getStatusInfo()</title>
+ <para>Returns a &kmyapplication; status information.</para>
+ </sect2>
+ <sect2 id="dcop-func-makeinvisible">
+ <title>ASYNC makeInvisible()</title>
+ <para>[Since 0.9 Beta] Hiddes the main window and its system tray icon.</para>
+ </sect2>
+ <sect2 id="dcop-func-makevisible">
+ <title>ASYNC makeVisible()</title>
+ <para>[Since 0.6] Shows and raises the main window. The window will be visible on the current desktop.</para>
+ </sect2>
+ <sect2 id="dcop-func-test">
+ <title>ASYNC setTestMode(bool yes)</title>
+ <para>Enables/disables the test mode.</para>
+ <example>
+ <title>Enable test mode</title>
+ <programlisting>dcop kshutdown KShutdownIface setTestMode true</programlisting>
+ </example>
+ <example>
+ <title>Disable test mode</title>
+ <programlisting>dcop kshutdown KShutdownIface setTestMode false</programlisting>
+ </example>
+ </sect2>
+ </sect1>
+</chapter><!-- dcop -->
+
+<chapter id="credits">
+ <title>Credits and License</title>
+ <para>&kmyapplication;</para>
+ <para>
+ Program Copyright 2005 Konrad Twardowski
+ <email>kdtonline@poczta.onet.pl</email>
+ </para>
+ <para>
+ Documentation Copyright &copy; 2005 Konrad Twardowski
+ <email>kdtonline@poczta.onet.pl</email>
+ </para>
+ <para>Czech FAQ Copyright &copy; Robert Kratky</para>
+ <para>See <guimenuitem>Help | About &kmyapplication;</guimenuitem> for more credits.</para>
+ &underFDL;<!-- FDL: do not remove -->
+ &underGPL;<!-- GPL License -->
+</chapter><!-- credits -->
+
+&documentation.index;
+
+</book>
diff --git a/doc/kshutdown/mainwindow.png b/doc/kshutdown/mainwindow.png
new file mode 100644
index 0000000..e6ff3e8
--- /dev/null
+++ b/doc/kshutdown/mainwindow.png
Binary files differ
diff --git a/extras/Makefile.am b/extras/Makefile.am
new file mode 100644
index 0000000..ee24b22
--- /dev/null
+++ b/extras/Makefile.am
@@ -0,0 +1,11 @@
+extrasdir = $(kde_datadir)/kshutdown/extras
+
+extras_DATA = \
+ hibernate.desktop
+
+EXTRA_DIST = $(extras_DATA)
+
+SUBDIRS = \
+ multimedia \
+ shutdown \
+ system
diff --git a/extras/hibernate.desktop b/extras/hibernate.desktop
new file mode 100644
index 0000000..e83a52e
--- /dev/null
+++ b/extras/hibernate.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Comment=Hibernate Computer
+Comment[pl]=Hibernuj Komputer
+# Encoding: UTF-8
+Exec=dcop kdesktop KScreensaverIface lock; dbus-send --system --dest="org.freedesktop.Hal" "/org/freedesktop/Hal/devices/computer" "org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate"
+Icon=hibernate
+MimeType=
+Name=requires DBus/HAL
+Name[pl]=wymaga DBus/HAL
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+X-Ubuntu-Gettext-Domain=desktop_kdebase
diff --git a/extras/multimedia/.directory b/extras/multimedia/.directory
new file mode 100644
index 0000000..84e0c89
--- /dev/null
+++ b/extras/multimedia/.directory
@@ -0,0 +1,7 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Type=Directory
+Icon=player_stop
+Comment=Multimedia
+Comment[pl]=Multimedia
+Comment[el]=Πολυμέσα
diff --git a/extras/multimedia/Makefile.am b/extras/multimedia/Makefile.am
new file mode 100644
index 0000000..03bc88f
--- /dev/null
+++ b/extras/multimedia/Makefile.am
@@ -0,0 +1,13 @@
+extrasdir = $(kde_datadir)/kshutdown/extras/multimedia
+
+extras_DATA = \
+ .directory \
+ amarok.desktop \
+ juk.desktop \
+ kaffeine.desktop \
+ kdetv.desktop \
+ kscd.desktop \
+ noatun.desktop \
+ xmms.desktop
+
+EXTRA_DIST = $(extras_DATA)
diff --git a/extras/multimedia/amarok.desktop b/extras/multimedia/amarok.desktop
new file mode 100644
index 0000000..9fd92d9
--- /dev/null
+++ b/extras/multimedia/amarok.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Stop Playback
+Comment[de]=Wiedergabe anhalten
+Comment[it]=Interrompi riproduzione
+Comment[pl]=Zatrzymaj odtwarzanie
+Comment[el]=Σταμάτημα αναπαραγωγής
+Exec=dcop amarok player stop
+Icon=amarok
+Name=Amarok
+StartupNotify=true
+Type=Application
diff --git a/extras/multimedia/juk.desktop b/extras/multimedia/juk.desktop
new file mode 100644
index 0000000..40d2ae9
--- /dev/null
+++ b/extras/multimedia/juk.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Stop Playback
+Comment[de]=Wiedergabe anhalten
+Comment[it]=Interrompi riproduzione
+Comment[pl]=Zatrzymaj odtwarzanie
+Comment[el]=Σταμάτημα αναπαραγωγής
+Exec=dcop juk Player stop
+GenericName=
+Icon=juk
+MimeType=
+Name=JuK
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/multimedia/kaffeine.desktop b/extras/multimedia/kaffeine.desktop
new file mode 100644
index 0000000..fa2ec58
--- /dev/null
+++ b/extras/multimedia/kaffeine.desktop
@@ -0,0 +1,20 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Stop Playback
+Comment[de]=Wiedergabe anhalten
+Comment[it]=Interrompi riproduzione
+Comment[pl]=Zatrzymaj odtwarzanie
+Comment[el]=Σταμάτημα αναπαραγωγής
+Exec=dcop kaffeine Kaffeine stop
+GenericName=
+GenericName[en_US]=
+Icon=kaffeine
+MimeType=
+Name=Kaffeine
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/multimedia/kdetv.desktop b/extras/multimedia/kdetv.desktop
new file mode 100644
index 0000000..7289364
--- /dev/null
+++ b/extras/multimedia/kdetv.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Mute and quit
+Comment[pl]=Wycisz i zakończ
+Comment[el]=Κλείσιμο ήχου και τερματισμός
+Exec=KDETV_PID=`pidof kdetv`; dcop "kdetv-$$KDETV_PID" KdetvIface toggleMute; dcop "kdetv-$$KDETV_PID" MainApplication-Interface quit
+Icon=kdetv
+MimeType=
+Name=kdetv
+Name[en_US]=kdetv
+Name[el]=kdetv
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+X-Ubuntu-Gettext-Domain=desktop_kdebase
diff --git a/extras/multimedia/kscd.desktop b/extras/multimedia/kscd.desktop
new file mode 100644
index 0000000..82c2feb
--- /dev/null
+++ b/extras/multimedia/kscd.desktop
@@ -0,0 +1,20 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Stop Playback
+Comment[de]=Wiedergabe anhalten
+Comment[it]=Interrompi riproduzione
+Comment[pl]=Zatrzymaj odtwarzanie
+Comment[el]=Σταμάτημα αναπαραγωγής
+Exec=dcop kscd CDPlayer stop
+GenericName=
+GenericName[pl]=
+Icon=kscd
+MimeType=
+Name=KsCD
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/multimedia/noatun.desktop b/extras/multimedia/noatun.desktop
new file mode 100644
index 0000000..de47d9c
--- /dev/null
+++ b/extras/multimedia/noatun.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Stop Playback
+Comment[de]=Wiedergabe anhalten
+Comment[it]=Interrompi riproduzione
+Comment[pl]=Zatrzymaj odtwarzanie
+Comment[el]=Σταμάτημα αναπαραγωγής
+Exec=dcop noatun Noatun stop
+Icon=noatun
+MimeType=
+Name=Noatun
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/multimedia/xmms.desktop b/extras/multimedia/xmms.desktop
new file mode 100644
index 0000000..16e218c
--- /dev/null
+++ b/extras/multimedia/xmms.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Stop current song
+Comment[de]=Bei aktuellem Lied stoppen
+Comment[it]=Interrompi canzone corrente
+Comment[pl]=Zatrzymaj bieżący utwór
+Comment[el]=Σταμάτημα αναπαραγωγής του τρέχοντος τραγουδιού
+Exec=xmms --stop
+Icon=xmms
+Name=XMMS
+StartupNotify=true
+Type=Application
diff --git a/extras/shutdown/.directory b/extras/shutdown/.directory
new file mode 100644
index 0000000..23f0e77
--- /dev/null
+++ b/extras/shutdown/.directory
@@ -0,0 +1,7 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Type=Directory
+Icon=exit
+Comment=Shut Down
+Comment[pl]=Zamykanie Systemu
+Comment[el]=Τερματισμός
diff --git a/extras/shutdown/Makefile.am b/extras/shutdown/Makefile.am
new file mode 100644
index 0000000..1ff8407
--- /dev/null
+++ b/extras/shutdown/Makefile.am
@@ -0,0 +1,8 @@
+extrasdir = $(kde_datadir)/kshutdown/extras/shutdown
+
+extras_DATA = \
+ .directory \
+ cancelshutdown.desktop \
+ fsck.desktop
+
+EXTRA_DIST = $(extras_DATA)
diff --git a/extras/shutdown/cancelshutdown.desktop b/extras/shutdown/cancelshutdown.desktop
new file mode 100644
index 0000000..d631b40
--- /dev/null
+++ b/extras/shutdown/cancelshutdown.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Cancel a running shutdown
+Comment[de]=Herunterfahren aufhalten
+Comment[it]=Annulla spegnimento programmato
+Comment[pl]=Anuluj zamykanie systemu
+Comment[el]=Ακύρωση τερματισμού
+Exec=/sbin/shutdown -c
+GenericName=
+GenericName[pl]=
+Icon=exit
+MimeType=
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/shutdown/fsck.desktop b/extras/shutdown/fsck.desktop
new file mode 100644
index 0000000..10e455b
--- /dev/null
+++ b/extras/shutdown/fsck.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Reboot and run `fsck'
+Comment[it]=Riavvia ed esegui `fsck'
+Comment[de]=Neustarten und `fsck` ausführen
+Comment[pl]=Zrestartuj i uruchom `fsck'
+Comment[el]=Επανεκκίνηση και εκτέλεση του `fsck'
+Exec=/sbin/shutdown -r -F 1
+GenericName=
+GenericName[pl]=
+Icon=exit
+MimeType=
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/system/.directory b/extras/system/.directory
new file mode 100644
index 0000000..6ff76eb
--- /dev/null
+++ b/extras/system/.directory
@@ -0,0 +1,6 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Type=Directory
+Icon=about_kde
+Comment=System
+Comment[pl]=Systemowe
diff --git a/extras/system/Makefile.am b/extras/system/Makefile.am
new file mode 100644
index 0000000..a2e8571
--- /dev/null
+++ b/extras/system/Makefile.am
@@ -0,0 +1,9 @@
+extrasdir = $(kde_datadir)/kshutdown/extras/system
+
+extras_DATA = \
+ .directory \
+ adsl-stop.desktop \
+ kdeeject.desktop \
+ kppp.desktop
+
+EXTRA_DIST = $(extras_DATA)
diff --git a/extras/system/adsl-stop.desktop b/extras/system/adsl-stop.desktop
new file mode 100644
index 0000000..b1dd271
--- /dev/null
+++ b/extras/system/adsl-stop.desktop
@@ -0,0 +1,20 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Shut down a PPPoE link
+Comment[de]=Eine PPPoE Verbindung trennen
+Comment[it]=Disconnetti una connessione PPPoE
+Comment[pl]=Zakończ połączenie PPPoE
+Comment[el]=Τερματισμός μιας PPPoE σύνδεσης
+Exec=/usr/sbin/adsl-stop
+GenericName=
+GenericName[pl]=
+Icon=network_disconnected
+MimeType=
+Path=
+StartupNotify=true
+Terminal=true
+TerminalOptions=\s--noclose
+Type=Application
+X-DCOP-ServiceType=none
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/system/kdeeject.desktop b/extras/system/kdeeject.desktop
new file mode 100644
index 0000000..b20a72b
--- /dev/null
+++ b/extras/system/kdeeject.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Eject CD
+Comment[de]=CD auswerfen
+Comment[it]=Espelli CD
+Comment[pl]=Wysuń CD
+Comment[el]=Εξαγωγή CD
+Exec=kdeeject /dev/cdrom
+GenericName=
+GenericName[en_US]=
+Icon=cdrom_unmount
+MimeType=
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/extras/system/kppp.desktop b/extras/system/kppp.desktop
new file mode 100644
index 0000000..dd9cefe
--- /dev/null
+++ b/extras/system/kppp.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Comment=Terminate an existing PPP connection
+Comment[it]=Termina una connessione PPP esistente
+Comment[de]=Eine bestehende PPP Verbindung trennen
+Comment[pl]=Przerwij trwające połączenie
+Comment[el]=Τερματισμός μιας υπάρχουσας PPP σύνδεσης
+Exec=kppp -k
+GenericName=
+GenericName[pl]=
+Icon=kppp
+MimeType=
+Path=
+StartupNotify=true
+Terminal=false
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/karamba/Makefile.am b/karamba/Makefile.am
new file mode 100644
index 0000000..2634f79
--- /dev/null
+++ b/karamba/Makefile.am
@@ -0,0 +1,8 @@
+karambadir = $(kde_datadir)/kshutdown/karamba
+
+karamba_DATA = \
+ kshutdown-48x48.png \
+ kshutdown-classic-notext.theme \
+ kshutdown-classic-text.theme
+
+EXTRA_DIST = $(karamba_DATA)
diff --git a/karamba/kshutdown-48x48.png b/karamba/kshutdown-48x48.png
new file mode 100644
index 0000000..a71ed47
--- /dev/null
+++ b/karamba/kshutdown-48x48.png
Binary files differ
diff --git a/karamba/kshutdown-classic-notext.theme b/karamba/kshutdown-classic-notext.theme
new file mode 100644
index 0000000..10c5b92
--- /dev/null
+++ b/karamba/kshutdown-classic-notext.theme
@@ -0,0 +1,8 @@
+# KShutDown (no text)
+
+karamba x=300 y=100 w=48 h=48 interval=10000000 locked=true
+
+<group> x=0 y=0
+image x=0 y=0 path="kshutdown-48x48.png"
+clickarea x=0 y=0 w=48 h=48 onclick="kshutdown"
+</group>
diff --git a/karamba/kshutdown-classic-text.theme b/karamba/kshutdown-classic-text.theme
new file mode 100644
index 0000000..349e6d1
--- /dev/null
+++ b/karamba/kshutdown-classic-text.theme
@@ -0,0 +1,11 @@
+# KShutDown (text)
+
+karamba x=300 y=100 w=150 h=48 interval=10000000 locked=true
+
+defaultfont fontsize=16 bgcolor=88,88,88 color=255,255,255 shadow=2
+
+<group> x=0 y=0
+image x=0 y=0 path="kshutdown-48x48.png"
+text x=55 y=12 value="Turn Off..."
+clickarea x=0 y=0 w=150 h=48 onclick="kshutdown"
+</group>
diff --git a/kshutdown-mdk.spec b/kshutdown-mdk.spec
new file mode 100644
index 0000000..5d0c515
--- /dev/null
+++ b/kshutdown-mdk.spec
@@ -0,0 +1,86 @@
+Name: kshutdown
+Summary: An advanced shut down utility for KDE
+Version: 1.0.4
+Release: 1mdk
+License: GPL
+Group: Graphical desktop/KDE
+Source: %{name}-%{version}.tar.bz2
+BuildRoot: %{_tmppath}/build-root-%{name}
+Packager: Zdenko Podobny
+Distribution: mdk
+Prefix: /usr
+Url: http://kshutdown.sourceforge.net
+Provides: kshutdown
+Requires: kdelibs >= 3.3.0
+
+%description
+KShutDown is an advanced shut down utility for KDE.
+Features:
+- Turn Off Computer (logout and halt the system)
+- Restart Computer (logout and reboot the system)
+- Lock Session (lock the screen using a screen saver)
+- End Current Session (end the current KDE session and logout the user)
+- Extras (additional, user commands)
+- Time and delay options
+- Command line and DCOP support
+- System tray and panel applet
+- Visual and sound notifications
+- KDE Kiosk support
+- And more...
+
+%prep
+rm -rf $RPM_BUILD_ROOT
+mkdir $RPM_BUILD_ROOT
+
+%setup -q
+
+%build
+CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
+./configure --prefix=%{prefix}
+make -j 2
+
+%install
+make DESTDIR=$RPM_BUILD_ROOT install-strip
+
+cd $RPM_BUILD_ROOT
+
+find . -type d -fprint $RPM_BUILD_DIR/file.list.%{name}.dirs
+find . -type f -fprint $RPM_BUILD_DIR/file.list.%{name}.files.tmp
+sed '/\/man\//s/$/.gz/g' $RPM_BUILD_DIR/file.list.%{name}.files.tmp > $RPM_BUILD_DIR/file.list.%{name}.files
+find . -type l -fprint $RPM_BUILD_DIR/file.list.%{name}.libs
+sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' $RPM_BUILD_DIR/file.list.%{name}.dirs > $RPM_BUILD_DIR/file.list.%{name}
+sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.files >> $RPM_BUILD_DIR/file.list.%{name}
+sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.libs >> $RPM_BUILD_DIR/file.list.%{name}
+
+install -d -m 0755 %buildroot/%_menudir
+cat > %buildroot/%_menudir/%{name} <<EOF
+?package(kshutdown): needs=x11 section="System/Other" longtitle="KShutDown - advanced shut down utility" title="KShutDown" command="kshutdown" icon="kshutdown.png"
+EOF
+
+%post
+%update_menus
+
+%postun
+%clean_menus
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_DIR/file.list.%{name}
+rm -rf $RPM_BUILD_DIR/file.list.%{name}.libs
+rm -rf $RPM_BUILD_DIR/file.list.%{name}.files
+rm -rf $RPM_BUILD_DIR/file.list.%{name}.files.tmp
+rm -rf $RPM_BUILD_DIR/file.list.%{name}.dirs
+
+%files -f ../file.list.%{name}
+%_menudir/*
+%defattr(-,root,root,0755)
+
+%changelog
+* Sat Nov 26 2005 Konrad Twardowski
+- updated description
+
+* Mon Aug 1 2005 Konrad Twardowski
+- removed "kdebase" from "Requires"
+
+* Sat Jun 19 2004 Zdenko Podobný <zdpo@mailbox.sk> 0.1.8-1mdk
+- initial version
diff --git a/kshutdown-suse.spec b/kshutdown-suse.spec
new file mode 100644
index 0000000..e5439f5
--- /dev/null
+++ b/kshutdown-suse.spec
@@ -0,0 +1,94 @@
+# norootforbuild
+
+Name: kshutdown
+Summary: An advanced shut down utility for KDE
+Version: 1.0.2
+Release: 3.pm.1
+License: GPL
+Group: System/Management
+URL: http://kshutdown.sf.net/
+Source0: http://mesh.dl.sourceforge.net/sourceforge/kshutdown/kshutdown-%{version}.tar.bz2
+BuildRoot: %{_tmppath}/kshutdown-%{version}-%{release}-root
+Requires: kdelibs3 >= 3.3.0
+BuildRequires: kdelibs3-devel kdebase3-devel
+BuildRequires: gcc-c++ libstdc++ libstdc++-devel
+BuildRequires: autoconf automake libtool
+
+
+%description
+KShutDown is an advanced shut down utility for KDE.
+Features:
+- Turn Off Computer (logout and halt the system)
+- Restart Computer (logout and reboot the system)
+- Lock Session (lock the screen using a screen saver)
+- End Current Session (end the current KDE session and logout the user)
+- Extras (additional, user commands)
+- Time and delay options
+- Command line and DCOP support
+- System tray and panel applet
+- Visual and sound notifications
+- KDE Kiosk support
+- And more...
+
+%prep
+%setup -q
+%configure --enable-final
+
+%build
+make
+
+%install
+rm -fr %buildroot
+make install DESTDIR=%buildroot
+cd %buildroot
+find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.kshutdown
+find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown
+find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown
+
+%clean
+rm -fr %buildroot
+rm -fr $RPM_BUILD_DIR/kshutdown
+rm -fr ../file.list.kshutdown
+
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
+%files -f ../file.list.kshutdown
+
+%changelog
+* Wed Dec 05 2007 Andrea Florio <andrea@links2linux.de>
+- update to version 1.0.2
+- patch remove, no more required
+ Fixing and new on new version
+- NEW: Added "extra" command line option. Run "kshutdown --help" for more info.
+- NEW: Remember recent "Extras" command
+- Now the sound is disabled by default. You can re-enable sound notifications via menu -> Settings -> Configure Notifications...
+- Updated Italian translation
+- Updated Turkish translation
+- Updated Polish translation
+
+
+
+* Sat Nov 24 2007 Andrea Florio <andrea@links2linux.de>
+- italian translation patch applied
+
+* Sat Nov 24 2007 Andrea Florio <andrea@links2linux.de>
+- Packman porting
+
+* Wed Apr 18 2007 Pascal Bleser <guru@unixtech.be> 1.0-1
+- new upstream version
+
+* Sun Feb 18 2007 Pascal Bleser <guru@unixtech.be> 0.8.2-1
+- new package
+
+* Sat Nov 26 2005 Konrad Twardowski
+- updated description
+
+* Mon Aug 1 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+- removed "kdebase" from "Requires"
+
+* Mon Apr 4 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+- Test RPM
diff --git a/kshutdown.kdevelop b/kshutdown.kdevelop
new file mode 100644
index 0000000..f5888db
--- /dev/null
+++ b/kshutdown.kdevelop
@@ -0,0 +1,321 @@
+<!DOCTYPE kdevelop>
+<kdevelop>
+ <general>
+ <author>Konrad Twardowski</author>
+ <email>kdtonline@poczta.onet.pl</email>
+ <projectmanagement>KDevKDEAutoProject</projectmanagement>
+ <primarylanguage>C++</primarylanguage>
+ <keywords>
+ <keyword>KDE</keyword>
+ <keyword>Qt</keyword>
+ </keywords>
+ <projectdirectory>.</projectdirectory>
+ <absoluteprojectpath>false</absoluteprojectpath>
+ <version>1.0.4</version>
+ <description>An advanced shut down utility for KDE.</description>
+ <ignoreparts>
+ <part>kdevabbrev</part>
+ <part>kdevkonsoleview</part>
+ <part>kdevfilelist</part>
+ <part>kdevfileview</part>
+ <part>kdevdistpart</part>
+ <part>kdevopenwith</part>
+ <part>kdevpartexplorer</part>
+ <part>kdevregexptest</part>
+ <part>kdevreplace</part>
+ <part>kdevscripting</part>
+ <part>kdevfilter</part>
+ <part>kdevastyle</part>
+ <part>kdevtexttools</part>
+ <part>kdevtools</part>
+ </ignoreparts>
+ <secondaryLanguages/>
+ <versioncontrol>kdevsubversion</versioncontrol>
+ <projectname>kshutdown</projectname>
+ <defaultencoding></defaultencoding>
+ </general>
+ <kdevautoproject>
+ <general>
+ <mainprogram>kshutdown</mainprogram>
+ <useconfiguration>default</useconfiguration>
+ </general>
+ <configure>
+ <configargs/>
+ </configure>
+ <make>
+ <abortonerror>true</abortonerror>
+ <numberofjobs>1</numberofjobs>
+ <dontact>false</dontact>
+ <makebin></makebin>
+ <envvars>
+ <envvar value="1" name="WANT_AUTOCONF_2_5" />
+ <envvar value="1" name="WANT_AUTOMAKE_1_6" />
+ </envvars>
+ <prio>0</prio>
+ <runmultiplejobs>false</runmultiplejobs>
+ </make>
+ <compiler>
+ <cflags/>
+ <cxxflags>\s-O0 -g3 -Wall</cxxflags>
+ </compiler>
+ <run>
+ <directoryradio>executable</directoryradio>
+ <customdirectory>/</customdirectory>
+ <mainprogram>/home/kdt/Documents/src/kshutdown/trunk/kshutdown/kshutdown/kshutdown</mainprogram>
+ <programargs>--nofork --test</programargs>
+ <terminal>false</terminal>
+ <autocompile>true</autocompile>
+ <envvars/>
+ <globaldebugarguments></globaldebugarguments>
+ <globalcwd>/home/kdt/Documents/src/kshutdown/trunk/kshutdown</globalcwd>
+ <useglobalprogram>true</useglobalprogram>
+ <autoinstall>false</autoinstall>
+ <autokdesu>true</autokdesu>
+ </run>
+ <configurations>
+ <default>
+ <configargs>--prefix=`kde-config --prefix` --enable-debug=full</configargs>
+ <builddir/>
+ <topsourcedir/>
+ <cppflags/>
+ <ldflags/>
+ <ccompiler>kdevgccoptions</ccompiler>
+ <cxxcompiler>kdevgppoptions</cxxcompiler>
+ <f77compiler>kdevpgf77options</f77compiler>
+ <ccompilerbinary/>
+ <cxxcompilerbinary/>
+ <f77compilerbinary/>
+ <cflags>-O0</cflags>
+ <cxxflags>-O0</cxxflags>
+ <f77flags/>
+ <envvars/>
+ </default>
+ </configurations>
+ </kdevautoproject>
+ <kdevfileview>
+ <groups>
+ <group pattern="*.h" name="Headers" />
+ <group pattern="*.cpp;*.c" name="Sources" />
+ <group pattern="*.po" name="Translations" />
+ <group pattern="AUTHORS;COPYING;ChangeLog;INSTALL;README;TODO;NEWS;VERSION" name="GNU" />
+ <group pattern="*" name="Others" />
+ <hidenonprojectfiles>false</hidenonprojectfiles>
+ <hidenonlocation>false</hidenonlocation>
+ </groups>
+ <tree>
+ <hidepatterns>*</hidepatterns>
+ <showvcsfields>true</showvcsfields>
+ <hidenonprojectfiles>true</hidenonprojectfiles>
+ </tree>
+ </kdevfileview>
+ <kdevdoctreeview>
+ <ignoretocs>
+ <toc>gtk</toc>
+ <toc>gnustep</toc>
+ <toc>python</toc>
+ <toc>php</toc>
+ <toc>perl</toc>
+ <toc>ada</toc>
+ <toc>w3c-dom-level2-html</toc>
+ <toc>gnome1</toc>
+ <toc>haskell</toc>
+ <toc>kde2book</toc>
+ <toc>kdev3api</toc>
+ <toc>opengl</toc>
+ <toc>ruby</toc>
+ <toc>w3c-svg</toc>
+ <toc>sdl</toc>
+ <toc>stl</toc>
+ <toc>sw</toc>
+ <toc>w3c-uaag10</toc>
+ <toc>clanlib</toc>
+ <toc>ada_bugs_gcc</toc>
+ <toc>bash_bugs</toc>
+ <toc>c++_bugs_gcc</toc>
+ <toc>fortran_bugs_gcc</toc>
+ <toc>gtk_bugs</toc>
+ <toc>haskell_bugs_ghc</toc>
+ <toc>java_bugs_gcc</toc>
+ <toc>pascal_bugs_fp</toc>
+ <toc>perl_bugs</toc>
+ <toc>php_bugs</toc>
+ <toc>python_bugs</toc>
+ <toc>ruby_bugs</toc>
+ <toc>wxwindows_bugs</toc>
+ <toc>java_bugs_sun</toc>
+ <toc>wxwidgets_bugs</toc>
+ </ignoretocs>
+ <projectdoc>
+ <userdocDir>html/</userdocDir>
+ <apidocDir>html/</apidocDir>
+ </projectdoc>
+ <ignoreqt_xml>
+ <toc>Guide to the Qt Translation Tools</toc>
+ <toc>qmake User Guide</toc>
+ <toc>Qt Assistant Manual</toc>
+ <toc>Qt Designer Manual</toc>
+ </ignoreqt_xml>
+ <ignoredoxygen/>
+ <ignorekdocs/>
+ <ignoredevhelp>
+ <toc>gdk-pixbuf</toc>
+ <toc>pango</toc>
+ <toc>libbonoboui</toc>
+ <toc>libbonobo</toc>
+ <toc>gtk</toc>
+ <toc>gobject</toc>
+ <toc>gnome-vfs</toc>
+ <toc>glib</toc>
+ <toc>gdk</toc>
+ <toc>bonobo-activation</toc>
+ </ignoredevhelp>
+ </kdevdoctreeview>
+ <kdevdebugger>
+ <general>
+ <dbgshell>libtool</dbgshell>
+ <programargs/>
+ <gdbpath></gdbpath>
+ <configGdbScript></configGdbScript>
+ <runShellScript></runShellScript>
+ <runGdbScript></runGdbScript>
+ <breakonloadinglibs>true</breakonloadinglibs>
+ <separatetty>false</separatetty>
+ <floatingtoolbar>false</floatingtoolbar>
+ </general>
+ <display>
+ <staticmembers>false</staticmembers>
+ <demanglenames>true</demanglenames>
+ <outputradix>10</outputradix>
+ </display>
+ </kdevdebugger>
+ <kdevfilecreate>
+ <filetypes/>
+ <useglobaltypes>
+ <type ext="cpp" />
+ <type ext="c" />
+ <type ext="h" />
+ </useglobaltypes>
+ </kdevfilecreate>
+ <cppsupportpart>
+ <filetemplates>
+ <interfacesuffix>.h</interfacesuffix>
+ <implementationsuffix>.cpp</implementationsuffix>
+ </filetemplates>
+ </cppsupportpart>
+ <kdevcppsupport>
+ <codecompletion>
+ <includeGlobalFunctions>true</includeGlobalFunctions>
+ <includeTypes>true</includeTypes>
+ <includeEnums>true</includeEnums>
+ <includeTypedefs>true</includeTypedefs>
+ <automaticCodeCompletion>true</automaticCodeCompletion>
+ <automaticArgumentsHint>true</automaticArgumentsHint>
+ <automaticHeaderCompletion>true</automaticHeaderCompletion>
+ <codeCompletionDelay>250</codeCompletionDelay>
+ <argumentsHintDelay>400</argumentsHintDelay>
+ <headerCompletionDelay>250</headerCompletionDelay>
+ <showOnlyAccessibleItems>false</showOnlyAccessibleItems>
+ <completionBoxItemOrder>0</completionBoxItemOrder>
+ <howEvaluationContextMenu>true</howEvaluationContextMenu>
+ <showCommentWithArgumentHint>true</showCommentWithArgumentHint>
+ <statusBarTypeEvaluation>false</statusBarTypeEvaluation>
+ <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
+ <processPrimaryTypes>true</processPrimaryTypes>
+ <processFunctionArguments>false</processFunctionArguments>
+ <preProcessAllHeaders>false</preProcessAllHeaders>
+ <parseMissingHeaders>false</parseMissingHeaders>
+ <resolveIncludePaths>true</resolveIncludePaths>
+ <alwaysParseInBackground>true</alwaysParseInBackground>
+ <usePermanentCaching>true</usePermanentCaching>
+ <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
+ <includePaths>.;</includePaths>
+ </codecompletion>
+ <references/>
+ <creategettersetter>
+ <prefixGet></prefixGet>
+ <prefixSet>set</prefixSet>
+ <prefixVariable>m_,_</prefixVariable>
+ <parameterName>theValue</parameterName>
+ <inlineGet>true</inlineGet>
+ <inlineSet>true</inlineSet>
+ </creategettersetter>
+ <qt>
+ <used>false</used>
+ <version>3</version>
+ <root>/usr/share/qt3</root>
+ <includestyle>3</includestyle>
+ <designerintegration>EmbeddedKDevDesigner</designerintegration>
+ <qmake>/usr/bin/qmake-qt3</qmake>
+ <designer></designer>
+ <designerpluginpaths/>
+ </qt>
+ <splitheadersource>
+ <enabled>false</enabled>
+ <synchronize>true</synchronize>
+ <orientation>Vertical</orientation>
+ </splitheadersource>
+ </kdevcppsupport>
+ <kdevcvs>
+ <cvsoptions>-f</cvsoptions>
+ <commitoptions/>
+ <addoptions/>
+ <logoptions/>
+ <updateoptions>-dP</updateoptions>
+ <removeoptions>-f</removeoptions>
+ <revertoptions>-C -d -P</revertoptions>
+ <diffoptions>-u3 -p</diffoptions>
+ <rshoptions/>
+ </kdevcvs>
+ <kdevcvsservice>
+ <recursivewhenupdate>true</recursivewhenupdate>
+ <prunedirswhenupdate>true</prunedirswhenupdate>
+ <createdirswhenupdate>true</createdirswhenupdate>
+ <recursivewhencommitremove>true</recursivewhencommitremove>
+ <revertoptions>-C</revertoptions>
+ </kdevcvsservice>
+ <dist>
+ <custom>false</custom>
+ <bzip>false</bzip>
+ <archname/>
+ <appname/>
+ <version/>
+ <release/>
+ <vendor/>
+ <licence/>
+ <summary/>
+ <group/>
+ <packager/>
+ <description/>
+ <changelog/>
+ <devpackage>false</devpackage>
+ <docspackage>false</docspackage>
+ <appicon>false</appicon>
+ <arch>0</arch>
+ <genHTML>false</genHTML>
+ <useRPM>false</useRPM>
+ <ftpkde>false</ftpkde>
+ <appskde>false</appskde>
+ <url/>
+ </dist>
+ <kdevdocumentation>
+ <projectdoc>
+ <docsystem></docsystem>
+ <docurl></docurl>
+ <usermanualurl></usermanualurl>
+ </projectdoc>
+ </kdevdocumentation>
+ <ctagspart>
+ <customArguments></customArguments>
+ <customTagfilePath>/home/kdt/Documents/src/kshutdown/trunk/kshutdown/tags</customTagfilePath>
+ <activeTagsFiles/>
+ </ctagspart>
+ <kdevvisualadvance>
+ <emulator>VisualBoyAdvance</emulator>
+ <binary/>
+ <addOptions/>
+ <terminal>false</terminal>
+ <fullscreen>false</fullscreen>
+ <graphicFilter>-f0</graphicFilter>
+ <scaling>-1</scaling>
+ </kdevvisualadvance>
+</kdevelop>
diff --git a/kshutdown.lsm b/kshutdown.lsm
new file mode 100644
index 0000000..48dd525
--- /dev/null
+++ b/kshutdown.lsm
@@ -0,0 +1,12 @@
+Begin3
+Title: KShutDown
+Version: 1.0.4
+Entered-date: 2009/01/15
+Description: An Advanced Shut Down Utility for KDE
+Keywords: shut down shutdown halt reboot restart lock screen logout kde
+Author: kdtonline@poczta.onet.pl (Konrad Twardowski)
+Maintained-by: kdtonline@poczta.onet.pl (Konrad Twardowski)
+Home-page: http://kshutdown.sourceforge.net/
+Platforms: Linux/KDE 3.3
+Copying-policy: GNU Public License
+End
diff --git a/kshutdown.spec b/kshutdown.spec
new file mode 100644
index 0000000..51d47b8
--- /dev/null
+++ b/kshutdown.spec
@@ -0,0 +1,65 @@
+Name: kshutdown
+Summary: An advanced shut down utility for KDE
+Version: 1.0.4
+Release: 1.fc4
+License: GPL
+Group: Applications/System
+URL: http://kshutdown.sf.net/
+Packager: Konrad Twardowski <kdtonline@poczta.onet.pl>
+Source0: kshutdown-%version.tar.bz2
+Buildroot: %_tmppath/kshutdown-%version-%release-root
+Requires: kdelibs >= 3.3.0
+BuildRequires: kdelibs-devel
+
+%description
+KShutDown is an advanced shut down utility for KDE.
+Features:
+- Turn Off Computer (logout and halt the system)
+- Restart Computer (logout and reboot the system)
+- Lock Session (lock the screen using a screen saver)
+- End Current Session (end the current KDE session and logout the user)
+- Extras (additional, user commands)
+- Time and delay options
+- Command line and DCOP support
+- System tray and panel applet
+- Visual and sound notifications
+- KDE Kiosk support
+- And more...
+
+%prep
+%setup -q
+%configure --enable-final
+
+%build
+make
+
+%install
+rm -fr %buildroot
+make install DESTDIR=%buildroot
+cd %buildroot
+find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.kshutdown
+find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown
+find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown
+
+%clean
+rm -fr %buildroot
+rm -fr $RPM_BUILD_DIR/kshutdown
+rm -fr ../file.list.kshutdown
+
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
+%files -f ../file.list.kshutdown
+
+%changelog
+* Sat Nov 26 2005 Konrad Twardowski
+- updated description
+
+* Mon Aug 1 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+- removed "kdebase" from "Requires"
+
+* Mon Apr 4 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+- Test RPM
diff --git a/kshutdown/Makefile.am b/kshutdown/Makefile.am
new file mode 100644
index 0000000..f06ffd1
--- /dev/null
+++ b/kshutdown/Makefile.am
@@ -0,0 +1,44 @@
+bin_PROGRAMS = kshutdown
+
+kshutdown_SOURCES = \
+ actions.cpp \
+ appobserver.cpp \
+ configuration.cpp \
+ confirmation.cpp \
+ extras.cpp \
+ kshutdowniface_skel.cpp \
+ links.cpp \
+ mactioneditdialog.cpp \
+ main.cpp \
+ miscutils.cpp \
+ mmainwindow.cpp \
+ mmessagedialog.cpp \
+ msettingsdialog.cpp \
+ mstatstab.cpp \
+ msystemtray.cpp \
+ mtip.cpp \
+ progressbar.cpp \
+ systemconfig.cpp
+
+kshutdown_LDADD = $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_KFILE) $(LIB_QT)
+kshutdown_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+
+EXTRA_DIST = \
+ kshutdown.desktop \
+ kshutdowniface.kidl \
+ kshutdown.upd
+
+appdir = $(prefix)/share/applications
+app_DATA = kshutdown.desktop
+
+kconfdir = $(kde_datadir)/kconf_update
+kconf_DATA = kshutdown.upd
+
+INCLUDES = $(all_includes)
+METASOURCES = AUTO
+
+messages:
+ LIST=`find ../kshutdown ../kshutdownlockout -name \*.h -o -name \*.cpp`; \
+ if test -n "$$LIST"; then \
+ $(XGETTEXT) $$LIST -o $(podir)/kshutdown.pot; \
+ fi
diff --git a/kshutdown/actions.cpp b/kshutdown/actions.cpp
new file mode 100644
index 0000000..926a46b
--- /dev/null
+++ b/kshutdown/actions.cpp
@@ -0,0 +1,455 @@
+/*
+ actions.cpp - Actions
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "actions.h"
+#include "configuration.h"
+#include "confirmation.h"
+#include "extras.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "msystemtray.h"
+#include "systemconfig.h"
+
+#include <qimage.h>
+#include <qtimer.h>
+
+#include <dcopclient.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <kimageeffect.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+Action *Action::_instance = 0;
+
+Action::~Action()
+{
+}
+
+QString Action::actionToConfigGroup(const Type action) const
+{
+ switch (action)
+ {
+ case ShutDown: return "Shut Down";
+ case Reboot: return "Reboot";
+ case LockScreen: return "Lock Screen";
+ case Logout: return "Logout";
+ default: return QString::null;
+ }
+}
+
+// TODO: 2.0: GDM support
+// TODO: 2.0: force application exit (without asking for data save)
+bool Action::endSession(const KApplication::ShutdownType type, const Type action)
+{
+ _totalExit = false;
+
+ MiscUtils::passiveMessage(i18n("Please wait..."));
+
+ // test mode
+ if (_testMode)
+ {
+ MiscUtils::showTestMessage(getName(action));
+
+ return true;
+ }
+
+ _totalExit = true;
+ if (
+ !kapp->requestShutDown(
+ KApplication::ShutdownConfirmNo,
+ type,
+ KApplication::ShutdownModeForceNow
+ )
+ )
+ {
+ KMessageBox::error(
+ 0,
+ i18n(
+ "Could not logout properly.\n" \
+ "The session manager cannot be contacted."
+ )
+ );
+ _totalExit = false;
+
+ return false; // error
+ }
+
+ return true; // ok
+}
+
+bool Action::exec(const Type action, const bool stopTimer)
+{
+ if (stopTimer)
+ ks_main->cancel();
+
+ _totalExit = false;
+
+ Method method = Method_KDE;
+ QString command;
+
+ if (!isEnabled(action))
+ return false; // error
+
+ // kdDebug() << "Action::exec: " << action << endl;
+
+ switch (action)
+ {
+ // nothing
+ case Nothing:
+ return false; // error
+
+ // shut down
+ case ShutDown:
+ _totalExit = true;
+ MiscUtils::closeCDTray();
+ getMethod(action, method, command);
+ MiscUtils::runCommandBeforeAction("Shut Down");
+
+ if (method == Method_KDE)
+ return endSession(KApplication::ShutdownTypeHalt, action);
+
+ break;
+
+ // reboot
+ case Reboot:
+ _totalExit = true;
+ MiscUtils::closeCDTray();
+ getMethod(action, method, command);
+ MiscUtils::runCommandBeforeAction("Reboot");
+
+ if (method == Method_KDE)
+ return endSession(KApplication::ShutdownTypeReboot, action);
+
+ break;
+
+ case LockScreen:
+ return lockScreen();
+
+ // logout
+ case Logout:
+ _totalExit = true;
+ MiscUtils::closeCDTray();
+ getMethod(action, method, command);
+ MiscUtils::runCommandBeforeAction("Logout");
+
+ if (method == Method_KDE)
+ return endSession(KApplication::ShutdownTypeNone, action);
+
+ break;
+
+ // "extras" action
+ case Extras:
+ // test mode
+ if (_testMode)
+ {
+ MiscUtils::showTestMessage(
+ ks_extras->getActionDescription() + "\n" +
+ ks_extras->fileToExecute()
+ );
+
+ return true; // ok
+ }
+
+ return ks_extras->execAction();
+ }
+
+ // test mode
+ if (_testMode)
+ {
+ MiscUtils::showTestMessage(i18n("Command: %1").arg(command));
+
+ return true; // ok
+ }
+
+ // run default or user command
+// TODO: 2.0: add function to change /sbin/* permissions (e.g. /sbin/poweroff)
+// TODO: 2.0: save session before /sbin/* execution
+ if (MiscUtils::runCommand(command))
+ {
+ // hide window
+ if ((action == LockScreen) && (MSystemTray::mode() == MSystemTray::Always))
+ ks_main->hide();
+
+ return true; // ok
+ }
+
+ _totalExit = false;
+
+ return false; // error
+}
+
+bool Action::execConfirm(const Type action, const QString &delay)
+{
+ if (
+ (action != LockScreen) && // no confirmation for "Lock Session"
+ !Confirmation::confirm(action, delay.isNull() ? i18n("No Delay") : delay)
+ )
+ return false;
+
+ return exec(action, action != LockScreen);
+}
+
+bool Action::execCurrent()
+{
+ return exec(_current);
+}
+
+QString Action::getCurrentName() const
+{
+ return getName(_current);
+}
+
+QPixmap Action::getIcon(const Type action) const
+{
+ QMapIterator<Type, QPixmap> i = iconCache->find(action);
+
+ return (i == iconCache->end()) ? SmallIcon("misc") : i.data();
+}
+
+QString Action::getIconName(const Type action) const
+{
+ switch (action)
+ {
+ case ShutDown: return "exit";
+ case Reboot: return "reload";
+ case LockScreen: return "lock";
+ case Logout: return "undo";
+ case Extras: return "bookmark";
+ case Nothing:
+ default:
+ return "misc";
+ }
+}
+
+QString Action::getMethod(const Action::Type action, Method &method, QString &command)
+{
+ QString group = actionToConfigGroup(action);
+
+ if (group.isNull())
+ {
+ // kdDebug() << "Action::getMethod: No group in config for action " << action << endl;
+
+ return QString::null;
+ }
+
+ QString defaultCommand;
+ switch (action)
+ {
+ case ShutDown:
+ defaultCommand = DEFAULT_SHUT_DOWN_COMMAND;
+ break;
+ case Reboot:
+ defaultCommand = DEFAULT_REBOOT_COMMAND;
+ break;
+ case LockScreen:
+ defaultCommand = DEFAULT_LOCK_SCREEN_COMMAND;
+ break;
+ case Logout:
+ defaultCommand = DEFAULT_LOGOUT_COMMAND;
+ break;
+ default:
+ defaultCommand = QString::null;
+ }
+
+ KConfig *conf = kshutdownrc->config();
+ if (!conf->hasGroup(group))
+ {
+ method = Method_KDE;
+ command = defaultCommand;
+ // kdDebug() << "Action::getMethod: No group in config for action " << action << endl;
+
+ return defaultCommand;
+ }
+
+ conf->setGroup(group);
+
+ // read method
+ method = (Method)conf->readNumEntry("Method", Method_KDE);
+ if ((method < Method_KDE) || (method > Method_UserCommand))
+ method = Method_KDE;
+
+ switch (method)
+ {
+ case Method_KDE:
+ command = conf->readEntry("Command", defaultCommand);
+ break;
+ case Method_DefaultCommand:
+ command = defaultCommand;
+ break;
+ case Method_UserCommand:
+ command = conf->readEntry("Command", defaultCommand);
+ if (command.isEmpty())
+ method = Method_KDE;
+ break;
+ }
+
+ return defaultCommand;
+}
+
+void Action::setMethod(const QString &group, const Method method, const QString &command) const
+{
+ KConfig *conf = kshutdownrc->config();
+ conf->setGroup(group);
+ if (method == Method_UserCommand)
+ conf->writeEntry("Command", command);
+ conf->writeEntry("Method", method);
+}
+
+QString Action::getName(const Type action) const
+{
+ switch (action)
+ {
+ case Nothing: return i18n("Nothing");
+ case ShutDown: return i18n("Turn Off Computer");
+ case Reboot: return i18n("Restart Computer");
+ case LockScreen: return i18n("Lock Session");
+ case Logout: return i18n("End Current Session");
+ case Extras: return ks_extras->getActionDescription();
+ }
+
+ return i18n("Unknown");
+}
+
+bool Action::isEnabled(const Type action)
+{
+ Method m = Method_KDE;
+ QString c = QString::null;
+ switch (action)
+ {
+ case Nothing:
+ return false;
+ case ShutDown:
+ getMethod(action, m, c);
+ return
+ !MiscUtils::isRestricted("action_shutdown") &&
+ !((m == Method_KDE) && !SystemConfig::canShutDown());
+ case Reboot:
+ getMethod(action, m, c);
+ return
+ !MiscUtils::isRestricted("action_reboot") &&
+ !((m == Method_KDE) && !SystemConfig::canShutDown());
+ case LockScreen:
+ return !MiscUtils::isRestricted("action_lockscreen");
+ case Logout:
+ return !MiscUtils::isRestricted("action_logout");
+ case Extras:
+ return !MiscUtils::isRestricted("action_extras");
+ }
+
+ return false;
+}
+
+void Action::totalExec()
+{
+ if (!execCurrent())
+ KMessageBox::sorry(0, i18n("Action failed! (%1)").arg(_current));
+}
+
+Action::Action()
+ : QObject(ks_main),
+ _active(false),
+ _testMode(false),
+ _totalExit(false),
+ _current(Nothing)
+{
+ // NOTE: compatible with the standard KDE logout dialog
+ // NOTE: sync. with panel applet
+ iconCache = new QMap<Type, QPixmap>();
+ #define KS_ADD_ICON(action) \
+ iconCache->insert(action, SmallIcon(getIconName(action)));
+ KS_ADD_ICON(Nothing);
+ KS_ADD_ICON(ShutDown);
+ KS_ADD_ICON(Reboot);
+ KS_ADD_ICON(LockScreen);
+ KS_ADD_ICON(Logout);
+ KS_ADD_ICON(Extras);
+}
+
+bool Action::lockScreen() {
+ Method method;
+ QString command;
+ getMethod(LockScreen, method, command);
+ MiscUtils::runCommandBeforeAction("Lock Screen");
+ if (method == Method_KDE) {
+ // test mode
+ if (_testMode) {
+ MiscUtils::showTestMessage(getName(LockScreen));
+
+ return true; // ok
+ }
+
+ // this is a modified "void Lockout::lock()"
+ // from the "Lock/Logout Applet" (lockout.cpp [3.1.4])
+ QCString kdesktop("kdesktop");
+ int kshutdown_screen_number = qt_xscreen();
+ if (kshutdown_screen_number)
+ kdesktop.sprintf("kdesktop-screen-%d", kshutdown_screen_number);
+
+ if (!kapp->dcopClient()->send(kdesktop, "KScreensaverIface", "lock()", "")) {
+ KMessageBox::error(0, i18n("kdesktop: DCOP call failed!"));
+
+ return false; // error
+ }
+
+ // hide window
+ if (MSystemTray::mode() == MSystemTray::Always)
+ ks_main->hide();
+
+ return true; // ok
+ }
+ else {
+ if (_testMode) {
+ MiscUtils::showTestMessage(i18n("Command: %1").arg(command));
+
+ return true; // ok
+ }
+ else if (MiscUtils::runCommand(command)) {
+ // hide window
+ if (MSystemTray::mode() == MSystemTray::Always)
+ ks_main->hide();
+
+ return true; // ok
+ }
+ }
+
+ return false; // error
+}
+
+// public slots
+
+void Action::slotLockScreen()
+{
+ execConfirm(LockScreen);
+}
+
+void Action::slotLogout()
+{
+ execConfirm(Logout);
+}
+
+void Action::slotReboot()
+{
+ execConfirm(Reboot);
+}
+
+void Action::slotShutDown()
+{
+ execConfirm(ShutDown);
+}
diff --git a/kshutdown/actions.h b/kshutdown/actions.h
new file mode 100644
index 0000000..238ae09
--- /dev/null
+++ b/kshutdown/actions.h
@@ -0,0 +1,217 @@
+/*
+ actions.h - Actions
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __ACTIONS_H__
+#define __ACTIONS_H__
+
+#include <kapplication.h>
+
+// default external commands
+const QString
+ DEFAULT_LOCK_SCREEN_COMMAND("xscreensaver-command -lock"),
+// TODO: 2.0: logout command for GNOME (gnome-session-save --kill?)
+ DEFAULT_LOGOUT_COMMAND(""),
+ DEFAULT_REBOOT_COMMAND("/sbin/reboot"),
+ DEFAULT_SHUT_DOWN_COMMAND("/sbin/poweroff");
+
+#define ks_actions Action::getInstance()
+
+class QPixmap;
+
+/** @short An action manager. */
+class Action: public QObject
+{
+ Q_OBJECT
+public:
+
+ /**
+ * Methods. Don't change these values!
+ */
+ enum Method {
+ Method_KDE = 0, /**< Standard KDE/KDM method. (default) */
+ Method_DefaultCommand = 1, /**< Default external command. (e.g. /sbin/reboot) */
+ Method_UserCommand = 2 /**< User command. Any command that can be executed by @c KRun::run. */
+ };
+
+ /**
+ * Actions.
+ */
+ enum Type {
+ Nothing = 0, /**< Nothing. */
+ ShutDown = 1, /**< System shut down. */
+ Reboot = 2, /**< System reboot. */
+ LockScreen = 3, /**< Screen lock. */
+ Logout = 4, /**< End current session. */
+ Extras = 5 /**< Extras. Execute an item selected from the "Extras..." menu. */
+ };
+
+ /** Destructor. */
+ virtual ~Action();
+
+ /**
+ * Converts @p action value to the configuration group name.
+ */
+ QString actionToConfigGroup(const Type action) const;
+
+ /**
+ * Returns @c true if the current action is active.
+ */
+ inline bool active() const { return _active; }
+
+ /**
+ * Activates the current action if @p yes is @c true.
+ */
+ inline void setActive(const bool yes) { _active = yes; }
+
+ /** Returns the currently selected action. */
+ inline Type current() const { return _current; }
+
+ /**
+ * Sets current action to @p action.
+ */
+ inline void setCurrent(const Type action) { _current = action; }
+
+ /**
+ * Ends current session.
+ * This function is a wrapper for the @c kapp->requestShutDown().
+ * @param type A shut down type
+ * @param action An action to execute
+ * @return @c true if successful; otherwise @c false
+ */
+ bool endSession(const KApplication::ShutdownType type, const Type action);
+
+ /**
+ * Executes an action.
+ * @param action An action to execute
+ * @param stopTimer If @c true, the current active action and its timer are stopped
+ * @return @c true if successful; otherwise @c false
+ */
+ bool exec(const Type action, const bool stopTimer = true);
+
+ /**
+ * Executes an action.
+ * Displays confirmation message before execution.
+ * @param action An action to execute
+ * @param delay A selected delay
+ */
+ bool execConfirm(const Type action, const QString &delay = QString::null);
+
+ /**
+ * Executes the current action without confirmation.
+ */
+ bool execCurrent();
+
+ /**
+ * Returns the current action name as text.
+ */
+ QString getCurrentName() const;
+
+ /**
+ * Returns an icon for @p action.
+ */
+ QPixmap getIcon(const Type action) const;
+
+ /**
+ * Returns an icon name for @p action.
+ */
+ QString getIconName(const Type action) const;
+
+ /**
+ * Initializes and return singleton instance of the @c Action class.
+ */
+ inline static Action *getInstance()
+ {
+ if (!_instance)
+ _instance = new Action();
+
+ return _instance;
+ }
+
+ /**
+ * Reads method for action from the configuration file.
+ * @param action An action
+ * @retval method A method to use
+ * @retval command A command to run
+ * @return A default command
+ */
+ QString getMethod(
+ const Type action,
+ Method &method,
+ QString &command
+ );
+
+ /**
+ * Changes the action method.
+ * @param group A configuration group (in @b kshutdownrc file)
+ * @param method A new method
+ * @param command A new command
+ */
+ void setMethod(const QString &group, const Method method, const QString &command) const;
+
+ /**
+ * Returns an action name as text.
+ * @param action An action
+ */
+ QString getName(const Type action) const;
+
+ /** Returns @c true if @p action is @b not disabled by KIOSK. */
+ bool isEnabled(const Type action);
+
+ /** Returns @c true if test mode is enabled. */
+ inline bool testMode() const { return _testMode; }
+
+ /**
+ * Enables/disables the <b>test mode</b>.
+ * @param yes @c true to enable test mode
+ */
+ inline void setTestMode(const bool yes) { _testMode = yes; }
+
+ /**
+ * Executes the current action,
+ * and displays an error message if action failed.
+ */
+ void totalExec();
+
+ /**
+ * Returns @c true if application/system is shutting down.
+ */
+ inline bool totalExit() const { return _totalExit; }
+
+ /**
+ * Sets <b>total exit</b> info to @p yes.
+ */
+ inline void setTotalExit(const bool yes) { _totalExit = yes; }
+private:
+ static Action *_instance;
+ bool
+ _active,
+ _testMode,
+ _totalExit;
+ QMap<Type, QPixmap> *iconCache;
+ Type _current;
+ Action();
+ bool lockScreen();
+public slots:
+ void slotLockScreen();
+ void slotLogout();
+ void slotReboot();
+ void slotShutDown();
+};
+
+#endif // __ACTIONS_H__
diff --git a/kshutdown/appobserver.cpp b/kshutdown/appobserver.cpp
new file mode 100644
index 0000000..b029e45
--- /dev/null
+++ b/kshutdown/appobserver.cpp
@@ -0,0 +1,290 @@
+/*
+ appobserver.cpp - An application observer/killer
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <sys/types.h>
+
+#include "appobserver.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+
+#include <errno.h>
+#include <signal.h>
+
+#include <qcombobox.h>
+#include <qlistbox.h>
+#include <qprocess.h>
+#include <qwhatsthis.h>
+
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpushbutton.h>
+
+// TODO: 2.0: bigger combo box list
+// http://ariya.blogspot.com/2006/03/resize-pop-up-list-of-combo-box_15.html
+
+// public
+
+AppObserver::AppObserver(QWidget *parent)
+ : QHBox(parent),
+ _processesMap(new QMap<int, Process>()),
+ _process(0),
+ _buf(QString::null)
+{
+ setName("AppObserver");
+
+ // refresh button
+ b_refresh = new KPushButton(this, "KPushButton::b_refresh");
+ b_refresh->setIconSet(SmallIcon("reload"));
+ b_refresh->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred));
+ MiscUtils::setHint(b_refresh, i18n("Refresh the list of processes"));
+ connect(b_refresh, SIGNAL(clicked()), SLOT(slotRefresh()));
+
+ // processes combo box
+ cb_processes = new QComboBox(this, "QComboBox::cb_processes");
+ cb_processes->setFocusPolicy(StrongFocus);
+ MiscUtils::setHint(cb_processes, i18n("List of the running processes"));
+
+ // kill button
+ b_kill = new KPushButton(SmallIcon("editdelete"), i18n("Kill"), this, "KPushButton::b_kill");
+ b_kill->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred));
+ MiscUtils::setHint(b_kill, i18n("Kill the selected process"));
+ connect(b_kill, SIGNAL(clicked()), SLOT(slotKill()));
+}
+
+QString AppObserver::getInfo() const
+{
+ int index = cb_processes->currentItem();
+ QMapIterator<int, Process> i = _processesMap->find(index);
+
+ if (i == _processesMap->end())
+ return QString::null;
+
+ return i18n("Waiting for \"%1\"").arg(i.data().command);
+}
+
+bool AppObserver::isSelectedProcessRunning() const
+{
+// TODO: 2.0: common code
+ int index = cb_processes->currentItem();
+ QMapIterator<int, Process> i = _processesMap->find(index);
+
+ if (i == _processesMap->end())
+ return false;
+
+ if (::kill(i.data().pid, 0)) // check if process exists
+ {
+ switch (errno)
+ {
+ case EINVAL: return false;
+ case ESRCH: return false;
+ case EPERM: return true;
+ }
+ }
+
+ return true;
+}
+
+bool AppObserver::isValid() const
+{
+ if (!isSelectedProcessRunning())
+ {
+ KMessageBox::error(
+ ks_main,
+ i18n("The selected process does not exist!")
+ );
+
+ return false;
+ }
+
+ return true;
+}
+
+void AppObserver::refresh()
+{
+ // kdDebug() << "AppObserver::refresh()" << endl;
+
+ b_refresh->setEnabled(false);
+ cb_processes->setEnabled(false);
+ b_kill->setEnabled(false);
+
+ _buf = QString::null;
+ cb_processes->clear();
+ _processesMap->clear();
+
+ if (!_process)
+ {
+ _process = new QProcess(this);
+ connect(_process, SIGNAL(processExited()), SLOT(slotProcessExit()));
+ connect(_process, SIGNAL(readyReadStdout()), SLOT(slotReadStdout()));
+ }
+ else
+ {
+ if (_process->isRunning())
+ _process->kill();
+ _process->clearArguments();
+ }
+ _process->addArgument("ps");
+ // show all processes
+ _process->addArgument("-A");
+ // order: user pid command
+ _process->addArgument("-o");
+ _process->addArgument("user=");
+ _process->addArgument("-o");
+ _process->addArgument("pid=");
+ _process->addArgument("-o");
+ _process->addArgument("comm=");
+ // sort by command
+ _process->addArgument("--sort");
+ _process->addArgument("comm");
+
+ // start process
+ if (!_process->start())
+ {
+ // error
+ KMessageBox::error(
+ ks_main,
+ MiscUtils::HTML(i18n("Could not execute command<br><br><b>%1</b>").arg(_process->arguments().join(" ")))
+ );
+ cb_processes->setEnabled(false);
+ cb_processes->insertItem(SmallIcon("messagebox_warning"), i18n("Error"));
+ b_kill->setEnabled(false);
+ b_refresh->setEnabled(true);
+ }
+}
+
+void AppObserver::setWidgetsEnabled(const bool yes) const
+{
+ b_refresh->setEnabled(yes);
+ cb_processes->setEnabled(yes);
+ b_kill->setEnabled(yes);
+}
+
+// private slots
+
+void AppObserver::slotKill()
+{
+ int index = cb_processes->currentItem();
+ QMapIterator<int, Process> i = _processesMap->find(index);
+// FIXME: 2.0: error message
+ if (i != _processesMap->end())
+ {
+ if (KMessageBox::warningYesNo(
+ ks_main,
+ MiscUtils::HTML(i18n("Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be lost!").arg(cb_processes->currentText()))
+ ) != KMessageBox::Yes)
+ return;
+
+ pid_t pid = i.data().pid;
+ if (::kill(pid, SIGKILL))
+ {
+ switch (errno)
+ {
+ case EINVAL:
+ // kdDebug() << "EINVAL" << endl;
+ break;
+ case ESRCH:
+ KMessageBox::error(
+ ks_main,
+ MiscUtils::HTML(i18n("Process not found<br><b>%1</b>").arg(cb_processes->currentText()))
+ );
+ break;
+ case EPERM:
+ KMessageBox::error(
+ ks_main,
+ MiscUtils::HTML(i18n("No permissions to kill<br><b>%1</b>").arg(cb_processes->currentText()))
+ );
+ break;
+ }
+ }
+ else
+ {
+ cb_processes->changeItem(
+ *cb_processes->pixmap(index),
+ i18n("DEAD: %1").arg(cb_processes->text(index)),
+ index
+ );
+ }
+ }
+}
+
+void AppObserver::slotProcessExit()
+{
+ // kdDebug() << "AppObserver::slotProcessExit()" << endl;
+
+ int index = 0;
+ int line = 0;
+ Process p;
+ QStringList list = QStringList::split(" ", _buf.simplifyWhiteSpace());
+ for (QStringList::Iterator i = list.begin(); i != list.end(); ++i)
+ {
+ switch (line)
+ {
+ // user
+ case 0:
+ line++; // next is pid
+ p = Process();
+ p.user = *i;
+ break;
+ // pid
+ case 1:
+ line++; // next is command
+ p.pid = (*i).toLong();
+ break;
+ // command
+ case 2:
+ line = 0; // next is user (wrap around)
+ p.command = *i;
+ _processesMap->insert(index, p);
+ // kdDebug() << "USER=" << p.user << " PID=" << p.pid << " COMMAND=" << p.command << endl;
+ QString text = QString("%1 (pid %2, %3)")
+ .arg(p.command)
+ .arg(p.pid)
+ .arg(p.user);
+ cb_processes->insertItem(SmallIcon(p.command), text);
+ index++;
+ break;
+ }
+ }
+ if (cb_processes->count() == 0)
+ {
+ cb_processes->setEnabled(false);
+ cb_processes->insertItem(SmallIcon("messagebox_warning"), i18n("Error"));
+ b_kill->setEnabled(false);
+ }
+ else
+ {
+ cb_processes->setEnabled(true);
+ b_kill->setEnabled(true);
+ }
+ b_refresh->setEnabled(true);
+}
+
+void AppObserver::slotReadStdout()
+{
+ // kdDebug() << "AppObserver::slotReadStdout()" << endl;
+
+ _buf.append(_process->readStdout());
+}
+
+void AppObserver::slotRefresh()
+{
+ refresh();
+}
diff --git a/kshutdown/appobserver.h b/kshutdown/appobserver.h
new file mode 100644
index 0000000..77b0f3d
--- /dev/null
+++ b/kshutdown/appobserver.h
@@ -0,0 +1,99 @@
+/*
+ appobserver.h - An application observer/killer
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __APPOBSERVER_H__
+#define __APPOBSERVER_H__
+
+#include <sys/types.h>
+
+#include <qhbox.h>
+
+class QComboBox;
+class QProcess;
+
+class KPushButton;
+
+/**
+ * A process info.
+ */
+class Process
+{
+private:
+ friend class AppObserver;
+ pid_t pid; /**< A process ID. */
+ QString command; /**< A process command (e.g. "firefox"). */
+ QString user; /**< An owner of the process (e.g. "root"). */
+};
+
+/**
+ * An application observer/killer (stupid name ;-).
+ */
+class AppObserver: public QHBox
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor.
+ * @param parent A parent widget
+ */
+ AppObserver(QWidget *parent);
+
+ /**
+ * Returns textual information about the current state,
+ * or @c QString::null.
+ */
+ QString getInfo() const;
+
+ /**
+ * Returns @c true if selected process exists.
+ */
+ bool isSelectedProcessRunning() const;
+
+ /**
+ * Returns @c true if selected process exists;
+ * otherwise displays an error message.
+ */
+ bool isValid() const;
+
+ /**
+ * Refreshes the list of processes.
+ */
+ void refresh();
+
+ /**
+ * Enables/disables related widgets.
+ * @param yes @c true to enable widgets
+ */
+ void setWidgetsEnabled(const bool yes) const;
+private:
+ KPushButton
+ *b_kill,
+ *b_refresh;
+ QComboBox *cb_processes;
+ QMap<int, Process> *_processesMap;
+ QProcess *_process;
+ QString _buf;
+private slots:
+ void slotKill();
+ void slotProcessExit();
+ void slotReadStdout();
+ void slotRefresh();
+};
+
+#endif // __APPOBSERVER_H__
diff --git a/kshutdown/configuration.cpp b/kshutdown/configuration.cpp
new file mode 100644
index 0000000..0514aa9
--- /dev/null
+++ b/kshutdown/configuration.cpp
@@ -0,0 +1,80 @@
+/*
+ configuration.cpp - A configuration
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "actions.h"
+#include "configuration.h"
+#include "mmainwindow.h"
+#include "msystemtray.h"
+
+Config *Config::_instance = 0;
+
+// public
+
+Config::Config()
+{
+ // automation
+ setCurrentGroup("Automation");
+ i_cdTrayClose = addItemBool("cd_tray_close", cdTrayClose, false, "CDTrayClose");
+#ifdef Q_OS_FREEBSD
+ i_cdTrayCloseCommand = addItemString("cd_tray_close_command", cdTrayCloseCommand, "cdcontrol close", "CDTrayCloseCommand");
+#else
+ i_cdTrayCloseCommand = addItemString("cd_tray_close_command", cdTrayCloseCommand, "eject -t", "CDTrayCloseCommand");
+#endif
+
+ // custom message
+ setCurrentGroup("Custom Message");
+ i_customMessageEnabled = addItemBool("custom_message_enabled", customMessageEnabled, true, "Enabled");
+ i_customMessageCommand = addItemString("custom_message_command", customMessageCommand, KS_CONFIG_KDIALOG_MESSAGE);
+
+ // general
+ setCurrentGroup("General");
+ ItemInt *i;
+ i = addItemInt("general_action", generalAction, Action::ShutDown, "Action");
+ i->setMinValue(Action::ShutDown);
+ i->setMaxValue(Action::Extras);
+ i = addItemInt("general_delay_type", generalDelayType, MMainWindow::DelayType_TimeFromNow, "DelayType");
+ i->setMinValue(MMainWindow::DelayType_Now);
+ i->setMaxValue(MMainWindow::DelayType_OnAppExit);
+ addItemDateTime("general_date_time", generalDateTime, QDateTime::currentDateTime(), "DelayTime");
+
+ // progress bar
+ setCurrentGroup("Progress Bar");
+ i_progressBarEnabled = addItemBool("progress_bar_enabled", progressBarEnabled, false, "Enabled");
+ i_progressBarPosition = addItemInt("progress_bar_position", progressBarPosition, 0, "Position");
+
+ // statistics
+ setCurrentGroup("Statistics");
+ i_statsLongFormat = addItemBool("stats_long_format", statsLongFormat, false, "LongFormat");
+ i_statsToggleFromField = addItemBool("stats_toggle_from_field", statsToggleFromField, false, "ToggleFromField");
+
+ // system tray
+ setCurrentGroup("System Tray");
+ i_systemTray = addItemInt("system_tray", systemTray, MSystemTray::Always, "Always");
+ i_systemTray->setMinValue(MSystemTray::Always);
+ i_systemTray->setMaxValue(MSystemTray::Never);
+
+ // warning message
+ setCurrentGroup("Warning Message");
+ i_warningMessageEnabled = addItemBool("warning_message_enabled", warningMessageEnabled, true, "Enabled");
+ i_warningMessageDelay = addItemInt("warning_message_delay", warningMessageDelay, 2, "Delay");
+ i_warningMessageDelay->setMinValue(1);
+ i_warningMessageDelay->setMaxValue(60);
+
+ readConfig();
+}
diff --git a/kshutdown/configuration.h b/kshutdown/configuration.h
new file mode 100644
index 0000000..d5d39fb
--- /dev/null
+++ b/kshutdown/configuration.h
@@ -0,0 +1,91 @@
+/*
+ configuration.h - A configuration
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __CONFIGURATION_H__
+#define __CONFIGURATION_H__
+
+#include <kconfigskeleton.h>
+
+#define kshutdownrc Config::getInstance()->getInstance()
+
+#define KS_CONFIG_AMOR_MESSAGE "dcop amor AmorIface showMessage \"%appname: %text\""
+#define KS_CONFIG_KDIALOG_MESSAGE "kdialog --title \"%title\" --passivepopup \"%text\" 10"
+
+/**
+ * @short A configuration reader/writer.
+ * Use the @c kshutdownrc macro to access these members.
+ */
+class Config: public KConfigSkeleton
+{
+public:
+ // automation
+ bool cdTrayClose;
+ ItemBool *i_cdTrayClose;
+ QString cdTrayCloseCommand;
+ ItemString *i_cdTrayCloseCommand;
+
+ // custom message
+ bool customMessageEnabled;
+ ItemBool *i_customMessageEnabled;
+ QString customMessageCommand;
+ ItemString *i_customMessageCommand;
+
+ // general
+ int generalAction;
+ int generalDelayType;
+ QDateTime generalDateTime;
+
+ // progress bar
+ bool progressBarEnabled;
+ ItemBool *i_progressBarEnabled;
+ int progressBarPosition;
+ ItemInt *i_progressBarPosition;
+
+ // statistics
+ bool statsLongFormat;
+ ItemBool *i_statsLongFormat;
+ bool statsToggleFromField;
+ ItemBool *i_statsToggleFromField;
+
+ // system tray
+ int systemTray;
+ ItemInt *i_systemTray;
+
+ // warning message
+ bool warningMessageEnabled;
+ ItemBool *i_warningMessageEnabled;
+ int warningMessageDelay;
+ ItemInt *i_warningMessageDelay;
+
+ /**
+ * Constructs and returns a singleton instance of the configuration.
+ */
+ inline static Config *getInstance()
+ {
+ if (!_instance)
+ _instance = new Config();
+
+ return _instance;
+ }
+private:
+ Config();
+ static Config *_instance;
+};
+
+#endif // __CONFIGURATION_H__
diff --git a/kshutdown/confirmation.cpp b/kshutdown/confirmation.cpp
new file mode 100644
index 0000000..4f295d0
--- /dev/null
+++ b/kshutdown/confirmation.cpp
@@ -0,0 +1,97 @@
+/*
+ confirmation.cpp - A confirmation dialog
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "confirmation.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "msystemtray.h"
+
+#include <dcopclient.h>
+#include <kdialogbase.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kwin.h>
+
+// public
+
+bool Confirmation::confirm(const Action::Type action, const QString &delay)
+{
+ KWin::setOnDesktop(ks_main->winId(), KWin::currentDesktop());
+
+ QWidget *parent;
+ if (ks_main->isVisible())
+ parent = ks_main;
+ else if (MSystemTray::isInstance() && ks_tray->isVisible())
+ parent = ks_tray;
+ else
+ parent = 0;
+
+ /*
+ QWidget *background = new QWidget(0, "QWidget::background", Qt::WType_Popup);
+ background->setBackgroundMode(Qt::NoBackground);
+ background->setGeometry(kapp->desktop()->geometry());
+ // Take screenshot - based on the aKregator's TrayIcon::takeScreenshot() (trayicon.cpp)
+ // and "ksmserver/shutdown.cpp".
+ QPixmap shot = QPixmap::grabWindow(
+ qt_xrootwin(),
+ 0, 0, // x, y
+ kapp->desktop()->width(), kapp->desktop()->height()
+ );
+ QImage shotImage = shot.convertToImage();
+ KImageEffect::flatten(shotImage, Qt::green, Qt::black);
+ bitBlt(background, 0, 0, &shotImage);
+ background->show();
+ */
+
+ KDialogBase *dialog = new KDialogBase(
+ i18n("Confirm"), // caption
+ KDialogBase::Yes | KDialogBase::No, // button mask
+ KDialogBase::Yes, // default button
+ KDialogBase::No, // escape button
+ parent,
+ "Action::confirm",
+ true, // modal
+ false, // separator
+ KGuiItem(ks_actions->getName(action), ks_actions->getIcon(action)),
+ KGuiItem(i18n("&Cancel"), SmallIcon("button_cancel"))
+ );
+ bool checkboxResultDummy = false;
+ QString selectedTime = delay.isNull() ? i18n("Unknown") : delay;
+ QString text =
+ i18n("Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>")
+ .arg(ks_actions->getName(action))
+ .arg(selectedTime);
+
+ kapp->dcopClient()->suspend();
+
+ bool result = (KMessageBox::createKMessageBox(
+ dialog,
+ MainBarIcon(ks_actions->getIconName(action), 32),
+ MiscUtils::HTML(text),
+ QStringList(),
+ QString::null,
+ &checkboxResultDummy,
+ KMessageBox::Notify
+ ) == KDialogBase::Yes);
+
+ kapp->dcopClient()->resume();
+
+ return result;
+}
diff --git a/kshutdown/confirmation.h b/kshutdown/confirmation.h
new file mode 100644
index 0000000..9af26c2
--- /dev/null
+++ b/kshutdown/confirmation.h
@@ -0,0 +1,38 @@
+/*
+ confirmation.h - A confirmation dialog
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __CONFIRMATION_H__
+#define __CONFIRMATION_H__
+
+#include "actions.h"
+
+/** @short A confirmation dialog. */
+class Confirmation
+{
+public:
+ /**
+ * Displays a confirmation message box.
+ * @param action An action to confirm
+ * @param delay A selected delay
+ * @return @c true if action has been confirmed; otherwise @c false
+ */
+ static bool confirm(const Action::Type action, const QString &delay);
+};
+
+#endif // __CONFIRMATION_H__
diff --git a/kshutdown/extras.cpp b/kshutdown/extras.cpp
new file mode 100644
index 0000000..bef2262
--- /dev/null
+++ b/kshutdown/extras.cpp
@@ -0,0 +1,309 @@
+/*
+ extras.cpp - Extras
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <sys/types.h>
+
+#include "extras.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+
+#include <qdir.h>
+
+#include <kdebug.h>
+#include <kdesktopfile.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kmimetype.h>
+#include <kpopupmenu.h>
+#include <kpushbutton.h>
+#include <krun.h>
+#include <kstandarddirs.h>
+#include <kstringhandler.h>
+
+Extras *Extras::_instance = 0;
+
+// public
+
+Extras::~Extras()
+{
+ if (_idToFileMap)
+ delete _idToFileMap;
+ if (_menu)
+ delete _menu;
+}
+
+void Extras::createButton(QWidget *parent)
+{
+ _button = new KPushButton(parent, "KPushButton::_button");
+ _button->hide();
+ _button->setPopup(_menu);
+ MiscUtils::setHint(_button, i18n("More actions..."));
+ setAction(QString::null, QString::null); /* evil */
+}
+
+bool Extras::execAction() const
+{
+ if (_fileToExecute.isNull())
+ return false; // error
+
+ if (!execFile())
+ {
+ MiscUtils::showRunErrorMessage(_fileToExecute);
+
+ return false; // error
+ }
+
+ return true; // ok
+}
+
+QString Extras::getActionDescription() const
+{
+ return
+ _description.isEmpty()
+ ? QString::null
+ // "Substitute characters at the middle of a string by \"...\""
+ : KStringHandler::csqueeze(_description, 100);
+}
+
+void Extras::setAction(const QString &fileToExecute, const QString &description, QIconSet *icon)
+{
+ _description = description;
+ _fileToExecute = fileToExecute;
+ if (_fileToExecute.isNull())
+ {
+ _button->setText(i18n("Select a command..."));
+ _button->setIconSet(ks_actions->getIcon(Action::Extras));
+ }
+ else
+ {
+ _button->setText(getActionDescription());
+ if (!icon)
+ _button->setIconSet(ks_actions->getIcon(Action::Extras));
+ else
+ _button->setIconSet(*icon);
+ }
+}
+
+// private
+
+Extras::Extras()
+ : QObject(ks_main, "Extras"),
+ _idToFileMap(0) // initialized in getIdToFileMap()
+{
+ _menu = new KPopupMenu(0, "KPopupMenu::_menu");
+ connect(_menu, SIGNAL(aboutToShow()), SLOT(slotShowMenu()));
+ connect(_menu, SIGNAL(activated(int)), SLOT(slotActivated(int)));
+}
+
+// TODO: 2.0: recent items
+void Extras::buildMenu(KPopupMenu *parentMenu, const QString &subdir)
+{
+ int id;
+ QDir d(subdir);
+ QFileInfo fi;
+ QString
+ description,
+ icon,
+ mimeType,
+ name,
+ path;
+
+ QStringList list = d.entryList(QDir::DefaultFilter, QDir::Name | QDir::DirsFirst);
+ list.remove(".");
+ list.remove("..");
+
+ uint count = list.count();
+ for (uint i = 0; i < count; i++)
+ {
+ fi.setFile(d, list[i]);
+ path = fi.filePath();
+
+ // dir
+ if (fi.isDir())
+ {
+ KPopupMenu *submenu = new KPopupMenu(parentMenu, "KPopupMenu::submenu");
+ connect(submenu, SIGNAL(activated(int)), SLOT(slotActivated(int)));
+
+ KDesktopFile *desktopFile = new KDesktopFile(path + "/.directory", true);
+ if (desktopFile->getConfigState() != KConfigBase::NoAccess)
+ {
+ icon = desktopFile->readIcon();
+ if (icon.isEmpty())
+ icon = "folder";
+ name = desktopFile->readName();
+ if (name.isEmpty())
+ name = fi.baseName();
+ description = desktopFile->readComment();
+ // add item
+ parentMenu->insertItem(
+ SmallIcon(icon),
+ description.isEmpty() ? name : description,
+ submenu
+ );
+ }
+ else
+ {
+ // add item
+ parentMenu->insertItem(SmallIcon("folder"), fi.baseName(), submenu);
+ }
+ delete desktopFile;
+
+ // recurse
+ buildMenu(submenu, fi.filePath());
+ }
+ // file
+ else if (fi.isFile())
+ {
+ mimeType = KMimeType::findByPath(path)->name();
+
+ if (mimeType == "application/x-trash")
+ continue;
+
+ if (mimeType != "application/x-desktop")
+ {
+ // add item
+ id = parentMenu->insertItem(
+ KMimeType::pixmapForURL(KURL::fromPathOrURL(path)),
+ fi.baseName()
+ );
+ // map item
+ getIdToFileMap()->insert(id, path);
+
+ continue;
+ }
+
+ // application/x-desktop
+ KDesktopFile *desktopFile = new KDesktopFile(path, true);
+ if (desktopFile->getConfigState() != KConfigBase::NoAccess)
+ {
+ name = desktopFile->readName();
+ if (name.isEmpty())
+ name = desktopFile->readEntry("Exec");
+ description = desktopFile->readComment();
+ // add item
+ id = parentMenu->insertItem(
+ SmallIcon(desktopFile->readIcon()),
+ description.isEmpty()
+ ? name
+ : (description + " (" + name + ")")
+ );
+ // map item
+ getIdToFileMap()->insert(id, path);
+ }
+ delete desktopFile;
+ }
+ }
+}
+
+bool Extras::execFile() const
+{
+ if (_fileToExecute.isNull())
+ {
+ // kdDebug() << "Extras::execFile(): No file to execute" << endl;
+
+ return false;
+ }
+
+
+ // HACK: It seems that KRun::runURL sometimes does not work for hibernate :/ ?
+ QFileInfo fi(_fileToExecute);
+ if (fi.fileName() == "hibernate.desktop") {
+ kdDebug() << "Extras::execFile(): Using hacked run..." << endl;
+
+ pid_t pid = KRun::runCommand("kfmclient exec \"" + _fileToExecute + "\"");
+
+ return pid;
+ }
+ else {
+ pid_t pid = KRun::runURL(
+ KURL::fromPathOrURL(_fileToExecute),
+ KMimeType::findByPath(_fileToExecute)->name()
+ );
+
+ return pid;
+ }
+}
+
+QMap<int, QString> *Extras::getIdToFileMap()
+{
+ if (!_idToFileMap)
+ _idToFileMap = new QMap<int, QString>;
+
+ return _idToFileMap;
+}
+
+// public slots
+
+void Extras::slotModify()
+{
+ KMessageBox::information(
+ 0,
+ MiscUtils::HTML(
+ i18n("Use context menu to add/edit/remove links.") +
+ "<ul>" +
+ "<li>" + i18n("Use <b>Context Menu</b> to create a new link to application") + "</li>" +
+ "<li>" + i18n("Use <b>Create New|Folder...</b> to create a new submenu") + "</li>" +
+ "<li>" + i18n("Use <b>Properties</b> to change icon, name, or comment") + "</li>" +
+ "</ul>"
+ ),
+ i18n("Extras"), // title
+ "ModifyExtras" // config key
+ );
+
+ // launch Konqueror as an item editor
+ MiscUtils::runCommand("konqueror \"" + KGlobal::dirs()->saveLocation("data", "kshutdown/extras") + "\"");
+}
+
+// private slots
+
+void Extras::slotActivated(int id)
+{
+ QMap<int, QString>::iterator i = getIdToFileMap()->find(id);
+ if (i == getIdToFileMap()->end())
+ {
+ setAction(QString::null, QString::null);
+ KMessageBox::error(
+ 0,
+ "Internal error!\nSelected menu item is broken.",
+ i18n("Extras")
+ );
+ }
+ else
+ {
+ setAction(i.data(), _menu->text(id), _menu->iconSet(id));
+ }
+}
+
+void Extras::slotShowMenu()
+{
+ setAction(QString::null, QString::null);
+ _menu->clear(); // reset menu
+ getIdToFileMap()->clear(); // reset map
+ QStringList extrasDirs(KGlobal::dirs()->findDirs("data", "kshutdown/extras"));
+ QStringList::ConstIterator
+ begin = extrasDirs.begin(),
+ end = extrasDirs.end();
+ for (QStringList::ConstIterator it = begin; it != end; ++it)
+ {
+ if ((it != begin) && (_menu->count() > 0))
+ _menu->insertSeparator();
+ buildMenu(_menu, *it);
+ }
+}
diff --git a/kshutdown/extras.h b/kshutdown/extras.h
new file mode 100644
index 0000000..58297cd
--- /dev/null
+++ b/kshutdown/extras.h
@@ -0,0 +1,115 @@
+/*
+ extras.h - Extras
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __EXTRAS_H__
+#define __EXTRAS_H__
+
+#include <qobject.h>
+#include <qiconset.h>
+
+class KPopupMenu;
+class KPushButton;
+
+#define ks_extras Extras::getInstance()
+
+/** @short Extras - user commands stored in "extras" directory. */
+class Extras: public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor.
+ */
+ virtual ~Extras();
+
+ /**
+ * Returns the @b Extras button.
+ */
+ inline KPushButton *button() const { return _button; }
+
+ /**
+ * Creates the @b Extras button.
+ * @param parent A parent widget
+ */
+ void createButton(QWidget *parent);
+
+ /**
+ * Executes an "extras" action previously selected from the menu.
+ * @return @c false if error; otherwise @c true
+ */
+ bool execAction() const;
+
+ /**
+ * Returns a file name which will be executed by @ref execAction.
+ */
+ inline QString fileToExecute() const { return _fileToExecute; }
+
+ /**
+ * Returns a full description of the action,
+ * or @c QString::null if no action.
+ */
+ QString getActionDescription() const;
+
+ /**
+ * Initializes and returns the instance of the "extras" manager.
+ */
+ inline static Extras *getInstance()
+ {
+ if (!_instance)
+ _instance = new Extras();
+
+ return _instance;
+ }
+
+ void setAction(const QString &fileToExecute, const QString &description, QIconSet *icon = 0);
+private:
+ static Extras *_instance;
+ KPopupMenu *_menu;
+ KPushButton *_button;
+ QMap<int, QString> *_idToFileMap;
+ QString
+ _description,
+ _fileToExecute;
+ Extras();
+
+ /**
+ * Reads "extras" directory and creates menu items.
+ * @param parentMenu A parent menu
+ * @param subdir A subdirectory
+ */
+ void buildMenu(KPopupMenu *parentMenu, const QString &subdir);
+
+ bool execFile() const;
+ QMap<int, QString> *getIdToFileMap();
+public slots:
+ /**
+ * Opens the "extras" directory in the @b Konqueror.
+ */
+ void slotModify();
+private slots:
+ void slotActivated(int id);
+
+ /**
+ * Called before the popup menu is displayed.
+ * All the menu items are initialized here.
+ */
+ void slotShowMenu();
+};
+
+#endif // __EXTRAS_H__
diff --git a/kshutdown/kshutdown.desktop b/kshutdown/kshutdown.desktop
new file mode 100644
index 0000000..2a94428
--- /dev/null
+++ b/kshutdown/kshutdown.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+# Encoding: UTF-8
+Name=KShutDown
+Exec=kshutdown
+Icon=kshutdown
+Comment=A Shut Down Utility for KDE
+Comment[cs]=Vypínací utilita pro KDE
+Comment[de]=Erweitertes Herunterfahren für KDE
+Comment[el]=Ένα εργαλείο τερματισμού για το KDE
+Comment[fr]=Utilitaire de gestion d'arrêt pour KDE
+Comment[it]=Una utilit�KDE per lo spegnimento del sistema
+Comment[pl]=Narzędzie do zamykania systemu dla KDE
+GenericName=System Shut Down Utility
+GenericName[fr]=Gestionnaire d'arrêt du système
+GenericName[cs]=Časované vypnutí
+GenericName[pl]=Narzędzie do zamykania systemu
+DocPath=kshutdown/index.html
+Type=Application
+Categories=KDE;Utility;
diff --git a/kshutdown/kshutdown.upd b/kshutdown/kshutdown.upd
new file mode 100644
index 0000000..cac1ba9
--- /dev/null
+++ b/kshutdown/kshutdown.upd
@@ -0,0 +1,10 @@
+Id=kshutdown051
+File=kshutdownrc
+Group=Automation,Shut Down
+Key=RunCommandBeforeShutDown,RunCommandBeforeAction
+Key=CommandBeforeShutDown,CommandBeforeAction
+Key=CommandPause,CommandBeforeActionPause
+Group=Automation
+RemoveKey=RunCommandBeforeShutDown
+RemoveKey=CommandBeforeShutDown
+RemoveKey=CommandPause \ No newline at end of file
diff --git a/kshutdown/kshutdowniface.h b/kshutdown/kshutdowniface.h
new file mode 100644
index 0000000..2a72c75
--- /dev/null
+++ b/kshutdown/kshutdowniface.h
@@ -0,0 +1,98 @@
+/*
+ kshutdowniface.h - KShutdown DCOP interface
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __KSHUTDOWNIFACE_H__
+#define __KSHUTDOWNIFACE_H__
+
+#include <dcopobject.h>
+
+/**
+ * @short KShutDown DCOP interface (KShutdownIface).
+ * See the KShutDown Handbook (F1) for details.
+ */
+class KShutdownIface: virtual public DCOPObject
+{
+ K_DCOP
+public:
+k_dcop:
+
+ // general actions
+
+ /**
+ * Cancels the current action.
+ */
+ virtual ASYNC cancel() = 0;
+
+ /**
+ * Executes the <b>Shut Down</b> action.
+ */
+ virtual bool shutDown() = 0;
+
+ /**
+ * @see shutDown
+ */
+ virtual bool shutdown() = 0;
+
+ /**
+ * Executes the @b Reboot" action.
+ */
+ virtual bool reboot() = 0;
+
+ /**
+ * Executes the <b>Lock Screen</b> action.
+ */
+ virtual bool lockScreen() = 0;
+
+ /**
+ * Executes the @b Logout action.
+ */
+ virtual bool logout() = 0;
+
+ // misc. functions
+
+ /**
+ * Shows the settings dialog.
+ */
+ virtual ASYNC configure() = 0;
+
+ /**
+ * Returns a KShutDown status information as text
+ * (e.g. "Idle", "Busy", "1 minute warning", etc).
+ * Can be used in Karamba themes, for example.
+ */
+ virtual QString getStatusInfo() = 0;
+
+ /**
+ * Hides the main window and its system tray icon.
+ */
+ virtual void makeInvisible() = 0;
+
+ /**
+ * Shows and raises the main window.
+ * The window will be visible on the current desktop.
+ */
+ virtual ASYNC makeVisible() = 0;
+
+ /**
+ * Sets test mode to @p yes.
+ */
+ virtual ASYNC setTestMode(bool yes) = 0;
+};
+
+#endif // __KSHUTDOWNIFACE_H__
diff --git a/kshutdown/kshutdowniface.kidl b/kshutdown/kshutdowniface.kidl
new file mode 100644
index 0000000..0ae6497
--- /dev/null
+++ b/kshutdown/kshutdowniface.kidl
@@ -0,0 +1,53 @@
+<!DOCTYPE DCOP-IDL><DCOP-IDL>
+<SOURCE>kshutdowniface.h</SOURCE>
+<INCLUDE>dcopobject.h</INCLUDE>
+<CLASS>
+ <NAME>KShutdownIface</NAME>
+ <SUPER>DCOPObject</SUPER>
+ <FUNC>
+ <TYPE>ASYNC</TYPE>
+ <NAME>cancel</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>bool</TYPE>
+ <NAME>shutDown</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>bool</TYPE>
+ <NAME>shutdown</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>bool</TYPE>
+ <NAME>reboot</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>bool</TYPE>
+ <NAME>lockScreen</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>bool</TYPE>
+ <NAME>logout</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>ASYNC</TYPE>
+ <NAME>configure</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>QString</TYPE>
+ <NAME>getStatusInfo</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>void</TYPE>
+ <NAME>makeInvisible</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>ASYNC</TYPE>
+ <NAME>makeVisible</NAME>
+ </FUNC>
+ <FUNC>
+ <TYPE>ASYNC</TYPE>
+ <NAME>setTestMode</NAME>
+ <ARG><TYPE>bool</TYPE><NAME>yes</NAME></ARG>
+ </FUNC>
+</CLASS>
+</DCOP-IDL>
diff --git a/kshutdown/kshutdowniface_skel.cpp b/kshutdown/kshutdowniface_skel.cpp
new file mode 100644
index 0000000..d267d86
--- /dev/null
+++ b/kshutdown/kshutdowniface_skel.cpp
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** DCOP Skeleton generated by dcopidl2cpp from kshutdowniface.kidl
+**
+** WARNING! All changes made in this file will be lost!
+**
+*****************************************************************************/
+
+#include "kshutdowniface.h"
+
+#include <kdatastream.h>
+#include <qasciidict.h>
+
+
+static const int KShutdownIface_fhash = 13;
+static const char* const KShutdownIface_ftable[12][3] = {
+ { "ASYNC", "cancel()", "cancel()" },
+ { "bool", "shutDown()", "shutDown()" },
+ { "bool", "shutdown()", "shutdown()" },
+ { "bool", "reboot()", "reboot()" },
+ { "bool", "lockScreen()", "lockScreen()" },
+ { "bool", "logout()", "logout()" },
+ { "ASYNC", "configure()", "configure()" },
+ { "QString", "getStatusInfo()", "getStatusInfo()" },
+ { "void", "makeInvisible()", "makeInvisible()" },
+ { "ASYNC", "makeVisible()", "makeVisible()" },
+ { "ASYNC", "setTestMode(bool)", "setTestMode(bool yes)" },
+ { 0, 0, 0 }
+};
+static const int KShutdownIface_ftable_hiddens[11] = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+};
+
+bool KShutdownIface::process(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData)
+{
+ static QAsciiDict<int>* fdict = 0;
+ if ( !fdict ) {
+ fdict = new QAsciiDict<int>( KShutdownIface_fhash, true, false );
+ for ( int i = 0; KShutdownIface_ftable[i][1]; i++ )
+ fdict->insert( KShutdownIface_ftable[i][1], new int( i ) );
+ }
+ int* fp = fdict->find( fun );
+ switch ( fp?*fp:-1) {
+ case 0: { // void cancel()
+ replyType = KShutdownIface_ftable[0][0];
+ cancel( );
+ } break;
+ case 1: { // bool shutDown()
+ replyType = KShutdownIface_ftable[1][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << shutDown( );
+ } break;
+ case 2: { // bool shutdown()
+ replyType = KShutdownIface_ftable[2][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << shutdown( );
+ } break;
+ case 3: { // bool reboot()
+ replyType = KShutdownIface_ftable[3][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << reboot( );
+ } break;
+ case 4: { // bool lockScreen()
+ replyType = KShutdownIface_ftable[4][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << lockScreen( );
+ } break;
+ case 5: { // bool logout()
+ replyType = KShutdownIface_ftable[5][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << logout( );
+ } break;
+ case 6: { // void configure()
+ replyType = KShutdownIface_ftable[6][0];
+ configure( );
+ } break;
+ case 7: { // QString getStatusInfo()
+ replyType = KShutdownIface_ftable[7][0];
+ QDataStream _replyStream( replyData, IO_WriteOnly );
+ _replyStream << getStatusInfo( );
+ } break;
+ case 8: { // void makeInvisible()
+ replyType = KShutdownIface_ftable[8][0];
+ makeInvisible( );
+ } break;
+ case 9: { // void makeVisible()
+ replyType = KShutdownIface_ftable[9][0];
+ makeVisible( );
+ } break;
+ case 10: { // void setTestMode(bool)
+ bool arg0;
+ QDataStream arg( data, IO_ReadOnly );
+ if (arg.atEnd()) return false;
+ arg >> arg0;
+ replyType = KShutdownIface_ftable[10][0];
+ setTestMode(arg0 );
+ } break;
+ default:
+ return DCOPObject::process( fun, data, replyType, replyData );
+ }
+ return true;
+}
+
+QCStringList KShutdownIface::interfaces()
+{
+ QCStringList ifaces = DCOPObject::interfaces();
+ ifaces += "KShutdownIface";
+ return ifaces;
+}
+
+QCStringList KShutdownIface::functions()
+{
+ QCStringList funcs = DCOPObject::functions();
+ for ( int i = 0; KShutdownIface_ftable[i][2]; i++ ) {
+ if (KShutdownIface_ftable_hiddens[i])
+ continue;
+ QCString func = KShutdownIface_ftable[i][0];
+ func += ' ';
+ func += KShutdownIface_ftable[i][2];
+ funcs << func;
+ }
+ return funcs;
+}
+
+
diff --git a/kshutdown/kshutdowniface_stub.cpp b/kshutdown/kshutdowniface_stub.cpp
new file mode 100644
index 0000000..9187c8c
--- /dev/null
+++ b/kshutdown/kshutdowniface_stub.cpp
@@ -0,0 +1,229 @@
+/****************************************************************************
+**
+** DCOP Stub Implementation created by dcopidl2cpp from kshutdowniface.kidl
+**
+** WARNING! All changes made in this file will be lost!
+**
+*****************************************************************************/
+
+#include "kshutdowniface_stub.h"
+#include <dcopclient.h>
+
+#include <kdatastream.h>
+
+
+KShutdownIface_stub::KShutdownIface_stub( const QCString& app, const QCString& obj )
+ : DCOPStub( app, obj )
+{
+}
+
+KShutdownIface_stub::KShutdownIface_stub( DCOPClient* client, const QCString& app, const QCString& obj )
+ : DCOPStub( client, app, obj )
+{
+}
+
+KShutdownIface_stub::KShutdownIface_stub( const DCOPRef& ref )
+ : DCOPStub( ref )
+{
+}
+
+void KShutdownIface_stub::cancel()
+{
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return;
+ }
+ QByteArray data;
+ dcopClient()->send( app(), obj(), "cancel()", data );
+ setStatus( CallSucceeded );
+}
+
+bool KShutdownIface_stub::shutDown()
+{
+ bool result = false;
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return result;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "shutDown()", data, replyType, replyData ) ) {
+ if ( replyType == "bool" ) {
+ QDataStream _reply_stream( replyData, IO_ReadOnly );
+ _reply_stream >> result;
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+ } else {
+ callFailed();
+ }
+ return result;
+}
+
+bool KShutdownIface_stub::shutdown()
+{
+ bool result = false;
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return result;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "shutdown()", data, replyType, replyData ) ) {
+ if ( replyType == "bool" ) {
+ QDataStream _reply_stream( replyData, IO_ReadOnly );
+ _reply_stream >> result;
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+ } else {
+ callFailed();
+ }
+ return result;
+}
+
+bool KShutdownIface_stub::reboot()
+{
+ bool result = false;
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return result;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "reboot()", data, replyType, replyData ) ) {
+ if ( replyType == "bool" ) {
+ QDataStream _reply_stream( replyData, IO_ReadOnly );
+ _reply_stream >> result;
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+ } else {
+ callFailed();
+ }
+ return result;
+}
+
+bool KShutdownIface_stub::lockScreen()
+{
+ bool result = false;
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return result;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "lockScreen()", data, replyType, replyData ) ) {
+ if ( replyType == "bool" ) {
+ QDataStream _reply_stream( replyData, IO_ReadOnly );
+ _reply_stream >> result;
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+ } else {
+ callFailed();
+ }
+ return result;
+}
+
+bool KShutdownIface_stub::logout()
+{
+ bool result = false;
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return result;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "logout()", data, replyType, replyData ) ) {
+ if ( replyType == "bool" ) {
+ QDataStream _reply_stream( replyData, IO_ReadOnly );
+ _reply_stream >> result;
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+ } else {
+ callFailed();
+ }
+ return result;
+}
+
+void KShutdownIface_stub::configure()
+{
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return;
+ }
+ QByteArray data;
+ dcopClient()->send( app(), obj(), "configure()", data );
+ setStatus( CallSucceeded );
+}
+
+QString KShutdownIface_stub::getStatusInfo()
+{
+ QString result;
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return result;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "getStatusInfo()", data, replyType, replyData ) ) {
+ if ( replyType == "QString" ) {
+ QDataStream _reply_stream( replyData, IO_ReadOnly );
+ _reply_stream >> result;
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+ } else {
+ callFailed();
+ }
+ return result;
+}
+
+void KShutdownIface_stub::makeInvisible()
+{
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return;
+ }
+ QByteArray data, replyData;
+ QCString replyType;
+ if ( dcopClient()->call( app(), obj(), "makeInvisible()", data, replyType, replyData ) ) {
+ setStatus( CallSucceeded );
+ } else {
+ callFailed();
+ }
+}
+
+void KShutdownIface_stub::makeVisible()
+{
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return;
+ }
+ QByteArray data;
+ dcopClient()->send( app(), obj(), "makeVisible()", data );
+ setStatus( CallSucceeded );
+}
+
+void KShutdownIface_stub::setTestMode( bool arg0 )
+{
+ if ( !dcopClient() ) {
+ setStatus( CallFailed );
+ return;
+ }
+ QByteArray data;
+ QDataStream arg( data, IO_WriteOnly );
+ arg << arg0;
+ dcopClient()->send( app(), obj(), "setTestMode(bool)", data );
+ setStatus( CallSucceeded );
+}
+
+
diff --git a/kshutdown/kshutdowniface_stub.h b/kshutdown/kshutdowniface_stub.h
new file mode 100644
index 0000000..889f3bf
--- /dev/null
+++ b/kshutdown/kshutdowniface_stub.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+**
+** DCOP Stub Definition created by dcopidl2cpp from kshutdowniface.kidl
+**
+** WARNING! All changes made in this file will be lost!
+**
+*****************************************************************************/
+
+#ifndef __KSHUTDOWNIFACE_STUB__
+#define __KSHUTDOWNIFACE_STUB__
+
+#include <dcopstub.h>
+#include <dcopobject.h>
+
+
+class KShutdownIface_stub : virtual public DCOPStub
+{
+public:
+ KShutdownIface_stub( const QCString& app, const QCString& id );
+ KShutdownIface_stub( DCOPClient* client, const QCString& app, const QCString& id );
+ explicit KShutdownIface_stub( const DCOPRef& ref );
+ virtual ASYNC cancel();
+ virtual bool shutDown();
+ virtual bool shutdown();
+ virtual bool reboot();
+ virtual bool lockScreen();
+ virtual bool logout();
+ virtual ASYNC configure();
+ virtual QString getStatusInfo();
+ virtual void makeInvisible();
+ virtual ASYNC makeVisible();
+ virtual ASYNC setTestMode( bool yes );
+protected:
+ KShutdownIface_stub() : DCOPStub( never_use ) {};
+};
+
+
+#endif
diff --git a/kshutdown/links.cpp b/kshutdown/links.cpp
new file mode 100644
index 0000000..f1ce810
--- /dev/null
+++ b/kshutdown/links.cpp
@@ -0,0 +1,210 @@
+/*
+ links.cpp - A link creator/remover
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "actions.h"
+#include "links.h"
+#include "miscutils.h"
+
+#include <qcombobox.h>
+#include <qfile.h>
+#include <qlabel.h>
+
+#include <kapplication.h>
+#include <kdesktopfile.h>
+#include <kglobalsettings.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpushbutton.h>
+#include <kstandarddirs.h>
+
+// public
+
+Links::Links(QWidget *parent)
+ : QVBox(parent, "Links")
+{
+ setSpacing(5);
+ int alignment = AlignVCenter;
+ alignment |= kapp->reverseLayout() ? AlignLeft : AlignRight;
+
+
+ // location
+ QHBox *w_location = new QHBox(this);
+ w_location->setSpacing(5);
+ QLabel *l_location = new QLabel(i18n("Location where to create the link:"), w_location);
+ l_location->setAlignment(alignment);
+ cb_location = new QComboBox(w_location, "QComboBox::cb_location");
+ cb_location->setFocusPolicy(StrongFocus);
+ cb_location->insertItem(SmallIcon("desktop"), i18n("Desktop"));
+ cb_location->insertItem(SmallIcon("kmenu"), i18n("K Menu"));
+ l_location->setBuddy(cb_location);
+ connect(cb_location, SIGNAL(activated(int)), SLOT(slotActivated(int)));
+
+ // type
+ QHBox *w_type = new QHBox(this);
+ w_type->setSpacing(5);
+ QLabel *l_type = new QLabel(i18n("Type of the link:"), w_type);
+ l_type->setAlignment(alignment);
+ cb_type = new QComboBox(w_type, "QComboBox::cb_type");
+ cb_type->setFocusPolicy(StrongFocus);
+ cb_type->insertItem(kapp->miniIcon(), "KShutDown");
+
+ // NOTE: slotAddRemoveLink()
+ cb_type->insertItem(SmallIcon("exit"), i18n("Standard Logout Dialog"));
+
+ cb_type->insertItem(ks_actions->getIcon(Action::ShutDown), ks_actions->getName(Action::ShutDown));
+ cb_type->insertItem(ks_actions->getIcon(Action::Reboot), ks_actions->getName(Action::Reboot));
+ cb_type->insertItem(ks_actions->getIcon(Action::LockScreen), ks_actions->getName(Action::LockScreen));
+ cb_type->insertItem(ks_actions->getIcon(Action::Logout), ks_actions->getName(Action::Logout));
+ l_type->setBuddy(cb_type);
+ connect(cb_type, SIGNAL(activated(int)), SLOT(slotActivated(int)));
+
+ // add/remove link
+ b_addRemoveLink = new KPushButton(this, "KPushButton::b_addRemoveLink");
+ connect(b_addRemoveLink, SIGNAL(clicked()), SLOT(slotAddRemoveLink()));
+
+ updateAddRemoveButton();
+}
+
+void Links::createLink(const QString &path, const QString &command, const QString &icon, const QString &name, const QString &comment)
+{
+ if (path.isNull())
+ return;
+
+ KDesktopFile *df = new KDesktopFile(path);
+ df->setGroup("Desktop Entry");
+ df->writeEntry("Comment", comment);
+ df->writeEntry("Encoding", "UTF-8");
+ df->writeEntry("Exec", command);
+ df->writeEntry("GenericName", i18n("System Shut Down Utility"));
+ df->writeEntry("Icon", icon);
+ df->writeEntry("Name", name);
+ df->writeEntry("StartupNotify", "false");
+ df->writeEntry("Type", "Application");
+ delete df;
+
+ if (!QFile::exists(path))
+ {
+ KMessageBox::error(
+ 0,
+ MiscUtils::HTML(i18n("Could not create file <b>%1</b>!").arg(path))
+ );
+ }
+}
+
+void Links::removeLink(const QString &path)
+{
+ if (QFile::exists(path) && !QFile::remove(path))
+ {
+ KMessageBox::error(
+ 0,
+ MiscUtils::HTML(i18n("Could not remove file <b>%1</b>!").arg(path))
+ );
+ }
+}
+
+// private
+
+QString Links::getCurrentLocationPath() const
+{
+ QString path;
+ switch (cb_location->currentItem())
+ {
+ case 0:
+ path = KGlobalSettings::desktopPath() + "/";
+ break;
+ case 1:
+ path = locateLocal("apps", "") + "/";
+ break;
+ default:
+ return QString::null;
+ }
+ switch (cb_type->currentItem())
+ {
+ case 0: return path += "kshutdown-classic.desktop";
+ case 1: return path += "kshutdown-standard.desktop";
+ case 2: return path += "kshutdown-shutdown.desktop";
+ case 3: return path += "kshutdown-reboot.desktop";
+ case 4: return path += "kshutdown-lock.desktop";
+ case 5: return path += "kshutdown-logout.desktop";
+ default: return QString::null;
+ }
+}
+
+QString Links::getCurrentTypeCommand() const
+{
+ switch (cb_type->currentItem())
+ {
+ case 0: return "kshutdown";
+ case 1: return "kshutdown --standard";
+ case 2: return "kshutdown --confirm --shutdown";
+ case 3: return "kshutdown --confirm --reboot";
+ case 4: return "kshutdown --confirm --lock";
+ case 5: return "kshutdown --confirm --logout";
+ default: return QString::null;
+ }
+}
+
+QString Links::getCurrentTypeIcon() const
+{
+ switch (cb_type->currentItem())
+ {
+ case 0: return "kshutdown";
+ case 1: return "exit";
+ // sync. with Action::getIcon
+ case 2: return "exit";
+ case 3: return "reload";
+ case 4: return "lock";
+ case 5: return "undo";
+ default: return QString::null;
+ }
+}
+
+void Links::updateAddRemoveButton() {
+ if (QFile::exists(getCurrentLocationPath())) {
+ b_addRemoveLink->setIconSet(SmallIcon("editdelete"));
+ b_addRemoveLink->setText(i18n("Remove Link"));
+ }
+ else {
+ b_addRemoveLink->setIconSet(SmallIcon("filenew"));
+ b_addRemoveLink->setText(i18n("Add Link"));
+ }
+}
+
+// private slots
+
+void Links::slotActivated(int/* index*/) {
+ updateAddRemoveButton();
+}
+
+void Links::slotAddRemoveLink() {
+ if (QFile::exists(getCurrentLocationPath())) {
+ removeLink(getCurrentLocationPath());
+ }
+ else {
+ createLink(
+ getCurrentLocationPath(),
+ getCurrentTypeCommand(),
+ getCurrentTypeIcon(),
+ (cb_type->currentItem() == 1) ? i18n("Logout") : cb_type->currentText(),
+ cb_type->currentText()
+ );
+ }
+ updateAddRemoveButton();
+}
diff --git a/kshutdown/links.h b/kshutdown/links.h
new file mode 100644
index 0000000..c9ef90c
--- /dev/null
+++ b/kshutdown/links.h
@@ -0,0 +1,74 @@
+/*
+ links.h - A link creator/remover
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __LINKS_H__
+#define __LINKS_H__
+
+#include <qvbox.h>
+
+class KPushButton;
+class QComboBox;
+
+/** @short A link creator/remover. */
+class Links: public QVBox
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor.
+ * @param parent A parent widget
+ */
+ Links(QWidget *parent);
+
+ /**
+ * Creates a new <b>.desktop</b> file.
+ * @param path A path to the <b>.desktop</b> file
+ * @param command A command to execute
+ * @param icon An icon name
+ * @param name A link name
+ * @param comment A comment
+ */
+ static void createLink(
+ const QString &path,
+ const QString &command,
+ const QString &icon,
+ const QString &name,
+ const QString &comment
+ );
+
+ /**
+ * Removes a <b>.desktop</b> file.
+ * @param path A <b>.desktop</b> file to remove
+ */
+ static void removeLink(const QString &path);
+private:
+ KPushButton *b_addRemoveLink;
+ QComboBox
+ *cb_location,
+ *cb_type;
+ QString getCurrentLocationPath() const;
+ QString getCurrentTypeCommand() const;
+ QString getCurrentTypeIcon() const;
+ void updateAddRemoveButton();
+private slots:
+ void slotActivated(int index);
+ void slotAddRemoveLink();
+};
+
+#endif // __LINKS_H__
diff --git a/kshutdown/mactioneditdialog.cpp b/kshutdown/mactioneditdialog.cpp
new file mode 100644
index 0000000..555ad0a
--- /dev/null
+++ b/kshutdown/mactioneditdialog.cpp
@@ -0,0 +1,225 @@
+/*
+ mactioneditsdialog.cpp - An action editor
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "configuration.h"
+#include "mactioneditdialog.h"
+#include "miscutils.h"
+#include "mtip.h"
+
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qhbox.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qvbox.h>
+#include <qvgroupbox.h>
+#include <qwhatsthis.h>
+
+#include <klineedit.h>
+#include <klocale.h>
+#include <knuminput.h>
+#include <kpushbutton.h>
+
+MActionEditDialog::MActionEditDialog(QWidget *parent, Action::Type action)
+ : KDialogBase(
+ parent,
+ "MActionEditDialog",
+ true,
+ "",
+ Default | Ok | Cancel,
+ Ok, // default button
+ true
+ ),
+ _action(action),
+ _userCommand("")
+{
+ QVBox *main = new QVBox(this);
+ setMainWidget(main);
+
+ // title
+ l_title = new QLabel(main);
+ QFont f = QFont(l_title->font());
+ f.setPointSize(16);
+ l_title->setFont(f);
+ l_title->setMargin(10);
+
+ QHBox *gb_south = new QHBox(main);
+ gb_south->setSpacing(5);
+
+ QVBox *gb_widgets = new QVBox(gb_south);
+
+ QVGroupBox *gb_method = new QVGroupBox(i18n("Method"), gb_widgets);
+
+ // method label
+ QLabel *l_method = new QLabel(i18n("Select a method:"), gb_method);
+
+ // method combo box
+ _methods = new QComboBox(gb_method, "QComboBox::_methods");
+ _methods->setFocusPolicy(StrongFocus);
+ _methods->insertItem(i18n("KDE (default)"));
+ l_method->setBuddy(_methods);
+ connect(_methods, SIGNAL(activated(int)), SLOT(slotMethodChange(int)));
+
+ // command label
+ l_command = new QLabel(i18n("Enter a custom command:"), gb_method);
+
+ // command edit line
+ in_command = new KLineEdit(gb_method, "KLineEdit::in_command");
+ l_command->setBuddy(in_command);
+
+ QVGroupBox *gb_commandBeforeAction = new QVGroupBox(i18n("Command before action"), gb_widgets);
+ c_runCommandBeforeAction = new QCheckBox(i18n("Run command"), gb_commandBeforeAction);
+ i_commandBeforeAction = new KLineEdit(gb_commandBeforeAction, "KLineEdit::i_commandBeforeAction");
+ i_commandBeforeActionPause = new KIntNumInput(gb_commandBeforeAction, "KIntNumInput::i_commandBeforeActionPause");
+ i_commandBeforeActionPause->setLabel(i18n("Pause after run command:"));
+ i_commandBeforeActionPause->setRange(0, 300, 1, true);
+ i_commandBeforeActionPause->setSpecialValueText(i18n("No pause"));
+ i_commandBeforeActionPause->setSuffix(" " + i18n("second(s)"));
+ b_testCommandBeforeAction = new KPushButton(KStdGuiItem::test(), gb_commandBeforeAction, "KPushButton::b_testCommandBeforeAction");
+ connect(b_testCommandBeforeAction, SIGNAL(clicked()), SLOT(slotTestCommandBeforeAction()));
+ connect(
+ c_runCommandBeforeAction, SIGNAL(toggled(bool)),
+ i_commandBeforeAction, SLOT(setEnabled(bool)));
+ connect(
+ c_runCommandBeforeAction, SIGNAL(toggled(bool)),
+ i_commandBeforeActionPause, SLOT(setEnabled(bool)));
+ connect(
+ c_runCommandBeforeAction, SIGNAL(toggled(bool)),
+ b_testCommandBeforeAction, SLOT(setEnabled(bool)));
+
+ MTip *t_progs = new MTip(MTip::Warning, gb_south);
+ t_progs->setTipText(
+ MiscUtils::HTML(
+ i18n("In most cases you need privileges to shut down system (e.g. run /sbin/shutdown)") + "<br>" \
+ "<ul>" \
+ "<li>" + i18n("If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set all methods to <i>KDE</i>") + "</li>" \
+ "<li>" + i18n("If you are using <b>KDE</b> and display manager different than <b>KDM</b>, then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/sbin/...</i>") + "</li>" \
+ "</ul>" +
+ i18n("Manuals:") +
+ "<ul>" \
+ "<li><a href=\"man:/halt\">halt, poweroff, reboot</a></li>" \
+ "<li><a href=\"man:/shutdown\">shutdown</a></li>" \
+ "<li><a href=\"man:/xlock\">xlock</a></li>" \
+ "<li><a href=\"man:/xscreensaver-command\">xscreensaver-command</a></li>" \
+ "</ul>" \
+ )
+ );
+
+ connect(this, SIGNAL(okClicked()), SLOT(slotOKClicked()));
+
+ Action::Method m = Action::Method_KDE;
+ QString c;
+ QString group = ks_actions->actionToConfigGroup(_action);
+ _methods->insertItem(ks_actions->getMethod(_action, m, c));
+
+ QString s = ks_actions->getName(_action);
+ l_title->setText(s);
+ setCaption(s);
+
+ _methods->insertItem(i18n("User Command"));
+
+ // method
+ _userCommand = c;
+ setMethod(m);
+
+ // command before action
+ KConfig *conf = kshutdownrc->config();
+ conf->setGroup(group);
+ c_runCommandBeforeAction->setChecked(conf->readBoolEntry("RunCommandBeforeAction", false));
+ i_commandBeforeAction->setText(conf->readEntry("CommandBeforeAction", ""));
+ i_commandBeforeActionPause->setValue(conf->readNumEntry("CommandBeforeActionPause", 10));
+
+ bool runCommand = c_runCommandBeforeAction->isChecked();
+ i_commandBeforeAction->setEnabled(runCommand);
+ i_commandBeforeActionPause->setEnabled(runCommand);
+ b_testCommandBeforeAction->setEnabled(runCommand);
+ _methods->setFocus();
+
+ adjustSize();
+ disableResize();
+}
+
+MActionEditDialog::~MActionEditDialog()
+{
+}
+
+void MActionEditDialog::setMethod(const Action::Method method) const
+{
+ _methods->setCurrentItem(method);
+ l_command->setEnabled(method == Action::Method_UserCommand);
+ in_command->setEnabled(method == Action::Method_UserCommand);
+ switch (method)
+ {
+ case Action::Method_KDE:
+ in_command->setText("");
+ break;
+ case Action::Method_DefaultCommand:
+ in_command->setText(_methods->text(Action::Method_DefaultCommand));
+ break;
+ case Action::Method_UserCommand:
+ in_command->setText(_userCommand);
+ break;
+ }
+}
+
+void MActionEditDialog::slotDefault()
+{
+ setMethod(Action::Method_KDE);
+ c_runCommandBeforeAction->setChecked(false);
+ i_commandBeforeAction->clear();
+ i_commandBeforeActionPause->setValue(10);
+}
+
+void MActionEditDialog::slotMethodChange(int index)
+{
+ if (in_command->isEnabled())
+ _userCommand = in_command->text();
+ setMethod((Action::Method)index);
+}
+
+void MActionEditDialog::slotOKClicked()
+{
+ Action::Method m;
+ QString c;
+ QString group = ks_actions->actionToConfigGroup(_action);
+
+ // method
+ m = (Action::Method)_methods->currentItem();
+ if (m == Action::Method_UserCommand)
+ c = in_command->text();
+ else
+ c = "";
+ ks_actions->setMethod(group, m, c);
+
+ // command before action
+ KConfig *conf = kshutdownrc->config();
+ conf->setGroup(group);
+ conf->writeEntry("RunCommandBeforeAction", c_runCommandBeforeAction->isChecked());
+ conf->writeEntry("CommandBeforeAction", i_commandBeforeAction->text());
+ conf->writeEntry("CommandBeforeActionPause", i_commandBeforeActionPause->value());
+}
+
+void MActionEditDialog::slotTestCommandBeforeAction()
+{
+ MiscUtils::runShellCommand(
+ i_commandBeforeAction->text(),
+ KProcess::DontCare,
+ i_commandBeforeActionPause->value()
+ );
+}
diff --git a/kshutdown/mactioneditdialog.h b/kshutdown/mactioneditdialog.h
new file mode 100644
index 0000000..afd851c
--- /dev/null
+++ b/kshutdown/mactioneditdialog.h
@@ -0,0 +1,76 @@
+/*
+ mactioneditsdialog.h - An action editor
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MACTIONEDITDIALOG_H__
+#define __MACTIONEDITDIALOG_H__
+
+#include "actions.h"
+
+#include <kdialogbase.h>
+
+class QCheckBox;
+class QComboBox;
+
+class KIntNumInput;
+class KLineEdit;
+class KPushButton;
+
+/**
+ * @short An action editor.
+ * Used in @ref MSettingsDialog.
+ */
+class MActionEditDialog: public KDialogBase
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor.
+ * @param parent A parent widget
+ * @param action An action type to edit
+ */
+ MActionEditDialog(QWidget *parent, const Action::Type action);
+
+ /** Destructor. */
+ virtual ~MActionEditDialog();
+private:
+ Action::Type _action;
+ QComboBox *_methods;
+ QLabel
+ *l_command,
+ *l_title;
+ QString _userCommand;
+ KLineEdit *in_command;
+ // command before action
+ QCheckBox *c_runCommandBeforeAction;
+ KLineEdit *i_commandBeforeAction;
+ KIntNumInput *i_commandBeforeActionPause;
+ KPushButton *b_testCommandBeforeAction;
+ void setMethod(const Action::Method method) const;
+protected slots:
+ /**
+ * Sets default values.
+ */
+ virtual void slotDefault();
+private slots:
+ void slotMethodChange(int index);
+ void slotOKClicked();
+ void slotTestCommandBeforeAction();
+};
+
+#endif // __MACTIONEDITDIALOG_H__
diff --git a/kshutdown/main.cpp b/kshutdown/main.cpp
new file mode 100644
index 0000000..4372136
--- /dev/null
+++ b/kshutdown/main.cpp
@@ -0,0 +1,393 @@
+/*
+ main.cpp - KShutDown
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "actions.h"
+#include "configuration.h"
+#include "extras.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "msystemtray.h"
+
+#include <qfileinfo.h>
+
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kuniqueapplication.h>
+
+// 0.1.x, 0.3.x, etc - Unstable, Beta
+// 0.2.x, 0.4.x, etc - Stable
+QString version = "1.0.4";
+
+KAboutData aboutData(
+ "kshutdown", // internal name
+ "KShutDown", // full name
+ version,
+ I18N_NOOP("A Shut Down Utility for KDE"), // description
+ KAboutData::License_GPL_V2, // license
+ "(C) 2003-3000 Konrad Twardowski", // copyright
+ "", // text
+ "http://kshutdown.sourceforge.net/", // project page
+ "kdtonline@poczta.onet.pl" // bugs
+);
+
+static KCmdLineOptions options[] =
+{
+ { "s", 0, 0 },
+ { "shutdown", I18N_NOOP("Turn off computer"), 0 },
+ { "h", 0, 0 },
+ { "halt", I18N_NOOP("Turn off computer"), 0 },
+ { "r", 0, 0 },
+ { "reboot", I18N_NOOP("Restart computer"), 0 },
+ { "k", 0, 0 },
+ { "lock", I18N_NOOP("Lock session"), 0 },
+ { "l", 0, 0 },
+ { "logout", I18N_NOOP("End current session"), 0 },
+ { "e", 0, 0 },
+ { "extra <file>", I18N_NOOP("Execute \"Extras\" command (.desktop file)"), 0 },
+ { "confirm", I18N_NOOP("Confirm command line action"), 0 },
+ { "standard", I18N_NOOP("Show standard logout dialog"), 0 },
+ { "c", 0, 0 },
+ { "cancel", I18N_NOOP("Cancel an active action"), 0 },
+ { "init", I18N_NOOP("Don't show window at startup"), 0 },
+ { "test", I18N_NOOP("Enable test mode"), 0 },
+ { "default", I18N_NOOP("Disable test mode"), 0 },
+ { "+[time]", I18N_NOOP("Time; Examples: 01:30 - absolute time (HH:MM); " \
+ "10 - number of minutes to wait from now"), 0 },
+ KCmdLineLastOption
+};
+
+/** @short KShutDown application. */
+class KShutDownApplication: public KUniqueApplication
+{
+public:
+ /**
+ * Constructor.
+ */
+ KShutDownApplication()
+ : KUniqueApplication(),
+ _confirm(false),
+ isTimeArg(false),
+ now(false),
+ timeArgIsValid(false),
+ timeArg()
+ {
+ }
+
+ /**
+ * Initializes the main window, and checks command line arguments.
+ */
+ virtual int newInstance();
+private:
+ enum Mode {
+ Mode_Visible = -1, // show the main window at startup
+ Mode_Hidden = -2, // hide the main window at startup
+ Mode_Ok = 0, // success
+ Mode_Error = 1 // misc. failure
+ };
+ bool
+ _confirm,
+ isTimeArg,
+ now,
+ timeArgIsValid;
+ QString timeArg;
+ int doExecAction(const Action::Type action);
+ int doProcessArgs(const KCmdLineArgs *args);
+};
+
+// public
+
+int KShutDownApplication::newInstance()
+{
+ // autostart
+ if (kapp->isRestored()) {
+ KConfig *config = kapp->config();
+ config->setGroup("KShutDown");
+ if (!config->readBoolEntry("Autostart", false)) {
+ quit();
+
+ return 0;
+ }
+ }
+
+ static bool doShow = false;
+ bool doRaise = ks_main;
+
+ // create main window (only one)
+ if (!ks_main) {
+ (void)new MMainWindow();
+ kapp->setMainWidget(ks_main);
+ connect(
+ this, SIGNAL(aboutToQuit()),
+ ks_main, SLOT(deleteLater()));
+ }
+
+ // check command line args
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ int retval = doProcessArgs(args);
+ args->clear();
+
+ if (MSystemTray::mode() != MSystemTray::Always) {
+ ks_main->show();
+ if (doRaise)
+ ks_main->makeVisible();
+ doShow = true;
+
+ return Mode_Ok;
+ }
+
+ // gui mode
+ if ((retval == Mode_Visible) || (retval == Mode_Hidden)) {
+ if ((retval == Mode_Visible) && (!kapp->isRestored() || doShow)) {
+ ks_main->show();
+ if (doRaise)
+ ks_main->makeVisible();
+ }
+ doShow = true;
+
+ return Mode_Ok;
+ }
+
+ return retval; // command line exit code
+}
+
+// private
+
+int KShutDownApplication::doExecAction(const Action::Type action) {
+ if (!ks_main)
+ return Mode_Error;
+
+ // use time arg.
+ if (timeArgIsValid) {
+ ks_main->cancel(); // cancel action (if any)
+ if (!now) {
+ ks_main->setAction(action);
+ ks_main->start(_confirm);
+
+ return Mode_Ok;
+ }
+ }
+
+ if (_confirm) {
+ if (ks_actions->execConfirm(action))
+ return Mode_Ok;
+ }
+ else {
+ if (ks_actions->exec(action, action != Action::LockScreen))
+ return Mode_Ok;
+ }
+ MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray);
+
+ return Mode_Error;
+}
+
+int KShutDownApplication::doProcessArgs(const KCmdLineArgs *args) {
+ if (!ks_main)
+ return Mode_Error;
+
+ _confirm = args->isSet("confirm");
+ isTimeArg = false;
+ now = false;
+ timeArg = "";
+ timeArgIsValid = false;
+
+ // read time arg.
+ bool absoluteTime = false;
+ int minutes = 0;
+ QDateTime dt = QDateTime::currentDateTime();
+ if (args->count()) {
+ timeArg = args->arg(0); // first arg. is a "time" arg.
+ if (!timeArg.isEmpty()) {
+ isTimeArg = true;
+
+ if (timeArg.upper() == "NOW") {
+ now = true;
+ timeArgIsValid = true;
+ }
+ else {
+ bool ok = false;
+ minutes = timeArg.toInt(&ok); // MM?
+ if (ok) {
+ if (minutes == 0) {
+ now = true;
+ timeArgIsValid = true;
+ }
+ }
+ else {
+ absoluteTime = true;
+// FIXME: 2.0: AM/PM
+ QTime t = QTime::fromString(timeArg);
+ if (t.isValid() && !t.isNull()) { // HH:MM[:SS]?
+ ok = true;
+ dt.setTime(t);
+ }
+ }
+ if (!ok || !dt.isValid() || dt.isNull()) {
+ KMessageBox::error(
+ 0,
+ MiscUtils::HTML(i18n("Invalid time: <b>%1</b>").arg(timeArg))
+ );
+ }
+ else {
+ timeArgIsValid = true;
+ }
+ }
+ }
+ }
+
+ // test mode
+ if (args->isSet("test"))
+ ks_main->setTestMode(true);
+
+ // normal mode
+ if (args->isSet("default"))
+ ks_main->setTestMode(false);
+
+ // cancel
+ if (args->isSet("cancel")) {
+ ks_main->cancel();
+
+ return Mode_Ok;
+ }
+
+ // standard logout dialog
+ if (args->isSet("standard")) {
+ kapp->requestShutDown(
+ KApplication::ShutdownConfirmYes,
+ KApplication::ShutdownTypeDefault,
+ KApplication::ShutdownModeDefault
+ );
+
+ return Mode_Ok;
+ }
+
+ // do nothing ..
+ if (isTimeArg && !timeArgIsValid)
+ return Mode_Error;
+
+ // setup main window
+ if (timeArgIsValid) {
+ if (!now) {
+ if (MiscUtils::isRestricted("tab_time"))
+ return Mode_Error;
+
+ ks_main->cancel(); // cancel action before "setDelayType"
+ if (absoluteTime)
+ {
+ ks_main->setDelayType(MMainWindow::DelayType_DateTime);
+ ks_main->setDate(dt.date());
+ ks_main->setTime(dt.time());
+ }
+ else
+ {
+ ks_main->setDelayType(MMainWindow::DelayType_TimeFromNow);
+ ks_main->setTime(QTime().addSecs(minutes * 60));
+ }
+ }
+ ks_main->makeVisible();
+
+ // exec action below ..
+ }
+
+ // extra
+ if (args->isSet("extra")) {
+ QString extrasCommand = args->getOption("extra");
+ if (!extrasCommand.isEmpty()) {
+ QFileInfo extra(extrasCommand);
+ if (extra.exists()) {
+ ks_extras->setAction(extra.filePath(), extra.baseName());
+
+ return doExecAction(Action::Extras);
+ }
+ else {
+ qWarning("ERROR: File \"%s\" does not exist", extrasCommand.latin1());
+ }
+ }
+
+ return Mode_Error;
+ }
+
+ // halt
+ if (args->isSet("shutdown") || args->isSet("halt"))
+ return doExecAction(Action::ShutDown);
+
+ // reboot
+ if (args->isSet("reboot"))
+ return doExecAction(Action::Reboot);
+
+ // lock
+ if (args->isSet("lock"))
+ return doExecAction(Action::LockScreen);
+
+ // logout
+ if (args->isSet("logout"))
+ return doExecAction(Action::Logout);
+
+ if (args->isSet("init"))
+ return Mode_Hidden; // init window, but don't show it
+
+ return Mode_Visible; // gui mode
+}
+
+// main
+
+int main(int argc, char **argv)
+{
+// TODO: 2.0: init on demand?
+ aboutData.addCredit("Konrad Twardowski", "Author, Maintainer", "kdtonline@poczta.onet.pl", "http://www.kdtonline.prv.pl/");
+ aboutData.addCredit("Caryn \"Hellchick\" Law", "Female Quake III Arena Announcer Voice Files", "hellchick ( at ) planetquake.com", "http://www.planetquake.com/voxfeminae/");
+ aboutData.addCredit("Arend van Beelen jr.", "Ideas", "", "http://www.liacs.nl/~dvbeelen");
+ aboutData.addCredit("Bram Schoenmakers", "Dutch translation", "bram_s ( at ) softhome.net");
+ aboutData.addCredit("Charles Barcza", "Hungarian translation, blackPanther-Linux RPM", "kbarcza ( at ) blackpanther.hu", "http://www.blackpanther.hu/");
+ aboutData.addCredit("Daniel Nylander", "Swedish translation");
+ aboutData.addCredit("Elias Probst", "Gentoo ebuilds, German translation", "elias.probst ( at ) gmx.de");
+ aboutData.addCredit("Giovanni Venturi", "Italian translation", "jumpyj ( at ) tiscali.it");
+ aboutData.addCredit("Gregorio Guidi", "Patches");
+ aboutData.addCredit("Guido Tack", "Ideas", "", "http://www.ps.uni-sb.de/~tack");
+ aboutData.addCredit("Jozef Riha", "Slovak translation", "zefo ( at ) seznam.cz");
+ aboutData.addCredit("Karol Adamczyk [rampage]", "Gentoo ebuild");
+ aboutData.addCredit("Matrix", "SuSE RPM", "matrix ( at ) ehelp.pl");
+ aboutData.addCredit("Michael Goettsche", "Bug reports");
+ aboutData.addCredit("Paulo Zambon", "Portuguese Brazil translation", "pzambon ( at ) astornet.com.br");
+ aboutData.addCredit("Philipp Weissenbacher");
+ aboutData.addCredit("Piotr Budny");
+ aboutData.addCredit("Quique", "Spanish translation", "quique ( at ) sindominio.net");
+ aboutData.addCredit("Robert Kratky", "Czech translation", "kratky ( at ) rob.cz");
+ aboutData.addCredit("Romain Beauxis", "Debian Package", "", "http://www.cti.ecp.fr/~beauxir5/debian/");
+ aboutData.addCredit("Spider (ALT Linux)", "Russian translation");
+ aboutData.addCredit("Stephen Ellwood", "Panel Applet, User Interface");
+ aboutData.addCredit("Zdenko Podobny", "Slovak translation, Mandrake RPM", "zdpo ( at ) mailbox.sk");
+ aboutData.addCredit("KDE-APPS.org", "", "", "http://www.kde-apps.org/");
+ aboutData.addCredit("Lock/Logout Applet Team");
+ aboutData.addCredit("SourceForge.net", "", "", "http://www.sourceforge.net/");
+
+ // init command line
+ KCmdLineArgs::init(argc, argv, &aboutData);
+ KCmdLineArgs::addCmdLineOptions(options);
+
+ if (!KUniqueApplication::start())
+ return 0;
+
+ // init application
+ KShutDownApplication software;
+
+ // main loop
+ return software.exec();
+}
diff --git a/kshutdown/miscutils.cpp b/kshutdown/miscutils.cpp
new file mode 100644
index 0000000..f16238d
--- /dev/null
+++ b/kshutdown/miscutils.cpp
@@ -0,0 +1,244 @@
+/*
+ miscutils.cpp - Misc functions
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <sys/types.h>
+
+#include "configuration.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "msystemtray.h"
+
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+#include <kaction.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <knotifyclient.h>
+#include <kpassivepopup.h>
+#include <kpushbutton.h>
+#include <krun.h>
+#include <kwindowinfo.h>
+
+// public
+
+void MiscUtils::closeCDTray()
+{
+ if (kshutdownrc->cdTrayClose)
+ runShellCommand(kshutdownrc->cdTrayCloseCommand, KProcess::Block);
+}
+
+void MiscUtils::customMessage(const QString &text, const QString &testCommand)
+{
+ QString c;
+ if (testCommand.isNull())
+ c = kshutdownrc->customMessageCommand;
+ else
+ c = testCommand;
+
+ if (kshutdownrc->customMessageEnabled)
+ {
+ c.replace("%appname", "KShutDown");
+ c.replace("%text", text);
+ c.replace("%title", ks_main->caption());
+ runShellCommand(c);
+ }
+}
+
+QString MiscUtils::formatDateTime(const int secs, const QString &format)
+{
+ if ((secs >= 86400) || (secs < 0)) // 24h
+ return ">24";
+
+ int h = secs / 3600;
+ int m = (secs / 60) % 60;
+ int s = secs % 60;
+ QTime t(h, m, s);
+
+ if (format.isNull())
+ return t.toString();
+
+ return t.toString(format);
+}
+
+QString MiscUtils::formatDateTime(const QDateTime &dt)
+{
+ QDateTime now = QDateTime::currentDateTime();
+
+ return
+ dt.toString(
+ KGlobal::locale()->use12Clock()
+ ? "hh:mm ap, dddd"
+ : "hh:mm, dddd"
+ ) +
+ " (+" + formatDateTime(now.secsTo(dt), "hh:mm") + ")";
+}
+
+bool MiscUtils::isRestricted(const QString &key)
+{
+ return !kapp->authorize("kshutdown_" + key);
+}
+
+void MiscUtils::notifyUser(const int secs)
+{
+ if ((secs < 60) && (secs % 3 == 0)) {
+ KWindowInfo::showMessage(ks_main, i18n("Warning"), SmallIcon("messagebox_warning"), 1000);
+ }
+
+ switch (secs)
+ {
+ case 3600: // 1 hour
+ customMessage(i18n("1 hour warning"));
+ break;
+ case 300: // 5 minutes
+ notifyUser("kshutdown-5m", i18n("5 minutes warning"));
+ customMessage(i18n("5 minutes warning"));
+ break;
+ case 60: // 1 minute
+ notifyUser("kshutdown-1m", i18n("1 minute warning"));
+ customMessage(i18n("1 minute warning"));
+ break;
+ case 10: // 10 seconds
+ customMessage(i18n("10 seconds warning"));
+ break;
+ }
+}
+
+void MiscUtils::passiveMessage(const QString &text, QWidget *parent) {
+ KPassivePopup *popup = KPassivePopup::message(
+ "KShutDown",
+ text,
+ SmallIcon("kshutdown"),
+ parent
+ );
+ if (parent == 0)
+ popup->move(0, 0);
+}
+
+void MiscUtils::plug(const KAction *action, KPushButton *pushButton) {
+ pushButton->disconnect(); // disconnect all
+ pushButton->connect(pushButton, SIGNAL(clicked()), action, SLOT(activate()));
+ pushButton->setIconSet(action->iconSet());
+ QString text = action->text();
+ if (text.contains("%1"))
+ text = text.arg(action->shortcutText());
+ pushButton->setText(text);
+}
+
+bool MiscUtils::runCommand(const QString &command)
+{
+ pid_t pid = KRun::run(command, KURL::List());
+
+ if (pid)
+ return true; // ok
+
+ showRunErrorMessage(command);
+
+ return false; // error
+}
+
+void MiscUtils::runCommandBeforeAction(const QString &configEntry)
+{
+ KConfig *conf = kshutdownrc->config();
+
+ if (!conf->hasGroup(configEntry))
+ return;
+
+ conf->setGroup(configEntry);
+
+ if (!conf->readBoolEntry("RunCommandBeforeAction", false))
+ return;
+
+ QString command = conf->readEntry("CommandBeforeAction", "");
+ int pause = conf->readNumEntry("CommandBeforeActionPause", 10);
+ if ((pause < 0) || (pause > 300))
+ pause = 10;
+ runShellCommand(command, KProcess::DontCare, pause);
+}
+
+bool MiscUtils::runShellCommand(const QString &command, const KProcess::RunMode mode, const int pause)
+{
+ if (command.isEmpty())
+ return false;
+
+ KProcess *p = new KProcess();
+ if (!p)
+ {
+ showRunErrorMessage(command);
+
+ return false; // error
+ }
+
+ bool retVal = true; // assume ok
+
+ p->setUseShell(true);
+ *p << command;
+ if (!p->start(mode))
+ {
+ showRunErrorMessage(command);
+
+ retVal = false; // error
+ }
+ else
+ {
+ // pause
+ if (pause > 0)
+ p->wait(pause);
+ }
+ delete p;
+
+ return retVal;
+}
+
+void MiscUtils::setAutostart(const bool yes) {
+ KConfig *config = kapp->config();
+ config->setGroup("KShutDown");
+ config->writeEntry("Autostart", yes);
+}
+
+void MiscUtils::setHint(QWidget *widget, const QString &value)
+{
+ QToolTip::add(widget, value);
+ QWhatsThis::add(widget, value);
+}
+
+void MiscUtils::showRunErrorMessage(const QString &command)
+{
+ notifyUser("kshutdown-runerror", i18n("Could not run \"%1\"!").arg(command));
+}
+
+void MiscUtils::showTestMessage(const QString &message)
+{
+ KMessageBox::information(0, message, i18n("Test"));
+}
+
+// private
+
+void MiscUtils::notifyUser(const QString &name, const QString &text)
+{
+ WId id;
+ if (MSystemTray::isInstance())
+ id = ks_tray->winId();
+ else
+ id = ks_main->winId();
+ KNotifyClient::event(id, name, text);
+}
diff --git a/kshutdown/miscutils.h b/kshutdown/miscutils.h
new file mode 100644
index 0000000..db2eb47
--- /dev/null
+++ b/kshutdown/miscutils.h
@@ -0,0 +1,135 @@
+/*
+ miscutils.h - Misc functions
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MISCUTILS_H__
+#define __MISCUTILS_H__
+
+#include <qdatetime.h>
+
+#include <kprocess.h>
+
+class KAction;
+class KPushButton;
+
+/** @short Misc functions. */
+class MiscUtils
+{
+public:
+ /**
+ * Closes the CD-ROM tray (if this option is enabled).
+ */
+ static void closeCDTray();
+
+ /**
+ * Displays a custom message.
+ * @param text A text to display
+ * @param testCommand A command to execute (used internally in settings dialog to test entered command)
+ */
+ static void customMessage(const QString &text, const QString &testCommand = QString::null);
+
+ /**
+ * Converts seconds to time string.
+ * @param secs A number of seconds to convert
+ * @param format A date/time format
+ * @return Converted seconds or ">24", if @p secs >= 86400
+ */
+ static QString formatDateTime(const int secs, const QString &format = QString::null);
+
+ /**
+ * Converts seconds to time string.
+ * @param dt A date/time to convert
+ * @return Converted seconds or ">24", if @p secs >= 86400
+ */
+ static QString formatDateTime(const QDateTime &dt);
+
+ inline static QString HTML(const QString &text) {
+ return ("<qt>" + text + "</qt>");
+ }
+
+ inline static QString HTML(QString &text) {
+ text.prepend("<qt>");
+ text.append("</qt>");
+
+ return text;
+ }
+
+ /**
+ * Returns @c true if function (@p key) is restricted (KDE Kiosk).
+ * The key value is read from the configuration file
+ * (usually /usr/share/config/kshutdownrc).
+ * See Handbook (F1) for details.
+ */
+ static bool isRestricted(const QString &key);
+
+ /**
+ * Visual and sound notifications.
+ * @param secs A number of seconds to action
+ */
+ static void notifyUser(const int secs);
+
+ static void passiveMessage(const QString &text, QWidget *parent = 0);
+
+ static void plug(const KAction *action, KPushButton *pushButton);
+
+ /**
+ * Executes a command.
+ * @param command A command to execute
+ * @return @c true if successfull; otherwise @c false
+ */
+ static bool runCommand(const QString &command);
+
+ /**
+ * Executes a shell command before the specified action.
+ * @param configEntry A configuration entry (e.g. <i>"Shut Down"</i>)
+ */
+ static void runCommandBeforeAction(const QString &configEntry);
+
+ /**
+ * Executes a shell command.
+ * @param command A shell command to execute
+ * @param mode A run mode (@c KProcess::DontCare by default)
+ * @param pause A timeout in seconds (no timeout by default)
+ * @return @c true if successfull; otherwise @c false
+ */
+ static bool runShellCommand(const QString &command, const KProcess::RunMode mode = KProcess::DontCare, const int pause = -1);
+
+ static void setAutostart(const bool yes);
+
+ /**
+ * Sets "tool tip text" and "what's this text" of @p widget to @p value.
+ */
+ static void setHint(QWidget *widget, const QString &value);
+
+ /**
+ * Displays a "KRun" error message in a passive message.
+ * @param command A command that failed
+ */
+ static void showRunErrorMessage(const QString &command);
+
+ /**
+ * Displays an information if KShutDown is in the <b>Test Mode</b>.
+ * @param message A message to display
+ */
+ static void showTestMessage(const QString &message);
+
+private:
+ static void notifyUser(const QString &name, const QString &text);
+};
+
+#endif // __MISCUTILS_H__
diff --git a/kshutdown/mmainwindow.cpp b/kshutdown/mmainwindow.cpp
new file mode 100644
index 0000000..dea27fc
--- /dev/null
+++ b/kshutdown/mmainwindow.cpp
@@ -0,0 +1,954 @@
+/*
+ mmainwindow.cpp - The main window
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "appobserver.h"
+#include "configuration.h"
+#include "confirmation.h"
+#include "extras.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "mmessagedialog.h"
+#include "msettingsdialog.h"
+#include "mstatstab.h"
+#include "msystemtray.h"
+#include "progressbar.h"
+#include "systemconfig.h"
+
+#include <qdatetimeedit.h>
+#include <qfile.h>
+#include <qhbox.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtimer.h>
+#include <qtooltip.h>
+#include <qvgroupbox.h>
+#include <qwhatsthis.h>
+
+#include <dcopclient.h>
+#include <kaction.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <kglobalaccel.h>
+#include <kkeydialog.h>
+#include <klocale.h>
+#include <kmenubar.h>
+#include <kmessagebox.h>
+#include <knotifydialog.h>
+#include <kpopupmenu.h>
+#include <kpushbutton.h>
+#include <kwin.h>
+#include <kdesktopfile.h>
+#include <kmimetype.h>
+
+MMainWindow *MMainWindow::_instance = 0;
+
+MMainWindow::MMainWindow()
+ // Iface
+ : DCOPObject("KShutdownIface"),
+ KMainWindow(0, "MMainWindow", WStyle_ContextHelp),
+ _showMinimizeInfo(true),
+ _oldSec(-1),
+ _delayType(DelayType_Now)
+{
+ _instance = this;
+ connect(kapp, SIGNAL(aboutToQuit()), SLOT(slotAboutToQuit()));
+
+ // init date/time
+ dt_end = QDateTime();
+ dt_start = QDateTime();
+
+ // action timeout timer
+ _timer = new QTimer(this);
+ connect(_timer, SIGNAL(timeout()), SLOT(slotCheckTime()));
+
+ // init widgets
+ setCentralWidget(initWidgets());
+ initActions();
+ initMainMenu();
+
+ // init DCOP
+ DCOPClient *client = kapp->dcopClient();
+ client->registerAs(kapp->name(), false);
+ client->setDefaultObject(objId()); // KShutdownIface
+
+ KConfig *config = kapp->config();
+ config->setGroup("Extras");
+ QString extrasCommand = config->readEntry("Command", QString::null);
+ QString extrasDescription = config->readEntry("Description", QString::null);
+ if (!extrasCommand.isEmpty() || QFile::exists(extrasCommand)) {
+ setAction(Action::Extras);
+
+ QIconSet extrasIcon;
+ QString mimeType;
+ mimeType = KMimeType::findByPath(extrasCommand)->name();
+ if (mimeType != "application/x-desktop")
+ extrasIcon = QIconSet(KMimeType::pixmapForURL(KURL::fromPathOrURL(extrasCommand)));
+ else {
+ // application/x-desktop
+ KDesktopFile *desktopFile = new KDesktopFile(extrasCommand, true);
+ if (desktopFile->getConfigState() != KConfigBase::NoAccess)
+ extrasIcon = QIconSet(SmallIcon(desktopFile->readIcon()));
+ delete desktopFile;
+ }
+ ks_extras->setAction(extrasCommand, extrasDescription, &extrasIcon);
+ }
+ else {
+ setAction((Action::Type)kshutdownrc->generalAction);
+ }
+ setDelayType((DelayType)kshutdownrc->generalDelayType);
+
+ MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray);
+
+ setCaptions();
+ slotUpdateTimeInfo();
+
+ setFixedHeight(layout()->minimumSize().height());
+}
+
+MMainWindow::~MMainWindow()
+{
+ KConfig *config = kapp->config();
+ config->setGroup("Extras");
+ config->writeEntry("Command", ks_extras->fileToExecute());
+ config->writeEntry("Description", ks_extras->getActionDescription());
+
+// TODO: 2.0: remember/restore time
+ kshutdownrc->generalAction = ks_actions->current();
+ kshutdownrc->generalDelayType = cb_delayTypes->currentItem();
+ kshutdownrc->writeConfig();
+}
+
+void MMainWindow::setDelayType(const DelayType value)
+{
+ // kdDebug() << "MMainWindow::setDelayType: " << value << endl;
+
+ if (MiscUtils::isRestricted("tab_time"))
+ {
+ _delayType = DelayType_Now;
+ cb_delayTypes->setEnabled(false);
+ }
+ else
+ {
+ _delayType = value;
+ cb_delayTypes->setEnabled(true);
+ }
+
+ cb_delayTypes->setCurrentItem(_delayType);
+
+ switch (_delayType)
+ {
+ case DelayType_Now:
+ _dateTimeEdit->dateEdit()->setEnabled(false);
+ _dateTimeEdit->timeEdit()->setEnabled(false);
+ _dateTimeEdit->show();
+ _appObserver->hide();
+ l_statusLine->hide();
+ break;
+ case DelayType_TimeFromNow:
+ QWhatsThis::add(_dateTimeEdit, i18n("Enter hour and minute."));
+ _dateTimeEdit->dateEdit()->setEnabled(false);
+ _dateTimeEdit->timeEdit()->setEnabled(true);
+ _dateTimeEdit->timeEdit()->setDisplay(QTimeEdit::Hours | QTimeEdit::Minutes);
+ _dateTimeEdit->timeEdit()->setTime(QTime());
+ _dateTimeEdit->show();
+ _appObserver->hide();
+ l_statusLine->show();
+ break;
+ case DelayType_DateTime:
+ QWhatsThis::add(_dateTimeEdit, i18n("Enter date and time."));
+ _dateTimeEdit->dateEdit()->setEnabled(true);
+ _dateTimeEdit->timeEdit()->setEnabled(true);
+ _dateTimeEdit->timeEdit()->setDisplay(
+ KGlobal::locale()->use12Clock()
+ ? (QTimeEdit::Hours | QTimeEdit::Minutes | QTimeEdit::AMPM)
+ : (QTimeEdit::Hours | QTimeEdit::Minutes)
+ );
+ _dateTimeEdit->dateEdit()->setDate(QDate::currentDate());
+ _dateTimeEdit->timeEdit()->setTime(QTime::currentTime());
+ _dateTimeEdit->show();
+ _appObserver->hide();
+ l_statusLine->show();
+ break;
+ case DelayType_OnAppExit:
+ _dateTimeEdit->hide();
+ _appObserver->show();
+ _appObserver->refresh();
+ l_statusLine->hide();
+ break;
+ }
+}
+
+void MMainWindow::setTime(const QTime &time)
+{
+ _dateTimeEdit->timeEdit()->setTime(QTime(time.hour(), time.minute(), 0));
+}
+
+void MMainWindow::setAction(const Action::Type action)
+{
+ // kdDebug() << "MMainWindow::setAction: " << ks_actions->getName(action) << endl;
+
+ if (!ks_actions->isEnabled(action))
+ {
+// FIXME: 2.0: "Start" button incorectly disabled/enabled after config change
+// FIXME: 2.0: confusing
+ _startAction->setEnabled(false);
+
+ return;
+ }
+ _startAction->setEnabled(true);
+
+ ks_actions->setCurrent(action);
+ cb_actions->setCurrentItem(action - 1);
+ switch (action)
+ {
+ case Action::Nothing:
+ case Action::ShutDown:
+ case Action::Reboot:
+ case Action::LockScreen:
+ case Action::Logout:
+ ks_extras->button()->hide();
+ break;
+ case Action::Extras:
+ ks_extras->button()->show();
+ break;
+ }
+}
+
+void MMainWindow::setDate(const QDate &date)
+{
+ _dateTimeEdit->dateEdit()->setDate(date);
+}
+
+void MMainWindow::start(const bool confirmation) {
+ if (ks_actions->active())
+ return;
+
+ // kdDebug() << "MMainWindow::start" << endl;
+
+ // check if selected process still exists
+ if ((_delayType == DelayType_OnAppExit) && !_appObserver->isValid())
+ return;
+
+ // display information if user didn't selected any "extras" command
+ if ((ks_actions->current() == Action::Extras) && ks_extras->fileToExecute().isNull())
+ {
+ KMessageBox::information(
+ this,
+ MiscUtils::HTML(i18n("Click the <b>Select a command...</b> button first."))
+ );
+
+ return;
+ }
+
+ if (confirmation)
+ {
+ if (!Confirmation::confirm(ks_actions->current(), getTimeInfo()))
+ return; // action not confirmed by user; do nothing
+ }
+
+ // immediate action
+ if (
+ (_delayType == DelayType_Now) ||
+ (
+ (_delayType == DelayType_TimeFromNow) &&
+ (_dateTimeEdit->timeEdit()->time().hour() == 0) &&
+ (_dateTimeEdit->timeEdit()->time().minute() == 0)
+ )
+ )
+ {
+ ks_actions->execCurrent();
+
+ return;
+ }
+
+ ks_actions->setActive(true);
+
+ MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray);
+
+ setWidgetsEnabled(false); // disable widgets
+
+ slotUpdateTimeInfo();
+
+ _oldSec = -1;
+
+ if (MSystemTray::isInstance())
+ ks_tray->setActive(true);
+
+ if ((_delayType != DelayType_OnAppExit) && (dt_end < dt_start))
+ {
+ QString selDT = i18n("Selected date/time: %1").arg("<b>" + KGlobal::locale()->formatDateTime(dt_end, false, true)+ "</b>");
+ QString curDT = i18n("Current date/time: %1").arg("<b>" + KGlobal::locale()->formatDateTime(dt_start, false, true) + "</b>");
+
+ cancel();
+ KMessageBox::error(
+ 0,
+ MiscUtils::HTML(
+ i18n("Selected date/time is earlier than current date/time!") +
+ "<br><br>" +
+ selDT + "<br>" +
+ curDT + "<br>" \
+ "<br>" +
+ i18n("Action cancelled!")
+ )
+ );
+
+ return;
+ }
+
+ int secsTo = dt_start.secsTo(dt_end);
+
+ // setup progress bar
+ if (kshutdownrc->progressBarEnabled) {
+ ProgressBar *progressBar = ProgressBar::getInstance();
+ progressBar->setValues(0, secsTo);
+ progressBar->show();
+ }
+
+ if (_delayType == DelayType_OnAppExit)
+ {
+ _timer->start(2000);
+ setCaptions(QString::null, _appObserver->getInfo());
+ }
+ else
+ {
+ _timer->start(500); // this timer value is good ..
+ updateTimeInfo(secsTo);
+ }
+}
+
+void MMainWindow::cancel()
+{
+ MMessageDialog::cancel();
+
+ if (!ks_actions->active() && (_delayType != DelayType_OnAppExit))
+ return;
+
+ // kdDebug() << "MMainWindow::cancel" << endl;
+
+ ks_actions->setActive(false);
+ MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray);
+
+ _timer->stop();
+ setCaptions();
+ if (MSystemTray::isInstance())
+ ks_tray->setActive(false);
+
+ ProgressBar::freeInstance();
+
+ setWidgetsEnabled(true);
+// TODO: 2.0: MiscUtils::customMessage(i18n("Action cancelled!"));
+}
+
+bool MMainWindow::shutDown()
+{
+ return ks_actions->exec(Action::ShutDown);
+}
+
+bool MMainWindow::shutdown()
+{
+ return shutDown();
+ //.........^^
+}
+
+bool MMainWindow::reboot()
+{
+ return ks_actions->exec(Action::Reboot);
+}
+
+bool MMainWindow::lockScreen()
+{
+ return ks_actions->exec(Action::LockScreen, false);
+}
+
+bool MMainWindow::logout()
+{
+ return ks_actions->exec(Action::Logout);
+}
+
+void MMainWindow::configure()
+{
+ if (MSettingsDialog::isActive())
+ return;
+
+ new MSettingsDialog(this);
+ MSettingsDialog::freeInstance();
+
+ _showMinimizeInfo = true;
+}
+
+QString MMainWindow::getStatusInfo()
+{
+ return caption();
+}
+
+void MMainWindow::makeInvisible() {
+ if (MSystemTray::isInstance())
+ ks_tray->hide();
+ hide();
+}
+
+void MMainWindow::makeVisible()
+{
+ MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray);
+ show();
+ WId id = winId();
+ KWin::setOnDesktop(id, KWin::currentDesktop());
+ KWin::deIconifyWindow(id);
+ raise();
+}
+
+void MMainWindow::setTestMode(bool yes)
+{
+ if (ks_actions->testMode() == yes)
+ return;
+
+ ks_actions->setTestMode(yes);
+ setCaptions(); // add/remove "[ TEST MODE ]" to/from window caption.
+ MiscUtils::customMessage(ks_actions->testMode() ? i18n("Test mode enabled") : i18n("Test mode disabled"));
+}
+
+QString MMainWindow::getTimeInfo()
+{
+ // start time = now
+ dt_start.setDate(QDate::currentDate());
+ dt_start.setTime(QTime::currentTime());
+ // end time = start time
+ dt_end.setDate(dt_start.date());
+ dt_end.setTime(dt_start.time());
+
+ // round down msec
+ int ms = dt_end.time().msec();
+ if (ms > 0)
+ dt_end.setTime(dt_end.time().addMSecs(-ms));
+
+ switch (_delayType)
+ {
+ case DelayType_Now:
+ case DelayType_OnAppExit:
+ break;
+ case DelayType_TimeFromNow:
+ // end time = start time + delay time
+ dt_end = dt_end.addSecs(
+ (_dateTimeEdit->timeEdit()->time().hour() * 3600) +
+ (_dateTimeEdit->timeEdit()->time().minute() * 60)
+ );
+ break;
+ case DelayType_DateTime:
+ // end time = selected date/time
+ dt_end.setDate(_dateTimeEdit->dateEdit()->date());
+ dt_end.setTime(_dateTimeEdit->timeEdit()->time());
+ break;
+ }
+
+ if (_delayType == DelayType_Now)
+ return i18n("No Delay");
+
+ if (_delayType == DelayType_OnAppExit)
+ return QString::null;
+
+ return MiscUtils::formatDateTime(dt_end.addSecs(1));
+}
+
+void MMainWindow::initMainMenu()
+{
+ KMenuBar *mainMenu = menuBar();
+
+ // file
+ KPopupMenu *pm_file = new KPopupMenu(this);
+ _statisticsAction->plug(pm_file);
+ pm_file->insertSeparator();
+ if (MiscUtils::isRestricted("tab_stats"))
+ _statisticsAction->setEnabled(false);
+
+// TODO: 2.0: improve kiosk support
+ KStdAction::quit(this, SLOT(slotQuit()), actionCollection())->plug(pm_file);
+ mainMenu->insertItem(i18n("&File"), pm_file);
+
+ // actions
+ KPopupMenu *pm_actions = new KPopupMenu(this);
+ pm_actions->insertTitle(SmallIcon("messagebox_warning"), i18n("No Delay"));
+ _shutDownAction->plug(pm_actions);
+ _rebootAction->plug(pm_actions);
+ _lockScreenAction->plug(pm_actions);
+ _logoutAction->plug(pm_actions);
+ pm_actions->insertSeparator();
+ _cancelAction->plug(pm_actions);
+ mainMenu->insertItem(i18n("&Actions"), pm_actions);
+
+ // settings
+ KPopupMenu *pm_settings = new KPopupMenu(this);
+ _checkSystemConfigurationAction->plug(pm_settings);
+ pm_settings->insertSeparator();
+ pm_settings->insertItem(SmallIcon("configure_shortcuts"), i18n("Configure Global Shortcuts..."), this, SLOT(slotConfigureGlobalShortcuts()));
+ KStdAction::keyBindings(this, SLOT(slotConfigureShortcuts()), actionCollection())->plug(pm_settings);
+ pm_settings->insertSeparator();
+ KStdAction::configureNotifications(this, SLOT(slotConfigureNotifications()), actionCollection())->plug(pm_settings);
+ _configureKShutDownAction->plug(pm_settings);
+ mainMenu->insertItem(i18n("&Settings"), pm_settings);
+
+ // help
+ mainMenu->insertItem(SmallIcon("help"), i18n("&Help"), helpMenu());
+}
+
+void MMainWindow::initActions()
+{
+ // shut down actions
+
+ ac_shutDown = new KActionCollection(this, this);
+
+ _lockScreenAction = new KAction(
+ ks_actions->getName(Action::LockScreen),
+ ks_actions->getIcon(Action::LockScreen), KShortcut(),
+ ks_actions, SLOT(slotLockScreen()),
+ ac_shutDown, "kshutdown_lockscreen"
+ );
+
+ _logoutAction = new KAction(
+ ks_actions->getName(Action::Logout),
+ ks_actions->getIcon(Action::Logout), KShortcut(),
+ ks_actions, SLOT(slotLogout()),
+ ac_shutDown, "kshutdown_logout"
+ );
+
+ _rebootAction = new KAction(
+ ks_actions->getName(Action::Reboot),
+ ks_actions->getIcon(Action::Reboot), KShortcut(),
+ ks_actions, SLOT(slotReboot()),
+ ac_shutDown, "kshutdown_reboot"
+ );
+
+ _shutDownAction = new KAction(
+ ks_actions->getName(Action::ShutDown),
+ ks_actions->getIcon(Action::ShutDown), KShortcut(),
+ ks_actions, SLOT(slotShutDown()),
+ ac_shutDown, "kshutdown_shutdown"
+ );
+
+ // standard actions
+
+ _cancelAction = new KAction(
+ i18n("C&ancel"),
+ "cancel", KShortcut(Key_Escape),
+ this, SLOT(slotCancel()),
+ actionCollection(), "kshutdown_cancelaction"
+ );
+ _cancelAction->setEnabled(false);
+
+ _checkSystemConfigurationAction = new KAction(
+ i18n("Check &System Configuration"),
+ "button_ok", KShortcut(),
+ this, SLOT(slotCheckSystemConfig()),
+ actionCollection(), "kshutdown_checksystemconfiguration"
+ );
+
+ _configureKShutDownAction = KStdAction::preferences(this, SLOT(slotConfigureKShutDown()), actionCollection());
+
+ _startAction = new KAction(
+ i18n("&Start"),
+ "button_ok", KShortcut(Key_Return),
+ this, SLOT(slotStart()),
+ actionCollection(), "kshutdown_startaction"
+ );
+ MiscUtils::plug(_startAction, b_startStop);
+
+ _statisticsAction = new KAction(
+ i18n("&Statistics"),
+ KShortcut(Key_F2),
+ this, SLOT(slotStats()),
+ actionCollection(), "kshutdown_statistics"
+ );
+
+ actionCollection()->readShortcutSettings();
+ ac_shutDown->readShortcutSettings();
+
+ // init global actions/shortcuts
+ _globalAccel = new KGlobalAccel(this);
+ _globalAccel->insert(
+ "kshutdown_shutdown",
+ ks_actions->getName(Action::ShutDown),
+ QString(),
+ 0, 0, ks_actions, SLOT(slotShutDown())
+ );
+ _globalAccel->insert(
+ "kshutdown_reboot",
+ ks_actions->getName(Action::Reboot),
+ QString(),
+ 0, 0, ks_actions, SLOT(slotReboot())
+ );
+ _globalAccel->insert(
+ "kshutdown_lockscreen",
+ ks_actions->getName(Action::LockScreen),
+ QString(),
+ 0, 0, ks_actions, SLOT(slotLockScreen())
+ );
+ _globalAccel->insert(
+ "kshutdown_logout",
+ ks_actions->getName(Action::Logout),
+ QString(),
+ 0, 0, ks_actions, SLOT(slotLogout())
+ );
+ _globalAccel->readSettings();
+ _globalAccel->updateConnections();
+}
+
+QWidget *MMainWindow::initWidgets()
+{
+ QWidget *w = new QWidget(this);
+ QVBoxLayout *l = new QVBoxLayout(w, 5);
+
+ QVGroupBox *gb_actions = new QVGroupBox(i18n("Select an &action to perform"), w);
+ gb_actions->setInsideSpacing(0);
+ // actions combo box
+ cb_actions = new QComboBox(gb_actions, "QComboBox::cb_actions");
+ cb_actions->setFocusPolicy(StrongFocus);
+ cb_actions->insertItem(ks_actions->getIcon(Action::ShutDown), ks_actions->getName(Action::ShutDown));
+ cb_actions->insertItem(ks_actions->getIcon(Action::Reboot), ks_actions->getName(Action::Reboot));
+ cb_actions->insertItem(ks_actions->getIcon(Action::LockScreen), ks_actions->getName(Action::LockScreen));
+ cb_actions->insertItem(ks_actions->getIcon(Action::Logout), ks_actions->getName(Action::Logout));
+ cb_actions->insertItem(ks_actions->getIcon(Action::Extras), i18n("Extras"));
+ QWhatsThis::add(cb_actions, i18n("Select an action to perform at the selected time."));
+ connect(cb_actions, SIGNAL(activated(int)), SLOT(slotActionChange(int)));
+
+ // extras
+ ks_extras->createButton(gb_actions);
+
+ QVGroupBox *gb_delayValues = new QVGroupBox(i18n("S&elect a time"), w);
+ gb_delayValues->setInsideSpacing(0);
+
+ // delay type combo box
+ cb_delayTypes = new QComboBox(gb_delayValues, "QComboBox::cb_delayTypes");
+ cb_delayTypes->setFocusPolicy(StrongFocus);
+ cb_delayTypes->insertItem(SmallIcon("messagebox_warning"), i18n("No Delay"));
+ cb_delayTypes->insertItem(SmallIcon("clock"), i18n("Time From Now (HH:MM)"));
+ cb_delayTypes->insertItem(SmallIcon("date"), i18n("At Date/Time"));
+ cb_delayTypes->insertItem(SmallIcon("misc"), i18n("When selected application exit"));
+ if (MiscUtils::isRestricted("tab_time"))
+ QWhatsThis::add(cb_delayTypes, i18n("Disabled by the Administrator."));
+ else
+ QWhatsThis::add(cb_delayTypes, i18n("Select the type of delay."));
+ connect(cb_delayTypes, SIGNAL(activated(int)), SLOT(slotDelayTypeChange(int)));
+
+ // date/time edit
+ _dateTimeEdit = new QDateTimeEdit(gb_delayValues, "QDateTimeEdit::_dateTimeEdit");
+ _dateTimeEdit->setAutoAdvance(true);
+ _dateTimeEdit->dateEdit()->setMinValue(QDate::currentDate());
+ setDate(QDate::currentDate());
+ connect(_dateTimeEdit, SIGNAL(valueChanged(const QDateTime &)), SLOT(slotUpdateTimeInfo()));
+
+ // app observer/killer
+ _appObserver = new AppObserver(gb_delayValues);
+
+ // status line
+ l_statusLine = new QLabel(gb_delayValues);
+ QWhatsThis::add(l_statusLine, i18n("Selected time."));
+
+ l->addWidget(gb_actions);
+ l->addWidget(gb_delayValues);
+ l->addStretch(5);
+
+ // start/stop action button
+ b_startStop = new KPushButton(w, "KPushButton::b_startStop");
+ b_startStop->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
+ b_startStop->setDefault(true); // enter key
+ l->addWidget(b_startStop);
+
+ return w;
+}
+
+void MMainWindow::setCaptions(const QString &remainingTime, const QString &selectedTime)
+{
+ // window tool tip
+ QString s;
+ if (ks_actions->active())
+ {
+ if (remainingTime.isNull())
+ s = selectedTime + " > " + ks_actions->getCurrentName();
+ else
+ s = remainingTime + " > " + selectedTime + " - " + ks_actions->getCurrentName();
+ }
+ if (ks_actions->testMode())
+ s += " [" + i18n("TEST MODE") + "]";
+ setCaption(s);
+
+ // system tray tool tip
+ if (ks_actions->active()) {
+ s = "<br>";
+ s += i18n("Remaining time: <b>%1</b>").arg(remainingTime.isNull() ? i18n("Unknown") : remainingTime) + "<br>";
+ s += i18n("Selected time: <b>%1</b>").arg(selectedTime) + "<br>";
+ s += i18n("Selected action: <b>%1</b>").arg(ks_actions->getCurrentName()) + "<br>";
+ if (ks_actions->testMode())
+ {
+ s += "<br>" + i18n("<b>Note: </b> The test mode is enabled") + "<br>";
+ }
+ }
+ else {
+ s = "";
+ }
+ if (MSystemTray::isInstance()) {
+ QToolTip::add(
+ ks_tray,
+ MiscUtils::HTML("<b>KShutDown</b><br>" + s)
+ );
+ }
+ if (ProgressBar::isInstance()) {
+ QToolTip::add(
+ ProgressBar::getInstance(),
+ MiscUtils::HTML("<b>KShutDown</b><br>" + s)
+ );
+ }
+}
+
+void MMainWindow::setWidgetsEnabled(const bool yes)
+{
+ cb_delayTypes->setEnabled(yes);
+ _dateTimeEdit->setEnabled(yes);
+ cb_actions->setEnabled(yes);
+ ks_extras->button()->setEnabled(yes);
+ _appObserver->setWidgetsEnabled(yes);
+
+ // actions
+ _cancelAction->setEnabled(!yes);
+ _startAction->setEnabled(yes);
+ if (yes)
+ MiscUtils::plug(_startAction, b_startStop);
+ else
+ MiscUtils::plug(_cancelAction, b_startStop);
+}
+
+void MMainWindow::updateTimeInfo(const int secs)
+{
+ setCaptions(
+ MiscUtils::formatDateTime(secs),
+ KGlobal::locale()->formatDateTime(dt_end, true, true)
+ );
+
+ // update progress bar
+ if (ProgressBar::isInstance()) {
+ ProgressBar *progressBar = ProgressBar::getInstance();
+ progressBar->setProgress(secs);
+ }
+}
+
+void MMainWindow::slotCancel()
+{
+ cancel();
+}
+
+void MMainWindow::slotStart() {
+ start(true);
+}
+
+void MMainWindow::slotQuit()
+{
+ ks_actions->setTotalExit(true); // do not hide window in the system tray
+ close();
+}
+
+void MMainWindow::slotAboutToQuit()
+{
+ ks_actions->setTotalExit(true);
+}
+
+void MMainWindow::slotCheckTime()
+{
+ // check process
+ if (_delayType == DelayType_OnAppExit)
+ {
+ if (!_appObserver->isSelectedProcessRunning()) {
+ // restore window
+ makeVisible();
+ // show warning message
+ if (kshutdownrc->warningMessageEnabled)
+ {
+ cancel();
+ if (MMessageDialog::show(30))
+ ks_actions->execCurrent();
+ }
+ else
+ {
+ ks_actions->totalExec();
+ }
+ }
+
+ return;
+ }
+
+ // check timeout
+
+ QDateTime now = QDateTime::currentDateTime();
+
+ int curSec = now.time().second();
+
+ if (curSec == _oldSec)
+ return; // time not changed since last check
+
+ _oldSec = curSec;
+
+ // timeout
+ if (now >= dt_end)
+ {
+ // restore window
+ makeVisible();
+
+ ks_actions->totalExec();
+
+ return;
+ }
+
+ int secsTo = now.secsTo(dt_end);
+ updateTimeInfo(secsTo);
+
+ // show warning message
+ if (
+ kshutdownrc->warningMessageEnabled &&
+ (secsTo <= (kshutdownrc->warningMessageDelay * 60))
+ )
+ {
+ // restore window
+ makeVisible();
+ // show warning message dialog
+ cancel();
+ if (MMessageDialog::show(secsTo))
+ ks_actions->execCurrent();
+
+ return;
+ }
+
+ MiscUtils::notifyUser(secsTo);
+}
+
+void MMainWindow::slotDelayTypeChange(int index) {
+ setDelayType((DelayType)index);
+ slotUpdateTimeInfo();
+}
+
+void MMainWindow::slotConfigureGlobalShortcuts() {
+ if (KKeyDialog::configure(_globalAccel, false, this)) {
+ _globalAccel->writeSettings(0, true);
+ _globalAccel->updateConnections();
+ }
+}
+
+void MMainWindow::slotConfigureKShutDown() {
+ configure();
+}
+
+void MMainWindow::slotConfigureNotifications() {
+ KNotifyDialog::configure(this);
+}
+
+void MMainWindow::slotConfigureShortcuts()
+{
+ KKeyDialog *dialog = new KKeyDialog(false, this);
+ dialog->insert(actionCollection());
+ dialog->insert(ac_shutDown);
+ dialog->configure(true);
+ delete dialog;
+
+ actionCollection()->writeShortcutSettings();
+ ac_shutDown->writeShortcutSettings();
+}
+
+void MMainWindow::slotActionChange(int index)
+{
+ setAction((Action::Type)(index + 1)); // 0 = What_Nothing
+ if (ks_actions->current() != Action::Extras)
+ ks_extras->setAction(QString::null, QString::null);
+}
+
+void MMainWindow::slotCheckSystemConfig()
+{
+ SystemConfig::check(this);
+}
+
+void MMainWindow::slotStats()
+{
+ if (!MiscUtils::isRestricted("tab_stats"))
+ MStatsTab::getInstance()->show();
+}
+
+void MMainWindow::slotUpdateTimeInfo()
+{
+ l_statusLine->setText("<b>" + getTimeInfo() + "</b>");
+}
+
+bool MMainWindow::queryClose()
+{
+ // exit
+ if (ks_actions->totalExit() || kapp->sessionSaving())
+ return true;
+
+ // MSystemTray::Always
+ if (kshutdownrc->systemTray == MSystemTray::Always)
+ {
+ if (_showMinimizeInfo) {
+ MiscUtils::passiveMessage(
+ i18n("KShutDown has been minimized"),
+ ks_tray
+ );
+ _showMinimizeInfo = false;
+ }
+ ks_tray->flashIcon();
+ hide();
+
+ return false;
+ }
+
+ // MSystemTray::IfActive
+ if (kshutdownrc->systemTray == MSystemTray::IfActive)
+ {
+ if (ks_actions->active())
+ {
+ if (_showMinimizeInfo) {
+ MiscUtils::passiveMessage(
+ i18n("KShutDown has been minimized"),
+ ks_tray
+ );
+ _showMinimizeInfo = false;
+ }
+ ks_tray->flashIcon();
+ hide();
+
+ return false;
+ }
+ else {
+// FIXME: 2.0: quit message
+ MiscUtils::passiveMessage(i18n("KShutDown has quit"));
+
+ return true;
+ }
+ }
+
+ // MSystemTray::Never
+ if (kshutdownrc->systemTray == MSystemTray::Never) {
+// FIXME: 2.0: quit message
+ MiscUtils::passiveMessage(i18n("KShutDown has quit"));
+
+ return true;
+ }
+
+ return true;
+}
+
+bool MMainWindow::queryExit()
+{
+ ks_actions->setTotalExit(true);
+
+ return true; // ok to exit
+}
diff --git a/kshutdown/mmainwindow.h b/kshutdown/mmainwindow.h
new file mode 100644
index 0000000..badbe8e
--- /dev/null
+++ b/kshutdown/mmainwindow.h
@@ -0,0 +1,209 @@
+/*
+ mmainwindow.h - The main window
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MMAINWINDOW_H__
+#define __MMAINWINDOW_H__
+
+#include "actions.h"
+#include "kshutdowniface.h"
+
+#include <qdatetime.h>
+
+#include <kmainwindow.h>
+
+class AppObserver;
+
+class QDateTimeEdit;
+class QLabel;
+
+class KGlobalAccel;
+class KPushButton;
+
+#define ks_main MMainWindow::getInstance()
+
+/** @short The main window. */
+class MMainWindow: public KMainWindow, virtual public KShutdownIface
+{
+ Q_OBJECT
+public:
+ /**
+ * Timeout options.
+ */
+ enum DelayType {
+ DelayType_Now = 0, /**< Immediate action (no delay). */
+ DelayType_TimeFromNow = 1, /**< Time from now in HH:MM format. */
+ DelayType_DateTime = 2, /**< Absolute date and time. */
+ DelayType_OnAppExit = 3 /**< When desired application exit. */
+ };
+
+ /** Constructor. */
+ MMainWindow();
+
+ /** Destructor. */
+ virtual ~MMainWindow();
+
+ /** Sets current action to @p action. */
+ void setAction(const Action::Type action);
+
+ /** Sets delay type to @p value. */
+ void setDelayType(const DelayType value);
+
+ /** Sets editor time to @p time. */
+ void setTime(const QTime &time);
+
+ /** Returns the main window widget. Accessed via the @c ks_main macro. */
+ inline static MMainWindow *getInstance() { return _instance; }
+
+ /** Sets editor date to @p date. */
+ void setDate(const QDate &date);
+
+ /**
+ * Activates the selected action.
+ * @param confirmation @c false - no confirmation
+ */
+ void start(const bool confirmation = true);
+
+ // actions
+ inline KAction *cancelAction() const { return _cancelAction; }
+ inline KAction *checkSystemConfigurationAction() const { return _checkSystemConfigurationAction; }
+ inline KAction *configureKShutDownAction() const { return _configureKShutDownAction; }
+ inline KAction *lockScreenAction() const { return _lockScreenAction; }
+ inline KAction *logoutAction() const { return _logoutAction; }
+ inline KAction *rebootAction() const { return _rebootAction; }
+ inline KAction *shutDownAction() const { return _shutDownAction; }
+ inline KAction *statisticsAction() const { return _statisticsAction; }
+
+ // DCOP:
+ // general:
+ virtual void cancel();
+ virtual bool shutDown();
+ virtual bool shutdown();
+ virtual bool reboot();
+ virtual bool lockScreen();
+ virtual bool logout();
+ // misc:
+ virtual void configure();
+ virtual QString getStatusInfo();
+ virtual void makeInvisible();
+ virtual void makeVisible();
+ virtual void setTestMode(bool yes);
+private:
+ bool _showMinimizeInfo;
+ // actions
+ KAction
+ *_cancelAction,
+ *_checkSystemConfigurationAction,
+ *_configureKShutDownAction,
+ *_lockScreenAction,
+ *_logoutAction,
+ *_rebootAction,
+ *_shutDownAction,
+ *_startAction,
+ *_statisticsAction;
+ KActionCollection *ac_shutDown;
+ KGlobalAccel *_globalAccel;
+
+ int _oldSec;
+ AppObserver *_appObserver;
+ QDateTimeEdit *_dateTimeEdit;
+ KPushButton *b_startStop;
+
+ // points to the main window widget (this)
+ static MMainWindow *_instance;
+ QComboBox
+ *cb_actions,
+ *cb_delayTypes;
+ QDateTime
+ dt_end, // end date/time
+ dt_start; // start date/time
+ QLabel *l_statusLine;
+ QTimer *_timer; // timeout timer
+ DelayType _delayType;
+
+ QString getTimeInfo();
+
+ void initMainMenu();
+
+ void initActions();
+ QWidget *initWidgets();
+
+ /**
+ * Sets window and system tray captions.
+ * @param remainingTime A remaining time
+ * @param selectedTime A selected time
+ */
+ void setCaptions(const QString &remainingTime = QString::null, const QString &selectedTime = QString::null);
+
+ void setWidgetsEnabled(const bool yes);
+
+ /**
+ * Updates time infos (e.g. window captions).
+ * Displays time to the final shut down, and the selected action name.
+ */
+ void updateTimeInfo(const int secs);
+private slots:
+ /**
+ * This signal is emitted when the application is about to quit, or when the
+ * user shuts down the entire desktop session.
+ */
+ void slotAboutToQuit();
+
+ /**
+ * Checks the time, and after timeout executes active action.
+ */
+ void slotCheckTime();
+
+ /**
+ * Called when a new item has been selected in the combo box.
+ * @param index A new item index
+ */
+ void slotDelayTypeChange(int index);
+
+ void slotConfigureGlobalShortcuts();
+ void slotConfigureKShutDown();
+ void slotConfigureNotifications();
+ void slotConfigureShortcuts();
+
+ void slotActionChange(int index);
+ void slotCheckSystemConfig();
+ void slotStats();
+
+ /**
+ * Updates "Selected time:" info.
+ * @see calcSelectedTime
+ */
+ void slotUpdateTimeInfo();
+public slots:
+ /** Cancels an active action. */
+ void slotCancel();
+ /** Activates the selected action. */
+ void slotStart();
+ /** Quits the application. */
+ void slotQuit();
+protected:
+ /** Closes or minizes the main window. */
+ virtual bool queryClose();
+ /**
+ * Invoked at application exit.
+ * @return @c true
+ */
+ virtual bool queryExit();
+};
+
+#endif // __MMAINWINDOW_H__
diff --git a/kshutdown/mmessagedialog.cpp b/kshutdown/mmessagedialog.cpp
new file mode 100644
index 0000000..4a02f73
--- /dev/null
+++ b/kshutdown/mmessagedialog.cpp
@@ -0,0 +1,184 @@
+/*
+ mmessagedialog.cpp - A warning message dialog
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "mmessagedialog.h"
+
+#include <qdatetime.h>
+#include <qhbox.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qlcdnumber.h>
+#include <qtimer.h>
+
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kpopupmenu.h>
+#include <kpushbutton.h>
+#include <kwin.h>
+
+// public
+
+MMessageDialog *MMessageDialog::_instance = 0;
+
+MMessageDialog::MMessageDialog(const int delay, const Action::Type actionToExecute, const QString &text)
+ : KDialog(ks_main, "MMessageDialog", true),
+ _dialogDelay(delay),
+ _lastTime(-1),
+ _action(actionToExecute)
+{
+ setCaption(i18n("Message"));
+ setPaletteBackgroundColor(yellow);
+ setPaletteForegroundColor(black);
+
+ // main layout
+ QVBoxLayout *l = new QVBoxLayout(this, 5);
+
+ // message text
+ QLabel *t_message = new QLabel(this);
+ QFont f = QFont(t_message->font());
+ f.setPointSize(16);
+ t_message->setFont(f);
+ t_message->setPaletteBackgroundColor(yellow);
+ t_message->setPaletteForegroundColor(black);
+ t_message->setAlignment(AlignCenter);
+ t_message->setFrameShape(QFrame::StyledPanel);
+ t_message->setFrameShadow(QFrame::Plain);
+ t_message->setLineWidth(4);
+ t_message->setMargin(20);
+ t_message->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding));
+ t_message->setText(text);
+
+ // bottom layout
+ QHBox *bottomBox = new QHBox(this);
+ bottomBox->setSpacing(5);
+
+ // seconds
+ l_seconds = new QLCDNumber(bottomBox);
+ l_seconds->display(_dialogDelay);
+ l_seconds->setFrameShape(QFrame::NoFrame);
+ l_seconds->setSegmentStyle(QLCDNumber::Flat);
+ MiscUtils::setHint(l_seconds, i18n("Remaining time."));
+
+ // continue button
+ b_continue = new KPushButton(
+ ks_actions->getIcon(_action), ks_actions->getName(_action),
+ bottomBox, "KPushButton::b_continue"
+ );
+// FIXME: 2.0: no accelerator for "b_continue"
+ b_continue->setPaletteBackgroundColor(yellow);
+ b_continue->setPaletteForegroundColor(black);
+ connect(b_continue, SIGNAL(clicked()), SLOT(slotAccept()));
+ b_continue->setEnabled(false);
+ QTimer::singleShot(2000, this, SLOT(slotEnableContinue()));
+
+ // cancel button
+ KPushButton *b_cancel = new KPushButton(KStdGuiItem::cancel(), bottomBox, "KPushButton::b_cancel");
+ b_cancel->setDefault(true);
+ b_cancel->setPaletteBackgroundColor(yellow);
+ b_cancel->setPaletteForegroundColor(black);
+ connect(b_cancel, SIGNAL(clicked()), SLOT(slotReject()));
+
+ l->addWidget(t_message);
+ l->addWidget(bottomBox);
+
+ // init time checker
+ _checkTimer = new QTimer(this);
+ connect(_checkTimer, SIGNAL(timeout()), SLOT(slotCheckTime()));
+ _checkTimer->start(500);
+
+ setFixedSize(sizeHint());
+
+ // make sure it is visible
+ // code from KAlarm
+ WId id = winId();
+ KWin::setState(id, NET::StaysOnTop | NET::Sticky);
+ KWin::setOnAllDesktops(id, true);
+}
+
+MMessageDialog::~MMessageDialog()
+{
+ // kdDebug() << "MMessageDialog::~MMessageDialog()" << endl;
+}
+
+void MMessageDialog::cancel() {
+ if (_instance) {
+ // kdDebug() << "MMessageDialog::cancel()" << endl;
+ _instance->slotReject();
+ delete _instance;
+ _instance = 0;
+ }
+}
+
+bool MMessageDialog::show(const int timeout) {
+ cancel();
+ KWin::setOnDesktop(ks_main->winId(), KWin::currentDesktop());
+ // show warning message dialog
+ _instance = new MMessageDialog(
+ timeout,
+ ks_actions->current(),
+ ks_actions->getCurrentName()
+ );
+ bool result = (_instance->exec() == Accepted);
+ delete _instance;
+ _instance = 0;
+
+ // kdDebug() << "result = " << result << endl;
+
+ return result;
+}
+
+// private slots
+
+void MMessageDialog::slotAccept() {
+ done(Accepted);
+}
+
+void MMessageDialog::slotEnableContinue() {
+ b_continue->setEnabled(true);
+}
+
+void MMessageDialog::slotCheckTime()
+{
+ QTime t = QTime::currentTime();
+
+ if (t.second() == _lastTime)
+ return;
+
+ l_seconds->display(_dialogDelay);
+
+ // timeout?
+ if (_dialogDelay == 0)
+ {
+ slotAccept();
+
+ return;
+ }
+
+ MiscUtils::notifyUser(_dialogDelay);
+
+ _lastTime = t.second();
+ _dialogDelay--;
+}
+
+void MMessageDialog::slotReject() {
+ done(Rejected);
+}
diff --git a/kshutdown/mmessagedialog.h b/kshutdown/mmessagedialog.h
new file mode 100644
index 0000000..3e74c57
--- /dev/null
+++ b/kshutdown/mmessagedialog.h
@@ -0,0 +1,68 @@
+/*
+ mmessagedialog.h - A warning message dialog
+ Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MMESSAGEDIALOG_H__
+#define __MMESSAGEDIALOG_H__
+
+#include "actions.h"
+
+#include <kdialog.h>
+
+class QLCDNumber;
+
+class KPushButton;
+
+/** @short A warning message dialog (displayed before action execution). */
+class MMessageDialog: public KDialog
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor.
+ * @param delay A timeout in seconds
+ * @param actionToExecute An action to execute after click on the button,
+ * or after timeout
+ * @param text A message text
+ */
+ MMessageDialog(const int delay, const Action::Type actionToExecute, const QString &text);
+
+ /**
+ * Destructor.
+ */
+ virtual ~MMessageDialog();
+
+ static void cancel();
+ static bool show(const int timeout);
+private:
+ int
+ _dialogDelay,
+ _lastTime;
+ Action::Type _action;
+ KPushButton *b_continue;
+ static MMessageDialog *_instance;
+ QLCDNumber *l_seconds;
+ QTimer *_checkTimer;
+private slots:
+ void slotAccept();
+ void slotEnableContinue();
+ void slotCheckTime();
+ void slotReject();
+};
+
+#endif // __MMESSAGEDIALOG_H__
diff --git a/kshutdown/msettingsdialog.cpp b/kshutdown/msettingsdialog.cpp
new file mode 100644
index 0000000..eb3b97a
--- /dev/null
+++ b/kshutdown/msettingsdialog.cpp
@@ -0,0 +1,622 @@
+/*
+ msettingsdialog.cpp - A settings dialog
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "configuration.h"
+#include "extras.h"
+#include "links.h"
+#include "mactioneditdialog.h"
+#include "miscutils.h"
+#include "mmessagedialog.h"
+#include "msettingsdialog.h"
+#include "msystemtray.h"
+#include "mtip.h"
+#include "systemconfig.h"
+
+#include <qcheckbox.h>
+#include <qfile.h>
+#include <qhbox.h>
+#include <qhbuttongroup.h>
+#include <qheader.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
+#include <qtooltip.h>
+#include <qvgroupbox.h>
+#include <qwhatsthis.h>
+
+#include <kconfigdialogmanager.h>
+#include <kiconloader.h>
+#include <klineedit.h>
+#include <klistview.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpopupmenu.h>
+#include <knuminput.h>
+#include <kpushbutton.h>
+#include <kstandarddirs.h>
+#include <ktabwidget.h>
+#include <kurllabel.h>
+
+int MSettingsDialog::_lastPage = 0;
+MSettingsDialog *MSettingsDialog::_instance = 0;
+
+// public
+
+MSettingsDialog::MSettingsDialog(QWidget *parent)
+ : KDialogBase(
+ IconList,
+ i18n("Settings"),
+ Apply | Cancel | Default | Ok,
+ Ok, // default button
+ parent,
+ "MSettingsDialog",
+ true, // modal
+ true // separator
+ )
+{
+ _instance = this;
+
+ initGeneralPage();
+ initMessagesPage();
+ initActionsPage();
+ initAdvancedPage();
+
+ _configDialogManager = new KConfigDialogManager(this, kshutdownrc);
+ _configDialogManager->updateWidgets();
+ connect(_configDialogManager, SIGNAL(widgetModified()), SLOT(slotConfigChanged()));
+
+ connect(this, SIGNAL(applyClicked()), SLOT(slotOKClicked()));
+ connect(this, SIGNAL(okClicked()), SLOT(slotOKClicked()));
+
+ // lock after login
+ c_autoLock->setChecked(QFile::exists(KGlobalSettings::autostartPath() + "/kshutdown-autolock.desktop"));
+
+ setInitialSize(configDialogSize("Settings Dialog"));
+ showPage(_lastPage); // restore last page
+
+ exec();
+}
+
+MSettingsDialog::~MSettingsDialog()
+{
+ _lastPage = activePageIndex(); // remember last page
+}
+
+// private
+
+QFrame *MSettingsDialog::addPage(const QString &itemName, const QString &iconName)
+{
+ return KDialogBase::addPage(itemName, QString::null, MainBarIcon(iconName, 32));
+}
+
+bool MSettingsDialog::disabledByAdmin(const QString &key, QFrame *page,
+ QBoxLayout *pageLayout) const
+{
+ if (MiscUtils::isRestricted("settings_" + key))
+ {
+ // add tip
+ if (page)
+ {
+ MTip *t_admin = new MTip(MTip::Info, page);
+ t_admin->setTipText(i18n("Disabled by the Administrator."));
+ pageLayout->addWidget(t_admin);
+ }
+
+ return true; // disabled
+ }
+
+ return false; // enabled
+}
+
+void MSettingsDialog::initActionsPage()
+{
+ _actionsPage = addPage(i18n("Actions"), "kshutdown");
+ QVBoxLayout *l = new QVBoxLayout(_actionsPage, 5);
+
+ if (disabledByAdmin("actions", _actionsPage, l))
+ return;
+
+ QVGroupBox *gb_general = new QVGroupBox(i18n("Actions"), _actionsPage);
+
+ _actions = new KListView(gb_general, "KListView::_actions");
+ _actions->setAllColumnsShowFocus(true);
+ _actions->setItemMargin(5);
+ _actions->setMaximumHeight(200);
+ _actions->setSorting(-1); // no sort
+ _actions->addColumn(i18n("Action"));
+ _actions->addColumn(i18n("Method"));
+ _actions->addColumn(i18n("Command before action"));
+ _actions->header()->setClickEnabled(false);
+
+ _logoutItem = new KListViewItem(_actions, ks_actions->getName(Action::Logout));
+ _logoutItem->setPixmap(0, ks_actions->getIcon(Action::Logout));
+
+ _lockScreenItem = new KListViewItem(_actions, ks_actions->getName(Action::LockScreen));
+ _lockScreenItem->setPixmap(0, ks_actions->getIcon(Action::LockScreen));
+
+ _rebootItem = new KListViewItem(_actions, ks_actions->getName(Action::Reboot));
+ _rebootItem->setPixmap(0, ks_actions->getIcon(Action::Reboot));
+
+ _shutDownItem = new KListViewItem(_actions, ks_actions->getName(Action::ShutDown));
+ _shutDownItem->setPixmap(0, ks_actions->getIcon(Action::ShutDown));
+
+ connect(_actions, SIGNAL(doubleClicked(QListViewItem *, const QPoint &, int)), SLOT(slotEditAction()));
+ connect(_actions, SIGNAL(spacePressed(QListViewItem *)), SLOT(slotEditAction()));
+ // edit action
+ KPushButton *b_editAction = new KPushButton(SmallIcon("edit"), i18n("Edit..."), gb_general, "KPushButton::b_editAction");
+ connect(b_editAction, SIGNAL(clicked()), SLOT(slotEditAction()));
+ // check system configuration
+ KPushButton *b_checkSystemConfig = new KPushButton(SmallIcon("button_ok"), i18n("Check System Configuration"), gb_general, "KPushButton::b_checkSystemConfig");
+ connect(b_checkSystemConfig, SIGNAL(clicked()), SLOT(slotCheckSystemConfig()));
+
+ QVGroupBox *gb_extras = new QVGroupBox(i18n("Extras Menu"), _actionsPage);
+ KPushButton *b_modifyExtras = new KPushButton(SmallIcon("edit"), i18n("Modify..."), gb_extras, "KPushButton::b_modifyExtras");
+ if (!ks_actions->isEnabled(Action::Extras))
+ gb_extras->hide();
+ connect(
+ b_modifyExtras, SIGNAL(clicked()),
+ ks_extras, SLOT(slotModify()));
+
+ l->addWidget(gb_general);
+ l->addStretch();
+ l->addWidget(gb_extras);
+
+ // update items after widgets init
+ updateActions();
+}
+
+void MSettingsDialog::initAdvancedPage()
+{
+ _advancedPage = addPage(i18n("Advanced"), "misc");
+ QVBoxLayout *l = new QVBoxLayout(_advancedPage, 5);
+
+ // after login
+ QVGroupBox *gb_afterLogin = new QVGroupBox(i18n("After Login"), _advancedPage);
+ c_autoLock = new QCheckBox(i18n("Lock screen"), gb_afterLogin);
+ connect(c_autoLock, SIGNAL(clicked()), SLOT(slotConfigChanged()));
+
+ // cd tray close
+ QVGroupBox *gb_cdTrayClose = new QVGroupBox(i18n("Before Logout"), _advancedPage);
+ QCheckBox *c_cdTrayClose = new QCheckBox(i18n("Close CD-ROM Tray"), gb_cdTrayClose, "kcfg_cd_tray_close");
+ QHBox *cdTrayCloseBox = new QHBox(gb_cdTrayClose);
+ QLabel *l_cdTrayCloseCommand = new QLabel(i18n("Command:"), cdTrayCloseBox);
+// FIXME: 2.0: disable "in_cdTrayCloseCommand" if "c_cdTrayClose" is not checked
+// TODO: 2.0: "Test" button
+ KLineEdit *in_cdTrayCloseCommand = new KLineEdit(cdTrayCloseBox, "kcfg_cd_tray_close_command");
+ l_cdTrayCloseCommand->setBuddy(in_cdTrayCloseCommand);
+ connect(
+ c_cdTrayClose, SIGNAL(toggled(bool)),
+ in_cdTrayCloseCommand, SLOT(setEnabled(bool)));
+
+ // kde settings
+ KPushButton *b_kdeSettings = new KPushButton(SmallIcon("misc"), i18n("Related KDE Settings..."), _advancedPage, "KPushButton::b_kdeSettings");
+ connect(b_kdeSettings, SIGNAL(clicked()), SLOT(slotKDESettings()));
+
+ l->addWidget(gb_afterLogin);
+ l->addWidget(gb_cdTrayClose);
+ l->addStretch();
+ l->addWidget(b_kdeSettings);
+}
+
+void MSettingsDialog::initGeneralPage()
+{
+ _generalPage = addPage(i18n("General"), "misc");
+ QVBoxLayout *l = new QVBoxLayout(_generalPage, 5);
+
+ // problems
+ QVGroupBox *gb_problems = new QVGroupBox(i18n("Common Problems"), _generalPage);
+
+ KURLLabel *ul_shutDownProblem = new KURLLabel(gb_problems);
+ ul_shutDownProblem->setText(i18n("\"Turn Off Computer\" does not work"));
+ connect(ul_shutDownProblem, SIGNAL(leftClickedURL()), SLOT(slotShutDownProblem()));
+
+ KURLLabel *ul_trayMessageProblem = new KURLLabel(gb_problems);
+ ul_trayMessageProblem->setText(i18n("Popup messages are very annoying"));
+ connect(ul_trayMessageProblem, SIGNAL(leftClickedURL()), SLOT(slotTrayMessageProblem()));
+
+ // links
+ QVGroupBox *gb_links = new QVGroupBox(i18n("Add/Remove Links"), _generalPage);
+ new Links(gb_links);
+
+ // system tray
+ gb_systemTray = new QHButtonGroup(i18n("Show System Tray Icon"), _generalPage, "kcfg_system_tray");
+ QRadioButton *rb_systemTray;
+ rb_systemTray = new QRadioButton(i18n("Always"), gb_systemTray);
+ MiscUtils::setHint(rb_systemTray, i18n("Tray icon will be always visible."));
+ rb_systemTray = new QRadioButton(i18n("If Active"), gb_systemTray);
+ MiscUtils::setHint(rb_systemTray, i18n("Tray icon will be visible only if KShutDown is active."));
+ rb_systemTray = new QRadioButton(i18n("Never"), gb_systemTray);
+ MiscUtils::setHint(rb_systemTray, i18n("Tray icon will be always hidden."));
+
+ l->addWidget(gb_problems);
+ l->addWidget(gb_links);
+ l->addWidget(gb_systemTray);
+
+ // karamba info
+ QString karambaThemes = locate("appdata", "karamba/kshutdown-48x48.png");
+ if (!karambaThemes.isNull())
+ {
+ int i = karambaThemes.findRev("/");
+ if ((i != -1) && (i > 0))
+ {
+ MTip *t_karamba = new MTip(MTip::Info, _generalPage);
+/* TODO: 2.0: superkaramba integration
+ t_karamba->disconnect(
+ t_karamba, SIGNAL(linkClicked(const QString &)),
+ t_karamba, SLOT(openLink(const QString &))
+ );
+ t_karamba->connect(
+ t_karamba, SIGNAL(linkClicked(const QString &)),
+ this, SLOT(slotOpenKarambaLink(const QString &))
+ );
+*/
+ karambaThemes = karambaThemes.left(i);
+ t_karamba->setTipText(
+ // title
+ "<h2>SuperKaramba</h2>" \
+ // themes
+ "<a href=\"" + karambaThemes + "\">" + i18n("Show KShutDown Themes") + "</a><br>" \
+ // home page
+ "<a href=\"http://www.superkaramba.com/index.php\">" + i18n("SuperKaramba Home Page") + "</a>" \
+ );
+ l->addWidget(t_karamba);
+ }
+ }
+}
+
+void MSettingsDialog::initMessagesPage()
+{
+ _messagesPage = addPage(i18n("Messages"), "messagebox_warning");
+ QVBoxLayout *l = new QVBoxLayout(_messagesPage, 5);
+
+ KTabWidget *t_messages = new KTabWidget(_messagesPage);
+ t_messages->setFocusPolicy(StrongFocus);
+
+ // warning message:
+ QWidget *w_warning = new QWidget(_messagesPage);
+ QVBoxLayout *l_warning = new QVBoxLayout(w_warning, 5);
+ // enabled/info
+ QCheckBox *c_warningMessageEnabled = new QCheckBox(i18n("Display a warning message before action"), w_warning, "kcfg_warning_message_enabled");
+ // slider
+ in_warningMessageDelay = new KIntNumInput(w_warning, "kcfg_warning_message_delay");
+ in_warningMessageDelay->setSuffix(" " + i18n("minute(s)"));
+ in_warningMessageDelay->setRange(1, 60, 1, true);
+ KPushButton *b_warningMessageTest = new KPushButton(KStdGuiItem::test(), w_warning, "KPushButton::b_warningMessageTest");
+ connect(b_warningMessageTest, SIGNAL(clicked()), SLOT(slotWarningMessageTest()));
+
+ QLabel *l_warningText = new QLabel(i18n("Recommended"), w_warning);
+ l_warningText->setFont(QFont(l_warningText->font().family(), l_warningText->font().pointSize(), QFont::Bold));
+ l_warning->addWidget(l_warningText);
+
+ l_warning->addWidget(c_warningMessageEnabled);
+
+ l_warning->addWidget(in_warningMessageDelay);
+ l_warning->addStretch();
+ l_warning->addWidget(b_warningMessageTest);
+ t_messages->addTab(w_warning, i18n("Warning Message"));
+
+ // custom message:
+ QWidget *w_customMessage = new QWidget(_messagesPage);
+ QVBoxLayout *l_customMessage = new QVBoxLayout(w_customMessage, 5);
+ QCheckBox *c_customMessageEnabled = new QCheckBox(i18n("Enabled"), w_customMessage, "kcfg_custom_message_enabled");
+ QLabel *l_customMessageCommand = new QLabel(i18n("A shell command to execute:"), w_customMessage);
+ in_customMessageCommand = new KLineEdit(w_customMessage, "kcfg_custom_message_command");
+ MiscUtils::setHint(
+ in_customMessageCommand,
+ MiscUtils::HTML(
+ i18n("Enter a command.") +
+ "<ul>" \
+ "<li><b>%appname</b> KShutDown</li>" \
+ "<li><b>%text</b> " + i18n("A message text") + "</li>" \
+ "<li><b>%title</b> " + i18n("The current main window title") + "</li>" \
+ "</ul>"
+ )
+ );
+ l_customMessageCommand->setBuddy(in_customMessageCommand);
+
+ KPushButton *b_customMessagePresets = new KPushButton(i18n("Presets"), w_customMessage, "KPushButton::b_customMessagePresets");
+ KPopupMenu *pm_customMessagePresets = new KPopupMenu(b_customMessagePresets);
+ pm_customMessagePresets->insertItem("KDialog", this, SLOT(slotSetKDialogCustomMessage()));
+ pm_customMessagePresets->insertItem("Amor", this, SLOT(slotSetAmorCustomMessage()));
+ b_customMessagePresets->setPopup(pm_customMessagePresets);
+
+ KPushButton *b_testCustomMessage = new KPushButton(KStdGuiItem::test(), w_customMessage, "KPushButton::b_testCustomMessage");
+ connect(b_testCustomMessage, SIGNAL(clicked()), SLOT(slotCustomMessageTest()));
+ l_customMessage->addWidget(c_customMessageEnabled);
+ l_customMessage->addWidget(l_customMessageCommand);
+ l_customMessage->addWidget(in_customMessageCommand);
+ l_customMessage->addWidget(b_customMessagePresets);
+ l_customMessage->addStretch();
+ l_customMessage->addWidget(b_testCustomMessage);
+ t_messages->addTab(w_customMessage, i18n("Custom Message"));
+
+ // progress bar
+ QVGroupBox *w_progressBar = new QVGroupBox(i18n("Progress Bar"), _messagesPage);
+ new QCheckBox(i18n("Enabled"), w_progressBar, "kcfg_progress_bar_enabled");
+
+ // re-enable messages
+ b_enableAllMessages = new KPushButton(i18n("Re-enable All Message Boxes"), _messagesPage, "KPushButton::b_enableAllMessages");
+ MiscUtils::setHint(
+ b_enableAllMessages,
+ MiscUtils::HTML(i18n(
+ "Enable all messages which have been turned off with the " \
+ "<b>Do not show this message again</b> feature."
+ ))
+ );
+ connect(b_enableAllMessages, SIGNAL(clicked()), SLOT(slotEnableAllMessages()));
+
+ l->addWidget(t_messages);
+ l->addWidget(w_progressBar);
+ l->addStretch();
+ l->addWidget(b_enableAllMessages);
+
+ connect(
+ c_warningMessageEnabled, SIGNAL(toggled(bool)),
+ in_warningMessageDelay, SLOT(setEnabled(bool)));
+ connect(
+ c_warningMessageEnabled, SIGNAL(toggled(bool)),
+ b_warningMessageTest, SLOT(setEnabled(bool)));
+ connect(
+ c_customMessageEnabled, SIGNAL(toggled(bool)),
+ in_customMessageCommand, SLOT(setEnabled(bool)));
+ connect(
+ c_customMessageEnabled, SIGNAL(toggled(bool)),
+ b_customMessagePresets, SLOT(setEnabled(bool)));
+ connect(
+ c_customMessageEnabled, SIGNAL(toggled(bool)),
+ b_testCustomMessage, SLOT(setEnabled(bool)));
+}
+
+Action::Type MSettingsDialog::itemToActionType(const KListViewItem *item) const
+{
+ if (!item)
+ return Action::Nothing;
+
+ if (item == _lockScreenItem)
+ return Action::LockScreen;
+
+ if (item == _logoutItem)
+ return Action::Logout;
+
+ if (item == _rebootItem)
+ return Action::Reboot;
+
+ if (item == _shutDownItem)
+ return Action::ShutDown;
+
+ return Action::Nothing;
+}
+
+void MSettingsDialog::updateActions()
+{
+ updateItem(_shutDownItem);
+ updateItem(_rebootItem);
+ updateItem(_lockScreenItem);
+ updateItem(_logoutItem);
+ _actions->setCurrentItem(_shutDownItem);
+}
+
+void MSettingsDialog::updateItem(KListViewItem *item)
+{
+ Action::Type action = itemToActionType(item);
+
+ if (action == Action::Nothing)
+ return;
+
+ Action::Method method = Action::Method_KDE;
+ QString
+ command,
+ group = ks_actions->actionToConfigGroup(action);
+
+ ks_actions->getMethod(action, method, command);
+
+ // method
+ if (method == Action::Method_KDE)
+ item->setText(1, i18n("KDE (default)"));
+ else
+ item->setText(1, command);
+
+ // command before action
+ if (!group.isNull())
+ {
+ KConfig *conf = kshutdownrc->config();
+ conf->setGroup(group);
+ if (conf->readBoolEntry("RunCommandBeforeAction", false))
+ {
+ QString cmd = conf->readEntry("CommandBeforeAction", "");
+ int pause = conf->readNumEntry("CommandBeforeActionPause", 10);
+ if (pause == 0)
+ cmd += " [" + i18n("No pause") + "]";
+ else
+ cmd += " [" + i18n("Pause: %1").arg(QString::number(pause) + "s") + "]";
+ item->setText(2, cmd);
+ }
+ else
+ {
+ item->setText(2, "");
+ }
+ }
+}
+
+// private slots
+
+void MSettingsDialog::slotCheckSystemConfig()
+{
+ SystemConfig::check(this);
+}
+
+void MSettingsDialog::slotConfigChanged()
+{
+ actionButton(Apply)->setEnabled(_configDialogManager->hasChanged());
+}
+
+void MSettingsDialog::slotCustomMessageTest()
+{
+ MiscUtils::customMessage(i18n("Test"), in_customMessageCommand->text());
+}
+
+void MSettingsDialog::slotEditAction()
+{
+ KListViewItem *item = static_cast<KListViewItem *>(_actions->currentItem());
+
+ if (!item)
+ return;
+
+ MActionEditDialog *dialog = new MActionEditDialog(this, itemToActionType(item));
+ if (dialog->exec() == QDialog::Accepted)
+ {
+ updateItem(item);
+ slotConfigChanged();
+ }
+ delete dialog;
+}
+
+void MSettingsDialog::slotEnableAllMessages()
+{
+ KMessageBox::enableAllMessages();
+ b_enableAllMessages->setEnabled(false);
+}
+
+void MSettingsDialog::slotKDESettings()
+{
+ MiscUtils::runCommand("kcmshell screensaver kcmsmserver kdm");
+}
+
+void MSettingsDialog::slotOKClicked()
+{
+ saveDialogSize("Settings Dialog");
+ _configDialogManager->updateSettings();
+
+// FIXME: 2.0: apply button
+
+ // lock after login
+ if (c_autoLock->isChecked())
+ {
+ Links::createLink(
+ KGlobalSettings::autostartPath() + "/kshutdown-autolock.desktop",
+ "kshutdown --init --lock",
+ "kshutdown",
+ "KShutDown",
+ i18n("This file is used to lock session at KDE startup")
+ );
+ }
+ else
+ {
+ Links::removeLink(KGlobalSettings::autostartPath() + "/kshutdown-autolock.desktop");
+ }
+
+ int id = gb_systemTray->selectedId();
+ if (id != -1)
+ MSystemTray::setMode((MSystemTray::Mode)id);
+
+ kshutdownrc->writeConfig();
+
+ slotConfigChanged();
+}
+
+// TODO: 2.0: remember last page
+
+void MSettingsDialog::slotSetAmorCustomMessage() {
+ in_customMessageCommand->setText(KS_CONFIG_AMOR_MESSAGE);
+}
+
+void MSettingsDialog::slotSetKDialogCustomMessage() {
+ in_customMessageCommand->setText(KS_CONFIG_KDIALOG_MESSAGE);
+}
+
+void MSettingsDialog::slotShutDownProblem()
+{
+ showPage(pageIndex(_actionsPage));
+}
+
+void MSettingsDialog::slotTrayMessageProblem()
+{
+ showPage(pageIndex(_messagesPage));
+}
+
+void MSettingsDialog::slotWarningMessageTest()
+{
+ MMessageDialog *messageDialog = new MMessageDialog(
+ in_warningMessageDelay->value() * 60,
+ Action::Nothing,
+ i18n("Test")
+ );
+ messageDialog->exec();
+ delete messageDialog;
+}
+
+// protected slots
+
+void MSettingsDialog::slotDefault()
+{
+ int index = activePageIndex();
+
+ if (index == -1)
+ return;
+
+ _configDialogManager->updateSettings();
+
+ // general
+ if (index == pageIndex(_generalPage))
+ {
+ kshutdownrc->i_systemTray->setDefault();
+ }
+ // messages
+ else if (index == pageIndex(_messagesPage))
+ {
+ kshutdownrc->i_warningMessageEnabled->setDefault();
+ kshutdownrc->i_warningMessageDelay->setDefault();
+ kshutdownrc->i_customMessageEnabled->setDefault();
+ kshutdownrc->i_customMessageCommand->setDefault();
+ }
+ // actions
+ else if (index == pageIndex(_actionsPage))
+ {
+ if (disabledByAdmin("actions"))
+ return;
+
+ if (KMessageBox::warningYesNo(
+ 0,
+ i18n("Restore default settings for this page?"),
+ caption()) != KMessageBox::Yes
+ )
+ return;
+
+ KConfig *conf = kshutdownrc->config();
+ conf->deleteGroup("Shut Down");
+ conf->deleteGroup("Reboot");
+ conf->deleteGroup("Lock Screen");
+ conf->deleteGroup("Logout");
+ updateActions();
+ slotConfigChanged();
+ }
+ // advanced
+ else if (index == pageIndex(_advancedPage))
+ {
+ c_autoLock->setChecked(false);
+ kshutdownrc->i_cdTrayClose->setDefault();
+ kshutdownrc->i_cdTrayCloseCommand->setDefault();
+ slotConfigChanged();
+ }
+ else
+ {
+ return;
+ }
+ _configDialogManager->updateWidgets();
+}
diff --git a/kshutdown/msettingsdialog.h b/kshutdown/msettingsdialog.h
new file mode 100644
index 0000000..6f3fec3
--- /dev/null
+++ b/kshutdown/msettingsdialog.h
@@ -0,0 +1,127 @@
+/*
+ msettingsdialog.h - A settings dialog
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MSETTINGSDIALOG_H__
+#define __MSETTINGSDIALOG_H__
+
+#include "actions.h"
+
+#include <kdialogbase.h>
+
+class QCheckBox;
+class QHButtonGroup;
+
+class KConfigDialogManager;
+class KIntNumInput;
+class KLineEdit;
+class KListView;
+class KListViewItem;
+class KPushButton;
+
+/** @short A settings dialog. */
+class MSettingsDialog: public KDialogBase
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor. Creates a new modal settings dialog.
+ * @param parent A parent widget
+ */
+ MSettingsDialog(QWidget *parent);
+
+ /**
+ * Destructor.
+ */
+ virtual ~MSettingsDialog();
+
+ inline static void freeInstance() {
+ if (_instance) {
+ delete _instance;
+ _instance = 0;
+ }
+ }
+
+ inline static bool isActive() {
+ if (_instance) {
+ _instance->raise();
+
+ return true;
+ }
+
+ return false;
+ }
+private:
+ static int _lastPage;
+ static MSettingsDialog *_instance;
+ KConfigDialogManager *_configDialogManager;
+ KIntNumInput *in_warningMessageDelay;
+ KLineEdit *in_customMessageCommand;
+ KListView *_actions;
+ KListViewItem
+ *_lockScreenItem,
+ *_logoutItem,
+ *_rebootItem,
+ *_shutDownItem;
+ KPushButton *b_enableAllMessages;
+ QCheckBox *c_autoLock;
+ QFrame
+ *_actionsPage,
+ *_advancedPage,
+ *_generalPage,
+ *_messagesPage;
+ QHButtonGroup *gb_systemTray;
+
+ QFrame *addPage(const QString &itemName, const QString &iconName);
+
+ /**
+ * Returns @c true if page has been disabled by the administrator (Kiosk mode).
+ * @param key A configuration entry (in the @c kshutdownrc file)
+ * @param page A dialog page
+ * @param pageLayout A dialog page layout
+ */
+ bool disabledByAdmin(const QString &key, QFrame *page = 0, QBoxLayout *pageLayout = 0) const;
+
+ void initActionsPage();
+ void initAdvancedPage();
+ void initGeneralPage();
+ void initMessagesPage();
+ Action::Type itemToActionType(const KListViewItem *item) const;
+ void updateActions();
+ void updateItem(KListViewItem *item);
+private slots:
+ void slotCheckSystemConfig();
+ void slotConfigChanged();
+ void slotCustomMessageTest();
+ void slotEditAction();
+ void slotEnableAllMessages();
+ void slotKDESettings();
+ void slotOKClicked();
+ void slotSetAmorCustomMessage();
+ void slotSetKDialogCustomMessage();
+ void slotShutDownProblem();
+ void slotTrayMessageProblem();
+ void slotWarningMessageTest();
+protected slots:
+ /**
+ * Sets default values in a current page.
+ */
+ virtual void slotDefault();
+};
+
+#endif // __MSETTINGSDIALOG_H__
diff --git a/kshutdown/mstatstab.cpp b/kshutdown/mstatstab.cpp
new file mode 100644
index 0000000..8062798
--- /dev/null
+++ b/kshutdown/mstatstab.cpp
@@ -0,0 +1,196 @@
+/*
+ mstatstab.cpp - A statistics dialog
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "configuration.h"
+#include "mmainwindow.h"
+#include "miscutils.h"
+#include "mstatstab.h"
+
+#include <qcheckbox.h>
+#include <qprocess.h>
+#include <qregexp.h>
+#include <qtextedit.h>
+#include <qvbox.h>
+#include <qvgroupbox.h>
+#include <qwhatsthis.h>
+
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kpushbutton.h>
+
+// public
+
+MStatsTab *MStatsTab::_instance = 0;
+
+MStatsTab::MStatsTab()
+ : KDialogBase(
+ ks_main,
+ "MStatsTab",
+ false, // modeless
+ i18n("Statistics"),
+ Close | Details,
+ Close // default button
+ ),
+ _buf(QString::null)
+{
+ _process = new QProcess(this);
+ connect(_process, SIGNAL(processExited()), SLOT(slotProcessExit()));
+ connect(_process, SIGNAL(readyReadStdout()), SLOT(slotReadStdout()));
+
+ QVBox *main = new QVBox(this);
+ setMainWidget(main);
+
+ // output
+ te_output = new QTextEdit(main, "QTextEdit::te_output");
+ te_output->setMinimumSize(640, 320);
+ te_output->setPaletteBackgroundColor(white);
+ te_output->setPaletteForegroundColor(black);
+ te_output->setReadOnly(true);
+ te_output->setTextFormat(RichText); // allow HTML tags
+ te_output->setWordWrap(QTextEdit::NoWrap);
+ // based on the "Linux User's Manual" (man w)
+ QWhatsThis::add(
+ te_output,
+ MiscUtils::HTML(i18n(
+ "This view displays information about the users currently on the " \
+ "machine, and their processes.<br>" \
+ "The header shows how long the system has been running."
+ ))
+ );
+
+ QHBox *buttons = new QHBox(main);
+ // refresh
+ b_refresh = new KPushButton(SmallIcon("reload"), i18n("Refresh"), buttons, "KPushButton::b_refresh");
+ connect(b_refresh, SIGNAL(clicked()), SLOT(slotRefresh()));
+
+ // options
+ QVGroupBox *options = new QVGroupBox(i18n("Options"), main);
+ // long format
+ c_longFormat = new QCheckBox(i18n("More information"), options);
+ c_longFormat->setChecked(kshutdownrc->statsLongFormat);
+ connect(c_longFormat, SIGNAL(clicked()), SLOT(slotRefresh()));
+ MiscUtils::setHint(c_longFormat, i18n("Show login time, JCPU and PCPU times."));
+ // toggle from field
+ c_toggleFromField = new QCheckBox(i18n("Toggle \"FROM\""), options);
+ c_toggleFromField->setChecked(kshutdownrc->statsToggleFromField);
+ MiscUtils::setHint(c_toggleFromField, i18n("Toggle the \"FROM\" (remote hostname) field."));
+ connect(c_toggleFromField, SIGNAL(clicked()), SLOT(slotRefresh()));
+
+ setButtonGuiItem(Details, KStdGuiItem::configure());
+ setDetailsWidget(options);
+ adjustSize();
+}
+
+MStatsTab::~MStatsTab()
+{
+ killProcess();
+}
+
+// protected
+
+void MStatsTab::keyPressEvent(QKeyEvent *e) {
+ // Ctrl+R, F5 = Refresh
+ if (
+ b_refresh->isEnabled() &&
+ (
+ ((e->key() == Key_F5) && (e->state() == 0)) ||
+ ((e->key() == Key_R) && (e->state() == ControlButton))
+ )
+ ) {
+ slotRefresh();
+ e->accept();
+ }
+ else {
+ KDialogBase::keyPressEvent(e);
+ }
+}
+
+// private
+
+void MStatsTab::killProcess() const
+{
+ // kill previous process (if any)
+ if (_process && _process->isRunning())
+ _process->kill();
+}
+
+// private slots
+
+void MStatsTab::slotProcessExit() {
+ _buf.replace("\n", "<br>");
+ _buf.replace(" ", "&nbsp;");
+
+ #define KS_HEADER(text) \
+ _buf.replace(text, "<font color=\"#a0a0a0\">" text "</font>");
+
+ #define KS_WARNING(text) \
+ _buf.replace(QRegExp("\\b" text "\\b"), "<font color=\"#ff0000\">" text "</font>");
+
+ // underline header
+ KS_HEADER("USER")
+ KS_HEADER("TTY")
+ KS_HEADER("FROM")
+ KS_HEADER("LOGIN@")
+ KS_HEADER("JCPU")
+ KS_HEADER("PCPU")
+ KS_HEADER("IDLE")
+ KS_HEADER("WHAT")
+ // highlight some important words
+// TODO: 2.0: add more keywords (e.g. backup)
+ KS_WARNING("root")
+ KS_WARNING("ssh")
+ KS_WARNING("su")
+ KS_WARNING("sudo")
+ KS_WARNING("telnet")
+
+ _buf.prepend("<pre style=\"font-family: " + KGlobalSettings::fixedFont().family() + "\"><b>");
+ _buf.append("</b></pre>");
+
+ te_output->setText(MiscUtils::HTML(_buf));
+ b_refresh->setEnabled(true);
+}
+
+void MStatsTab::slotReadStdout() {
+ _buf.append(_process->readStdout());
+}
+
+void MStatsTab::slotRefresh()
+{
+ b_refresh->setEnabled(false);
+
+ // update config
+ kshutdownrc->statsLongFormat = c_longFormat->isChecked();
+ kshutdownrc->statsToggleFromField = c_toggleFromField->isChecked();
+
+ _buf = "";
+ killProcess();
+ _process->clearArguments();
+ _process->addArgument("w");
+ if (!kshutdownrc->statsLongFormat)
+ _process->addArgument("-s"); // -s - short format
+ if (kshutdownrc->statsToggleFromField)
+ _process->addArgument("-f"); // -f - toggle "from" field
+ if (!_process->start()) {
+ _buf = "<b><font color=\"#ff0000\">" + i18n("Error") + "</font><br><br>";
+ _buf.append(i18n("Command: %1").arg(_process->arguments().join(" ")));
+ _buf.append("</b>");
+ te_output->setText(_buf);
+ b_refresh->setEnabled(true);
+ }
+}
diff --git a/kshutdown/mstatstab.h b/kshutdown/mstatstab.h
new file mode 100644
index 0000000..94ca43f
--- /dev/null
+++ b/kshutdown/mstatstab.h
@@ -0,0 +1,74 @@
+/*
+ mstatstab.h - A statistics dialog
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MSTATSTAB_H__
+#define __MSTATSTAB_H__
+
+#include <kdialogbase.h>
+
+class QCheckBox;
+class QProcess;
+class QTextEdit;
+
+class KPushButton;
+
+/** @short A statistics dialog (output from the `w' command). */
+class MStatsTab: public KDialogBase
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor.
+ */
+ MStatsTab();
+
+ /**
+ * Destructor.
+ */
+ virtual ~MStatsTab();
+
+ inline static MStatsTab *getInstance() {
+ if (!_instance)
+ _instance = new MStatsTab();
+
+ _instance->slotRefresh();
+ _instance->show();
+ _instance->raise();
+
+ return _instance;
+ }
+protected:
+ void keyPressEvent(QKeyEvent *e);
+private:
+ KPushButton *b_refresh;
+ static MStatsTab *_instance;
+ QCheckBox
+ *c_longFormat,
+ *c_toggleFromField;
+ QProcess *_process;
+ QString _buf;
+ QTextEdit *te_output;
+ void killProcess() const;
+private slots:
+ void slotProcessExit();
+ void slotReadStdout();
+ void slotRefresh();
+};
+
+#endif // __MSTATSTAB_H__
diff --git a/kshutdown/msystemtray.cpp b/kshutdown/msystemtray.cpp
new file mode 100644
index 0000000..f1a9a6e
--- /dev/null
+++ b/kshutdown/msystemtray.cpp
@@ -0,0 +1,212 @@
+/*
+ msystemtray.cpp - A system tray icon
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "configuration.h"
+#include "miscutils.h"
+#include "mmainwindow.h"
+#include "msystemtray.h"
+
+#include <qtimer.h>
+
+#include <kaction.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kpixmap.h>
+#include <kpixmapeffect.h>
+#include <kpopupmenu.h>
+#include <kwin.h>
+
+const double
+ KS_TRAY_FADE_CHANGE = 0.05f,
+ KS_TRAY_FADE_MAX = 0.7f;
+const int KS_TRAY_FADE_TIMEOUT = 50;
+const QColor KS_TRAY_FADE_COLOR = Qt::yellow;
+
+MSystemTray::Mode MSystemTray::_mode = Always;
+MSystemTray *MSystemTray::_instance = 0;
+
+// public
+
+MSystemTray::~MSystemTray()
+{
+ if (_flashIcon)
+ delete _flashIcon;
+ if (_saveIcon)
+ delete _saveIcon;
+}
+
+void MSystemTray::flashIcon()
+{
+ if (_saveIcon)
+ delete _saveIcon;
+ _saveIcon = new QPixmap();
+ *_saveIcon = *pixmap();
+ _flashCount = 0;
+ setPixmap(*_flashIcon);
+ _flashTimer->start(200);
+}
+
+void MSystemTray::setActive(const bool yes)
+{
+ // kdDebug() << "MSystemTray::setActive: " << yes << endl;
+
+ if (_active == yes)
+ return;
+
+ _active = yes;
+ _incFade = _active;
+ _fadeTimer->start(KS_TRAY_FADE_TIMEOUT);
+}
+
+void MSystemTray::setMode(const Mode mode)
+{
+ // kdDebug() << "MSystemTray::setMode: " << mode << endl;
+
+ _mode = mode;
+ switch (_mode)
+ {
+ case Always:
+ ks_tray; // init instance
+ if (ks_actions->active())
+ _instance->setActive(true);
+ _instance->show();
+ MiscUtils::setAutostart(true);
+ break;
+ case IfActive:
+ if (ks_actions->active())
+ {
+ ks_tray; // init instance
+ _instance->setActive(true);
+ _instance->show();
+ MiscUtils::setAutostart(true);
+ }
+ else
+ {
+ delete _instance;
+ _instance = 0;
+ MiscUtils::setAutostart(false);
+ }
+ break;
+ case Never:
+ delete _instance;
+ _instance = 0;
+ MiscUtils::setAutostart(false);
+ break;
+ }
+}
+
+// protected
+
+void MSystemTray::mousePressEvent(QMouseEvent *e)
+{
+ // middle mouse button - display actions menu
+// TODO: 2.0: configure middle button action
+ if (e->button() == MidButton)
+ contextMenu()->popup(e->globalPos());
+ else
+ KSystemTray::mousePressEvent(e);
+}
+
+// private
+
+MSystemTray::MSystemTray()
+ : KSystemTray(ks_main, "MSystemTray"),
+ _active(false),
+ _incFade(true),
+ _fadeValue(0.0f),
+ _flashCount(0),
+ _saveIcon(0)
+{
+ setPixmap(SmallIcon("exit", KIcon::SizeSmallMedium)); // 22x22
+
+// TODO: 2.0: mouse wheel: decrease/increase end time by 5min. (?)
+
+ // init fade timer
+ _fadeTimer = new QTimer(this);
+ connect(_fadeTimer, SIGNAL(timeout()), SLOT(slotFade()));
+
+ // init flash timer
+ _flashTimer = new QTimer(this);
+ connect(_flashTimer, SIGNAL(timeout()), SLOT(slotFlashTimeout()));
+
+ // init icons
+ KPixmap pm(SmallIcon("exit", KIcon::SizeSmallMedium));
+ _flashIcon = new KPixmap(KPixmapEffect::fade(pm, 0.7f, white));
+
+ show();
+
+ // add some items to the context menu
+ KPopupMenu *pm_systemTrayMenu = contextMenu();
+ pm_systemTrayMenu->setCaption("KShutDown");
+ // id 0 = title
+ ks_main->shutDownAction()->plug(pm_systemTrayMenu, 1);
+ ks_main->rebootAction()->plug(pm_systemTrayMenu, 2);
+ ks_main->lockScreenAction()->plug(pm_systemTrayMenu, 3);
+ ks_main->logoutAction()->plug(pm_systemTrayMenu, 4);
+ pm_systemTrayMenu->insertSeparator(5);
+ ks_main->cancelAction()->plug(pm_systemTrayMenu, 6);
+ pm_systemTrayMenu->insertSeparator(7);
+ ks_main->configureKShutDownAction()->plug(pm_systemTrayMenu, 8);
+ pm_systemTrayMenu->insertTearOffHandle();
+
+ // quit signal
+ connect(
+ this, SIGNAL(quitSelected()),
+ ks_main, SLOT(slotQuit()));
+}
+
+// private slots
+
+void MSystemTray::slotFade()
+{
+ if (_incFade)
+ {
+ _fadeValue += KS_TRAY_FADE_CHANGE;
+ if (_fadeValue > KS_TRAY_FADE_MAX)
+ {
+ _fadeTimer->stop();
+ _fadeValue = KS_TRAY_FADE_MAX;
+ }
+ }
+ else
+ {
+ _fadeValue -= KS_TRAY_FADE_CHANGE;
+ if (_fadeValue < 0.0f)
+ {
+ _fadeTimer->stop();
+ _fadeValue = 0.0f;
+ }
+ }
+ KPixmap p(SmallIcon("exit", KIcon::SizeSmallMedium));
+ setPixmap(KPixmapEffect::fade(p, _fadeValue, KS_TRAY_FADE_COLOR));
+}
+
+void MSystemTray::slotFlashTimeout()
+{
+ _flashCount++;
+
+ if ((_flashCount % 2) == 0)
+ setPixmap(*_saveIcon);
+ else
+ setPixmap(*_flashIcon);
+
+ if (_flashCount == 6)
+ _flashTimer->stop();
+}
diff --git a/kshutdown/msystemtray.h b/kshutdown/msystemtray.h
new file mode 100644
index 0000000..6424639
--- /dev/null
+++ b/kshutdown/msystemtray.h
@@ -0,0 +1,113 @@
+/*
+ msystemtray.h - A system tray icon
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MSYSTEMTRAY_H__
+#define __MSYSTEMTRAY_H__
+
+#include <ksystemtray.h>
+
+class KPixmap;
+
+#define ks_tray MSystemTray::getInstance()
+
+/** @short A system tray icon. */
+class MSystemTray: public KSystemTray
+{
+ Q_OBJECT
+public:
+ /**
+ * System tray icon modes.
+ */
+ enum Mode {
+ Always = 0, /**< Always visible. */
+ IfActive = 1, /**< Visible if action is active. */
+ Never = 2 /**< Always hidden. */
+ };
+
+ /**
+ * Destructor.
+ */
+ virtual ~MSystemTray();
+
+ /**
+ * Flashes the icon.
+ */
+ void flashIcon();
+
+ /**
+ * Constructs and returns a singleton instance
+ * of the system tray icon.
+ */
+ inline static MSystemTray *getInstance()
+ {
+ if (!_instance)
+ _instance = new MSystemTray();
+
+ return _instance;
+ }
+
+ /**
+ * Returns @c true if the instance of
+ * the system tray was created.
+ */
+ inline static bool isInstance() { return _instance; }
+
+ /**
+ * Switches icon between idle and active states.
+ * @param yes If @c true the state is "idle" (normal icon);
+ * otherwise the state is "active" (highlighted icon)
+ */
+ void setActive(const bool yes);
+
+ /**
+ * Returns the system tray icon mode.
+ */
+ static inline Mode mode() { return _mode; }
+
+ /**
+ * Sets system tray icon mode to @p mode.
+ */
+ static void setMode(const Mode mode);
+protected:
+ /**
+ * Overriden to handle middle button click; displays the actions menu.
+ * @param e A mouse event
+ */
+ virtual void mousePressEvent(QMouseEvent *e);
+private:
+ // icon stuff
+ bool
+ _active,
+ _incFade;
+ double _fadeValue;
+ int _flashCount;
+ KPixmap *_flashIcon;
+ static Mode _mode;
+ QPixmap *_saveIcon;
+ QTimer
+ *_fadeTimer,
+ *_flashTimer;
+ static MSystemTray *_instance;
+ MSystemTray();
+private slots:
+ void slotFade();
+ void slotFlashTimeout();
+};
+
+#endif // __MSYSTEMTRAY_H__
diff --git a/kshutdown/mtip.cpp b/kshutdown/mtip.cpp
new file mode 100644
index 0000000..e571b42
--- /dev/null
+++ b/kshutdown/mtip.cpp
@@ -0,0 +1,90 @@
+/*
+ mtip.cpp - A tip widget
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "miscutils.h"
+#include "mtip.h"
+
+#include <qtooltip.h>
+
+#include <kiconloader.h>
+
+// public
+
+MTip::MTip(const TipType tipType, QWidget *parent)
+ : KActiveLabel(parent, "MTip")
+{
+ setFrameStyle(StyledPanel | Sunken);
+ setTipType(tipType);
+ setTipText("");
+}
+
+MTip::~MTip()
+{
+}
+
+void MTip::setTipText(const QString &value)
+{
+ // valign and "center" ?
+ QString leftCell;
+ if (_iconPath.isEmpty()) {
+ leftCell = "";
+ }
+ else {
+ leftCell = "<td align=\"center\" valign=\"center\">";
+ leftCell += "<img src=\"" + _iconPath + "\">";
+ leftCell += "</td>";
+ }
+ setText(MiscUtils::HTML(
+ "<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\">" \
+ "<tr>" + leftCell + "<td>" + value + "</td></tr>" \
+ "</table>"
+ ));
+}
+
+void MTip::setTipType(const TipType value)
+{
+ _type = value;
+ switch (_type)
+ {
+ case Info:
+ _iconPath = getIconPath("messagebox_info");
+ setPaletteBackgroundColor(white);
+ setPaletteForegroundColor(blue);
+ break;
+ case Normal:
+ _iconPath = getIconPath("messagebox_info");
+ setPaletteBackgroundColor(QToolTip::palette().active().background());
+ setPaletteForegroundColor(black);
+ break;
+ case Warning:
+ _iconPath = getIconPath("messagebox_warning");
+ setPaletteBackgroundColor(yellow);
+ setPaletteForegroundColor(black);
+ break;
+ default:
+ _iconPath = "";
+ }
+}
+
+// private
+
+QString MTip::getIconPath(const QString &name) const
+{
+ return KGlobal::iconLoader()->iconPath(name, KIcon::NoGroup, KIcon::SizeLarge);
+}
diff --git a/kshutdown/mtip.h b/kshutdown/mtip.h
new file mode 100644
index 0000000..4de2fb3
--- /dev/null
+++ b/kshutdown/mtip.h
@@ -0,0 +1,65 @@
+/*
+ mtip.h - A tip widget
+ Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __MTIP_H__
+#define __MTIP_H__
+
+#include <kactivelabel.h>
+
+/** @short A tip widget based on the @c KActiveLabel widget. */
+class MTip: public KActiveLabel
+{
+public:
+ /**
+ * Tip types.
+ */
+ enum TipType {
+ Info, /**< Info tip. */
+ Normal, /**< Normal tip. */
+ Warning /**< Warning tip. */
+ };
+
+ /**
+ * Constructor.
+ * @param tipType A tip type
+ * @param parent A parent widget
+ */
+ MTip(const TipType tipType, QWidget *parent);
+
+ /**
+ * Destructor.
+ */
+ virtual ~MTip();
+
+ /**
+ * Sets tip text to @p value.
+ */
+ void setTipText(const QString &value);
+
+ /**
+ * Sets tip type to @p value.
+ */
+ void setTipType(const TipType value);
+private:
+ QString _iconPath;
+ TipType _type;
+ QString getIconPath(const QString &name) const;
+};
+
+#endif // __MTIP_H__
diff --git a/kshutdown/progressbar.cpp b/kshutdown/progressbar.cpp
new file mode 100644
index 0000000..96a9136
--- /dev/null
+++ b/kshutdown/progressbar.cpp
@@ -0,0 +1,153 @@
+/*
+ progressbar.cpp - Progress Bar
+ Copyright (C) 2006 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <qapplication.h>
+#include <qdesktopwidget.h>
+#include <qpainter.h>
+
+#include <kapplication.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kpopupmenu.h>
+
+#include "configuration.h"
+#include "progressbar.h"
+
+// static
+
+ProgressBar *ProgressBar::_instance = 0;
+
+// public
+
+ProgressBar::~ProgressBar() { }
+
+void ProgressBar::setPosition(const Position value) {
+ // kdDebug() << "ProgressBar::setPosition: " << value << endl;
+ kshutdownrc->progressBarPosition = value;
+
+ _position = value;
+ QDesktopWidget *desktop = QApplication::desktop();
+ resize(desktop->width() - 4, height());
+ switch (_position) {
+ case TOP:
+ move(2, 0);
+ break;
+ case BOTTOM:
+ move(2, desktop->height() - height());
+ break;
+ default:
+ move(2, 0);
+ break;
+ }
+}
+
+void ProgressBar::setHeight(const int value) {
+ int newHeight = (value < 2) ? 2 : value;
+ resize(width(), newHeight);
+}
+
+void ProgressBar::setProgress(const int value) {
+ // kdDebug() << "ProgressBar::setProgress: " << value << endl;
+
+ int complete = _total - value;
+
+ if (_complete == complete)
+ return;
+
+ _complete = complete;
+
+ repaint();
+}
+
+void ProgressBar::setValues(const int complete, const int total) {
+ // kdDebug() << "ProgressBar::setValues: " << complete << ", " << total << endl;
+
+ if ((_complete == complete) && (_total == total))
+ return;
+
+ _complete = complete;
+ _total = total;
+ repaint();
+}
+
+// protected
+
+void ProgressBar::mousePressEvent(QMouseEvent *e) {
+ // kdDebug() << "ProgressBar::mousePressEvent" << endl;
+ if (e->button() == RightButton) {
+// TODO: 2.0: color configuration
+// TODO: 2.0: size configuration
+ // show popup menu
+ KPopupMenu *popup = new KPopupMenu(this);
+ popup->insertTitle(kapp->miniIcon(), "KShutDown");
+ popup->insertItem(i18n("Hide"), this, SLOT(hide()));
+ popup->insertTitle("Position");
+ int topPositionItem = popup->insertItem(i18n("Top"), this, SLOT(slotSetTopPosition()));
+ popup->setItemChecked(topPositionItem, _position == TOP);
+ int bottomPositionItem = popup->insertItem(i18n("Bottom"), this, SLOT(slotSetBottomPosition()));
+ popup->setItemChecked(bottomPositionItem, _position == BOTTOM);
+ popup->popup(e->globalPos());
+ e->accept();
+ }
+ QWidget::mousePressEvent(e);
+}
+
+void ProgressBar::paintEvent(QPaintEvent *) {
+ // kdDebug() << "ProgressBar::paintEvent" << endl;
+
+ QPainter g(this);
+ int w = width();
+ int h = height();
+ g.fillRect(0, 0, w, h, QBrush(backgroundColor()));
+
+ if ((_complete <= 0) || (_total <= 0))
+ return;
+
+ w = (int)((float)w * ((float)_complete * 100.0f / (float)_total) / 100.0f);
+ g.fillRect(0, 0, w, h, QBrush(foregroundColor()));
+}
+
+// private
+
+ProgressBar::ProgressBar()
+ : QWidget(
+ 0,
+ "ProgressBar",
+ WStyle_NoBorder | WStyle_StaysOnTop | WType_TopLevel | WX11BypassWM
+ ),
+ _complete(0),
+ _total(0) {
+
+ // kdDebug() << "ProgressBar::ProgressBar()" << endl;
+
+ setBackgroundColor(black);
+ setPaletteForegroundColor(yellow);
+ setHeight(3);
+ setPosition((Position)kshutdownrc->progressBarPosition);
+}
+
+// private slots
+
+void ProgressBar::slotSetBottomPosition() {
+ setPosition(BOTTOM);
+}
+
+void ProgressBar::slotSetTopPosition() {
+ setPosition(TOP);
+}
diff --git a/kshutdown/progressbar.h b/kshutdown/progressbar.h
new file mode 100644
index 0000000..8a040d0
--- /dev/null
+++ b/kshutdown/progressbar.h
@@ -0,0 +1,66 @@
+/*
+ progressbar.h - Progress Bar
+ Copyright (C) 2006 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __PROGRESSBAR_H__
+#define __PROGRESSBAR_H__
+
+#include <qwidget.h>
+
+#include "progressbar.h"
+
+class ProgressBar: public QWidget {
+ Q_OBJECT
+public:
+ enum Position { TOP, BOTTOM };
+ virtual ~ProgressBar();
+ inline static void freeInstance() {
+ if (_instance) {
+ delete _instance;
+ _instance = 0;
+ }
+ }
+ inline static ProgressBar *getInstance() {
+ if (!_instance)
+ _instance = new ProgressBar();
+
+ return _instance;
+ }
+ inline static bool isInstance() {
+ return _instance;
+ }
+ inline Position position() const { return _position; }
+ void setPosition(const Position value);
+ void setHeight(const int value);
+ void setProgress(const int complete);
+ void setValues(const int complete, const int total);
+protected:
+ void mousePressEvent(QMouseEvent *e);
+ void paintEvent(QPaintEvent *);
+private:
+ int _complete;
+ int _total;
+ Position _position;
+ static ProgressBar *_instance;
+ ProgressBar();
+private slots:
+ void slotSetBottomPosition();
+ void slotSetTopPosition();
+};
+
+#endif // __PROGRESSBAR_H__
diff --git a/kshutdown/systemconfig.cpp b/kshutdown/systemconfig.cpp
new file mode 100644
index 0000000..6b919e0
--- /dev/null
+++ b/kshutdown/systemconfig.cpp
@@ -0,0 +1,189 @@
+/*
+ systemconfig.cpp - A system configuration manager
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <stdlib.h>
+
+#include "miscutils.h"
+#include "systemconfig.h"
+
+#include <qfileinfo.h>
+#include <qheader.h>
+
+#include <kapplication.h>
+#include <kiconloader.h>
+#include <klistview.h>
+#include <klocale.h>
+
+// http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=417301
+#include <cstdlib>
+
+// private
+
+int SystemConfig::_canShutDown = -1;
+
+// public
+
+bool SystemConfig::canShutDown()
+{
+/*
+ if (_canShutDown == -1)
+ {
+ QCString XDM_MANAGED = ::getenv("XDM_MANAGED");
+
+ if (XDM_MANAGED.contains("maysd") || XDM_MANAGED.contains("classic"))
+ _canShutDown = 1;
+ else
+ _canShutDown = 0;
+ }
+*/
+ _canShutDown = 1;
+
+ return _canShutDown == 1;
+}
+
+void SystemConfig::check(QWidget *parent)
+{
+ SystemConfig *systemConfig = new SystemConfig(parent);
+ systemConfig->exec();
+ delete systemConfig;
+}
+
+// private
+
+SystemConfig::SystemConfig(QWidget *parent)
+ : KDialogBase(
+ parent,
+ "SystemConfig", // name
+ true, // modal
+ i18n("System Configuration"),
+ Close,
+ Close // default button
+ ),
+ _problems(0)
+{
+ _messages = new KListView(this, "KListView::_messages");
+ _messages->setAllColumnsShowFocus(true);
+ _messages->setItemMargin(5);
+ _messages->setSorting(-1); // no sort
+ _messages->addColumn("");
+ _messages->addColumn(i18n("Message"));
+ _messages->header()->setClickEnabled(false);
+ connect(_messages, SIGNAL(executed(QListViewItem *)), SLOT(slotExecuted(QListViewItem *)));
+ connect(_messages, SIGNAL(spacePressed(QListViewItem *)), SLOT(slotExecuted(QListViewItem *)));
+ setMainWidget(_messages);
+
+ _shutdownAllowItem = add(Info, i18n("Tip: Click here if you have problem with the \"/sbin/shutdown\" command."));
+
+ checkFile("/sbin/poweroff");
+ checkFile("/sbin/reboot");
+ checkFile("/sbin/shutdown");
+ checkKDM();
+ checkKDE();
+
+ if (_problems == 0)
+ add(OK, i18n("No problems were found."));
+}
+
+KListViewItem *SystemConfig::add(const Type type, const QString &message)
+{
+ KListViewItem *item = new KListViewItem(_messages);
+ item->setMultiLinesEnabled(true);
+ switch (type)
+ {
+ case Info:
+ item->setPixmap(0, SmallIcon("messagebox_info"));
+ break;
+ case OK:
+ item->setPixmap(0, SmallIcon("button_ok"));
+ break;
+ case Warning:
+ _problems++;
+ item->setPixmap(0, SmallIcon("messagebox_warning"));
+ break;
+ }
+ item->setText(1, message);
+
+ return item;
+}
+
+void SystemConfig::checkFile(const QString &file)
+{
+ QFileInfo program(file);
+
+ if (!program.exists())
+ {
+ add(Warning, i18n("Program \"%1\" was not found!").arg(file));
+
+ return;
+ }
+
+ if (!program.isExecutable())
+ {
+ add(Warning, i18n("No permissions to execute \"%1\".").arg(file));
+ }
+}
+
+void SystemConfig::checkKDE()
+{
+ QCString KDE_FULL_SESSION = ::getenv("KDE_FULL_SESSION");
+ if (KDE_FULL_SESSION != "true")
+ {
+ add(Warning, i18n("It seems that this is not a KDE full session.\nKShutDown was designed to work with KDE.\nHowever, you can customize Actions in the KShutDown settings dialog\n(Settings -> Configure KShutDown... -> Actions)."));
+ }
+}
+
+/* TODO: 2.0: KDM configurator
+From old FAQ:
+- Do it as root!
+- Make sure you first create backup of the "/etc/sysconfig/desktop" file
+- Remove all "GNOME" and "GDM" lines from "/etc/sysconfig/desktop" file
+- Add new line: DISPLAYMANAGER="KDE"
+- Reboot system and login again
+*/
+void SystemConfig::checkKDM()
+{
+ if (!canShutDown())
+ {
+// TODO: 2.0: auto configuration
+ add(Info, i18n("Tip: You can customize Actions to work with GDM.\n(Settings -> Configure KShutDown... -> Actions)"));
+ _kdmNotDetected = add(Warning, i18n("KDE Display Manager is not running,\nor the shut down/reboot function is disabled.\n\nClick here to configure KDM."));
+ }
+}
+
+// private slots
+
+void SystemConfig::slotExecuted(QListViewItem *item)
+{
+ if (!item)
+ return;
+
+ if (item == _kdmNotDetected)
+ {
+ MiscUtils::runShellCommand("kdesu -c \"kcmshell kdm\" -i \"exit\"");
+
+ return;
+ }
+
+ if (item == _shutdownAllowItem)
+ {
+ kapp->invokeBrowser("http://doc.gwos.org/index.php/NonRootShutdown");
+
+ return;
+ }
+}
diff --git a/kshutdown/systemconfig.h b/kshutdown/systemconfig.h
new file mode 100644
index 0000000..6fd3729
--- /dev/null
+++ b/kshutdown/systemconfig.h
@@ -0,0 +1,60 @@
+/*
+ systemconfig.h - A system configuration manager
+ Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef __SYSTEMCONFIG_H__
+#define __SYSTEMCONFIG_H__
+
+#include <kdialogbase.h>
+
+class KListView;
+class KListViewItem;
+
+/** @short A system configuration manager. */
+class SystemConfig: KDialogBase
+{
+ Q_OBJECT
+public:
+ /**
+ * Returns @c true if the <b>shut down</b> and @b reboot functions are available.
+ */
+ static bool canShutDown();
+
+ /**
+ * Shows a modal dialog, and checks the system configuration.
+ * @param parent A parent widget
+ */
+ static void check(QWidget *parent);
+private:
+ enum Type { Info, OK, Warning };
+ static int _canShutDown;
+ int _problems;
+ KListView *_messages;
+ KListViewItem
+ *_kdmNotDetected,
+ *_shutdownAllowItem;
+ SystemConfig(QWidget *parent);
+ KListViewItem *add(const Type type, const QString &message);
+ void checkFile(const QString &file);
+ void checkKDE();
+ void checkKDM();
+private slots:
+ void slotExecuted(QListViewItem *item);
+};
+
+#endif // __SYSTEMCONFIG_H__
diff --git a/kshutdownlockout/Makefile.am b/kshutdownlockout/Makefile.am
new file mode 100644
index 0000000..7fd6b25
--- /dev/null
+++ b/kshutdownlockout/Makefile.am
@@ -0,0 +1,15 @@
+INCLUDES = $(all_includes)
+METASOURCES = AUTO
+
+kde_module_LTLIBRARIES = kshutdownlockout_panelapplet.la
+
+kshutdownlockout_panelapplet_la_SOURCES = lockout.cpp
+kshutdownlockout_panelapplet_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries)
+kshutdownlockout_panelapplet_la_LIBADD = $(LIB_KSYCOCA)
+
+noinst_HEADERS = lockout.h
+
+lnkdir = $(kde_datadir)/kicker/applets
+lnk_DATA = kshutdownlockout.desktop
+
+EXTRA_DIST = $(lnk_DATA)
diff --git a/kshutdownlockout/kshutdownlockout.desktop b/kshutdownlockout/kshutdownlockout.desktop
new file mode 100644
index 0000000..7cdc247
--- /dev/null
+++ b/kshutdownlockout/kshutdownlockout.desktop
@@ -0,0 +1,71 @@
+[Desktop Entry]
+Type=Plugin
+# Encoding: UTF-8
+Name=KShutDown
+Comment=Lock/Logout buttons for the panel
+Comment[af]=Sluit/Teken af knoppies vir die paneel
+Comment[ar]=أزرار اقفال/خروج للوحة المهام
+Comment[az]=Panel appletlərini bağla/ayır
+Comment[bg]=Системен аплет за заключване на екрана и изход от системата
+Comment[bn]=প্যানেল-এর জন্য লক এবং লগ-আউট বাটন
+Comment[bs]=Dugmad za zaključavanje i odjavu za panel
+Comment[ca]=Botons al plafó per a bloquejar/sortir
+Comment[cs]=Umožňuje snadné odhlášení/uzamčení z panelu
+Comment[cy]=Botymau cloi/allgofnodi i'r panel
+Comment[da]=Lås/Logaf-knapper til panelet
+Comment[de]=Bildschirmsperr- und Abmeldeknöpfe für die Kontrollleiste
+Comment[el]=Κουμπιά Κλειδώματος/Αποσύνδεσης για τον πίνακα
+Comment[eo]=Butonoj por ekranŝloso kaj adiaŭo en Panelo
+Comment[es]=Botones de bloqueo y salida del panel
+Comment[et]=Lukustamise ja väljalogimise nupud paneelil
+Comment[eu]=Lock/Logout botoiak panelerako
+Comment[fa]=دکمه‌ی خروج/قفل صفحه‌ی‌ کنترل‌
+Comment[fi]=Lukitse/Kirjaudu ulos napit paneeliin
+Comment[fr]=Des boutons sur le tableau de bord pour verrouiller le bureau ou se déconnecter
+Comment[gl]=Botóns de Bloqueo/Saída no panel
+Comment[he]=כפתורי נעילה\יציאה ללוח
+Comment[hi]=फलक के लिए ताला/लॉगआउट बटन
+Comment[hr]=Tipke za zaključavanje/odjavu na ploči
+Comment[hu]=A panelba illeszkedő nyomógomok az asztal zárolásához és a kijelentkezéshez
+Comment[is]=Stimpla út/Læsa skjáborði hnappar fyrir spjaldið
+Comment[it]=Pulsanti sul pannello per il blocco dello schermo o il termine della sessione
+Comment[ja]=パネルからロック/ログアウトができます
+Comment[lo]=ປຸ່ມລອກ/ລອກອິນສຳລັບຖາດພາເນລ
+Comment[lt]=Užrakinimo/išsiregistravimo mygtukai pultui
+Comment[lv]=Slēgt/Atteikties pogas panelim
+Comment[mk]=Копчиња Заклучи/Одјави се за панелот
+Comment[mn]=Удирдах цонхон дээрх дэлгэц түгжих- ба гарах товч
+Comment[mt]=Applet għall-pannell biex ittemm is-sessjoni jew issakkar l-iskrin
+Comment[nb]=Lås/Loggut-knapp for panelet
+Comment[nds]=Paneelknööp för't Schirm afsluten / Afmellen
+Comment[nl]=Paneelknoppen om af te melden of het scherm te vergrendelen
+Comment[nn]=Panelknappar for skjermlås/utlogging
+Comment[nso]=Ditobetswa tsa Notlelo/Etswa tsa panel
+Comment[pa]=ਪੈਨਲ ਲਈ ਤਾਲਾ/ਬਾਹਰੀ ਦਰ ਐਪਲਿਟ
+Comment[pl]=Przyciski blokowania i wylogowania dla panelu
+Comment[pt]=Os botões para trancar o ecrã e sair do KDE para o painel
+Comment[pt_BR]=Botões de Travar/Sair para o Painel
+Comment[ro]=Butoane de ieşire şi de blocare ecran, pentru panou
+Comment[ru]=Кнопки выхода/запирания экрана на панели
+Comment[se]=Lohkadan-/olggosčálihanboalut panela várás
+Comment[sk]=Tlačidlá panelu pre odhlásenie alebo uzamknutie obrazovky
+Comment[sl]=Gumba za zaklenitev in odjavo na pultu
+Comment[sr]=Дугмад за закључавање/одјављивање за панел
+Comment[sr@Latn]=Dugmad za zaključavanje/odjavljivanje za panel
+Comment[sv]=Lås/Logga ut-knappar för panelen
+Comment[ta]=பூட்டு/பலகத்திற்கான வெளிச்செல் பட்டன்கள்
+Comment[tg]=Кнопкаҳои баромад/қуфли экран дар панел
+Comment[th]=ปุ่มล็อค/ล็อกอินสำหรับถาดพาเนล
+Comment[tr]=Panel için Kilitle/Çık düğmeleri
+Comment[uk]=Кнопки "Замкнути" та "Завершити" для панелі
+Comment[uz]=Панел учун қулфлаш/чиқиш тугмалари
+Comment[ven]=Khiela/bathene dzau litsha dza phanele
+Comment[vi]=Nút Lock/Logout cho khung
+Comment[xh]=Tshixa/Amaqhosa ophumo ngaphandle lwe window eneenkcukacha
+Comment[xx]=xxLock/Logout buttons for the panelxx
+Comment[zh_CN]=面板的锁定/注销按钮
+Comment[zh_TW]=在面板上顯示「螢幕鎖定/登出」按鈕
+Comment[zu]=Izinkinobho Zokukhiya/Ukuphumela ngaphandle zewindi lemininingwane
+# DUPLICATE: Comment[el]=Κουμπιά κλειδώματος/αποσύνδεσης για τον πίνακα
+Icon=kshutdown
+X-KDE-Library=kshutdownlockout_panelapplet
diff --git a/kshutdownlockout/lockout.cpp b/kshutdownlockout/lockout.cpp
new file mode 100644
index 0000000..6fd7085
--- /dev/null
+++ b/kshutdownlockout/lockout.cpp
@@ -0,0 +1,236 @@
+/*****************************************************************
+
+Copyright (c) 2001 Carsten Pfeiffer <pfeiffer@kde.org>
+ 2001 Matthias Elter <elter@kde.org>
+ 2001 Martijn Klingens <mklingens@yahoo.com>
+
+ KShutDown Branch:
+ 2005 Stephen Ellwood
+ 2005 Konrad Twardowski <kdtonline@poczta.onet.pl>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+******************************************************************/
+
+// TODO: 2.0: update handbook
+
+#include <sys/types.h>
+
+#include "lockout.h"
+
+#include <qlayout.h>
+#include <qtoolbutton.h>
+#include <qtooltip.h>
+
+#include <dcopclient.h>
+#include <kaction.h>
+#include <kapplication.h>
+#include <kglobal.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpopupmenu.h>
+#include <kprocess.h>
+#include <krun.h>
+
+// plugin
+
+#if !KDE_IS_VERSION(3,3,2)
+#undef KDE_EXPORT
+#define KDE_EXPORT
+#endif
+
+extern "C"
+{
+ KDE_EXPORT KPanelApplet *init(QWidget *parent, const QString& configFile)
+ {
+ // share i18n with KShutDown
+ KGlobal::locale()->insertCatalogue("kshutdown");
+
+ return new Lockout(configFile, parent);
+ }
+}
+
+// public
+
+Lockout::Lockout(const QString& configFile, QWidget *parent)
+ : KPanelApplet(
+ configFile,
+ KPanelApplet::Normal,
+ 0, // no standard actions
+ parent,
+ "kshutdownlockout"
+ )
+{
+ setBackgroundOrigin(AncestorOrigin);
+ setFrameStyle(Panel | Sunken);
+
+ initActions();
+
+ KPopupMenu *pm_actions = new KPopupMenu(this);
+ pm_actions->insertTitle(SmallIcon("messagebox_warning"), i18n("No Delay"));
+ _shutDownAction->plug(pm_actions);
+ _rebootAction->plug(pm_actions);
+ _lockScreenAction->plug(pm_actions);
+ _logoutAction->plug(pm_actions);
+ pm_actions->insertSeparator();
+ _configureKShutDownAction->plug(pm_actions);
+
+ QVBoxLayout *layout = new QVBoxLayout(this);
+ QToolButton *button = new QToolButton(this);
+ button->setAutoRaise(true);
+ button->setBackgroundMode(X11ParentRelative);
+ button->setPixmap(SmallIcon("exit"));
+ button->setPopupDelay(100);
+ button->setMinimumSize(button->pixmap()->size());
+ button->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding));
+ connect(button, SIGNAL(clicked()), this, SLOT(slotShowKShutDown()));
+
+ button->setPopup(pm_actions);
+ layout->addWidget(button);
+
+/* // read configuration
+ KConfig *config = this->config();
+ config->setGroup("kshutdownlockout");
+ _transparent = config->readBoolEntry("Transparent", true);
+*/
+ if (!kapp->dcopClient()->isAttached())
+ kapp->dcopClient()->attach();
+ connect(kapp, SIGNAL(iconChanged(int)), SLOT(slotIconChanged()));
+
+ QToolTip::add(
+ this,
+ "<qt>" \
+ "<b>KShutDown</b><br><br>" +
+ i18n("Click for KShutDown main window<br>Click and hold for menu") +
+ "</qt>"
+ );
+}
+
+Lockout::~Lockout()
+{
+ KGlobal::locale()->removeCatalogue("kshutdown");
+}
+
+int Lockout::heightForWidth(int/* width*/) const
+{
+ return sizeHint().height();
+}
+
+int Lockout::widthForHeight(int/* height*/) const
+{
+ return sizeHint().width();
+}
+
+// private
+
+void Lockout::callKShutDown(const QCString &function) {
+ DCOPClient *client = kapp->dcopClient();
+ if (!client->isApplicationRegistered("kshutdown")) {
+ // run KShutDown
+ KProcess *p = new KProcess();
+ if (!p) {
+ KMessageBox::error(0, i18n("Could not run KShutDown!"));
+
+ return;
+ }
+ *p << "kshutdown";
+ *p << "--init";
+ if (!p->start(KProcess::Block))
+ KMessageBox::error(0, i18n("Could not run KShutDown!"));
+ delete p;
+ }
+ client->send("kshutdown", "KShutdownIface", function, "");
+}
+
+void Lockout::initActions() {
+ KActionCollection *ac_shutDown = new KActionCollection(this, this);
+
+ _lockScreenAction = new KAction(
+ i18n("Lock Screen"), "lock", KShortcut(),
+ this, SLOT(slotLockScreen()),
+ ac_shutDown, "kshutdown_lockscreen"
+ );
+
+ _logoutAction = new KAction(
+ i18n("End Current Session"), "undo", KShortcut(),
+ this, SLOT(slotLogout()),
+ ac_shutDown, "kshutdown_logout"
+ );
+
+ _rebootAction = new KAction(
+ i18n("Restart Computer"), "reload", KShortcut(),
+ this, SLOT(slotReboot()),
+ ac_shutDown, "kshutdown_reboot"
+ );
+
+ _shutDownAction = new KAction(
+ i18n("Turn Off Computer"), "exit", KShortcut(),
+ this, SLOT(slotShutDown()),
+ ac_shutDown, "kshutdown_shutdown"
+ );
+
+ // standard actions
+
+ _configureKShutDownAction = new KAction(
+ i18n("&Configure KShutDown..."), "configure", KShortcut(),
+ this, SLOT(slotConfigureKShutDown()),
+ ac_shutDown, "options_configure"
+ );
+}
+
+void Lockout::runCommand(const QString &command) {
+ pid_t pid = KRun::run(command, KURL::List());
+ if (!pid)
+ KMessageBox::error(0, i18n("Could not run KShutDown!"));
+}
+
+// private slots
+
+void Lockout::slotCancel() {
+ callKShutDown("cancel()");
+}
+
+void Lockout::slotConfigureKShutDown() {
+ callKShutDown("configure()");
+}
+
+void Lockout::slotIconChanged() {
+// FIXME: 2.0: update action icons
+ setIcon(SmallIcon("exit"));
+}
+
+void Lockout::slotLockScreen() {
+ callKShutDown("lockScreen()");
+}
+
+void Lockout::slotLogout() {
+ runCommand("kshutdown --init --confirm --logout");
+}
+
+void Lockout::slotReboot() {
+ runCommand("kshutdown --init --confirm --reboot");
+}
+
+void Lockout::slotShowKShutDown() {
+ callKShutDown("makeVisible()");
+}
+
+void Lockout::slotShutDown() {
+ runCommand("kshutdown --init --confirm --shutdown");
+}
diff --git a/kshutdownlockout/lockout.h b/kshutdownlockout/lockout.h
new file mode 100644
index 0000000..faecd58
--- /dev/null
+++ b/kshutdownlockout/lockout.h
@@ -0,0 +1,59 @@
+#ifndef __LOCKOUT_H__
+#define __LOCKOUT_H__
+
+#include <kpanelapplet.h>
+
+class KAction;
+
+/**
+ * @short A KShutDown panel applet.
+ * Based on the Lockout applet.
+ */
+class Lockout: public KPanelApplet
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructs a new applet.
+ * @param configFile A configuration file (provided by the Kicker)
+ * @param parent A parent widget
+ */
+ Lockout(const QString& configFile, QWidget *parent = 0);
+
+ /**
+ * Destructor.
+ */
+ ~Lockout();
+
+ /**
+ * Returns a suggested height for a given @p width.
+ */
+ int heightForWidth(int width) const;
+
+ /**
+ * Returns a suggested width for a given @p height.
+ */
+ int widthForHeight(int height) const;
+private:
+ bool _transparent;
+ KAction
+ *_configureKShutDownAction,
+ *_lockScreenAction,
+ *_logoutAction,
+ *_rebootAction,
+ *_shutDownAction;
+ void callKShutDown(const QCString &function);
+ void initActions();
+ void runCommand(const QString &command);
+private slots:
+ void slotCancel();
+ void slotConfigureKShutDown();
+ void slotIconChanged();
+ void slotLockScreen();
+ void slotLogout();
+ void slotReboot();
+ void slotShowKShutDown();
+ void slotShutDown();
+};
+
+#endif // __LOCKOUT_H__
diff --git a/pics/Makefile.am b/pics/Makefile.am
new file mode 100644
index 0000000..a316682
--- /dev/null
+++ b/pics/Makefile.am
@@ -0,0 +1,15 @@
+EXTRA_DIST = \
+ hi32-app-kshutdown.png \
+ hi48-app-kshutdown.png \
+ kshutdown.svg
+
+install-data-local:
+ $(mkinstalldirs) $(kde_icondir)/hicolor/32x32/apps/
+ $(INSTALL_DATA) $(srcdir)/hi32-app-kshutdown.png $(kde_icondir)/hicolor/32x32/apps/kshutdown.png
+
+ $(mkinstalldirs) $(kde_icondir)/hicolor/48x48/apps/
+ $(INSTALL_DATA) $(srcdir)/hi48-app-kshutdown.png $(kde_icondir)/hicolor/48x48/apps/kshutdown.png
+
+uninstall-local:
+ -rm -f $(kde_icondir)/hicolor/32x32/apps/kshutdown.png
+ -rm -f $(kde_icondir)/hicolor/48x48/apps/kshutdown.png
diff --git a/pics/hi32-app-kshutdown.png b/pics/hi32-app-kshutdown.png
new file mode 100644
index 0000000..b03dddb
--- /dev/null
+++ b/pics/hi32-app-kshutdown.png
Binary files differ
diff --git a/pics/hi48-app-kshutdown.png b/pics/hi48-app-kshutdown.png
new file mode 100644
index 0000000..a71ed47
--- /dev/null
+++ b/pics/hi48-app-kshutdown.png
Binary files differ
diff --git a/pics/kshutdown.svg b/pics/kshutdown.svg
new file mode 100644
index 0000000..8a34449
--- /dev/null
+++ b/pics/kshutdown.svg
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.39"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ width="210mm"
+ height="297mm"
+ sodipodi:docbase="/home/kdt/Desktop"
+ sodipodi:docname="kshutdown.svg">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient10097">
+ <stop
+ style="stop-color:#ff0000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop10098" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop10099" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1530">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1531" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop1532" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1530"
+ id="linearGradient1533"
+ x1="0.95620435"
+ y1="0.91176468"
+ x2="-0.065693431"
+ y2="0.029411765" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1530"
+ id="linearGradient2780"
+ x1="0.0072992700"
+ y1="0.066176474"
+ x2="1.1459854"
+ y2="0.91176468" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1530"
+ id="linearGradient6509"
+ x1="0.035087720"
+ y1="0.029411765"
+ x2="1.2456141"
+ y2="0.80882353" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1530"
+ id="linearGradient7131"
+ x1="0.92700732"
+ y1="0.91911763"
+ x2="-0.021897810"
+ y2="0.036764707" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10097"
+ id="linearGradient10101"
+ x1="-0.14728682"
+ y1="0.054687500"
+ x2="1.7054263"
+ y2="0.98437500" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.61399264"
+ inkscape:cx="544.02209"
+ inkscape:cy="521.17103"
+ inkscape:window-width="1016"
+ inkscape:window-height="689"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ rdf:about=""
+ id="Work6">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ id="type9"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <path
+ sodipodi:type="arc"
+ style="fill:#ff0000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient7131);stroke-width:6.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ id="path908"
+ sodipodi:cx="430.43051"
+ sodipodi:cy="538.43683"
+ sodipodi:rx="292.23209"
+ sodipodi:ry="292.23209"
+ d="M 722.66260 538.43683 A 292.23209 292.23209 0 1 0 138.19843,538.43683 A 292.23209 292.23209 0 1 0 722.66260 538.43683 z"
+ transform="translate(-71.97835,22.31325)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2780);stroke-width:7.7245750;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ id="path2158"
+ sodipodi:cx="430.43051"
+ sodipodi:cy="538.43683"
+ sodipodi:rx="292.23209"
+ sodipodi:ry="292.23209"
+ d="M 722.66260 538.43683 A 292.23209 292.23209 0 1 0 138.19843,538.43683 A 292.23209 292.23209 0 1 0 722.66260 538.43683 z"
+ transform="matrix(0.809106,0.000000,0.000000,0.809106,10.18825,125.0976)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient10101);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient1533);stroke-width:10.440436;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ id="path3402"
+ sodipodi:cx="430.43051"
+ sodipodi:cy="538.43683"
+ sodipodi:rx="292.23209"
+ sodipodi:ry="292.23209"
+ d="M 722.66260 538.43683 A 292.23209 292.23209 0 1 0 138.19843,538.43683 A 292.23209 292.23209 0 1 0 722.66260 538.43683 z"
+ transform="matrix(0.598634,0.000000,0.000000,0.598634,100.7818,238.4235)" />
+ <rect
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient6509);stroke-width:6.5800757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ id="rect5887"
+ width="80.615746"
+ height="228.17581"
+ x="318.14429"
+ y="446.66217"
+ ry="40.307873"
+ rx="40.307873" />
+</svg>
diff --git a/po/Makefile.am b/po/Makefile.am
new file mode 100644
index 0000000..7146abe
--- /dev/null
+++ b/po/Makefile.am
@@ -0,0 +1,2 @@
+POFILES = AUTO
+EXTRA_DIST = README
diff --git a/po/README b/po/README
new file mode 100644
index 0000000..fc3fbad
--- /dev/null
+++ b/po/README
@@ -0,0 +1,32 @@
+
+ Please read the following information
+ before you start a new translation. Thank you :)
+
+IMPORTANT: Please see i18n status first at
+ http://kshutdown.sourceforge.net
+
+Use UTF-8 encoding.
+Make sure that KBabel or KWrite is configured properly.
+
+More stuff to translate:
+- *.desktop files
+- hidden ".directory" files ("extras" directory)
+- "eventsrc" file ("sounds" directory)
+
+HTML tags used in some strings:
+<b>text</b> - bold text
+<i>text</i> - italic text
+<br> - new line (similar to \n)
+
+Do not put "&" (keyboard shortcut)
+if you don't see this in an original message.
+KDE 3.4 will automatically insert missing "&" into all widgets.
+
+Don't translate messages from "*.moc.cpp" files (e.g. "MStatsTab").
+These messages are generated by the Qt Meta Object Compiler,
+and are not visible in KShutDown.
+
+To extract and merge messages run
+the following command from the top source directory:
+$ WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make package-messages
+This will update *.pot template and all *.po translation files.
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..e66b0e6
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,841 @@
+# translation of kshutdown.po to
+# This file is put in the public domain.
+#
+# Youssef Chahibi <chahibi@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: kshutdown\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2007-07-07 17:44+0000\n"
+"Last-Translator: Youssef Chahibi <chahibi@gmail.com>\n"
+"Language-Team: <doc@arabeyes.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Arabic\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "إحصائيات"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid "This view displays information about the users currently on the machine, and their processes.<br>The header shows how long the system has been running."
+msgstr "هذا العرض يظهر معلومات المستخدمين على الجهاز, وعملياتهم.<br>التروسية تظهر كم مدة من الزمن بقي النظام قيد التشغيل."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "إنعاش"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "خيارات"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "معلومات أكثر"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "أظهر لحظة الولوج وJCPU وPCPU"
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "بدّل \"من\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "بدّل \"من\" (اسم مضيف عن بعد) خانة."
+
+#: ../kshutdown/mstatstab.cpp:190
+#: ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "خطأ"
+
+#: ../kshutdown/mstatstab.cpp:191
+#: ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "الأمر: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "إجراءات أكثر..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "اختر أمر..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "استخدم قائمة السياق لإضافة/تحرير/إزالة وصلات"
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "استخدم <b>قائمة السياق</b> لإنشاء وصلة جديدة للتطبيق"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "استخدم <b>إنشئ مجلد|جديد...</b> لإنشاء قائمة فرعية جديدة"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "استخدم <b>خصائص</b> لتغيير أيقونة, اسم, أو تعليق"
+
+#: ../kshutdown/extras.cpp:252
+#: ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "الإضافيات"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"خطأ داخلي!\n"
+"بند القائمة المختار تالف."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "1 تحذير ساعة"
+
+#: ../kshutdown/miscutils.cpp:107
+#: ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 تحذير دقائق"
+
+#: ../kshutdown/miscutils.cpp:111
+#: ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 تحذير دقيقة"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 تحذير ثواني"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "ثلاث ثواني قبل الإجراء"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "ثانيتين قبل الإجراء"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "ثانية قبل الإجراء"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "لا يمكن تشغيل \"%1\"!"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Progress Bar"
+msgstr "شريط العملية"
+
+#: ../kshutdown/miscutils.cpp:228
+#: ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "اختبر"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "الموقع المراد لإنشاء الوصلة:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "سطح المكتب"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "قائمة K"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "نوع الوصلة:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "مربع حوار الخروج المعياري"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "وحدة إغلاق النظام"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "لا يمكن إنشاء ملف <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "لا يمكن إزالة ملف <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "إزل وصلة"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "إضف وصلة"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "تسجيل خروج"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "وحدة إغلاق لـ KDE"
+
+#: ../kshutdown/main.cpp:51
+#: ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "إغلاق الحاسوب"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "إعادة إقلاع الحاسوب"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "اقفل الجلسة"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "إنهاء الجلسة الحالية"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "تأكيد إجراء خط الأمر"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "أعرض مربع تسجيل الخروج المعياري"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "إلغي الإجراء النشط"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "لا تظهر النافذة عند بدء التشغيل"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "تمكين وضع الاختبار"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "تعطيل وضع الاختبار"
+
+#: ../kshutdown/main.cpp:67
+msgid "Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now"
+msgstr "الوقت; أمثلة: 01:30 - الوقت الفاصل (HH:MM); 10 - عدد الدقائق للانتظار من الآن"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "وقت غير صالح: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "تعيينات"
+
+#: ../kshutdown/msettingsdialog.cpp:117
+#: ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "معطل بواسطة المدير."
+
+#: ../kshutdown/msettingsdialog.cpp:129
+#: ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "إجراءات"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "إجراء"
+
+#: ../kshutdown/msettingsdialog.cpp:143
+#: ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "طريقة"
+
+#: ../kshutdown/msettingsdialog.cpp:144
+#: ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "الأمر قبل الإجراء"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "حرر..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "افحص إعدادات النظام"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "قائمة إضافية"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "عدل..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "متقدم"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "بعد الدخول"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "اقفل الشاشة"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "قبل الخروج"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "إغلق أيقونة القرص المدمج"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "الأمر:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "تعيينات كيدي المرتبطة..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "عام"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "مشاكل عامة"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"إغلاق الحاسوب\" لا يعمل"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "الرسائل المنبثقة مزعجة"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "أضف/أزل وصلات"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "أظهر أيقونة صينية النظام"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "دائماً"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "أيقونة صينية النظام ستكون مرئية دائماً"
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "إذا كان منشط"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "أيقونة صينية النظام ستكون مرئية فقط إذا كان KShutdown منشط"
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "أبداً"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "أيقونة صينية النظام ستكون مخفية دائماً"
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "أعرض سمات KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "الصفحة الرئيسية لسوبر كارامبا"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "الرسائل"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "أعرض رسالة تحذيرية قبل الإجراء"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "دقائق"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "رسالة تحذيرية"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "مفعل"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "أمر القوقعة لكي ينفذ:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "ادخل أمر"
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "نص رسالة"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "عنوان النافذة الرئيسية الحالية"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr "التجهيزات المسبقة"
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "رسالة معتادة"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "أعد تمكين صناديق كلّ الرسائل"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid "Enable all messages which have been turned off with the <b>Do not show this message again</b> feature."
+msgstr "لا تظهر الرسائلة الموقوفة مرة أخرى."
+
+#: ../kshutdown/msettingsdialog.cpp:417
+#: ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (الافتراضي)"
+
+#: ../kshutdown/msettingsdialog.cpp:431
+#: ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "بدون إيقاف مؤقت"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "إيقاف مؤقت: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "هذا الملف يستخدم لاقفال الجلسة عند بدء تشغيل KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "استعادة التعيينات الافتراضية لهذه الصفحة؟"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "ادخل الساعة والدقيقة."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "ادخل التاريخ والوقت."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "إنقر <b>اختر أمر...</b> زر أولاً."
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "التاريخ/الوقت المختار: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "التاريخ/الوقت الحالي: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "التاريخ/الوقت المختار أسبق من التاريخ/الوقت الحالي!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "الإجراء إلغي!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "وضع الاختبار ممكن"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "وضع الاختبار معطل"
+
+#: ../kshutdown/mmainwindow.cpp:417
+#: ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595
+#: ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "بدون تأخير"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&ملف"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "&إجراءات"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "إعداد الاختصارات العالمية..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "&تعيينات"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "&مساعدة"
+
+#: ../kshutdown/mmainwindow.cpp:503
+#: ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "إ&لغي"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "افحص إعدادات النظام"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "&بدء [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "&إحصائيات"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "اختر الإجراء لكي ينجز"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "اختر عملية لكي تنجز بالوقت المحدد."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "ا&ختر وقت"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "الوقت من الآن (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "عند الوقت/التاريخ"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "عند خروج التطبيق المختار"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "اختر نوع التأخير"
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "الوقت المختار."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "وضع الاختبار"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "الوقت المتبقي: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651
+#: ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "مجهول"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "الوقت المختار: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "الإجراء المختار: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>ملاحظة: </b> نمط الاختبار ممكن"
+
+#: ../kshutdown/mmainwindow.cpp:849
+#: ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "KShutDown تم تصغيره"
+
+#: ../kshutdown/mmainwindow.cpp:879
+#: ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "KShutDown قد أنهي"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "من فضلك انتظر..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"لا يمكن الخروج بشكل صحيح.\n"
+"مسيير الجلسة لا يمكنه الاتصال."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "لا شيء"
+
+#: ../kshutdown/actions.cpp:317
+#: ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "إغلاق الحاسوب"
+
+#: ../kshutdown/actions.cpp:318
+#: ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "إعادة إقلاع الحاسوب"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "قفل الجلسة"
+
+#: ../kshutdown/actions.cpp:320
+#: ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "إنهاء الجلسة الحالية"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "الإجراء فشل! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "فشلت مناداة kdesktop: DCOP!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "إعدادات النظام"
+
+#: ../kshutdown/systemconfig.cpp:76
+#: ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "رسالة"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"إفادة: إذا كان لديك مشكل مع الأمر \"/sbin/shutdown\"،\n"
+"ما عليك إلا أن تعدل الملف \"/etc/shutdown.allow\"،\n"
+"ثم أن تنفذ الأمر ذاته بزيادة \"-a\" في آخره.\n"
+"\n"
+"انقر هنا لمزيد من المعلومات."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "لا توجد مشاكل."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "برنامج \"%1\" غير موجود!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "لا توجد أذون لتنفيذ \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"يبدو أن هذه ليست جلسة كاملة لكيدي.\n"
+"صمم KShutDown للعمل على كيدي.\n"
+"لكن، يمكنك أن تعدل «الإجراءات» في حوار تعيينات KShutDown\n"
+"(تعيينات -> إعداد ...KShutDown -> إجراءات)."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"إفادة: يمكنك تعديل الإجراءات للعمل مع GDM.\n"
+"(تعيينات -> إعداد ...KShutDown -> إجراءات)."
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"KDM غير مشتغل،\n"
+"أو وظيفة الإيقاف وإعادة التشغيل معطلة.\n"
+"\n"
+"انقر هنا لإعداد KDM."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "اختر طريقة:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "ادخل أمر مخصص:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "نفّذ أمر"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "إيقاف مؤقت بعد تشغيل الأمر:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "ثواني"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid "In most cases you need privileges to shut down system (e.g. run /sbin/shutdown)"
+msgstr "تتطلب في أغلب الحالات صلاحيات خاصة استعمال أمر /sbin/shutdown قصد إيقافه."
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid "If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set all methods to <i>KDE</i>"
+msgstr "إذا كنت تستعمل <b>KDE</b> و<b>KDM</b>، استعمل <i>KDE</i> قي كل الوظائف."
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid "If you are using <b>KDE</b> and display manager different than <b>KDM</b>, then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/sbin/...</i>"
+msgstr "إذا كنت تستعمل <b>KDE</b> ومدير جلسات غير <b>KDM</b>، اكتب <i>/sbin</i> في خانات <i>إغلاق الحاسوب</i> و<أعد تشغيل الحاسوب</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "يدوي:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "أمر المستخدم"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "الوقت المتبقي."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "انعش قائمة العمليات"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "قائمة العمليات قيد التشغيل"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "اقتل"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "اقتل العملية المختارة"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "انتظار لـ \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "العملية المختارة غير موجود مسبقاً!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "لا يمكن تنفيذ الأمر<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid "Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be lost!"
+msgstr "هل تريد حقا إنهاء باستعمال KILL البرنامج<br><b>%1</b>?<br><br>شتضيع بذلك كل البيانات غير المحفوظة!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "العملية غير موجودة<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "لا توجد أذون لقتل<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "أنهي: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "تاكيد"
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "&إلغي"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "هل أنت متأكد؟<br><br>الإجراء المختار: <b>%1</b><br>الوقت المختار: <b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1
+#: _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "عبدالعزيز الشريف"
+
+#: ../kshutdown/_translatorinfo.cpp:3
+#: _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "a.a-a.s@hotmail.com"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+"انقر للوصول إلى النافذة اﻷساسية لKShutDown<br> "
+"انقر واضغط من أجل قائمة الخيارات."
+
+#: ../kshutdownlockout/lockout.cpp:150
+#: ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "استحال تنفيذ KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "قفل الجلسة"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "&إعداد KShutDown..."
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 0000000..b7bf233
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,830 @@
+# translation of kshutdown.po to Bulgarian
+# This file is put in the public domain.
+#
+# Zlatko Popov <zlatkopopov@fsa-bg.org>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: kshutdown\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2007-05-05 11:15+0000\n"
+"Last-Translator: Zlatko Popov <zlatkopopov@fsa-bg.org>\n"
+"Language-Team: Bulgarian <dict@linux.zonebg.com>\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"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Статистика"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr "Този изглед показва информацията за текущите потребители на компютъра и процесите.<br>Най-отгоре се показва колко време е работил компютъра."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Презареждане"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "Опции"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Повече информация"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Показване на времето за влизане, JCPU и PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Вкл/изкл на \"FROM\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Превключване на полето \"FROM\" "
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "Грешка"
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Команда: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Още действия..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Избор на команда..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Използване на контекстното меню за добавяне/редактиране/премахване на връзки."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Използвайте <b>контекстното меню</b> за създаване на нова връзка към програма"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Използвайте <b>Създаване на нова|директория...</b> за създаване на подменю"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Използвайте <b>Настройки</b> за смяна на иконата, името или коментара"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Други"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Вътрешна грешка!\n"
+"Този елемент от менюто е повреден."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "Предупреждение - 1 ч."
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "Предупреждение - 5 мин."
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "Предупреждение - 1 мин."
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "Предупреждение - 10 сек."
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 секунди преди действието"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 секунди преди действието"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 секунди преди действието"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "Невъзможно изпълнение на \"%1\"!"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Progress Bar"
+msgstr "Лента за състоянието"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Проба"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Местоположение на връзката:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Работен плот"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "Меню К"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Тип връзка:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Изход"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "Инструмент за спиране на компютъра"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Файлът <b>%1</b> не беше създаден!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Файлът <b>%1</b> не беше премахнат!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Премахване на връзка"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "Добавяне на връзка"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Изход"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Инструмент за спиране (KDE)"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Изключване на компютъра"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Рестартиране на компютъра"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Заключване на сесията"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Завършване на сесията"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Потвърждение на действие"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Показване на стандартен прозорец за изход"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Отмяна на действие"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Без показване на прозореца при стартиране"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Включване на режим \"Проба\""
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Изключване на режим \"Проба\""
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr "Време; Например: 01:30 - абсолютно време (ЧЧ:ММ); 10 - минути за изчакване от сега"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Невалидно време: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Настройки"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Изключено от администратора."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Действия"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Действие"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Метод"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Команда преди действие"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Редактиране..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Проверка на системните настройки"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Други"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Редактиране..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Разширени"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "След влизане"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Заключване на екрана"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Преди изход"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Затваряне на CD-ROM устройството"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Команда:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Други настройки на KDE..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Основни"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Обичайни проблеми"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Изключване на компютъра\" не работи"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Изскачащите съобщения ме дразнят"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Добавяне/Премахване на връзки"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Показване на икона в системния панел"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Винаги"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Иконата в системния панел винаги ще се вижда."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Действие"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "Иконата в системния панел винаги ще се вижда само ако програмата има задача."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Никога"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Иконата в системния панел винаги ще бъде скрита."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Теми за KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Домашна страница на SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Съобщения"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Показване на предупреждение преди действие"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "минута(и)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Предупреждение"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Вкл."
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Команда за изпълнение:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Въведете команда."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "Текст на съобщението"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "Заглавие на прозореца"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr "Фиксирани"
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Потребителско съобщение"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Включване на всички съобщения отново"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr "Включване на всички съобщния които са били изключени с опцията <b>Изключване на съобщението</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (по подразбиране)"
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Без пауза"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "Пауза: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "Този файл се използва за заключване на сесията при стартиране на KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Възстановяване на настройките по подразбиране на тази страница?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Въведете час и минута."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Въведете дата."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Първо натиснете бутона <b>Избор на команда...</b>"
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Избрана дата/време: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Текуща дата/време: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Избрана дата/време е по-рано от текущото!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Действието е отменено!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Тестов режим - вкл."
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Тестов режим - изкл."
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Без забавяне"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&Файл"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "&Действия"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "Настройване на глобалните бързи клавиши..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "&Настройки"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "&Помощ"
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "&Отмяна"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "Проверка на с&истемните настройки"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "&Старт [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "С&татистика"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "Избор на действие за изпълнение"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Изберете действие за изпълнение в определеното време."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "И&збор на време"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Време от сега (ЧЧ:ММ)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "На дата/време"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "При изход от програма"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Изберете тип забавяне."
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Изберете време."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "ТЕСТОВ РЕЖИМ"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Оставащо време: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Време: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "Действие: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Забележка: </b> Включен е тестов режим"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "KShutDown е минимизирана"
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "KShutDown - изход"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Моля, изчакайте..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Излизането не беше нормално.\n"
+"Няма връзка с мениджъра на сесията."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Нищо"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Изключване на компютъра"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Рестартиране на компютъра"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Заключване на сесията"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Завършване на сесията"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Действието беше неуспешно! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: неуспешна комуникация с DCOP!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Системни настройки"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Съобщение"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Съвет: Ако имате проблем с командата \"/sbin/shutdown\",\n"
+"опитайте да редактирате файла \"/etc/shutdown.allow\"\n"
+"и после изпълнете \"/sbin/shutdown\" с параметър \"-a\".\n"
+"\n"
+"Повече тук."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Не са намерени проблеми."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "Програмата \"%1\" не беше намерена!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "Нямате права за изпълнение на \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Изглежда това не е цяла сесия на KDE.\n"
+"KShutDown е направена да работи с KDE.\n"
+"Можете да променяте действията от прозореца\n"
+"Настройки -> Настройване на KShutDown... -> Действия."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Съвет: Можете да настройвате действията да работят с GDM.\n"
+"(Настройки -> Настройване на KShutDown... -> Действия)"
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"KDM не работи\n"
+"или опцията \"изключване/рестартиране\" е изключена.\n"
+"\n"
+"Конфигуриране на KDM."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Изберете метод:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Въведете команда:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Изпълнение на команда"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "Пауза след изпълнението на командата:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "секунда(и)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"В повечето случи трябва да имате права за спиране на системата (/sbin/"
+"shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr "Ако използвате <b>KDE</b> и <b>KDM</b> (KDE Display Manager), тогава настройте всички методи на <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Ако използвате <b>KDE</b> и мениджърът не е <b>KDM</b>, тогава настройте методите за <i>Изключване на компютъра</i> и <i>Рестартиране на компютъра</i> на <i>/"
+"sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Ръководства:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Потребителска команда"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Оставащо време."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Презареждане на списъка с процеси"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Списък с активни процеси"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Убиване"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Убиване на процеса"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Изчакване за \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Процесът не съществува!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Невъзможно изпълнение на команда<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr "Сигурни ли сте, че искате да убиете<br><b>%1</b>?<br><br>Незаписаните данни ще бъдат загубени!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Не е намерен процес<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Нямате праза за убиване на<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "УБИТ: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Потвърждение"
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "&Отмяна"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Сигурни ли сте?<br><br>Действие: <b>%1</b><br>Време: <b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Златко Попов"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "zlatkopopov@fsa-bg.org"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr "Щракнете да се покаже главният прозорец на KShutDown<br>За менюто натиснете и задръжте"
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "KShutDown не може да бъде стартирана!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "Заключване на екрана"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "&Настройване на KShutDown..."
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..7e95afe
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,796 @@
+# translation of cs.po to čeština
+# translation of cs.po to
+# translation of kshutdown.po to
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Robert Kratky <kratky@rob.cz>, 2004, 2008.
+# Robert Kratky <kratky@abclinuxu.cz>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: cs\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-27 19:36+0200\n"
+"PO-Revision-Date: 2008-01-12 11:39+0100\n"
+"Last-Translator: Robert Kratky <kratky@rob.cz>\n"
+"Language-Team: čeština <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.11.4\n"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Počkejte prosím..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Nebylo možné se korektně odhlásit.\n"
+"Nepodařilo se kontaktovat správce sezení."
+
+#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419
+#: ../kshutdown/mstatstab.cpp:191
+msgid "Command: %1"
+msgstr "Příkaz: %1"
+
+#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445
+#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Žádná prodleva"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Nothing"
+msgstr "Nic"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183
+msgid "Turn Off Computer"
+msgstr "Vypnout počítač"
+
+#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177
+msgid "Restart Computer"
+msgstr "Restartovat počítač"
+
+#: ../kshutdown/actions.cpp:322
+msgid "Lock Session"
+msgstr "Uzamknout sezení"
+
+#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171
+msgid "End Current Session"
+msgstr "Ukončit aktuální sezení"
+
+#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Unknown"
+msgstr "Neznámé"
+
+#: ../kshutdown/actions.cpp:362
+msgid "Action failed! (%1)"
+msgstr "Akce selhala! (%1)"
+
+#: ../kshutdown/actions.cpp:406
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP volání selhalo!"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Obnovit seznam procesů"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Seznam spuštěných procesů"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Zabít"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Zabít zvolený proces"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Čekám na \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Zvolený proces neexistuje!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Nelze provést příkaz<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Opravdu chete ZABÍT<br><b>%1</b>?<br><br>Všechna neuložená data budou "
+"ztracena!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Proces nebyl nalezen<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Nemám oprávnění k ukončení<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "MRTVÝ: %1"
+
+#: ../kshutdown/confirmation.cpp:64
+msgid "Confirm"
+msgstr "Potvrdit"
+
+#: ../kshutdown/confirmation.cpp:78
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Jste si jistí?<br><br>Zvolená akce: <b>%1</b><br>Zvolený čas: <b>%2</b>"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Další akce..."
+
+#: ../kshutdown/extras.cpp:91
+msgid "Select a command..."
+msgstr "Vybrat příkaz..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Použijte kontextové menu pro přidání/úpravu/odstranění odkazů."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Použijte <b>kontextové menu</b> k vytvoření nového odkazu na aplikaci"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Použijte <b>Vytvořit nový|Složka...</b> k vytvoření nového podmenu"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Použijte <b>Vlastnosti</b> pro změnu ikony, názvu nebo komentáře"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:609
+msgid "Extras"
+msgstr "Další"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Vyberte místo, kde se má odkaz vytvořit:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Pracovní plocha"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K Menu"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Vyberte druh odkazu:"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Standardní odhlašovací okno"
+
+#: ../kshutdown/links.cpp:95
+msgid "System Shut Down Utility"
+msgstr "Nástroj pro vypnutí systému"
+
+#: ../kshutdown/links.cpp:106
+msgid "Could not create file <b>%1</b>!"
+msgstr "Soubor <b>%1</b> nelze vytvořit!"
+
+#: ../kshutdown/links.cpp:117
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Soubor <b>%1</b> nelze odstranit!"
+
+#: ../kshutdown/links.cpp:182
+msgid "Remove Link"
+msgstr "Odstranit odkaz"
+
+#: ../kshutdown/links.cpp:186
+msgid "Add Link"
+msgstr "Přidat odkaz"
+
+#: ../kshutdown/links.cpp:205
+msgid "Logout"
+msgstr "Odhlásit se"
+
+#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143
+msgid "Method"
+msgstr "Způsob"
+
+#: ../kshutdown/mactioneditdialog.cpp:70
+msgid "Select a method:"
+msgstr "Zvolte způsob:"
+
+#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431
+msgid "KDE (default)"
+msgstr "KDE (výchozí)"
+
+#: ../kshutdown/mactioneditdialog.cpp:80
+msgid "Enter a custom command:"
+msgstr "Zadejte vlastní příkaz:"
+
+#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144
+msgid "Command before action"
+msgstr "Provést před akcí"
+
+#: ../kshutdown/mactioneditdialog.cpp:87
+msgid "Run command"
+msgstr "Spustit příkaz"
+
+#: ../kshutdown/mactioneditdialog.cpp:90
+msgid "Pause after run command:"
+msgstr "Po spuštění příkazu počkat:"
+
+#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445
+msgid "No pause"
+msgstr "Bez prodlevy"
+
+#: ../kshutdown/mactioneditdialog.cpp:93
+msgid "second(s)"
+msgstr "vteřin(u)"
+
+#: ../kshutdown/mactioneditdialog.cpp:109
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Ve většině případů potřebujete k vypnutí systému práva (např. ke spuštění /"
+"sbin/reboot nebo /sbin/shutdown)."
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Používáte-li <b>KDE</b> a <b>KDM</b> (správce sezení KDE), nastavte všechny "
+"metody na <i>KDE</i>."
+
+#: ../kshutdown/mactioneditdialog.cpp:112
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Používáte-li <b>KDE</b> a jiného správce sezení než <b>KDM</b>, nastavte "
+"metody <i>Vypnout počítač</i> a <i>Restartovat počítač</i> na <i>/sbin/...</"
+"i>."
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid "Manuals:"
+msgstr "Návody:"
+
+#: ../kshutdown/mactioneditdialog.cpp:135
+msgid "User Command"
+msgstr "Uživatelský příkaz"
+
+#: ../kshutdown/main.cpp:43
+msgid "A Shut Down Utility for KDE"
+msgstr "Vypínací utilita pro KDE"
+
+#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56
+msgid "Turn off computer"
+msgstr "Vypnout počítač"
+
+#: ../kshutdown/main.cpp:58
+msgid "Restart computer"
+msgstr "Restartovat počítač"
+
+#: ../kshutdown/main.cpp:60
+msgid "Lock session"
+msgstr "Uzamknout obrazovku"
+
+#: ../kshutdown/main.cpp:62
+msgid "End current session"
+msgstr "Ukončit sezení"
+
+#: ../kshutdown/main.cpp:64
+msgid "Execute \"Extras\" command (.desktop file)"
+msgstr "Provést příkaz z nabídky \"Další\" (soubor .desktop)"
+
+#: ../kshutdown/main.cpp:65
+msgid "Confirm command line action"
+msgstr "Potvrdit akci příkazové řádky"
+
+#: ../kshutdown/main.cpp:66
+msgid "Show standard logout dialog"
+msgstr "Zobrazit standardní odhlašovací dialog"
+
+#: ../kshutdown/main.cpp:68
+msgid "Cancel an active action"
+msgstr "Zrušit běžící akci"
+
+#: ../kshutdown/main.cpp:69
+msgid "Don't show window at startup"
+msgstr "Nezobrazovat okno při spuštění"
+
+#: ../kshutdown/main.cpp:70
+msgid "Enable test mode"
+msgstr "Povolit testovací režim"
+
+#: ../kshutdown/main.cpp:71
+msgid "Disable test mode"
+msgstr "Vypnout testovací režim"
+
+#: ../kshutdown/main.cpp:72
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Čas; Příklady: 01:30 - absolutní čas (HH:MM); 10 - kolik minut počkat od "
+"této chvíle"
+
+#: ../kshutdown/main.cpp:245
+msgid "Invalid time: <b>%1</b>"
+msgstr "Neplatný čas: <b>%1</b>"
+
+#: ../kshutdown/miscutils.cpp:110
+msgid "1 hour warning"
+msgstr "Upozornění 1 hodinu před"
+
+#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114
+msgid "5 minutes warning"
+msgstr "Upozornění 5 minut před"
+
+#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118
+msgid "1 minute warning"
+msgstr "Upozornění 1 minutu před"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "10 seconds warning"
+msgstr "Upozornění 10 vteřin před"
+
+#: ../kshutdown/miscutils.cpp:226
+msgid "Could not run \"%1\"!"
+msgstr "<b>%1</b> nešel spustit!"
+
+#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471
+#: ../kshutdown/msettingsdialog.cpp:558
+msgid "Test"
+msgstr "Test"
+
+#: ../kshutdown/mmainwindow.cpp:149
+msgid "Enter hour and minute."
+msgstr "Zadejte hodinu a minutu."
+
+#: ../kshutdown/mmainwindow.cpp:159
+msgid "Enter date and time."
+msgstr "Zadejte datum a čas."
+
+#: ../kshutdown/mmainwindow.cpp:238
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Nejprve klikněte na tlačítko <b>Zvolit příkaz...</b>"
+
+#: ../kshutdown/mmainwindow.cpp:280
+msgid "Selected date/time: %1"
+msgstr "Zvolený datum/čas: %1"
+
+#: ../kshutdown/mmainwindow.cpp:281
+msgid "Current date/time: %1"
+msgstr "Aktuální datum/čas: %1"
+
+#: ../kshutdown/mmainwindow.cpp:287
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Zvolené datum/čas je dřívější než aktuální datum/čas!"
+
+#: ../kshutdown/mmainwindow.cpp:292
+msgid "Action cancelled!"
+msgstr "Akce zrušena!"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode enabled"
+msgstr "Testovací režim zapnut"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode disabled"
+msgstr "Testovací režim vypnut"
+
+#: ../kshutdown/mmainwindow.cpp:477
+msgid "&Actions"
+msgstr "&Akce"
+
+#: ../kshutdown/mmainwindow.cpp:483
+msgid "Configure Global Shortcuts..."
+msgstr "Nastavit globální klávesové zkratky..."
+
+#: ../kshutdown/mmainwindow.cpp:531
+msgid "C&ancel"
+msgstr "&Zrušit"
+
+#: ../kshutdown/mmainwindow.cpp:539
+msgid "Check &System Configuration"
+msgstr "Zkontrolovat konfiguraci &systému"
+
+#: ../kshutdown/mmainwindow.cpp:556
+msgid "&Statistics"
+msgstr "&Statistiky"
+
+#: ../kshutdown/mmainwindow.cpp:600
+msgid "Select an &action to perform"
+msgstr "Zvolte &akci"
+
+#: ../kshutdown/mmainwindow.cpp:610
+msgid "Select an action to perform at the selected time."
+msgstr "Vyberte, která akce bude ve zvolený čas provedena."
+
+#: ../kshutdown/mmainwindow.cpp:616
+msgid "S&elect a time"
+msgstr "Z&volte čas"
+
+#: ../kshutdown/mmainwindow.cpp:623
+msgid "Time From Now (HH:MM)"
+msgstr "Od této chvíle (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:624
+msgid "At Date/Time"
+msgstr "Datum/čas"
+
+#: ../kshutdown/mmainwindow.cpp:625
+msgid "When selected application exit"
+msgstr "Po ukončení vybraného programu"
+
+#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117
+msgid "Disabled by the Administrator."
+msgstr "Zablokováno administrátorem."
+
+#: ../kshutdown/mmainwindow.cpp:629
+msgid "Select the type of delay."
+msgstr "Vyberte druh prodlevy."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "Selected time."
+msgstr "Zvolený čas."
+
+#: ../kshutdown/mmainwindow.cpp:671
+msgid "TEST MODE"
+msgstr "TESTOVACÍ REŽIM"
+
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Remaining time: <b>%1</b>"
+msgstr "Zbývá: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:678
+msgid "Selected time: <b>%1</b>"
+msgstr "Zvolený čas: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:679
+msgid "Selected action: <b>%1</b>"
+msgstr "Zvolená akce: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:682
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Poznámka: </b> Je zapnutý testovací režim."
+
+#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905
+msgid "KShutDown has been minimized"
+msgstr "KShutDown byl minimalizován"
+
+#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926
+msgid "KShutDown has quit"
+msgstr "KShutDown byl ukončen"
+
+#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82
+msgid "Message"
+msgstr "Zpráva"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Zbývající čas."
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Nastavení"
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Akce"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Akce"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Upravit..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Zkontrolovat nastavení systému"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Menu \"Další\""
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Upravit..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Pokročilé"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Po přihlášení"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Uzamknout obrazovku"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Před odhlášením"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Zavřít šuplík CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Příkaz:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Příbuzná nastavení KDE..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Obecné"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Časté problémy"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "Nefunguje akce \"Vypnout počítač\""
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Vyskakující zprávy jsou velmi otravné"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Přidat/odstranit odkazy"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Zobraz ikonu v systémové části panelu"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Vždy"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Ikona bude v systémové části panelu neustále."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Je-li aktivní"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+"Ikona bude v systémové části panelu viditelná, pouze pokud bude KShutDown "
+"aktivován."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Nikdy"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Ikona se v systémové části panelu nebude zobrazovat vůbec."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Zobrazit témata vzhledu KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Domovská stránka SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Zprávy"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Zobrazit upozornění před akcí"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minut(u/y)"
+
+#: ../kshutdown/msettingsdialog.cpp:303
+msgid "Recommended"
+msgstr "Doporučené"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "Warning Message"
+msgstr "Upozornění"
+
+#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351
+msgid "Enabled"
+msgstr "Povolený"
+
+#: ../kshutdown/msettingsdialog.cpp:318
+msgid "A shell command to execute:"
+msgstr "Provést příkaz:"
+
+#: ../kshutdown/msettingsdialog.cpp:323
+msgid "Enter a command."
+msgstr "Zadejte příkaz."
+
+#: ../kshutdown/msettingsdialog.cpp:326
+msgid "A message text"
+msgstr "Text zprávy"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "The current main window title"
+msgstr "Titulek hlavního okna"
+
+#: ../kshutdown/msettingsdialog.cpp:333
+msgid "Presets"
+msgstr "Přednastavené"
+
+#: ../kshutdown/msettingsdialog.cpp:347
+msgid "Custom Message"
+msgstr "Vlastní zpráva"
+
+#: ../kshutdown/msettingsdialog.cpp:350
+msgid "Progress Bar"
+msgstr "Ukazatel průběhu"
+
+#: ../kshutdown/msettingsdialog.cpp:354
+msgid "Re-enable All Message Boxes"
+msgstr "Opět povolit všechna okna s upozorněním"
+
+#: ../kshutdown/msettingsdialog.cpp:358
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Povolit všechna upozornění, která byla vypnuta pomocí <b>Tuto zprávu již "
+"nezobrazuj</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:447
+msgid "Pause: %1"
+msgstr "Prodleva: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:516
+msgid "This file is used to lock session at KDE startup"
+msgstr "Tento soubor se používá k uzamykání sezení při startu KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:596
+msgid "Restore default settings for this page?"
+msgstr "Obnovit výchozí nastavení pro tuto záložku?"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statistiky"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Toto okno zobrazuje informace o uživatelích, kteří systém právě používají, a "
+"jejich procesech.<br>Hlavička ukazuje, jak dlouho již systém běží."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Obnovit"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Více informací"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Zobrazit čas přihlášení, časy JCPU a PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Skrýt \"FROM\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Skrýt nebo zobrazit položku \"FROM\" (název vzdáleného počítače)."
+
+#: ../kshutdown/progressbar.cpp:99
+msgid "Hide"
+msgstr "Skrýt"
+
+#: ../kshutdown/systemconfig.cpp:71
+msgid "System Configuration"
+msgstr "Nastavení systému"
+
+#: ../kshutdown/systemconfig.cpp:88
+msgid "Tip: Click here if you have problem with the \"/sbin/shutdown\" command."
+msgstr "Tip: Máte-li potíže s příkazem \"/sbin/shutdown\", klikněte sem."
+
+#: ../kshutdown/systemconfig.cpp:97
+msgid "No problems were found."
+msgstr "Žádné problémy nebyly zjištěny."
+
+#: ../kshutdown/systemconfig.cpp:128
+msgid "Program \"%1\" was not found!"
+msgstr "Program \"%1\" nebyl nalezen!"
+
+#: ../kshutdown/systemconfig.cpp:135
+msgid "No permissions to execute \"%1\"."
+msgstr "Nemám oprávnění ke spuštění \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:144
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Vypadá to, že nejsme v plnohodnotném sezení KDE.\n"
+"KShutDown bylo navrženo tak, aby fungovalo s KDE.\n"
+"Přesto však můžete upravit Akce v konfiguračním dialogu\n"
+"(Nastavení -> Nastavit: KShutDown... -> Akce)."
+
+#: ../kshutdown/systemconfig.cpp:161
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Tip: Akce můžete upravit tak, aby fungovaly s GDM.\n"
+"(Nastavení -> Nastavit: KShutDown... -> Akce)."
+
+#: ../kshutdown/systemconfig.cpp:162
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"Není spuštěn Správce přihlášení KDE (KDM)\n"
+"nebo není povolena funkce vypnout/restartovat.\n"
+"\n"
+"Kliknutím sem můžete KDM nastavit."
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Robert Krátký"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "kratky@rob.cz"
+
+#: ../kshutdownlockout/lockout.cpp:120
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr "Kliknutím zobrazíte hlavní okno KShutDown<br>Klikněte a držte pro zobrazení menu"
+
+#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155
+#: ../kshutdownlockout/lockout.cpp:200
+msgid "Could not run KShutDown!"
+msgstr "KShutDown nešlo spustit!"
+
+#: ../kshutdownlockout/lockout.cpp:165
+msgid "Lock Screen"
+msgstr "Uzamknout obrazovku"
+
+#: ../kshutdownlockout/lockout.cpp:191
+msgid "&Configure KShutDown..."
+msgstr "&Nastavit KShutDown..."
+
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..971a84b
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,850 @@
+# translation of de.po to Deutsch
+# This file is distributed under the same license as the kshutdown package.
+# Copyright (C) Konrad Twardowski, Elias Probst
+# Elias Probst <elias.probst@gmx.de>, 2004, 2005, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: de\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2006-07-02 09:13+0200\n"
+"Last-Translator: Elias Probst <elias.probst@gmx.de>\n"
+"Language-Team: Deutsch <de@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"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statistiken"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Diese Ansicht zeigt Informationen über die momentan angemeldeten Benutzer "
+"und deren laufende Prozesse.<br>Die Titelzeile zeigt, wie lange das System "
+"bereits läuft"
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Aktualisieren"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "Optionen"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Mehr Informationen"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Anmeldezeit, JCPU- und PCPU-Werte anzeigen"
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "\"FROM\" (de-)aktivieren"
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Das \"FROM\" (Entfernter Rechnername) Feld verändern"
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "Fehler"
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Befehl: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Mehr Aktionen..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Befehl auswählen..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Benutze das Kontextmenü um Verweise hinzuzufügen/editieren/entfernen"
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr ""
+"Benutze das <b>Kontextmenü</b> um einen neuen Verweis zu einem Programm "
+"anzulegen."
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Benutze <b>Neu | Verzeichnis...</b> um ein Untermenü zu erstellen"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr ""
+"Benutze <b>Eigenschaften</b> um das Symbol, den Namen oder Kommentar zu "
+"ändern"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Extras"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Interner Fehler!\n"
+"Ausgewählter Menüeintrag ist fehlerhaft."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "1 Stunde verbleibend"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 Minuten verbleiben"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 Minute verbleibend"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 Sekunden verbleibend"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 Sekunden vor Aktion"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 Sekunden vor Aktion"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 Sekunde vor Aktion"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "\"%1\" konnte nicht ausgeführt werden!"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Progress Bar"
+msgstr "Fortschrittsbalken"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Test"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Ort für die zu erstellende Verknüpfung auswählen:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Arbeitsfläche"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K-Menü"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Typ der Verknüpfung auswählen:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Standard Abmeldedialog"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "Ein Hilfsprogramm zum Herunterfahren des Systems"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Konnte Datei <b>%1</b> nicht erstellen!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Konnte Datei <b>%1</b> nicht entfernen!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Verknüpfung entfernen"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "Verknüpfung hinzufügen"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Abmelden"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Ein Hilfsprogramm zum Herunterfahren für KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Rechner ausschalten"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Rechner neustarten"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Sitzung sperren"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Aktuelle Sitzung beenden und abmelden"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Befehlszeilenaktion bestätigen"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Standard Abmeldedialog anzeigen"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Eine laufende Aktion stoppen"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Fenster beim Start nicht anzeigen"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Testmodus aktivieren"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Testmodus deaktivieren"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Zeit; Beispiele: 01:30 absolute Zeit im Format (SS:MM); 10 - Anzahl der "
+"Minuten die ab jetzt vergehen sollen bis eine Aktion ausgeführt wird"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Ungültige Zeitangabe: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Diese Seite wurde vom Administrator gesperrt."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Aktionen"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Aktion"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Methode"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Befehl vor Aktion"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Bearbeiten..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Systemkonfiguration prüfen"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Extras Menü"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Bearbeiten..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Erweitert"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Nach der Anmeldung"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Bildschirm sperren"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Vor dem Abmelden"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "CD-ROM Lade schließen"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Kommando:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "KDE-Einstellungen"
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Allgemein"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Häufige Probleme"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Rechner abschalten\" funktioniert nicht"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Popup-Nachrichten sind störend"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Verknüpfung Hinzufügen/Entfernen"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Symbol in Systembereich anzeigen"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Immer"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Symbol im Systembereich ist immer sichtbar"
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Wenn Aktiv"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "Symbol im Systembereich ist nur sichtbar, wenn KShutDown aktiv ist."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Niemals"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Symbol im Systembereich ist immer ausgeblendet"
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Zeige KShutDown-Themes an"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "SuperKaramba Homepage"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Nachrichten"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Warnung anzeigen, bevor die Aktion ausgeführt wird"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "Minute(n)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Warnmeldung"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Aktiviert"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Befehl der ausgeführt werden soll:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Befehl eingeben"
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "Einen Nachrichtentext"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "Titlel des aktuellen Hauptfensters"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr "Voreinstellungen"
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Benutzerdefinierte Nachricht"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Alle Meldungen wieder aktivieren"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Alle Nachrichten die mit der Funktion <b>Diese Nachricht nicht mehr "
+"anzeigen</b> deaktiviert wurden, wieder anzeigen."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (Standard)"
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Keine Pause"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "Pause: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "Diese Datei wird benutzt um die KDE-Sitzung beim Start zu sperren"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Standardeinstellungen für diese Seite wiederherstellen?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Stunden und Minuten eingeben:"
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Datum und Zeit eingeben:"
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Bitte zuerst die \"Befehl auswählen\"-Schaltfläche anklicken."
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Ausgewählte(s) Datum/Zeit: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Momentane(s) Datum/Zeit: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Ausgewählte(s) Datum/Zeit liegt vor dem aktuellen Datum/Zeit!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Aktion abgebrochen!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Testmodus aktiviert"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Testmodus deaktiviert"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Keine Verzögerung"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&Date"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "&Aktionen"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "Globale Tastenkürzel einrichten"
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "Ein&stellungen"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "&Hilfe"
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "&Abbrechen"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "&Systemkonfiguration prüfen"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "&Start [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "&Statistiken"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "&Aktion, die ausgeführt werden soll:"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Aktion, die zur ausgewählten Zeit ausgeführt werden soll."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "Zeit auswähl&en"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Zeit ab jetzt (SS:MM):"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Datum/Zeit"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "Wenn die ausgewählte Anwendung beendet ist"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Art und Weise der Verzögerung wählen."
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Ausgewählte Zeit:"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "TESTMODUS"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Verbleibende Zeit: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Ausgewählte Zeit: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "Ausgewählte Aktion:<b>%1</b> "
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Hinweis:</b> Der Testmodus ist aktiv"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "KShutDown wurde minimiert"
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "KShutDown-wurde beendet"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Bitte warten..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Abmeldevorgang konnte nicht korrekt ausgeführt werden.\n"
+"Es konnte keine Verbindung zur Sitzungsverwaltung hergestellt werden."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Nichts"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Rechner ausschalten"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Rechner neustarten"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Sitzung sperren"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Aktuelle Sitzung beenden und abmelden"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Aktion fehlgeschlagen (%1)!"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP-Aufruf fehlgeschlagen!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Systemkonfiguration"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Nachricht"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Tipp: Sollten Sie Probleme mit dem \"/sbin/shutdown\"-Befehl haben,\n"
+"probieren Sie doch einmal, die Datei \"/etc/shutdown.allow\" zu\n"
+"modifizieren und dann den \"/sbin/shutdown\"-Befehl mit dem zusätzlichen\n"
+"\"-a\"-Parameter auszuführen.\n"
+"\n"
+"Hier für mehr Informationen klicken."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Es wurden keine Probleme festgestellt."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "Programm \"%1\" wurde nicht gefunden!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "Keine Berechtigungen zum Ausführen von \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Es scheint, dass dies keine volle KDE-Sitzung ist.\n"
+"KShutDown wurde dafür ausgelegt mit KDE zusammenzuarbeiten.\n"
+"Allerdings können Sie die Aktionen im KShutDown-Einstellungsdialog\n"
+"(Einstellungen -> KShutDown einrichten... -> Aktionen) nach Ihrem\n"
+"Wunsch definieren."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Tipp: Sie können die Aktionen so einstellen, dass diese mit GDM "
+"zusammenarbeiten.\n"
+"(Einstellungen -> KShutDown einrichten... -> Aktionen)"
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"KDM läuft nicht oder die Herunterfahren/Neustarten-\n"
+"Funktion ist deaktiviert.\n"
+"\n"
+"Hier klicken um KDM einzurichten."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Methode auswählen:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Benutzerdefinierten Befehl eingeben"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Befehl ausführen"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "Pause nach dem Ausführen des Kommandos:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "Sekunde(n)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"In den meisten Fällen wird eine Berechtigung zum Herunterfahren des Systems "
+"benötigt. (z.B. für /sbin/reboot oder /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Falls Sie <b>KDE</b> und <b>KDM</b> (KDE Display Manager) benutzen, stellen "
+"Sie alle Methoden auf <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Falls Sie <b>KDE</b> und einen anderen Displaymanager als <b>KDM</b> "
+"verwenden, dann setzen sie die Methoden für<i>Herunterfahren</i> und "
+"<i>Neustarten</i> auf <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Handbücher:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Benutzerdefiniertes Kommando"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Verbleibenden Zeit."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Prozessliste aktualisieren"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Liste der laufenden Prozesse"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Beenden (Kill)"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Den ausgewählten Prozess mit 'kill' beenden"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Warte auf \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Der ausgewählte Prozess existiert nicht!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Konnte Befehl nicht ausführen:<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Sind Sie sicher, dass sie <br><b>%1</b> beenden wollen? Alle ungespeicherten "
+"Daten dieses Programms würden verloren gehen!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Prozess nicht gefunden:<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Keine Berechtigungen um den Prozess zu beenden:<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "TOT: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Bestätigen"
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "Abbre&chen"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Sind Sie sicher?<br><br>Ausgewählte Aktion: <b>%1</b><br>Ausgewählte Zeit: <b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Elias Probst"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "elias.probst@gmx.de"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr "Klicken um das KShutDown-Hauptfenster anzuzeigen.<br> Klicken und halten um das Menü anzuzeigen"
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "Konnte KShutDown nicht ausführen!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "Bildschirm sperren"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "KShutDown k&onfigurieren..."
+
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 0000000..c37b1cc
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,859 @@
+# translation of el.new.po to Greek
+# This file is put in the public domain.
+#
+# Spiros Georgaras <sngeorgaras@otenet.gr>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: el.new\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2006-08-03 11:55+0300\n"
+"Last-Translator: Spiros Georgaras <sngeorgaras@otenet.gr>\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.11.2\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Στατιστικά"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Εδώ εμφανίζονται πληροφορίες σχετικά με τους χρήστες που είναι συνδεδεμένοι "
+"στο μηχάνημα, και τις διεργασίες τους.<br>Η επικεφαλίδα δείχνει την ώρα "
+"λειτουργίας του συστήματος."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Ανανέωση"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "Επιλογές"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Περισσότερες πληροφορίες"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Εμφάνιση ώρας σύνδεσης, JCPU και PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Εναλλαγή του \"FROM\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Εναλλαγή του πεδίου \"FROM\" (όνομα απομακρυσμένου υπολογιστή)."
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "Σφάλμα"
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Εντολή: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Περισσότερες ενέργειες..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Επιλογή εντολής..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr ""
+"Χρησιμοποιήστε το σχετικό μενού για να προσθέσετε/επεξεργαστείτε/αφαιρέσετε "
+"δεσμούς."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr ""
+"Χρησιμοποιήστε το <b>σχετικό μενού</b> για να δημιουργήσετε ένα νέο δεσμό σε "
+"εφαρμογή"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr ""
+"Χρησιμοποιήστε το <b>Δημιουργία νέου/Φάκελος...</b> για να δημιουργήσετε ένα "
+"νέο υπομενού"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr ""
+"Χρησιμοποιήστε τις <b>Ιδιότητες</b> για να αλλάξετε το εικονίδιο, το όνομα ή "
+"το σχόλιο"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Επιπρόσθετα"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Εσωτερικό σφάλμα!\n"
+"Το επιλεγμένο αντικείμενο του μενού είναι κατεστραμμένο."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "Προειδοποίηση της μίας ώρας"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "Προειδοποίηση των 5 λεπτών"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "Προειδοποίηση του 1 λεπτού"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "Προειδοποίηση των 10 λεπτών"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 δευτερόλεπτα πριν την ενέργεια"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 δευτερόλεπτα πριν την ενέργεια"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 δευτερόλεπτο πριν την ενέργεια"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "Αδύνατη η εκτέλεση του \"%1\"!"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Progress Bar"
+msgstr "Γραμμή προόδου"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Δοκιμή"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Τοποθεσία όπου θα δημιουργηθεί ο δεσμός:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Επιφάνεια εργασίας"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K μενού"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Τύπος δεσμού:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Τυπικός διάλογος Αποσύνδεσης"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "Ένα εργαλείο για τον τερματισμό του Συστήματος"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Αδύνατη η δημιουργία του αρχείου <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Αδύνατη η αφαίρεση του αρχείου <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Αφαίρεση δεσμού"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "Προσθήκη δεσμού"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Αποσύνδεση"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Ένα εργαλείο για τον τερματισμό του KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Κλείσιμο υπολογιστή"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Επανεκκίνηση υπολογιστή"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Κλείδωμα συνεδρίας"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Τερματισμός τρέχουσας συνεδρίας"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Επιβεβαίωση της ενέργειας"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Εμφάνιση του τυπικού διαλόγου αποσύνδεσης"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Ακύρωση μίας ενεργής ενέργειας"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Να μην εμφανίζεται το παράθυρο στην εκκίνηση"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Ενεργοποίηση δοκιμαστικής λειτουργίας"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Απενεργοποίηση δοκιμαστικής λειτουργίας"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Ώρα. Παραδείγματα: 01:30 - απολυτή5η ώρα (ΩΩ:ΛΛ)· 10 - ο αριθμός των λεπτών "
+"καθυστέρησης από τώρα"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Μη έγκυρος χρόνος: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Ρυθμίσεις"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Απενεργοποιήθηκε από το Διαχειριστή."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Ενέργειες"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Ενέργεια"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Μέθοδος"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Εντολή προ της ενέργειας"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Επεξεργασία..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Έλεγχος των ρυθμίσεων του Συστήματος"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Μενού επιπρόσθετων"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Τροποποίηση..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Προχωρημένα"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Μετά τη σύνδεση"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Κλείδωμα οθόνης"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Πριν την αποσύνδεση"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Κλείσιμο του CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Εντολή:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Σχετικές ρυθμίσεις του KDE..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Γενικά"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Συχνά προβλήματα"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "Το \"Κλείσιμο υπολογιστή\" δε λειτουργεί"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Τα αναδυόμενα μηνύματα είναι πολύ ενοχλητικά"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Προσθήκη/Αφαίρεση δεσμών"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Εμφάνιση του εικονιδίου πλαισίου συστήματος"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Πάντα"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Το εικονίδιο πλαισίου συστήματος θα είναι πάντα ορατό."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Αν είναι ενεργό"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+"Το εικονίδιο πλαισίου συστήματος θα είναι ορατό μόνο αν το KShutDown είναι "
+"ορατό."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Ποτέ"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Το εικονίδιο πλαισίου συστήματος δε θα είναι ποτέ ορατό."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Εμφάνιση θεμάτων του KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Αρχική σελίδα του SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Μηνύματα"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Εμφάνιση προειδοποιητικού μηνύματος πριν την εκτέλεση μιας ενέργειας"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "λεπτό(ά)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Προειδοποιητικό μήνυμα"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Ενεργοποιημένο"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Εντολή κελύφους για εκτέλεση:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Δώστε μία εντολή."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "Ένα κείμενο μηνύματος"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "Ο τίτλος του τρέχοντος κύριου παραθύρου"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr "Προεπιλογές"
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Προσαρμοσμένο μήνυμα"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Επανενεργοποίηση όλων των Πλαισίων μηνυμάτων"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Ενεργοποιεί όλα τα μηνύματα που έχουν απενεργοποιηθεί με την επιλογή <b>Να "
+"μην εμφανιστεί αυτό το μήνυμα ξανά</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (προκαθορισμένο)"
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Χωρίς παύση"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "Παύση: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "Το αρχείο χρησιμοποιείται για το κλείδωμα της συνεδρίας στην έναρξη του KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Επαναφορά των προκαθορισμένων τιμών για αυτήν τη σελίδα;"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Δώστε ώρα και λεπτά."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Δώστε ημερομηνία και ώρα."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Κάντε πρώτα κλικ στο κουμπί <b>επιλογή εντολής...</b>"
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Επιλεγμένη ημερομηνία/ώρα: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Τρέχουσα ημερομηνία/ώρα: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Η επιλεγμένη ημερομηνία/ώρα είναι πριν από την τρέχουσα ημερομηνία/ώρα!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Η ενέργεια ακυρώθηκε!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Η δοκιμαστική λειτουργία ενεργοποιήθηκε"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Η δοκιμαστική λειτουργία απενεργοποιήθηκε"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Χωρίς καθυστέρηση"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&Αρχείο"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "&Ενέργειες"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "Ρύθμιση καθολικών συντομεύσεων..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "Ρ&υθμίσεις"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "&Βοήθεια"
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "&Ακύρωση"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "Έλεγχος των ρυθμίσεων του &Συστήματος"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "Έναρ&ξη [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "&Στατιστικά"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "Επιλογή &ενέργειας για εκτέλεση"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Επιλέξτε την ενέργεια που θα εκτελεστεί την επιλεγμένη ώρα."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "Επιλογή &χρόνου"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Ώρα από τώρα (ΩΩ:ΛΛ)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Την ημερομηνία/ώρα"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "Όταν τερματίσει η επιλεγμένη εφαρμογή"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Επιλογή τύπου της καθυστέρησης"
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Επιλεγμένος χρόνος."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "ΔΟΚΙΜΑΣΤΙΚΗ ΛΕΙΤΟΥΡΓΙΑ"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Υπολειπόμενος χρόνος: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Άγνωστο"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Επιλεγμένος χρόνος: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "Επιλεγμένη ενέργεια: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Σημείωση: </b> Η δοκιμαστική λειτουργία είναι ενεργοποιημένη"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "Το KShutDown ελαχιστοποιήθηκε"
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "Το KShutDown τερματίστηκε"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Παρακαλώ περιμένετε..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Δεν ήταν δυνατό να γίνει κανονική αποσύνδεση.\n"
+"Αδύνατη η επικοινωνία με το διαχειριστή συνεδρίας."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Τίποτα"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Κλείσιμο υπολογιστή"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Επανεκκίνηση υπολογιστή"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Κλείδωμα συνεδρίας"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Τερματισμός τρέχουσας συνεδρίας"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Η ενέργεια απέτυχε! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: Η κλίση DCOP απέτυχε!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Ρυθμίσεις συστήματος"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Μήνυμα"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Υπόδειξη: αν έχετε πρόβλημα με την εντολή\"/sbin/shutdown\",\n"
+"δοκιμάστε να τροποποιήσετε το αρχείο \"/etc/shutdown.allow\",\n"
+"και στη συνέχεια εκτελέστε την εντολή \"/sbin/shutdown\" με παράμετρο \"-a"
+"\".\n"
+"\n"
+"Κάντε κλικ εδώ για περισσότερες πληροφορίες."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Δε βρέθηκαν προβλήματα."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "Το πρόγραμμα \"%1\" δε βρέθηκε!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "Δεν έχετε άδεια για να εκτελέσετε το \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Απ' ότι φαίνεται αυτή δεν είναι μία κανονική συνεδρία του KDE.\n"
+"Το KShutDown είναι σχεδιασμένο να λειτουργεί με το KDE.\n"
+"Παρόλα αυτά, μπορείτε να προσαρμόσετε τις Ενέργειες στο διάλογο ρυθμίσεων "
+"του KShutDown (Ρυθμίσεις -> Ρύθμιση του KShutDown... -> Ενέργειες)."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Υπόδειξη: Μπορείτε να προσαρμόσετε τις Ενέργειες για να λειτουργούν με το "
+"GDM.\n"
+"(Ρυθμίσεις -> Ρύθμιση του KShutDown... -> Ενέργειες)."
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"Ο διαχειριστής συνεδρίας του KDE δεν εκτελείται,\n"
+"ή η ενέργεια κλείσιμο/επανεκκίνηση είναι απενεργοποιημένη.\n"
+"\n"
+"Κάντε κλικ εδώ για να ρυθμίσετε το KDM."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Επιλογή μεθόδου:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Δώστε μια προσαρμοσμένη εντολή:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Εκτέλεση εντολής"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "Παύση μετά την εκτέλεση της εντολής:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "δευτερόλεπτο(α)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Στις περισσότερες των περιπτώσεων απαιτούνται προνόμια υπερχρήστη για να "
+"τερματίσετε τη λειτουργία του συστήματος (π.χ. για την εκτέλεση του /sbin/"
+"shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Αν χρησιμοποιείτε το <b>KDE</b> και το <b>KDM</b> (Διαχειριστής συνεδρίας "
+"του KDE), ορίστε όλες τις μεθόδους σε <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Αν χρησιμοποιείτε το <b>KDE</b> και διαχειριστή συνεδρίας διαφορετικό του "
+"<b>KDM</b>, ορίστε τις μεθόδους <i>Κλείσιμο υπολογιστή</i> και "
+"<i>Επανεκκίνηση υπολογιστή</i> σε <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Εγχειρίδια:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Εντολή χρήστη"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Υπολειπόμενος χρόνος"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Ανανέωση της λίστας διεργασιών"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Λίστα εκτελούμενων διεργασιών"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Σκότωμα"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Σκότωμα της επιλεγμένης διεργασίας"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Αναμονή για το \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Η επιλεγμένη διεργασία δεν υπάρχει!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Αδύνατη η εκτέλεση της εντολής<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Είστε σίγουροι ότι θέλετε να ΣΚΟΤΩΣΕΤΕ το <br><b>%1</b>; <br><br>Όλα τα μη "
+"αποθηκευμένα δεδομένα θα χαθούν!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Δε βρέθηκε η διεργασία<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Δεν έχετε άδεια να σκοτώσετε το <br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "ΝΕΚΡΟ: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Επιβεβαίωση"
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "&Ακύρωση"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+"Είστε σίγουροι;<br><br>Επιλεγμένη ενέργεια: <b>%1</b><br>Επιλεγμένος χρόνος: "
+"<b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Σπύρος Γεωργαράς"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "sngeorgaras@otenet.gr"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+"Κάντε κλικ για να εμφανιστεί το κύριο παράθυρο του KShutDown<br> Κάντε κλικ "
+"και κρατήστε το για να εμφανιστεί το μενού"
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "Αδύνατη η εκτέλεση του KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "Κλείδωμα οθόνης"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "&Ρύθμιση του KShutDown..."
+
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..4e6614c
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,878 @@
+# Translation of kshutdown to Castilian aka Spanish
+# This file is distributed under the same license as the Kshutdown package.
+#
+# Enrique Matias Sanchez (aka Quique) <cronopios@gmail.com>, 2004, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: kshutdown_0.8-1_es\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-11-17 18:12+0100\n"
+"PO-Revision-Date: 2006-09-17 19:46+0200\n"
+"Last-Translator: Enrique Matias Sanchez (aka Quique) <cronopios@gmail.com>\n"
+"Language-Team: Spanish <es@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"
+
+#: ../kshutdown/extras.cpp:55
+msgid "More actions..."
+msgstr "Más acciones..."
+
+#: ../kshutdown/extras.cpp:225
+msgid "Select a command..."
+msgstr "Seleccione una orden..."
+
+#: ../kshutdown/extras.cpp:243
+msgid "Use context menu to add/edit/remove links."
+msgstr "Use el menú contextual para añadir/editar/eliminar enlaces."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Use el <b>menú contextual</b> para crear un nuevo enlace a una aplicación"
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Use <b>Crear nuevo|Carpeta...</b> para crear un nuevo submenú"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Use <b>Propiedades</b> para cambiar el icono, nombre, o comentario"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:489 ../kshutdown/extras.moc.cpp:34
+#: ../kshutdown/extras.moc.cpp:42
+msgid "Extras"
+msgstr "Extras"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Error interno.\n"
+"El elemento de menú seleccionado está roto."
+
+#: ../kshutdown/appobserver.moc.cpp:34 ../kshutdown/appobserver.moc.cpp:42
+msgid "AppObserver"
+msgstr "AppObserver"
+
+#: ../kshutdown/msettingsdialog.moc.cpp:34
+#: ../kshutdown/msettingsdialog.moc.cpp:42
+msgid "MSettingsDialog"
+msgstr "MSettingsDialog"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Una utilidad de apagado para KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Apagar el equipo"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Reiniciar el equipo"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Bloquear la sesión"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Finalizar la sesión actual"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Confirmar la acción de la línea de órdenes"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Mostrar la ventana de salida estándar"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Cancelar una acción activa"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "No mostrar la ventana en el inicio"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Habilitar el modo de prueba"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Deshabilitar el modo de prueba"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Hora; Ejemplos: 01:30 - hora absoluta (HH:MM); 10 - número de minutos a "
+"esperar a partir de ahora"
+
+#: ../kshutdown/main.cpp:247
+msgid "Invalid time: <b>%1</b>"
+msgstr "Hora no válida: <b>%1</b>"
+
+#: ../kshutdown/msystemtray.moc.cpp:34 ../kshutdown/msystemtray.moc.cpp:42
+msgid "MSystemTray"
+msgstr "MSystemTray"
+
+#: ../kshutdown/mmessagedialog.moc.cpp:34
+#: ../kshutdown/mmessagedialog.moc.cpp:42
+msgid "MMessageDialog"
+msgstr "MMessageDialog"
+
+#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:138
+msgid "Method"
+msgstr "Método"
+
+#: ../kshutdown/mactioneditdialog.cpp:70
+msgid "Select a method:"
+msgstr "Seleccione un método:"
+
+#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:396
+msgid "KDE (default)"
+msgstr "KDE (predefinido)"
+
+#: ../kshutdown/mactioneditdialog.cpp:80
+msgid "Enter a custom command:"
+msgstr "Introduzca una orden personalizada:"
+
+#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:139
+msgid "Command before action"
+msgstr "Orden antes de la acción"
+
+#: ../kshutdown/mactioneditdialog.cpp:87
+msgid "Run command"
+msgstr "Ejecutar la orden"
+
+#: ../kshutdown/mactioneditdialog.cpp:90
+msgid "Pause after run command:"
+msgstr "Pausa tras ejecutar la orden:"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "second(s)"
+msgstr "segundo(s)"
+
+#: ../kshutdown/mactioneditdialog.cpp:93 ../kshutdown/msettingsdialog.cpp:285
+#: ../kshutdown/msettingsdialog.cpp:311 ../kshutdown/msettingsdialog.cpp:436
+#: ../kshutdown/msettingsdialog.cpp:509 ../kshutdown/miscutils.cpp:223
+msgid "Test"
+msgstr "Probar"
+
+#: ../kshutdown/mactioneditdialog.cpp:108
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"En la mayoría de los casos necesita permisos para apagar el sistema (es "
+"decir, ejecutar /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:110
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Si está usando <b>KDE</b> y <b>KDM</b> (Gestor de Sesiones de KDE), "
+"establezca todos los métodos a <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Si está usando <b>KDE</b> y un gestor de sesiones diferente a <b>KDM</b>, "
+"establezca los métodos <i>Apagar el equipo</i> y <i>Reiniciar el equipo</i> "
+"a <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid "Manuals:"
+msgstr "Manuales:"
+
+#: ../kshutdown/mactioneditdialog.cpp:134
+msgid "User Command"
+msgstr "Orden del usuario"
+
+#: ../kshutdown/confirmation.cpp:62
+msgid "Confirm"
+msgstr "Confirmar"
+
+#: ../kshutdown/confirmation.cpp:77
+msgid "Are you sure?"
+msgstr "¿Está seguro?"
+
+#: ../kshutdown/appobserver.cpp:50 ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Actualizar"
+
+#: ../kshutdown/appobserver.cpp:58
+msgid "Kill"
+msgstr "Matar"
+
+#: ../kshutdown/appobserver.cpp:71
+msgid "Waiting for \"%1\""
+msgstr "Esperando a «%1»"
+
+#: ../kshutdown/appobserver.cpp:102
+msgid "The selected process does not exist!"
+msgstr "El proceso seleccionado no existe."
+
+#: ../kshutdown/appobserver.cpp:156
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "No se ha podido ejecutar la orden<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:184
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"¿Seguro que desea MATAR<br><b>%1</b>?<br><br>Se perderán todos los datos no "
+"guardados."
+
+#: ../kshutdown/appobserver.cpp:199
+msgid "Process not found<br><b>%1</b>"
+msgstr "Proceso no encontrado<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:205
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "No tiene permisos para matar <br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:214
+msgid "DEAD: %1"
+msgstr "MUERTO: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:63
+msgid "Settings"
+msgstr "Opciones"
+
+#: ../kshutdown/msettingsdialog.cpp:112 ../kshutdown/mmainwindow.cpp:507
+msgid "Disabled by the Administrator."
+msgstr "Deshabilitado por el administrador."
+
+#: ../kshutdown/msettingsdialog.cpp:124 ../kshutdown/msettingsdialog.cpp:130
+msgid "Actions"
+msgstr "Acciones"
+
+#: ../kshutdown/msettingsdialog.cpp:137
+msgid "Action"
+msgstr "Acción"
+
+#: ../kshutdown/msettingsdialog.cpp:157
+msgid "Edit..."
+msgstr "Editar..."
+
+#: ../kshutdown/msettingsdialog.cpp:160
+msgid "Check System Configuration"
+msgstr "Comprobar la configuración del sistema"
+
+#: ../kshutdown/msettingsdialog.cpp:163
+msgid "Extras Menu"
+msgstr "Menú Extras"
+
+#: ../kshutdown/msettingsdialog.cpp:164
+msgid "Modify..."
+msgstr "Modificar..."
+
+#: ../kshutdown/msettingsdialog.cpp:181
+msgid "Advanced"
+msgstr "Avanzado"
+
+#: ../kshutdown/msettingsdialog.cpp:185
+msgid "After Login"
+msgstr "Tras el ingreso"
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Lock screen"
+msgstr "Bloquear la pantalla"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "Before Logout"
+msgstr "Antes de salir"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Close CD-ROM Tray"
+msgstr "Cerrar la bandeja del CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:193 ../kshutdown/mstatstab.cpp:139
+msgid "Command:"
+msgstr "Orden:"
+
+#: ../kshutdown/msettingsdialog.cpp:203
+msgid "Related KDE Settings..."
+msgstr "Opciones de KDE relacionadas..."
+
+#: ../kshutdown/msettingsdialog.cpp:214
+msgid "General"
+msgstr "General"
+
+#: ../kshutdown/msettingsdialog.cpp:218
+msgid "Common Problems"
+msgstr "Problemas comunes"
+
+#: ../kshutdown/msettingsdialog.cpp:221
+msgid "\"Turn Off Computer\" does not work"
+msgstr "«Apagar el equipo» no funciona"
+
+#: ../kshutdown/msettingsdialog.cpp:225
+msgid "Popup messages are very annoying"
+msgstr "Los mensajes emergentes son muy molestos"
+
+#: ../kshutdown/msettingsdialog.cpp:229
+msgid "Add/Remove Links"
+msgstr "Añadir/eliminar enlaces"
+
+#: ../kshutdown/msettingsdialog.cpp:233
+msgid "Show System Tray Icon"
+msgstr "Mostrar el icono de la bandeja del sistema"
+
+#: ../kshutdown/msettingsdialog.cpp:235
+msgid "Always"
+msgstr "Siempre"
+
+#: ../kshutdown/msettingsdialog.cpp:236
+msgid "Tray icon will be always visible."
+msgstr "El icono de la bandeja del sistema siempre estará visible."
+
+#: ../kshutdown/msettingsdialog.cpp:237
+msgid "If Active"
+msgstr "Si activo"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+"El icono de la bandeja del sistema está visible sólo si KShutDown está "
+"activo."
+
+#: ../kshutdown/msettingsdialog.cpp:239
+msgid "Never"
+msgstr "Nunca"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Tray icon will be always hidden."
+msgstr "El icono de la bandeja del sistema siempre estará oculto."
+
+#: ../kshutdown/msettingsdialog.cpp:259
+msgid "KShutDown Themes"
+msgstr "Temas de KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:261
+msgid "SuperKaramba Home Page"
+msgstr "Página de SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:270
+msgid "Messages"
+msgstr "Mensajes"
+
+#: ../kshutdown/msettingsdialog.cpp:280
+msgid "Display a warning message before action"
+msgstr "Mostrar un mensaje de advertencia antes de la acción"
+
+#: ../kshutdown/msettingsdialog.cpp:283
+msgid "minute(s)"
+msgstr "minuto(s)"
+
+#: ../kshutdown/msettingsdialog.cpp:291
+msgid "Warning Message"
+msgstr "Mensaje de advertencia"
+
+#: ../kshutdown/msettingsdialog.cpp:296
+msgid "Enabled"
+msgstr "Habilitado"
+
+#: ../kshutdown/msettingsdialog.cpp:297
+msgid "A shell command to execute:"
+msgstr "Una orden de shell a ejecutar:"
+
+#: ../kshutdown/msettingsdialog.cpp:301
+msgid "Enter a command."
+msgstr "Introduzca una orden."
+
+#: ../kshutdown/msettingsdialog.cpp:304
+msgid "A message text"
+msgstr "Un texto de mensaje"
+
+#: ../kshutdown/msettingsdialog.cpp:305
+msgid "The current main window title"
+msgstr "El título de la ventana principal actual"
+
+#: ../kshutdown/msettingsdialog.cpp:318
+msgid "Custom Message"
+msgstr "Mensaje personalizado"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "Re-enable All Message Boxes"
+msgstr "Rehabilitar todas las cajas de mensaje"
+
+#: ../kshutdown/msettingsdialog.cpp:326
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Habilitar todos los mensajes que hayan sido desactivados con la función "
+"<b>No mostrar este mensaje de nuevo</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:410
+msgid "No pause"
+msgstr "Sin pausa"
+
+#: ../kshutdown/msettingsdialog.cpp:412
+msgid "Pause:"
+msgstr "Pausa:"
+
+#: ../kshutdown/msettingsdialog.cpp:547
+msgid "Restore default settings for this page?"
+msgstr "¿Restaurar las opciones predefinidas de esta página?"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Enrique Matías Sánchez (Quique)"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "cronopios@gmail.com"
+
+#: ../kshutdown/mstatstab.moc.cpp:34 ../kshutdown/mstatstab.moc.cpp:42
+msgid "MStatsTab"
+msgstr "MStatsTab"
+
+#: ../kshutdown/mactioneditdialog.moc.cpp:34
+#: ../kshutdown/mactioneditdialog.moc.cpp:42
+msgid "MActionEditDialog"
+msgstr "MActionEditDialog"
+
+#: ../kshutdown/mmainwindow.cpp:130
+msgid "Enter hour and minute."
+msgstr "Introduzca la hora y minutos."
+
+#: ../kshutdown/mmainwindow.cpp:140
+msgid "Enter date and time."
+msgstr "Introduzca la fecha y hora."
+
+#: ../kshutdown/mmainwindow.cpp:240
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Pulse antes el botón <b>Seleccionar una orden...</b>."
+
+#: ../kshutdown/mmainwindow.cpp:279
+msgid "Stop [Esc]"
+msgstr "Detener [Esc]"
+
+#: ../kshutdown/mmainwindow.cpp:286
+msgid "Selected date/time: %1"
+msgstr "Fecha/hora seleccionada: %1"
+
+#: ../kshutdown/mmainwindow.cpp:287
+msgid "Current date/time: %1"
+msgstr "Fecha/hora actual: %1"
+
+#: ../kshutdown/mmainwindow.cpp:294
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "La fecha/hora seleccionada es anterior a la fecha/hora actual."
+
+#: ../kshutdown/mmainwindow.cpp:301
+msgid "Action cancelled!"
+msgstr "Acción cancelada."
+
+#: ../kshutdown/mmainwindow.cpp:336 ../kshutdown/mmainwindow.cpp:535
+msgid "Start [Enter]"
+msgstr "Iniciar [Intro]"
+
+#: ../kshutdown/mmainwindow.cpp:393
+msgid "Test mode enabled"
+msgstr "Habilitado el modo de prueba"
+
+#: ../kshutdown/mmainwindow.cpp:393
+msgid "Test mode disabled"
+msgstr "Modo de prueba deshabilitado"
+
+#: ../kshutdown/mmainwindow.cpp:439
+msgid "&Statistics"
+msgstr "Estadí&sticas"
+
+#: ../kshutdown/mmainwindow.cpp:452
+msgid "Check &System Configuration"
+msgstr "Comprobar la configuración del &sistema"
+
+#: ../kshutdown/mmainwindow.cpp:480
+msgid "Select an &action to perform"
+msgstr "Seleccione una &acción a realizar"
+
+#: ../kshutdown/mmainwindow.cpp:490
+msgid "Select an action to perform at the selected time."
+msgstr "Seleccione una acción a efectuar a la hora seleccionada."
+
+#: ../kshutdown/mmainwindow.cpp:496
+msgid "S&elect a time"
+msgstr "S&eleccione una hora"
+
+#: ../kshutdown/mmainwindow.cpp:502
+msgid "No Delay"
+msgstr "Sin retardo"
+
+#: ../kshutdown/mmainwindow.cpp:503
+msgid "Time From Now (HH:MM)"
+msgstr "Tiempo a partir de ahora (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:504
+msgid "At Date/Time"
+msgstr "A la fecha/hora"
+
+#: ../kshutdown/mmainwindow.cpp:505
+msgid "When selected application exit"
+msgstr "Cuando se cierre la aplicación seleccionada"
+
+#: ../kshutdown/mmainwindow.cpp:509
+msgid "Select the type of delay."
+msgstr "Seleccionar el tipo de retardo."
+
+#: ../kshutdown/mmainwindow.cpp:524
+msgid "Selected time."
+msgstr "Hora seleccionada."
+
+#: ../kshutdown/mmainwindow.cpp:554
+msgid "TEST MODE"
+msgstr "MODO DE PRUEBA"
+
+#: ../kshutdown/mmainwindow.cpp:561
+msgid "Remaining time: <b>%1</b>"
+msgstr "Tiempo restante: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:561 ../kshutdown/actions.cpp:355
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: ../kshutdown/mmainwindow.cpp:562
+msgid "Selected time: <b>%1</b>"
+msgstr "Hora seleccionada: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:563
+msgid "Selected action: <b>%1</b>"
+msgstr "Acción seleccionada: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:566
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Nota: </b> El modo de prueba está habilitado"
+
+#: ../kshutdown/mmainwindow.cpp:581
+msgid "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu"
+msgstr "<b>Truco:</b> Use el <b>botón central del ratón</b> para mostrar el menú de acciones"
+
+#: ../kshutdown/mmainwindow.cpp:737
+msgid "No delay"
+msgstr "Sin retardo"
+
+#: ../kshutdown/systemconfig.moc.cpp:34 ../kshutdown/systemconfig.moc.cpp:42
+msgid "SystemConfig"
+msgstr "SystemConfig"
+
+#: ../kshutdown/links.cpp:46
+msgid "Select a location where to create the link:"
+msgstr "Seleccione una ubicación donde crear el enlace:"
+
+#: ../kshutdown/links.cpp:50
+msgid "Desktop"
+msgstr "Escritorio"
+
+#: ../kshutdown/links.cpp:51
+msgid "K Menu"
+msgstr "Menú K"
+
+#: ../kshutdown/links.cpp:55
+msgid "Select a type of the link:"
+msgstr "Seleccione un tipo del enlace:"
+
+#: ../kshutdown/links.cpp:59
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:60
+msgid "Standard Logout Dialog"
+msgstr "Ventana de salida estándar"
+
+#: ../kshutdown/links.cpp:68
+msgid "Create Link"
+msgstr "Crear un enlace"
+
+#: ../kshutdown/links.cpp:73
+msgid "Remove Link"
+msgstr "Eliminar un enlace"
+
+#: ../kshutdown/links.cpp:98
+msgid "Could not create file <b>%1</b>!"
+msgstr "No se ha podido crear el fichero <b>%1</b>."
+
+#: ../kshutdown/links.cpp:109
+msgid "Could not remove file <b>%1</b>!"
+msgstr "No se ha podido eliminar el fichero <b>%1</b>."
+
+#: ../kshutdown/links.cpp:179
+msgid "Logout"
+msgstr "Salir"
+
+#: ../kshutdown/mmessagedialog.cpp:45 ../kshutdown/systemconfig.cpp:76
+msgid "Message"
+msgstr "Mensaje"
+
+#: ../kshutdown/mmessagedialog.cpp:76
+msgid "Remaining time."
+msgstr "Tiempo restante."
+
+#: ../kshutdown/mmessagedialog.cpp:89
+msgid "&I'm Sure"
+msgstr "&Estoy seguro"
+
+#: ../kshutdown/mmainwindow.moc.cpp:34 ../kshutdown/mmainwindow.moc.cpp:42
+msgid "MMainWindow"
+msgstr "MMainWindow"
+
+#: ../kshutdown/links.moc.cpp:34 ../kshutdown/links.moc.cpp:42
+msgid "Links"
+msgstr "Enlaces"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Configuración del sistema"
+
+#: ../kshutdown/systemconfig.cpp:83
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Truco: Si tiene problemas con la orden «/sbin/shutdown»,\n"
+"intente modificar el fichero «/etc/shutdown.allow»,\n"
+"y después ejecute la orden «/sbin/shutdown» con el\n"
+"parámetro adcional «-a».\n"
+"\n"
+"Pulse aquí para más información."
+
+#: ../kshutdown/systemconfig.cpp:92
+msgid "No problems were found."
+msgstr "No se ha encontrado ningún problema."
+
+#: ../kshutdown/systemconfig.cpp:123
+msgid "Program \"%1\" was not found!"
+msgstr "El programa «%1» no ha sido encontrado."
+
+#: ../kshutdown/systemconfig.cpp:130
+msgid "No permissions to execute \"%1\"."
+msgstr "No tiene permisos para ejecutar «%1»."
+
+#: ../kshutdown/systemconfig.cpp:139
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Parece que ésta no es una sesión completa de KDE.\n"
+"KShutDown ha sido diseñado para funcionar con KDE.\n"
+"No obstante, puede personalizar las Acciones en la ventana\n"
+"de opciones de KShutDown\n"
+"(Opciones -> Configurar KShutdown... -> Acciones)."
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Truco: Puede personalizar las acciones para que funcionen con GDM.\n"
+"(Opciones -> Configurar KShutdown... -> Acciones)"
+
+#: ../kshutdown/systemconfig.cpp:157
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"El gestor de sesiones de KDE no está en funcionamiento,\n"
+"o la función de apagar/reiniciar está deshabilitada.\n"
+"\n"
+"Pulse aquí para configurar KDM."
+
+#: ../kshutdown/actions.cpp:66
+msgid "Please wait..."
+msgstr "Por favor, espere..."
+
+#: ../kshutdown/actions.cpp:80
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"No se ha podido salir debidamente.\n"
+"No se ha podido contactar con el gestor de sesiones."
+
+#: ../kshutdown/actions.cpp:167
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: la llamada DCOP ha fallado."
+
+#: ../kshutdown/actions.cpp:209
+msgid "Command: %1"
+msgstr "Orden: %1"
+
+#: ../kshutdown/actions.cpp:347
+msgid "Nothing"
+msgstr "Nada"
+
+#: ../kshutdown/actions.cpp:348
+msgid "Turn Off Computer"
+msgstr "Apagar el equipo"
+
+#: ../kshutdown/actions.cpp:349
+msgid "Restart Computer"
+msgstr "Reiniciar el equipo"
+
+#: ../kshutdown/actions.cpp:350 ../kshutdownlockout/lockout.cpp:97
+msgid "Lock Session"
+msgstr "Bloquear la sesión"
+
+#: ../kshutdown/actions.cpp:351
+msgid "End Current Session"
+msgstr "Finalizar la sesión actual"
+
+#: ../kshutdown/actions.cpp:390
+msgid "Action failed! (%1)"
+msgstr "La acción ha fallado (%1)"
+
+#: ../kshutdown/mstatstab.cpp:43
+msgid "Statistics"
+msgstr "Estadísticas"
+
+#: ../kshutdown/mstatstab.cpp:69
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Esta vista muestra información sobre los usuarios que hay actualmente en el "
+"sistema, y sus procesos.<br>La cabecera muestra cuanto tiempo lleva en "
+"funcionamiento el sistema."
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "More information"
+msgstr "Más información"
+
+#: ../kshutdown/mstatstab.cpp:95
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Mostrar la hora de ingreso, tiempos JCPU y PCPU."
+
+#: ../kshutdown/mstatstab.cpp:97
+msgid "Toggle \"FROM\""
+msgstr "Conmutar «DESDE»"
+
+#: ../kshutdown/mstatstab.cpp:99
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Conmutar la cabecera «DESDE» (nombre de máquina remota)."
+
+#: ../kshutdown/msystemtray.cpp:168
+msgid "KShutDown Menu"
+msgstr "Menú de KShutDown"
+
+#: ../kshutdown/msystemtray.cpp:170
+msgid "KShutDown Actions (no delay!)"
+msgstr "Acciones de KShutDown (sin demora)"
+
+#: ../kshutdown/msystemtray.cpp:171
+msgid "Actions (no delay!)"
+msgstr "Acciones (sin demora)"
+
+#: ../kshutdown/msystemtray.cpp:176
+msgid "&Turn Off Computer"
+msgstr "&Apagar el equipo"
+
+#: ../kshutdown/msystemtray.cpp:181
+msgid "&Restart Computer"
+msgstr "&Reiniciar el equipo"
+
+#: ../kshutdown/msystemtray.cpp:186 ../kshutdownlockout/lockout.cpp:157
+msgid "&Lock Session"
+msgstr "B&loquear la sesión"
+
+#: ../kshutdown/msystemtray.cpp:191
+msgid "&End Current Session"
+msgstr "&Finalizar la sesión actual"
+
+#: ../kshutdown/msystemtray.cpp:196
+msgid "&Immediate Action"
+msgstr "Acción &inmediata"
+
+#: ../kshutdown/msystemtray.cpp:199
+msgid "&Stop"
+msgstr "&Detener"
+
+#: ../kshutdown/msystemtray.cpp:206
+msgid "Configure &KShutDown..."
+msgstr "Configurar &KShutDown..."
+
+#: ../kshutdown/miscutils.cpp:98
+msgid "1 hour warning"
+msgstr "Advertencia de una hora"
+
+#: ../kshutdown/miscutils.cpp:101 ../kshutdown/miscutils.cpp:102
+msgid "5 minutes warning"
+msgstr "Advertencia de cinco minutos"
+
+#: ../kshutdown/miscutils.cpp:105 ../kshutdown/miscutils.cpp:106
+msgid "1 minute warning"
+msgstr "Advertencia de un minuto"
+
+#: ../kshutdown/miscutils.cpp:109
+msgid "10 seconds warning"
+msgstr "Advertencia de 10 segundos"
+
+#: ../kshutdown/miscutils.cpp:112
+msgid "3 seconds before action"
+msgstr "Tres segundos antes de la acción"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "2 seconds before action"
+msgstr "Dos segundos antes de la acción"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "1 second before action"
+msgstr "Un segundo antes de la acción"
+
+#: ../kshutdown/miscutils.cpp:218
+msgid "Could not run \"%1\"!"
+msgstr "No se ha podido ejecutar «%1»."
+
+#: ../kshutdownlockout/lockout.moc.cpp:34
+#: ../kshutdownlockout/lockout.moc.cpp:42
+msgid "Lockout"
+msgstr "Bloquear"
+
+#: ../kshutdownlockout/lockout.cpp:95
+msgid "Run KShutDown"
+msgstr "Ejecutar KShutDown"
+
+#: ../kshutdownlockout/lockout.cpp:152
+msgid "&Run KShutDown"
+msgstr "Ejecuta&r KShutDown"
+
+#: ../kshutdownlockout/lockout.cpp:163
+msgid "&Transparent"
+msgstr "&Transparente"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "&Show Lock Button"
+msgstr "Mo&strar el botón de bloqueo"
+
+#: ../kshutdownlockout/lockout.cpp:172
+msgid "&Configure: KShutDown..."
+msgstr "&Configurar: KShutDown..."
+
+#: ../kshutdownlockout/lockout.cpp:267 ../kshutdownlockout/lockout.cpp:274
+msgid "Could not run KShutDown!"
+msgstr "No se ha podido ejecutar KShutDown."
+
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..b3bc503
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,823 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Kshutdown\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2006-08-23 18:28+0100\n"
+"Last-Translator: Chéramy Maxime\n"
+"Language-Team: Maxime Chéramy <maxime81@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: French\n"
+"X-Poedit-Country: FRANCE\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statistiques"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid "This view displays information about the users currently on the machine, and their processes.<br>The header shows how long the system has been running."
+msgstr "Cette vue affiche les informations concernant les utilisateurs actuellement sur la machine, et leurs processus.<br>L'entête montre depuis combien de temps le système est en marche."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Actualiser"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "Options"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Plus d'information"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:190
+#: ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "Erreur"
+
+#: ../kshutdown/mstatstab.cpp:191
+#: ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Commande: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Plus d'actions..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Sélectionner une commande..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Utiliser le menu contextuel pour ajouter/éditer/supprimer liens."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Utiliser le <b>Menu Contextuel</b> pour créer un nouveau lien vers une application"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr ""
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr ""
+
+#: ../kshutdown/extras.cpp:252
+#: ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Suppléments"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Erreur interne!\n"
+"L'élément du menu sélectionné est cassé."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "1 heure attention"
+
+#: ../kshutdown/miscutils.cpp:107
+#: ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 minutes attention"
+
+#: ../kshutdown/miscutils.cpp:111
+#: ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 minute attention"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 secondes attention"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 secondes avant l'action"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 secondes avant l'action"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 seconde avant l'action"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "Ne peut exécuter \"%1\"!"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Progress Bar"
+msgstr "Barre de progression"
+
+#: ../kshutdown/miscutils.cpp:228
+#: ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Tester"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Adresse où créer le lien:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Bureau"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "Menu K"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Type du lien:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Fenêtre standard de déconnexion"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "Utilitaire d'arrêt du système"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Ne peut pas créer le fichier <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Ne peut pas supprimer le fichier <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Supprimer un lien"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "Ajouter un lien"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Déconnexion"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Un utilitaire d'arrêt pour KDE"
+
+#: ../kshutdown/main.cpp:51
+#: ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Éteindre l'ordinateur"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Redémarrer l'ordinateur"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Verrouiller la session"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Fermer la session en cours"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr ""
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Afficher la fenêtre standard de déconnexion"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Annuler une action active"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Ne pas afficher la fenêtre au démarrage"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Activer le mode test"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Désactiver le mode test"
+
+#: ../kshutdown/main.cpp:67
+msgid "Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now"
+msgstr ""
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Heure invalide: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Paramètres"
+
+#: ../kshutdown/msettingsdialog.cpp:117
+#: ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Désactivé par l'administrateur."
+
+#: ../kshutdown/msettingsdialog.cpp:129
+#: ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Actions"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Action"
+
+#: ../kshutdown/msettingsdialog.cpp:143
+#: ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Méthode"
+
+#: ../kshutdown/msettingsdialog.cpp:144
+#: ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Commande avant l'action"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Éditer..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Vérifier la configuration système"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Menu Suppléments"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Modifier..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Avancé"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Verrouiller l'écran"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Avant la déconnexion"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Fermer le lecteur CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Commande:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Général"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Problèmes courants"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Éteindre l'ordinateur\" ne marche pas"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Les notifications sont vraiment agaçantes"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Ajouter/Supprimer liens"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Afficher l'icône de notification"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Toujours"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "L'icône de notification sera toujours visible."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Si Actif"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "L'icône de notification sera visible seulement si KShutDown est actif"
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Jamais"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "L'icône de notification sera toujours cachée."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Montrer les thèmes de KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Page d'accueil de SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Messages"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Afficher un message d'avertissement avant l'action"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minute(s)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Message d'avertissement"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Activé"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Une commande shell à exécuter:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Entrer une commande."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "Un message texte"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "Le titre actuel de la fenêtre principale"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Message personnalisé"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Réactiver toutes les boites de message"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid "Enable all messages which have been turned off with the <b>Do not show this message again</b> feature."
+msgstr "Activer tous les messages qui avaient été désactivés par la fonction <b>Ne pas montrer ce message à nouveau</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:417
+#: ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (défaut)"
+
+#: ../kshutdown/msettingsdialog.cpp:431
+#: ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Pas de pause"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "Pause: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "Ce fichier est utilisé pour verrouiller la session au démarrage de KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Restaurer la configuration par défaut pour cette page ?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Entrer heure et minute."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Entrer date et heure"
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Cliquez sur le bouton <b>Sélectionner une commande...</b> en premier."
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Date/heure sélectionnée: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Date/heure actuelle: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Action annulée!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Mode test activé"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Mode test desactivé"
+
+#: ../kshutdown/mmainwindow.cpp:417
+#: ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595
+#: ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Sans delai"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&Fichier"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "&Actions"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "Configurer les raccourcis globaux..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "&Paramètres"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "&Aide"
+
+#: ../kshutdown/mmainwindow.cpp:503
+#: ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "Annuler"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "Vérifier la configuration du système"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "&Démarrer [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "&Statistiques"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "Sélectionner une &action à effecter"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Sélectionner une action à effectuer à l'heure sélectionnée."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "Sélectionner une heure"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Temps à partir de maintenant (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "À Date/Heure"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "Lorsque l'application sélectionnée est fermée"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Sélectionner un type de délai"
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Heure sélectionnée"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "MODE TEST"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Temps restant: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651
+#: ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Note: </b> Le mode test est activé"
+
+#: ../kshutdown/mmainwindow.cpp:849
+#: ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "KShutDown a été minimisé"
+
+#: ../kshutdown/mmainwindow.cpp:879
+#: ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "KShutDown a quitté"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Patientez..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Ne peut pas se déconnecter proprement.\n"
+"Le gestionnaire de session n'a pas pu être contacté."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Rien"
+
+#: ../kshutdown/actions.cpp:317
+#: ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Éteindre l'ordinateur"
+
+#: ../kshutdown/actions.cpp:318
+#: ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Redémarrer l'ordinateur"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Verrouiller la session"
+
+#: ../kshutdown/actions.cpp:320
+#: ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Fermer la session en cours"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "L'action a échoué! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Configuration système"
+
+#: ../kshutdown/systemconfig.cpp:76
+#: ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Message"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Astuce: Si vous avez un problème avec la commande \"/sbin/shutdown\",\n"
+"essayez de modifier le fichier \"/etc/shutdown.allow\",\n"
+"alors exécutez la commande \"/sbin/shutdown\" avec le paramètre additionnel \"-a\".\n"
+"\n"
+"Cliquez ici pour plus d'information."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Aucun problèmes n'ont été trouvé."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "Le programme \"%1\" n'a pas été trouvé!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "N'a pas les permissions pour exécuter \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Sélectionner une méthode:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Entrer une commande personnaliser:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Exécuter la commande"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "seconde(s)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid "In most cases you need privileges to shut down system (e.g. run /sbin/shutdown)"
+msgstr "Dans la plupart des cas vous devez avoir des privilèges pour pouvoir éteindre le système (e.g. exécuter /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid "If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set all methods to <i>KDE</i>"
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid "If you are using <b>KDE</b> and display manager different than <b>KDM</b>, then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/sbin/...</i>"
+msgstr "Si vous utilisez <b>KDE</b> et un gestionnaire d'affichage différent de <b>KDM</b>, alors configurez <i>Éteindre l'ordinateur</i> et <i>Redémarrer l'ordinateur</i> pour utiliser <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Commande utilisateur"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Temps restant."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Actualiser la liste des processus"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Liste des processus en cours d'exécution"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Tuer"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Tuer le processus sélectionné"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Le processus sélectionné n'existe pas !"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:191
+msgid "Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be lost!"
+msgstr "Êtes-vous certain de vouloir tuer<br><b>%1</b>?<br><br>Toutes les données non enregistrées seront perdues !"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Processus non trouvé<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Pas la permission de tuer <br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "MORT: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Confirmer"
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "Annuler"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Êtes-vous sûr ?<br><br>Action sélectionnée: <b>%1</b><br>Temps sélectionné: <b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1
+#: _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Maxime Chéramy"
+
+#: ../kshutdown/_translatorinfo.cpp:3
+#: _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "maxime81@gmail.com"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:150
+#: ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "Ne peut lancer KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "Verrouiller l'écran"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "&Paramétrer KShutDown..."
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..1bda21a
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,1301 @@
+# translation of hu.po to Hungarian
+# Translation of kshutdown to Castilian aka Spanish
+# This file is distributed under the same license as the Kshutdown package.
+# Károly Barcza <kbarcza@blackpanther.hu>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hu\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2004-10-25 16:23+0100\n"
+"Last-Translator: Kroly Barcza (VectoR) <kbarcza@blackpanther.hu>\n"
+"Language-Team: Hungarian <translator@vgroup.hu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statisztika"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+
+#: ../kshutdown/mstatstab.cpp:79
+#, fuzzy
+msgid "Refresh"
+msgstr "Fris&sítés"
+
+#: ../kshutdown/mstatstab.cpp:83
+#, fuzzy
+msgid "Options"
+msgstr "Mű&veletek"
+
+#: ../kshutdown/mstatstab.cpp:85
+#, fuzzy
+msgid "More information"
+msgstr "B&eállítás..."
+
+#: ../kshutdown/mstatstab.cpp:88
+#, fuzzy
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Bejelentkezési idő megjelenítése JCPU és PCPU idők"
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Parancs: %1"
+
+#: ../kshutdown/extras.cpp:57
+#, fuzzy
+msgid "More actions..."
+msgstr "B&eállítás..."
+
+#: ../kshutdown/extras.cpp:227
+#, fuzzy
+msgid "Select a command..."
+msgstr "Késleltetés megadása másodpercben"
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Kontext menü használta a linkek hozzáadás/szerkesztés/eltávolításához"
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Alkalmazás link létrehozásához használjon <b>Kontext Menüt</b>"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr ""
+"Új főmenü létrehozásához használjad az <b>Új létrehozása|Könyvtár...</b>-at"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr ""
+"Ikon, név vagy megjegyzés változtatásához használja a <b>Beállításokat</b>"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Extrák"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Belső hiba!\n"
+"A választott menü elem hibás"
+
+#: ../kshutdown/miscutils.cpp:104
+#, fuzzy
+msgid "1 hour warning"
+msgstr "1 perces figyelmeztetés"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 perces figyelmeztetés"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 perces figyelmeztetés"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 mperces figyelmeztetés"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:124
+#, fuzzy
+msgid "1 second before action"
+msgstr "10 mperces figyelmeztetés"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "<b>%1</b>! nem futtatható"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Próba"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr ""
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Munkaasztal"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K menü"
+
+#: ../kshutdown/links.cpp:62
+#, fuzzy
+msgid "Type of the link:"
+msgstr "Válassz késleltési típust"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Kilépés üzenetablak megjelenítése"
+
+#: ../kshutdown/links.cpp:96
+#, fuzzy
+msgid "System Shut Down Utility"
+msgstr "Rendszer leállító KDE segédprogram"
+
+#: ../kshutdown/links.cpp:107
+#, fuzzy
+msgid "Could not create file <b>%1</b>!"
+msgstr "<b>%1</b> fájl eltávolítása sikertelen!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "<b>%1</b> fájl eltávolítása sikertelen!"
+
+#: ../kshutdown/links.cpp:183
+#, fuzzy
+msgid "Remove Link"
+msgstr "Link e&ltávolítása"
+
+#: ../kshutdown/links.cpp:187
+#, fuzzy
+msgid "Add Link"
+msgstr "Link e&ltávolítása"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Kijelentkezés"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Rendszer leállító KDE segédprogram"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "A számítógép &kikapcsolása"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "A számítógép ú&jraindítása"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Munkafolyamat lezárása"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Jelenlegi folyamat befejezése"
+
+#: ../kshutdown/main.cpp:60
+#, fuzzy
+msgid "Confirm command line action"
+msgstr "Egy aktív feladat megszakítása"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Kilépés üzenetablak megjelenítése"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Egy aktív feladat megszakítása"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "A főablak ne jelenjen meg induláskor"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "A tesztmód bekapcsolása"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "A tesztmód bekapcsolása"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Idő; Például: 01:30 - abszolút idő (ÓÓ:PP); 10 - szám hogy hány percet "
+"várjon most"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Érvénytelen idő: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Beállítások"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Kikapcsolva az adminisztrátor által."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+#, fuzzy
+msgid "Actions"
+msgstr "Mű&veletek"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Művelet"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+#, fuzzy
+msgid "Method"
+msgstr "&Mód:"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:162
+#, fuzzy
+msgid "Edit..."
+msgstr "Sz&erkesztés..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:168
+#, fuzzy
+msgid "Extras Menu"
+msgstr "Extrák menü"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+#, fuzzy
+msgid "Modify..."
+msgstr "Sz&erkesztés..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:190
+#, fuzzy
+msgid "After Login"
+msgstr "&Bejelentkezéskor"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+#, fuzzy
+msgid "Lock screen"
+msgstr "Képernyő&zár"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+#, fuzzy
+msgid "Before Logout"
+msgstr "Kijelentkezés"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Parancs:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+#, fuzzy
+msgid "Related KDE Settings..."
+msgstr "KDE beállítások"
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Általános"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:226
+#, fuzzy
+msgid "\"Turn Off Computer\" does not work"
+msgstr "A számítógép &kikapcsolása"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:234
+#, fuzzy
+msgid "Add/Remove Links"
+msgstr "Link e&ltávolítása"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:274
+#, fuzzy
+msgid "Show KShutDown Themes"
+msgstr "KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Üzenetek"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+#, fuzzy
+msgid "Display a warning message before action"
+msgstr "%1 mp után a gép leállítása üzenet megjelenítése."
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "Perc(ek)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+#, fuzzy
+msgid "Warning Message"
+msgstr "Figyelmeztető üzenet (ajánlott)"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+#, fuzzy
+msgid "Enabled"
+msgstr "Engedélye&zve"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:317
+#, fuzzy
+msgid "Enter a command."
+msgstr "Késleltetés megadása másodpercben"
+
+#: ../kshutdown/msettingsdialog.cpp:320
+#, fuzzy
+msgid "A message text"
+msgstr "Üzenet elrejtése után:"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+#, fuzzy
+msgid "Custom Message"
+msgstr "Üzenet"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+#, fuzzy
+msgid "Re-enable All Message Boxes"
+msgstr "Az összes figyelmeztetés és hibaüzenet engedélyezése"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Alaphelyzetbe állítod a beállításokat ezen az oldalon?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+#, fuzzy
+msgid "Enter hour and minute."
+msgstr "Óra és perc megadása:"
+
+#: ../kshutdown/mmainwindow.cpp:142
+#, fuzzy
+msgid "Enter date and time."
+msgstr "Dátum és idő megadása:"
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Kiválasztott Dátum/idő: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Jelnlegi Dátum/idő: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "A választott dátum/idő korábbi, mint a mostani idő/dátum!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+#, fuzzy
+msgid "Action cancelled!"
+msgstr "Sikertelen Művelet! ( %1)"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:380
+#, fuzzy
+msgid "Test mode disabled"
+msgstr "Az ütemező ki van kapcsolva!"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+#, fuzzy
+msgid "No Delay"
+msgstr "Nincs késleltetés"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:449
+#, fuzzy
+msgid "&Actions"
+msgstr "Mű&veletek"
+
+#: ../kshutdown/mmainwindow.cpp:455
+#, fuzzy
+msgid "Configure Global Shortcuts..."
+msgstr "B&eállítás..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+#, fuzzy
+msgid "&Settings"
+msgstr "Beállítások"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+#, fuzzy
+msgid "C&ancel"
+msgstr "Parancs: %1"
+
+#: ../kshutdown/mmainwindow.cpp:511
+#, fuzzy
+msgid "Check &System Configuration"
+msgstr "&megerősítés"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:528
+#, fuzzy
+msgid "&Statistics"
+msgstr "Statisztika"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:589
+#, fuzzy
+msgid "S&elect a time"
+msgstr "Kiválasztott Dátum/idő: %1"
+
+#: ../kshutdown/mmainwindow.cpp:596
+#, fuzzy
+msgid "Time From Now (HH:MM)"
+msgstr "Ettől az időponttól kezdve [ÓÓ:PP]"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Dátum/idő"
+
+#: ../kshutdown/mmainwindow.cpp:598
+#, fuzzy
+msgid "When selected application exit"
+msgstr "Végre akarod hajtani a kiválasztott feladatot?"
+
+#: ../kshutdown/mmainwindow.cpp:602
+#, fuzzy
+msgid "Select the type of delay."
+msgstr "Válassz k&ésleltési típust"
+
+#: ../kshutdown/mmainwindow.cpp:617
+#, fuzzy
+msgid "Selected time."
+msgstr "Kiválasztott Dátum/idő: %1"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "A tesztmód bekapcsolása"
+
+#: ../kshutdown/mmainwindow.cpp:651
+#, fuzzy
+msgid "Remaining time: <b>%1</b>"
+msgstr "Érvénytelen idő: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Ismeretlen"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "kiválasztott idő: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+#, fuzzy
+msgid "Selected action: <b>%1</b>"
+msgstr "kiválasztott idő: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+#, fuzzy
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "Az ütemező ki van kapcsolva!"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+#, fuzzy
+msgid "KShutDown has quit"
+msgstr "KShutDown"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr ""
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Nem lehet szabályosan kilépni.\n"
+"Az ablakkezelővel nincs kapcsolat."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Semmi"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "A számítógép &kikapcsolása"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "A számítógép ú&jraindítása"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Munkafolyamat lezárása"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Jelenlegi folyamat befejezése"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Sikertelen Művelet! ( %1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP rendszerhívás sikertelen!"
+
+#: ../kshutdown/systemconfig.cpp:65
+#, fuzzy
+msgid "System Configuration"
+msgstr "&megerősítés"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Üzenet"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+#, fuzzy
+msgid "Enter a custom command:"
+msgstr "Késleltetés megadása másodpercben"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+#, fuzzy
+msgid "Run command"
+msgstr "Parancs f&uttatása:"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+#, fuzzy
+msgid "Pause after run command:"
+msgstr "Megállítás után futtassa ezt a parancsot:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "másodperc(ek)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+#, fuzzy
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Szükséged van megfelelő jogosultságokra a rendszer leállításához vagy "
+"újraindításához (pl:run /sbin/reboot vagy /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Ha te <b>KDE</b> és <b>KDM</b>-et (KDE Display Manager) használsz akkor "
+"állitsad be az összes módot a <i>KDE</i>-hez"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Ha KDE vagy KDM-től különböző ablakkezelőt használsz be kell állítanod a "
+"<i>Shut Down</i> és <i>Reboot</i> módot <i>/sbin/...</i>-ben"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Kézikönyvek:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Felhasználói parancs:"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+#, fuzzy
+msgid "Remaining time."
+msgstr "Érvénytelen idő: <b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:68
+#, fuzzy
+msgid "Kill the selected process"
+msgstr "Végre akarod hajtani a kiválasztott feladatot?"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:111
+#, fuzzy
+msgid "The selected process does not exist!"
+msgstr "Végre akarod hajtani a kiválasztott feladatot?"
+
+#: ../kshutdown/appobserver.cpp:164
+#, fuzzy
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "<b>%1</b> fájl eltávolítása sikertelen!"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr ""
+
+#: ../kshutdown/confirmation.cpp:65
+#, fuzzy
+msgid "Confirm"
+msgstr "&megerősítés"
+
+#: ../kshutdown/confirmation.cpp:74
+#, fuzzy
+msgid "&Cancel"
+msgstr "Parancs: %1"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid ""
+"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Charles Barcza"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "kbarcza@blackpanther.hu"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+#, fuzzy
+msgid "Could not run KShutDown!"
+msgstr "<b>%1</b>! nem futtatható"
+
+#: ../kshutdownlockout/lockout.cpp:167
+#, fuzzy
+msgid "Lock Screen"
+msgstr "Képernyő&zár"
+
+#: ../kshutdownlockout/lockout.cpp:199
+#, fuzzy
+msgid "&Configure KShutDown..."
+msgstr "B&eállítás..."
+
+#~ msgid "Are you sure?"
+#~ msgstr "Biztosan ezt szeretnéd?"
+
+#, fuzzy
+#~ msgid ""
+#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu"
+#~ msgstr "<b>Középső gomb</b> a műveletek menü megjelenítése"
+
+#~ msgid "No delay"
+#~ msgstr "Nincs késleltetés"
+
+#, fuzzy
+#~ msgid "Create Link"
+#~ msgstr "&Link létrehozása"
+
+#, fuzzy
+#~ msgid "&Cancel: %1"
+#~ msgstr "Parancs: %1"
+
+#, fuzzy
+#~ msgid "KShutDown Actions (no delay!)"
+#~ msgstr "Művelet (nincs késleltés)"
+
+#~ msgid "Actions (no delay!)"
+#~ msgstr "Művelet (nincs késleltés)"
+
+#~ msgid "&Turn Off Computer"
+#~ msgstr "A számítógép &kikapcsolása"
+
+#~ msgid "&Restart Computer"
+#~ msgstr "A számítógép ú&jraindítása"
+
+#~ msgid "&Lock Session"
+#~ msgstr "Munkafolyamat lezárása"
+
+#~ msgid "&End Current Session"
+#~ msgstr "A munkafolyamat befejezése"
+
+#~ msgid "&Immediate Action"
+#~ msgstr "Azonnali Művelet"
+
+#, fuzzy
+#~ msgid "Run KShutDown"
+#~ msgstr "KShutDown"
+
+#, fuzzy
+#~ msgid "&Run KShutDown"
+#~ msgstr "KShutDown"
+
+#, fuzzy
+#~ msgid "MSettingsDialog"
+#~ msgstr "Beállítások"
+
+#, fuzzy
+#~ msgid "MMessageDialog"
+#~ msgstr "Üzenet"
+
+#, fuzzy
+#~ msgid "MActionEditDialog"
+#~ msgstr "Beállítások"
+
+#, fuzzy
+#~ msgid "SystemConfig"
+#~ msgstr "&megerősítés"
+
+#, fuzzy
+#~ msgid "Links"
+#~ msgstr "&Linkek"
+
+#, fuzzy
+#~ msgid "Lockout"
+#~ msgstr "Kijelentkezés"
+
+#~ msgid "Maintainer"
+#~ msgstr "Karbantartó"
+
+#~ msgid "Ideas"
+#~ msgstr "Ötletek"
+
+#~ msgid "Bug reports"
+#~ msgstr "Javaslatok, hibajelentések"
+
+#, fuzzy
+#~ msgid "Cancel an active action."
+#~ msgstr "Egy aktív feladat megszakítása"
+
+#, fuzzy
+#~ msgid "Hide message after:"
+#~ msgstr "Üzenet elrejtése után:"
+
+#, fuzzy
+#~ msgid "Enter time. (HH:MM)"
+#~ msgstr "Id&ő (ÓÓ:PP)"
+
+#, fuzzy
+#~ msgid "Enter date."
+#~ msgstr "Dátum megadása"
+
+#, fuzzy
+#~ msgid "&Time (HH:MM):"
+#~ msgstr "Id&ő (ÓÓ:PP)"
+
+#, fuzzy
+#~ msgid "Stop the active action"
+#~ msgstr "kiválasztott idő: <b>%1</b>"
+
+#, fuzzy
+#~ msgid "Start the selected action"
+#~ msgstr "kiválasztott idő: <b>%1</b>"
+
+#, fuzzy
+#~ msgid "Time From Now"
+#~ msgstr "Mostantól számítva:"
+
+#~ msgid "HH:MM"
+#~ msgstr "ÓÓ:PP"
+
+#~ msgid "&Date:"
+#~ msgstr "&Dátum"
+
+#~ msgid "This page has been disabled by the Administator."
+#~ msgstr "Ezt az oldalt kikapcsolta az Adminisztrátor."
+
+#, fuzzy
+#~ msgid "&Action"
+#~ msgstr "Művelet"
+
+#~ msgid "Click to close"
+#~ msgstr "Kattints a <b>Bezár</b> gombra a kilépéshez."
+
+#, fuzzy
+#~ msgid "Configure &Notifications..."
+#~ msgstr "Értesítések beállítása"
+
+#, fuzzy
+#~ msgid "Scheduler"
+#~ msgstr "Üteme&zés"
+
+#, fuzzy
+#~ msgid "Registered tasks:"
+#~ msgstr "Rögzített feladatok"
+
+#~ msgid "Name"
+#~ msgstr "Név"
+
+#~ msgid "Description"
+#~ msgstr "Leírás"
+
+#, fuzzy
+#~ msgid "Remove All"
+#~ msgstr "Az összes eltávolítása"
+
+#, fuzzy
+#~ msgid "MSchedulerTab"
+#~ msgstr "Időzítő"
+
+#, fuzzy
+#~ msgid "AppScheduler"
+#~ msgstr "Időzítő"
+
+#~ msgid "The task is not registered!"
+#~ msgstr "A feladat nincs regisztrálva!"
+
+#~ msgid "Invalid action: %1"
+#~ msgstr "Érvénytelen művelet: %1"
+
+#~ msgid "The scheduler is disabled!"
+#~ msgstr "Az ütemező ki van kapcsolva!"
+
+#, fuzzy
+#~ msgid "S&cheduler"
+#~ msgstr "Üteme&zés"
+
+#, fuzzy
+#~ msgid ""
+#~ "Actions\n"
+#~ "and Extras Menu"
+#~ msgstr "Műveletek és Extra menük"
+
+#, fuzzy
+#~ msgid ""
+#~ "Confirmations\n"
+#~ "and Messages"
+#~ msgstr "Megrősítés & Üzenetek"
+
+#, fuzzy
+#~ msgid "Confirm action (recommended)"
+#~ msgstr "Műveletek megerősítése (ajánlott)"
+
+#, fuzzy
+#~ msgid "&Scheduler"
+#~ msgstr "Üteme&zés"
+
+#, fuzzy
+#~ msgid "&Download KShutDown"
+#~ msgstr "KShutDown"
+
+#~ msgid ""
+#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. "
+#~ "<b>GNOME</b>), then change all methods..."
+#~ msgstr ""
+#~ "Ha te használod a <b>KShutDown</b>-t a nem-KDE felülethez (pl. <b>GNOME</"
+#~ "b>)akkor választanod kell a módozatok közül"
+
+#~ msgid ""
+#~ "Any external application can register a KShutDown task through the DCOP "
+#~ "mechanism. For example, a movie player optionally can use the KShutDown "
+#~ "task to shut down the system after playing a movie.<br><br>All the "
+#~ "registered tasks are listed here. Click <b>Remove</b> or <b>Remove All</"
+#~ "b> to cancel the selected task. Click <b>Configure</b> to disable the "
+#~ "<b>Scheduler</b>."
+#~ msgstr ""
+#~ "Any external application can register a KShutDown task through the DCOP "
+#~ "mechanism. For example, a movie player optionally can use the KShutDown "
+#~ "task to shut down the system after playing a movie.<br><br>All the "
+#~ "registered tasks are listed here. Click <b>Remove</b> or <b>Remove All</"
+#~ "b> to cancel the selected task. Click <b>Configure</b> to disable the "
+#~ "<b>Scheduler</b>."
+
+#, fuzzy
+#~ msgid "Time"
+#~ msgstr "I&dő"
+
+#~ msgid "Disabled"
+#~ msgstr "Kikapcsolva"
+
+#, fuzzy
+#~ msgid "Extras..."
+#~ msgstr "E&xtrák...."
+
+#~ msgid "More commands...<br>Click <b>Modify...</b> to add/edit/remove items."
+#~ msgstr ""
+#~ "Felhasználói parancsok: <br>Klikk<b>Változtat...</b> hozzáad/szerkeszt/"
+#~ "eltávolít elemekhez."
+
+#, fuzzy
+#~ msgid "Configure..."
+#~ msgstr "B&eállítás..."
+
+#~ msgid "Re&move"
+#~ msgstr "Eltá&volítás"
+
+#~ msgid "Locatio&n:"
+#~ msgstr "Hely:"
+
+#~ msgid "&Type:"
+#~ msgstr "&Típus:"
+
+#~ msgid "KShutDown Wizard"
+#~ msgstr "Beállításvarázsló"
+
+#~ msgid "See FAQ for more details"
+#~ msgstr "Nézd meg a FAQ-t a további részletekért"
+
+#~ msgid "Automation"
+#~ msgstr "Automatizálás"
+
+#, fuzzy
+#~ msgid "Co&mmand:"
+#~ msgstr "Parancs:"
+
+#~ msgid "Remember time &settings"
+#~ msgstr "Megjegyzi az idő beállításokat"
+
+#, fuzzy
+#~ msgid "Enable &Scheduler"
+#~ msgstr "Időzítő"
+
+#~ msgid "Screen Sa&ver..."
+#~ msgstr "Képernyő&védő.."
+
+#~ msgid "Session &Manager..."
+#~ msgstr "Munkafolyamat-kezelő"
+
+#~ msgid "&Links"
+#~ msgstr "&Linkek"
+
+#, fuzzy
+#~ msgid "Themes"
+#~ msgstr "Próba"
+
+#~ msgid "&Popup Messages (Passive)"
+#~ msgstr "Előugró üzenet (Passzív)"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "&megerősítés"
+
+#~ msgid "Wizard"
+#~ msgstr "Varázsló"
+
+#~ msgid "&End current session"
+#~ msgstr "A munkafolyamat befejezése és kilépés."
+
+#~ msgid "&Turn off computer"
+#~ msgstr "A számítógép kikap&csolása"
+
+#~ msgid "&Restart computer"
+#~ msgstr "A szá&mítógép újraindítása"
+
+#, fuzzy
+#~ msgid "What do you want to do?"
+#~ msgstr "Mit szeretne tenni azután?"
+
+#~ msgid "&Now (no delay)"
+#~ msgstr "&Most (nincs késleltés)"
+
+#~ msgid "At &date/time"
+#~ msgstr "Dát&um/idő:"
+
+#~ msgid "&Time from now"
+#~ msgstr "&Mostantól számítva"
+
+#, fuzzy
+#~ msgid "MWizard"
+#~ msgstr "Varázsló"
+
+#~ msgid "St&atistics"
+#~ msgstr "S&tatisztika"
+
+#~ msgid "Enter delay:"
+#~ msgstr "Késleltetés megadása:"
+
+#~ msgid "Set delay to 0 seconds"
+#~ msgstr "Várakozási másodpercek:"
+
+#~ msgid "Set delay to 00:00"
+#~ msgstr "Frissítési idő 00:00:00.-hoz"
+
+#~ msgid "Set date/time to the current date/time"
+#~ msgstr "A pontos időt és dátum beállítása"
+
+#~ msgid "Quit the application"
+#~ msgstr "Kilépés az alkalmazásból"
+
+#~ msgid "Enter delay in seconds."
+#~ msgstr "Késleltetés megadása másodpercben"
+
+#~ msgid "Enter delay in minutes."
+#~ msgstr "Késleltetés megadása percekben."
+
+#~ msgid "Enter delay in hours."
+#~ msgstr "Késleltetés megadása órákban."
+
+#~ msgid "Lock the screen using a screen saver"
+#~ msgstr "A képernyőkímélő lezárja a képernyőt"
+
+#~ msgid "&Wizard..."
+#~ msgstr "&Varázsló..."
+
+#~ msgid "Run the Wizard"
+#~ msgstr "Beállításvarázsló"
+
+#~ msgid "Now!"
+#~ msgstr "Most!"
+
+#~ msgid "Time from &now:"
+#~ msgstr "&Mostantól számítva"
+
+#~ msgid "Second(s)"
+#~ msgstr "Másodperc"
+
+#~ msgid "Minute(s)"
+#~ msgstr "Perc"
+
+#~ msgid "Hour(s)"
+#~ msgstr "Óra"
+
+#~ msgid "Co&lors"
+#~ msgstr "Szín&ek:"
+
+#~ msgid "Text color:"
+#~ msgstr "Szövegszín:"
+
+#~ msgid "Background color:"
+#~ msgstr "Háttérszín:"
+
+#~ msgid "Header color:"
+#~ msgstr "A fejléc szövegének színe"
+
+#~ msgid "Warning color:"
+#~ msgstr "Figyelmeztetés színe"
+
+#~ msgid "Preview"
+#~ msgstr "Előnézet"
+
+#~ msgid "Info"
+#~ msgstr "Infó"
+
+#~ msgid "Tip"
+#~ msgstr "Tipp"
+
+#~ msgid "Comm&and:"
+#~ msgstr "&Parancs:"
+
+#~ msgid "Method / Command"
+#~ msgstr "Mód / Parancs"
+
+#~ msgid "&Before System Shut Down"
+#~ msgstr "A rendsze leállítása és a gép újraindítása."
+
+#~ msgid "<b>Karamba</b> Themes"
+#~ msgstr "<b>Karamba</b> Témák"
+
+#~ msgid "Preview:"
+#~ msgstr "Előnézet:"
+
+#~ msgid "Step %1 of %2"
+#~ msgstr "1% lépés 2% -ból/ből"
+
+#~ msgid "Create/Remove Link"
+#~ msgstr "Link Létrehozása/Eltávolítása"
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..1dc66e3
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,801 @@
+# translation of it.po to italiano
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Giovanni Venturi <jumpyj@tiscali.it>, 2004, 2005.
+# Giovanni Venturi <jumpyj@libero.it>, 2004.
+# Andrea <andreafl@libero.it>, 2007.
+# Andrea Florio <andrea@links2linux.de>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: it\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-27 19:36+0200\n"
+"PO-Revision-Date: 2007-12-11 10:23+0100\n"
+"Last-Translator: Andrea Florio <andrea@links2linux.de>\n"
+"Language-Team: italiano <it@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=2; plural=(n != 1);\n"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Attendi..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Non posso terminare la sessione correttamente.\n"
+"Il gestore della sessione non può essere contattato."
+
+#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419
+#: ../kshutdown/mstatstab.cpp:191
+msgid "Command: %1"
+msgstr "Comando: %1"
+
+#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445
+#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Nessun Ritardo"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Nothing"
+msgstr "Niente"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183
+msgid "Turn Off Computer"
+msgstr "Spegni computer"
+
+#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177
+msgid "Restart Computer"
+msgstr "Riavvia computer"
+
+#: ../kshutdown/actions.cpp:322
+msgid "Lock Session"
+msgstr "Blocca sessione"
+
+#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171
+msgid "End Current Session"
+msgstr "Termina sessione corrente"
+
+#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: ../kshutdown/actions.cpp:362
+msgid "Action failed! (%1)"
+msgstr "Azione non riuscita! (%1)"
+
+#: ../kshutdown/actions.cpp:406
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: chiamata DCOP non riuscita!"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Aggiorna la lista dei processi"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Mostra la lista dei processi"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Uccidi"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Uccidi il processo selezionato"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Aspetta per \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Il processo selezionato non esiste"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Impossibile eseguire il comando<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Sei sicuro di voler UCCIDERE<br><b>%1</b>?<br><br> Tutti i dati non salvati "
+"saranno persi!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Processo non trovato<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Nessun permesso per uccidere<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "MORTO: %1"
+
+#: ../kshutdown/confirmation.cpp:64
+msgid "Confirm"
+msgstr "Conferma"
+
+#: ../kshutdown/confirmation.cpp:78
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Sei sicuro?<br><br>Azione Selezionata<b>%1</><br>Tempo Selezionato: <b>%2</b>"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Ulteriori azioni..."
+
+#: ../kshutdown/extras.cpp:91
+msgid "Select a command..."
+msgstr "Seleziona un comando..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Usa il menu contestuale per aggiungere/modificare/eliminare collegamenti."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr ""
+"Usa il <b>Menu contestuale</b> per creare un nuovo collegamento "
+"all'applicazione"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Usa <b>Crea Nuovo|Cartella...</b> per creare un nuovo sottomenu"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Usa <b>Proprietà</b> per cambiare icona, nome, o commento"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:609
+msgid "Extras"
+msgstr "Extra"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Posizione dove creare il link"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Desktop"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "Menu K"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Tipo di collegamento:"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Finestra standard di termine sessione"
+
+#: ../kshutdown/links.cpp:95
+msgid "System Shut Down Utility"
+msgstr "Utilita di Spegnimento del Sistema"
+
+#: ../kshutdown/links.cpp:106
+msgid "Could not create file <b>%1</b>!"
+msgstr "Impossibile creare il file <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:117
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Impossibile cancellare il file <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:182
+msgid "Remove Link"
+msgstr "Rimuovi collegamento"
+
+#: ../kshutdown/links.cpp:186
+msgid "Add Link"
+msgstr "Aggiungi collegamento"
+
+#: ../kshutdown/links.cpp:205
+msgid "Logout"
+msgstr "Termina sessione"
+
+#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143
+msgid "Method"
+msgstr "Metodo"
+
+#: ../kshutdown/mactioneditdialog.cpp:70
+msgid "Select a method:"
+msgstr "Seleziona un metodo:"
+
+#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431
+msgid "KDE (default)"
+msgstr "KDE (default)"
+
+#: ../kshutdown/mactioneditdialog.cpp:80
+msgid "Enter a custom command:"
+msgstr "Immetti un comando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144
+msgid "Command before action"
+msgstr "Comando prima dell'azione"
+
+#: ../kshutdown/mactioneditdialog.cpp:87
+msgid "Run command"
+msgstr "Esegui comando"
+
+#: ../kshutdown/mactioneditdialog.cpp:90
+msgid "Pause after run command:"
+msgstr "Pausa dopo aver eseguito il comando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445
+msgid "No pause"
+msgstr "Nessuna pausa"
+
+#: ../kshutdown/mactioneditdialog.cpp:93
+msgid "second(s)"
+msgstr "secondo/i"
+
+#: ../kshutdown/mactioneditdialog.cpp:109
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"In molti casi ti servono i privilegi per spegere il sistema (per esempio per eseguire "
+"/sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Se stai usando <b>KDE</b> e <b>KDM</b> (Gestore Display di KDE), "
+"allora imposta tutti i metodi a <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:112
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Se stai usando <b>KDE</b> e gestori di visulizzazione diversi da <b>KDM</b>, "
+"allora imposta i metodi <i>Spegni computer</i> e <i>Riavvia computer</i> a "
+"<i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid "Manuals:"
+msgstr "Manuali:"
+
+#: ../kshutdown/mactioneditdialog.cpp:135
+msgid "User Command"
+msgstr "Comando utente"
+
+#: ../kshutdown/main.cpp:43
+msgid "A Shut Down Utility for KDE"
+msgstr "Una utility di spegnimento per KDE"
+
+#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56
+msgid "Turn off computer"
+msgstr "Spegni computer"
+
+#: ../kshutdown/main.cpp:58
+msgid "Restart computer"
+msgstr "Riavvia computer"
+
+#: ../kshutdown/main.cpp:60
+msgid "Lock session"
+msgstr "Blocca sessione"
+
+#: ../kshutdown/main.cpp:62
+msgid "End current session"
+msgstr "Termina sessione corrente"
+
+#: ../kshutdown/main.cpp:64
+msgid "Execute \"Extras\" command (.desktop file)"
+msgstr "Esegui comandi \"Extra\" (file .desktop)"
+
+#: ../kshutdown/main.cpp:65
+msgid "Confirm command line action"
+msgstr "Conferma il comando"
+
+#: ../kshutdown/main.cpp:66
+msgid "Show standard logout dialog"
+msgstr "Mostra finestra standard di termine sessione"
+
+#: ../kshutdown/main.cpp:68
+msgid "Cancel an active action"
+msgstr "Annulla un'azione attiva"
+
+#: ../kshutdown/main.cpp:69
+msgid "Don't show window at startup"
+msgstr "Non mostrare la finestra all'avvio"
+
+#: ../kshutdown/main.cpp:70
+msgid "Enable test mode"
+msgstr "Abilita modalità di prova"
+
+#: ../kshutdown/main.cpp:71
+msgid "Disable test mode"
+msgstr "Disabilita modalità di prova"
+
+#: ../kshutdown/main.cpp:72
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Orario. Esempi: 01:30 - orario assoluto (HH:MM); 10 - numero di minuti da "
+"aspettare da adesso"
+
+#: ../kshutdown/main.cpp:245
+msgid "Invalid time: <b>%1</b>"
+msgstr "Orario non valido: <b>%1</b>"
+
+#: ../kshutdown/miscutils.cpp:110
+msgid "1 hour warning"
+msgstr "un ora di avvertimento"
+
+#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114
+msgid "5 minutes warning"
+msgstr "5 minuti di avvertimento"
+
+#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118
+msgid "1 minute warning"
+msgstr "1 minuto di avvertimento"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "10 seconds warning"
+msgstr "10 secondi di avvertimento"
+
+#: ../kshutdown/miscutils.cpp:226
+msgid "Could not run \"%1\"!"
+msgstr "Non posso eseguire \"%1\"!"
+
+#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471
+#: ../kshutdown/msettingsdialog.cpp:558
+msgid "Test"
+msgstr "Prova"
+
+#: ../kshutdown/mmainwindow.cpp:149
+msgid "Enter hour and minute."
+msgstr "Indica ora e minuti."
+
+#: ../kshutdown/mmainwindow.cpp:159
+msgid "Enter date and time."
+msgstr "Indica orario e data."
+
+#: ../kshutdown/mmainwindow.cpp:238
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Clicca prima sul pulsante <b>Seleziona un comando</b>"
+
+#: ../kshutdown/mmainwindow.cpp:280
+msgid "Selected date/time: %1"
+msgstr "Data/orario selezionato: %1"
+
+#: ../kshutdown/mmainwindow.cpp:281
+msgid "Current date/time: %1"
+msgstr "Data/orario corrente: %1"
+
+#: ../kshutdown/mmainwindow.cpp:287
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "La data/orario selezionata è precedente alla data/ora corrente!"
+
+#: ../kshutdown/mmainwindow.cpp:292
+msgid "Action cancelled!"
+msgstr "Azione annullata!"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode enabled"
+msgstr "Modalità test abilitata"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode disabled"
+msgstr "Modalità test disabilitata"
+
+#: ../kshutdown/mmainwindow.cpp:477
+msgid "&Actions"
+msgstr "Azioni"
+
+#: ../kshutdown/mmainwindow.cpp:483
+msgid "Configure Global Shortcuts..."
+msgstr "Configura Scorciatoie Globali"
+
+#: ../kshutdown/mmainwindow.cpp:531
+msgid "C&ancel"
+msgstr "Annulla"
+
+#: ../kshutdown/mmainwindow.cpp:539
+msgid "Check &System Configuration"
+msgstr "Controllo Configurazione Sistema"
+
+#: ../kshutdown/mmainwindow.cpp:556
+msgid "&Statistics"
+msgstr "Statistiche"
+
+#: ../kshutdown/mmainwindow.cpp:600
+msgid "Select an &action to perform"
+msgstr "Seleziona un'azione da effetuare"
+
+#: ../kshutdown/mmainwindow.cpp:610
+msgid "Select an action to perform at the selected time."
+msgstr "Seleziona un'azione da effettuare all'ora selzionata"
+
+#: ../kshutdown/mmainwindow.cpp:616
+msgid "S&elect a time"
+msgstr "Seleziona un'orario"
+
+#: ../kshutdown/mmainwindow.cpp:623
+msgid "Time From Now (HH:MM)"
+msgstr "Tempo apartire da ora (HH:MM):"
+
+#: ../kshutdown/mmainwindow.cpp:624
+msgid "At Date/Time"
+msgstr "In Data/Orario"
+
+#: ../kshutdown/mmainwindow.cpp:625
+msgid "When selected application exit"
+msgstr "Quando uscire dall'applicazione selezionata"
+
+#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117
+msgid "Disabled by the Administrator."
+msgstr "Disabilitato dall'amministratore."
+
+#: ../kshutdown/mmainwindow.cpp:629
+msgid "Select the type of delay."
+msgstr "Seleziona il tipo di ritardo"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "Selected time."
+msgstr "Seleziona orario"
+
+#: ../kshutdown/mmainwindow.cpp:671
+msgid "TEST MODE"
+msgstr "MODALITÀ DI PROVA"
+
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Remaining time: <b>%1</b>"
+msgstr "Tempo restante: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:678
+msgid "Selected time: <b>%1</b>"
+msgstr "Orario selezionato: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:679
+msgid "Selected action: <b>%1</b>"
+msgstr "Azione selezionata: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:682
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Nota: </b> la modalità test è abilitata"
+
+#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905
+msgid "KShutDown has been minimized"
+msgstr "KShutDown è stato minimizzato"
+
+#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926
+msgid "KShutDown has quit"
+msgstr "KShutDown è stato chiuso"
+
+#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82
+msgid "Message"
+msgstr "Messaggio"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Tempo restante"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Impostazioni"
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Azioni"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Azione"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Modifica..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Controlla la configurazione del sistema"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Menu aggiuntivi"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Modifica..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Avanzate"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Dopo l'accesso"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Blocca schermo"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Dopo il Logout"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Chiudi vassoio CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Comando:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Impostazioni di KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Generale"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Problemi Comuni"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Spegni computer\" non funziona"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Messaggi popup sono molto fastidiosi"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Aggiungi/Rimuovi collegamento"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Mostra icona nel vassoio"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Sempre"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "L'icona nel vassoio sarà sempre visibile"
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Se attivo"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "L'icona nel vassoio sarà visibile solo se KShutDown è attivo"
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Mai"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "L'icona nel vassoio sarà sempre nascosta"
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Mostra i temi di KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Home Page di SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Messaggi"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Mostra il messaggio di avvertimento prima dell'azione"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minuto/i"
+
+#: ../kshutdown/msettingsdialog.cpp:303
+msgid "Recommended"
+msgstr "Raccomandati"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "Warning Message"
+msgstr "Messaggio di avvertimento (raccomandato)"
+
+#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351
+msgid "Enabled"
+msgstr "Abilitato"
+
+#: ../kshutdown/msettingsdialog.cpp:318
+msgid "A shell command to execute:"
+msgstr "Comando shell da eseguire"
+
+#: ../kshutdown/msettingsdialog.cpp:323
+msgid "Enter a command."
+msgstr "Immetti un comando."
+
+#: ../kshutdown/msettingsdialog.cpp:326
+msgid "A message text"
+msgstr "Un messaggio di testo"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "The current main window title"
+msgstr "Il titolo della finestra principale attuale"
+
+#: ../kshutdown/msettingsdialog.cpp:333
+msgid "Presets"
+msgstr "Settaggi precedenti"
+
+#: ../kshutdown/msettingsdialog.cpp:347
+msgid "Custom Message"
+msgstr "Messaggio personalizzato"
+
+#: ../kshutdown/msettingsdialog.cpp:350
+msgid "Progress Bar"
+msgstr "Barra di progresso"
+
+#: ../kshutdown/msettingsdialog.cpp:354
+msgid "Re-enable All Message Boxes"
+msgstr "Ri-abilita tutti i messaggi"
+
+#: ../kshutdown/msettingsdialog.cpp:358
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Abilita tutti i messaggi che sono stati disattivati con la funzionalità "
+"<b>Non mostrare questo messaggio di nuovo</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:447
+msgid "Pause: %1"
+msgstr "Pausa:%1"
+
+#: ../kshutdown/msettingsdialog.cpp:516
+msgid "This file is used to lock session at KDE startup"
+msgstr "Questo file è usato per bloccare la sessione KDE all'avvio"
+
+#: ../kshutdown/msettingsdialog.cpp:596
+msgid "Restore default settings for this page?"
+msgstr "Ripristinare le impostazioni predefinite per questa pagina?"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statistiche"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Questa vista mostra informazioni sugli utenti presenti attualmente sulla "
+"macchina, e i loro processi.<br>L'intestazione mostra da quanto tempo il "
+"sistema è in esecuzione."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Aggiorna"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Ulteriori informazioni"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Mostra orario di accesso, tempo di JCPU e PCPU"
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Sostituisce \"da\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Sostituisci il campo \"DA\" (nome host remoto)"
+
+#: ../kshutdown/progressbar.cpp:99
+msgid "Hide"
+msgstr "Nascondi"
+
+#: ../kshutdown/systemconfig.cpp:71
+msgid "System Configuration"
+msgstr "Configurazionne sistema"
+
+#: ../kshutdown/systemconfig.cpp:88
+msgid "Tip: Click here if you have problem with the \"/sbin/shutdown\" command."
+msgstr "Trucco: Clicca qui se hai problemi con il comando \"/sbin/shutdown|\""
+
+#: ../kshutdown/systemconfig.cpp:97
+msgid "No problems were found."
+msgstr "Nessun problema trovato"
+
+#: ../kshutdown/systemconfig.cpp:128
+msgid "Program \"%1\" was not found!"
+msgstr "Il programma \"%1\" non è stato trovato"
+
+#: ../kshutdown/systemconfig.cpp:135
+msgid "No permissions to execute \"%1\"."
+msgstr "Nessun permesso per eseguire \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:144
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Sembra che questa non sia una sessione KDE completa.\n"
+"KShutDown è stato pensato per lavorare con KDE.\n"
+"Tuttaviar, puoi personalizzare le Azione nella finesta impostazioni "
+"KShutDown\n"
+"(Impostazioni -> Configura KShutDown... -> Azioni)"
+
+#: ../kshutdown/systemconfig.cpp:161
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Trucco: Puoi personalizzare le azione per far funzionare anche GDM.\n"
+"(Impostazioni -> Configura KShutDown... -> Azioni)"
+
+#: ../kshutdown/systemconfig.cpp:162
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"Il Display Manager KDE no è avviato,\n"
+"oppure la funzione arresto/riavvia è stata disabilitata,\n"
+"\n"
+"Clicca qui per configurare KDM"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Andrea Florio"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "andreafl@libero.it"
+
+#: ../kshutdownlockout/lockout.cpp:120
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+"Clicca per la finestra proncipale di KShutDown<br>Clicca e tieni premuto per "
+"il menù"
+
+#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155
+#: ../kshutdownlockout/lockout.cpp:200
+msgid "Could not run KShutDown!"
+msgstr "Non posso eseguire KSutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:165
+msgid "Lock Screen"
+msgstr "Blocca schermo"
+
+#: ../kshutdownlockout/lockout.cpp:191
+msgid "&Configure KShutDown..."
+msgstr "Configura KShutDown..."
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..fce2308
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,1303 @@
+# translation of nl.po to Nederlands
+# translation of kshutdown.po to Nederlands
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Bram Schoenmakers <bram_s@softhome.net>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: nl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2004-04-21 22:47+0000\n"
+"Last-Translator: Bram Schoenmakers <bram_s@softhome.net>\n"
+"Language-Team: Nederlands <kde-i18n-nl@kde.nl>\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"
+
+#: ../kshutdown/mstatstab.cpp:46
+#, fuzzy
+msgid "Statistics"
+msgstr "&Statistieken"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:79
+#, fuzzy
+msgid "Refresh"
+msgstr "&Vernieuwen"
+
+#: ../kshutdown/mstatstab.cpp:83
+#, fuzzy
+msgid "Options"
+msgstr "Acties"
+
+#: ../kshutdown/mstatstab.cpp:85
+#, fuzzy
+msgid "More information"
+msgstr "&Instellen..."
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+#, fuzzy
+msgid "Command: %1"
+msgstr "Commando:"
+
+#: ../kshutdown/extras.cpp:57
+#, fuzzy
+msgid "More actions..."
+msgstr "&Instellen..."
+
+#: ../kshutdown/extras.cpp:227
+#, fuzzy
+msgid "Select a command..."
+msgstr "Geef vertraging op in seconden."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr ""
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr ""
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr ""
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr ""
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+#, fuzzy
+msgid "Extras"
+msgstr "E&xtra's..."
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:104
+#, fuzzy
+msgid "1 hour warning"
+msgstr "1 minuut van tevoren waarschuwen"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 minuten van tevoren waarschuwen"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 minuut van tevoren waarschuwen"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 seconden van tevoren waarschuwen"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:124
+#, fuzzy
+msgid "1 second before action"
+msgstr "10 seconden van tevoren waarschuwen"
+
+#: ../kshutdown/miscutils.cpp:223
+#, fuzzy
+msgid "Could not run \"%1\"!"
+msgstr "Kon <b>%1</b> niet starten!"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Test"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr ""
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr ""
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr ""
+
+#: ../kshutdown/links.cpp:62
+#, fuzzy
+msgid "Type of the link:"
+msgstr "Kies het vertragingstype."
+
+#: ../kshutdown/links.cpp:66
+#, fuzzy
+msgid "KShutDown"
+msgstr "Uitschakelen"
+
+#: ../kshutdown/links.cpp:69
+#, fuzzy
+msgid "Standard Logout Dialog"
+msgstr "Toon standaard afmeldvenster"
+
+#: ../kshutdown/links.cpp:96
+#, fuzzy
+msgid "System Shut Down Utility"
+msgstr "Een hulpmiddel om uw systeem uit te schakelen voor KDE"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr ""
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr ""
+
+#: ../kshutdown/links.cpp:183
+#, fuzzy
+msgid "Remove Link"
+msgstr "&Verwijderen"
+
+#: ../kshutdown/links.cpp:187
+#, fuzzy
+msgid "Add Link"
+msgstr "&Verwijderen"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Afmelden"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Een hulpmiddel om uw systeem uit te schakelen voor KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr ""
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr ""
+
+#: ../kshutdown/main.cpp:57
+#, fuzzy
+msgid "Lock session"
+msgstr "Scherm vergrendelen"
+
+#: ../kshutdown/main.cpp:59
+#, fuzzy
+msgid "End current session"
+msgstr "Huidige sessie beëindigen en afmelden."
+
+#: ../kshutdown/main.cpp:60
+#, fuzzy
+msgid "Confirm command line action"
+msgstr "Gestarte actie annuleren"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Toon standaard afmeldvenster"
+
+#: ../kshutdown/main.cpp:63
+#, fuzzy
+msgid "Cancel an active action"
+msgstr "Gestarte actie annuleren"
+
+#: ../kshutdown/main.cpp:64
+#, fuzzy
+msgid "Don't show window at startup"
+msgstr "Venster bij opstarten verbergen (wordt gebruikt door DCOP-clients)"
+
+#: ../kshutdown/main.cpp:65
+#, fuzzy
+msgid "Enable test mode"
+msgstr "Geluid &testen"
+
+#: ../kshutdown/main.cpp:66
+#, fuzzy
+msgid "Disable test mode"
+msgstr "&Ingeschakeld"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Instellingen"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+#, fuzzy
+msgid "Disabled by the Administrator."
+msgstr "Deze pagina is uitgeschakeld door de beheerder."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+#, fuzzy
+msgid "Actions"
+msgstr "Acties"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Actie"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+#, fuzzy
+msgid "Method"
+msgstr "&Methode"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:162
+#, fuzzy
+msgid "Edit..."
+msgstr "&Bewerken..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:168
+#, fuzzy
+msgid "Extras Menu"
+msgstr "E&xtra's..."
+
+#: ../kshutdown/msettingsdialog.cpp:169
+#, fuzzy
+msgid "Modify..."
+msgstr "&Bewerken..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:191
+#, fuzzy
+msgid "Lock screen"
+msgstr "Scherm vergrendelen"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+#, fuzzy
+msgid "Before Logout"
+msgstr "&Uitloggen"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Commando:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+#, fuzzy
+msgid "Related KDE Settings..."
+msgstr "Instellingen"
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Algemeen"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:234
+#, fuzzy
+msgid "Add/Remove Links"
+msgstr "&Verwijderen"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+#, fuzzy
+msgid "Show System Tray Icon"
+msgstr "MSystemTray"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:274
+#, fuzzy
+msgid "Show KShutDown Themes"
+msgstr "Schakelt het systeem uit."
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:285
+#, fuzzy
+msgid "Messages"
+msgstr "Bericht"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+#, fuzzy
+msgid "Display a warning message before action"
+msgstr "%1 minu(u)t(en) van te voren een &waarschuwing tonen"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minu(u)t(en)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+#, fuzzy
+msgid "Warning Message"
+msgstr "&Waarschuwing"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+#, fuzzy
+msgid "Enabled"
+msgstr "&Ingeschakeld"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:317
+#, fuzzy
+msgid "Enter a command."
+msgstr "Geef vertraging op in seconden."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+#, fuzzy
+msgid "Custom Message"
+msgstr "Bericht"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Standaardwaarden op deze pagina herstellen?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+#, fuzzy
+msgid "Enter hour and minute."
+msgstr "Geef vertraging op in minuten."
+
+#: ../kshutdown/mmainwindow.cpp:142
+#, fuzzy
+msgid "Enter date and time."
+msgstr "Voer datum in."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Geselecteerde datum/tijd is eerder dan de huidige datum/tijd!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+#, fuzzy
+msgid "Action cancelled!"
+msgstr "Actie mislukt! (%1)"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+#, fuzzy
+msgid "No Delay"
+msgstr "&Onmiddelijke actie"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:449
+#, fuzzy
+msgid "&Actions"
+msgstr "Acties"
+
+#: ../kshutdown/mmainwindow.cpp:455
+#, fuzzy
+msgid "Configure Global Shortcuts..."
+msgstr "&Instellen..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+#, fuzzy
+msgid "&Settings"
+msgstr "Instellingen"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+#, fuzzy
+msgid "C&ancel"
+msgstr "Commando:"
+
+#: ../kshutdown/mmainwindow.cpp:511
+#, fuzzy
+msgid "Check &System Configuration"
+msgstr "Actie &bevestigen"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:528
+#, fuzzy
+msgid "&Statistics"
+msgstr "&Statistieken"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:589
+#, fuzzy
+msgid "S&elect a time"
+msgstr "Kies het vertragingstype."
+
+#: ../kshutdown/mmainwindow.cpp:596
+#, fuzzy
+msgid "Time From Now (HH:MM)"
+msgstr "Vanaf dit tijdstip (UU:MM):"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Op datum/tijd"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Kies het vertragingstype."
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "TEST MODUS"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:653
+#, fuzzy
+msgid "Selected action: <b>%1</b>"
+msgstr "Kon <b>%1</b> niet starten!"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+#, fuzzy
+msgid "KShutDown has quit"
+msgstr "Uitschakelen"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr ""
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Kon niet goed uitloggen.\n"
+"Kon geen verbinding maken met de sessiebeheerder."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Niets"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr ""
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr ""
+
+#: ../kshutdown/actions.cpp:319
+#, fuzzy
+msgid "Lock Session"
+msgstr "Scherm vergrendelen"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr ""
+
+#: ../kshutdown/actions.cpp:359
+#, fuzzy
+msgid "Action failed! (%1)"
+msgstr "Actie mislukt! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP-aanroep mislukt!"
+
+#: ../kshutdown/systemconfig.cpp:65
+#, fuzzy
+msgid "System Configuration"
+msgstr "Actie &bevestigen"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Bericht"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+#, fuzzy
+msgid "Select a method:"
+msgstr "Kies het vertragingstype."
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+#, fuzzy
+msgid "Enter a custom command:"
+msgstr "Geef vertraging op in seconden."
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+#, fuzzy
+msgid "Run command"
+msgstr "Commando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+#, fuzzy
+msgid "Pause after run command:"
+msgstr "Geef vertraging op in seconden."
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+#, fuzzy
+msgid "second(s)"
+msgstr "Seconde(n)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+#, fuzzy
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"In de meeste gevallen heeft u toegangsrechten nodig om het systeem uit te "
+"schakelen (bijv. bij /sbin/reboot of bij /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+#, fuzzy
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Wanneer u gebruik maakt van <b>KDE</b> en <b>KDM</b> (KDE Display Manager), "
+"zet dan alle methoden op <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+#, fuzzy
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Wanneer u gebruik maakt van <b>KDE</b> en een andere display beheerder dan "
+"<b>KDM</b>, zet dan de methoden voor <i>Uitschakelen</i> en <i>Herstarten "
+"op</i> op <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Handleidingen:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Gebruikerscommando"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:68
+#, fuzzy
+msgid "Kill the selected process"
+msgstr "Kon <b>%1</b> niet starten!"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr ""
+
+#: ../kshutdown/confirmation.cpp:65
+#, fuzzy
+msgid "Confirm"
+msgstr "Actie &bevestigen"
+
+#: ../kshutdown/confirmation.cpp:74
+#, fuzzy
+msgid "&Cancel"
+msgstr "Commando:"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid ""
+"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Bram Schoenmakers"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "bram_s@softhome.net"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+#, fuzzy
+msgid "Could not run KShutDown!"
+msgstr "Kon <b>%1</b> niet starten!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+#, fuzzy
+msgid "Lock Screen"
+msgstr "Scherm &vergrendelen"
+
+#: ../kshutdownlockout/lockout.cpp:199
+#, fuzzy
+msgid "&Configure KShutDown..."
+msgstr "&Instellen..."
+
+#~ msgid "Are you sure?"
+#~ msgstr "Weet u het zeker?"
+
+#, fuzzy
+#~ msgid "Create Link"
+#~ msgstr "&Verwijderen"
+
+#, fuzzy
+#~ msgid "&Cancel: %1"
+#~ msgstr "Commando:"
+
+#, fuzzy
+#~ msgid "KShutDown Actions (no delay!)"
+#~ msgstr "&Onmiddelijke actie"
+
+#, fuzzy
+#~ msgid "Actions (no delay!)"
+#~ msgstr "&Onmiddelijke actie"
+
+#, fuzzy
+#~ msgid "&Lock Session"
+#~ msgstr "Scherm vergrendelen"
+
+#~ msgid "&Immediate Action"
+#~ msgstr "&Onmiddelijke actie"
+
+#, fuzzy
+#~ msgid "Run KShutDown"
+#~ msgstr "Uitschakelen"
+
+#, fuzzy
+#~ msgid "&Run KShutDown"
+#~ msgstr "Uitschakelen"
+
+#~ msgid "MSettingsDialog"
+#~ msgstr "MSettingsDialog"
+
+#~ msgid "MSystemTray"
+#~ msgstr "MSystemTray"
+
+#~ msgid "MMessageDialog"
+#~ msgstr "MMessageDialog"
+
+#~ msgid "MStatsTab"
+#~ msgstr "MStatsTab"
+
+#~ msgid "MActionEditDialog"
+#~ msgstr "MActionEditDialog"
+
+#, fuzzy
+#~ msgid "SystemConfig"
+#~ msgstr "Actie &bevestigen"
+
+#~ msgid "MMainWindow"
+#~ msgstr "MMainWindow"
+
+#, fuzzy
+#~ msgid "Lockout"
+#~ msgstr "Afmelden"
+
+#~ msgid "Maintainer"
+#~ msgstr "Onderhouder"
+
+#~ msgid "Ideas"
+#~ msgstr "Ideeën"
+
+#~ msgid "Bug reports"
+#~ msgstr "Bugrapporten"
+
+#, fuzzy
+#~ msgid "Cancel an active action."
+#~ msgstr "Gestarte actie annuleren"
+
+#, fuzzy
+#~ msgid "Enter time. (HH:MM)"
+#~ msgstr "&Tijd (UU:MM):"
+
+#, fuzzy
+#~ msgid "Enter date."
+#~ msgstr "Voer datum in."
+
+#, fuzzy
+#~ msgid "&Time (HH:MM):"
+#~ msgstr "&Tijd (UU:MM):"
+
+#, fuzzy
+#~ msgid "Stop the active action"
+#~ msgstr "Kon <b>%1</b> niet starten!"
+
+#~ msgid "Time From Now"
+#~ msgstr "Vanaf dit tijdstip"
+
+#~ msgid "HH:MM"
+#~ msgstr "UU:MM"
+
+#~ msgid "&Date:"
+#~ msgstr "&Datum:"
+
+#~ msgid "This page has been disabled by the Administator."
+#~ msgstr "Deze pagina is uitgeschakeld door de beheerder."
+
+#, fuzzy
+#~ msgid "Select the type of delay"
+#~ msgstr "Kies het vertragingstype."
+
+#, fuzzy
+#~ msgid "&Action"
+#~ msgstr "Actie"
+
+#, fuzzy
+#~ msgid "Configure &Notifications..."
+#~ msgstr "&Instellen..."
+
+#, fuzzy
+#~ msgid "Scheduler"
+#~ msgstr "&Planner"
+
+#, fuzzy
+#~ msgid "Registered tasks:"
+#~ msgstr "Ge&registreerde taken"
+
+#~ msgid "Name"
+#~ msgstr "Naam"
+
+#~ msgid "Description"
+#~ msgstr "Omschrijving"
+
+#, fuzzy
+#~ msgid "Remove All"
+#~ msgstr "&Alles verwijderen"
+
+#, fuzzy
+#~ msgid "MSchedulerTab"
+#~ msgstr "Planner"
+
+#, fuzzy
+#~ msgid "AppScheduler"
+#~ msgstr "Planner"
+
+#, fuzzy
+#~ msgid "S&cheduler"
+#~ msgstr "&Planner"
+
+#, fuzzy
+#~ msgid ""
+#~ "Actions\n"
+#~ "and Extras Menu"
+#~ msgstr "E&xtra's..."
+
+#, fuzzy
+#~ msgid ""
+#~ "Confirmations\n"
+#~ "and Messages"
+#~ msgstr "Actie &bevestigen"
+
+#, fuzzy
+#~ msgid "Confirm action (recommended)"
+#~ msgstr "Actie &bevestigen"
+
+#, fuzzy
+#~ msgid "&Scheduler"
+#~ msgstr "&Planner"
+
+#, fuzzy
+#~ msgid "&Download KShutDown"
+#~ msgstr "Uitschakelen"
+
+#, fuzzy
+#~ msgid ""
+#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. "
+#~ "<b>GNOME</b>), then change all methods..."
+#~ msgstr ""
+#~ "Wanneer u <b>Shut-Down-O-Matik</b> uitgevoerd heeft vanuit een niet-KDE-"
+#~ "sessie (bijv. <b>GNOME</b>) dient u alle methoden te veranderen..."
+
+#, fuzzy
+#~ msgid "Time"
+#~ msgstr "&Tijd"
+
+#, fuzzy
+#~ msgid "&Time From Now:"
+#~ msgstr "Vanaf &dit tijdstip:"
+
+#, fuzzy
+#~ msgid "Disabled"
+#~ msgstr "&Ingeschakeld"
+
+#, fuzzy
+#~ msgid "Extras..."
+#~ msgstr "E&xtra's..."
+
+#, fuzzy
+#~ msgid "Configure..."
+#~ msgstr "&Instellen..."
+
+#~ msgid "Re&move"
+#~ msgstr "&Verwijderen"
+
+#, fuzzy
+#~ msgid "Locatio&n:"
+#~ msgstr "Actie"
+
+#, fuzzy
+#~ msgid "KShutDown Wizard"
+#~ msgstr "Uitschakelen"
+
+#~ msgid "See FAQ for more details"
+#~ msgstr "Zie de FAQ voor meer informatie"
+
+#, fuzzy
+#~ msgid "Automation"
+#~ msgstr "Actie"
+
+#, fuzzy
+#~ msgid "Co&mmand:"
+#~ msgstr "Commando:"
+
+#, fuzzy
+#~ msgid "Remember time &settings"
+#~ msgstr "Bovenstaande instellingen &onthouden"
+
+#, fuzzy
+#~ msgid "Enable &Scheduler"
+#~ msgstr "Planner"
+
+#, fuzzy
+#~ msgid "Screen Sa&ver..."
+#~ msgstr "&Schermbeveiligingsinstellingen..."
+
+#, fuzzy
+#~ msgid "Themes"
+#~ msgstr "Test"
+
+#~ msgid "&Popup Messages (Passive)"
+#~ msgstr "&Berichtvenster openen (passief)"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "Actie &bevestigen"
+
+#, fuzzy
+#~ msgid "At &date/time"
+#~ msgstr "Op datum/tijd"
+
+#, fuzzy
+#~ msgid "&Time from now"
+#~ msgstr "Vanaf &dit tijdstip:"
+
+#, fuzzy
+#~ msgid "St&atistics"
+#~ msgstr "&Statistieken"
+
+#, fuzzy
+#~ msgid "Enter delay:"
+#~ msgstr "Voer datum in."
+
+#, fuzzy
+#~ msgid "Set delay to 0 seconds"
+#~ msgstr "Stel vertraging in op 0 seconden."
+
+#, fuzzy
+#~ msgid "Set delay to 00:00"
+#~ msgstr "Stel vertraging in naar 00:00."
+
+#, fuzzy
+#~ msgid "Set date/time to the current date/time"
+#~ msgstr "Stel datum/tijd naar huidige datum/tijd in."
+
+#~ msgid "Enter delay in seconds."
+#~ msgstr "Geef vertraging op in seconden."
+
+#~ msgid "Enter delay in minutes."
+#~ msgstr "Geef vertraging op in minuten."
+
+#~ msgid "Enter delay in hours."
+#~ msgstr "Geef vertraging op in uren."
+
+#, fuzzy
+#~ msgid "Lock the screen using a screen saver"
+#~ msgstr "Vergrendelt scherm met schermbeveiliging."
+
+#~ msgid "Now!"
+#~ msgstr "Nu!"
+
+#, fuzzy
+#~ msgid "Time from &now:"
+#~ msgstr "Vanaf &dit tijdstip:"
+
+#~ msgid "Second(s)"
+#~ msgstr "Seconde(n)"
+
+#~ msgid "Minute(s)"
+#~ msgstr "Minu(u)t(en)"
+
+#~ msgid "Hour(s)"
+#~ msgstr "Uur"
+
+#, fuzzy
+#~ msgid "Warning color:"
+#~ msgstr "Waarschuwing:"
+
+#, fuzzy
+#~ msgid "Info"
+#~ msgstr "Informatie:"
+
+#, fuzzy
+#~ msgid "Tip"
+#~ msgstr "Tip:"
+
+#, fuzzy
+#~ msgid "Comm&and:"
+#~ msgstr "Commando:"
+
+#~ msgid "Method / Command"
+#~ msgstr "Methode / Commando"
+
+#, fuzzy
+#~ msgid "&Before System Shut Down"
+#~ msgstr "&Uitschakelen"
+
+#~ msgid "Sound"
+#~ msgstr "Geluid"
+
+#, fuzzy
+#~ msgid "So&und directory:"
+#~ msgstr "Gel&uidsmap"
+
+#~ msgid ""
+#~ "Select a sound directory.<br><br>Press <b>Defaults</b> button to restore "
+#~ "the default sound directory."
+#~ msgstr ""
+#~ "Kies een geluidsmap.<br><br>Druk op de knop <b>Standaardwaarden</b> om de "
+#~ "standaard geluidsmap in te stellen."
+
+#~ msgid "File <b>%1</b> not found."
+#~ msgstr "Bestand <b>%1</b> niet gevonden."
+
+#, fuzzy
+#~ msgid "Re&set Time"
+#~ msgstr "&Tijd resetten"
+
+#, fuzzy
+#~ msgid "Enter delay in seconds, minutes, or hours:"
+#~ msgstr "Geef vertraging op in seconden."
+
+#~ msgid "Logo&ut Settings..."
+#~ msgstr "Afmeldinstellingen..."
+
+#~ msgid "Stat&istics"
+#~ msgstr "&Statistieken"
+
+#~ msgid "Shut Down"
+#~ msgstr "Uitschakelen"
+
+#~ msgid "Reboot"
+#~ msgstr "Herstarten"
+
+#~ msgid "&Shut Down"
+#~ msgstr "&Uitschakelen"
+
+#~ msgid "&Reboot"
+#~ msgstr "&Herstarten"
+
+#~ msgid "Halt system"
+#~ msgstr "Systeem uitschakelen"
+
+#~ msgid "Reboot system"
+#~ msgstr "Systeem herstarten"
+
+#~ msgid "Cancel a running action"
+#~ msgstr "Gestarte actie annuleren"
+
+#, fuzzy
+#~ msgid "Default mode"
+#~ msgstr "Geluid &testen"
+
+#~ msgid "Warning:"
+#~ msgstr "Waarschuwing:"
+
+#, fuzzy
+#~ msgid "Select the type of &delay"
+#~ msgstr "Kies het vertragingstype."
+
+#, fuzzy
+#~ msgid "Text"
+#~ msgstr "Test"
+
+#~ msgid "Comm&and"
+#~ msgstr "&Commando"
+
+#~ msgid "See also: <i>Actions</i>."
+#~ msgstr "Zie ook: <i>Acties</i>."
+
+#~ msgid "Shut down system and reboot computer."
+#~ msgstr "Sluit het systeem af en herstart uw computer."
+
+#, fuzzy
+#~ msgid "Cancel active action, or quit the application."
+#~ msgstr "Uitschakelen annuleren, of sluit de toepassing af."
+
+#~ msgid "&When?"
+#~ msgstr "&Wanneer?"
+
+#~ msgid "No description"
+#~ msgstr "Geen omschrijving"
+
+#~ msgid "&Test Sound"
+#~ msgstr "Geluid &testen"
+
+#~ msgid "Shut Down-O-Matik"
+#~ msgstr "Shut Down-O-Matik"
+
+#~ msgid "Don't really shut down"
+#~ msgstr "Niet echt afsluiten"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..d276360
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,799 @@
+# translation of pl.po to
+# translation of pl.po to Polish
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+#
+# Konrad Twardowski <kdtonline@poczta.onet.pl>, 2003, 2004, 2005, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: pl\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-27 19:36+0200\n"
+"PO-Revision-Date: 2007-08-27 19:49+0200\n"
+"Last-Translator: Konrad Twardowski <kdtonline@poczta.onet.pl>\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.11.4\n"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Proszę czekać..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Nie było możliwe poprawne wylogowanie.\n"
+"Nie można połączyć się z menedżerem sesji."
+
+#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419
+#: ../kshutdown/mstatstab.cpp:191
+msgid "Command: %1"
+msgstr "Polecenie: %1"
+
+#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445
+#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Brak opóźnienia"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Nothing"
+msgstr "Nic"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183
+msgid "Turn Off Computer"
+msgstr "Wyłącz komputer"
+
+#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177
+msgid "Restart Computer"
+msgstr "Uruchom ponownie"
+
+#: ../kshutdown/actions.cpp:322
+msgid "Lock Session"
+msgstr "Zablokuj ekran"
+
+#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171
+msgid "End Current Session"
+msgstr "Zakończ bieżącą sesję"
+
+#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Unknown"
+msgstr "Nieznane"
+
+#: ../kshutdown/actions.cpp:362
+msgid "Action failed! (%1)"
+msgstr "Akcja nie powiodła się! (%1)"
+
+#: ../kshutdown/actions.cpp:406
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: wywołanie DCOP nie powiodło się!"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Odśwież listę procesów"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Lista działających procesów"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Zabij"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Zabij wybrany proces"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Czekanie na \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Wybrany proces nie istnieje!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Nie można wykonać polecenia<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Jesteś pewien, że chcesz ZABIĆ<br><b>%1</b>?<br><br>Wszystkie niezapisane "
+"dane zostaną utracone!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Nie znaleziono procesu<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Brak uprawnień do zabicia<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "MARTWY: %1"
+
+#: ../kshutdown/confirmation.cpp:64
+msgid "Confirm"
+msgstr "Potwierdź"
+
+#: ../kshutdown/confirmation.cpp:78
+msgid ""
+"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+"Jesteś pewna/pewien?<br><br>Wybrana akcja: <b>%1</b><br>Wybrany czas: <b>%2</"
+"b>"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Więcej akcji..."
+
+#: ../kshutdown/extras.cpp:91
+msgid "Select a command..."
+msgstr "Wybierz polecenie..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Użyj menu kontekstowego, aby dodawać/edytować/usuwać skróty."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Użyj <b>Menu Kontekstowego</b>, aby utworzyć nowy skrót do aplikacji"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Użyj <b>Utwórz nowe|Katalog...</b>, aby utworzyć nowe podmenu"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Użyj <b>Właściwości...</b>, aby zmienić ikonę, nazwę lub komentarz"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:609
+msgid "Extras"
+msgstr "Ekstra"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Położenie, w którym utworzyć skrót:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Pulpit"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "Menu \"K\""
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Rodzaj skrótu:"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Standardowe okno wylogowywania"
+
+#: ../kshutdown/links.cpp:95
+msgid "System Shut Down Utility"
+msgstr "Narzędzie do zamykania systemu"
+
+#: ../kshutdown/links.cpp:106
+msgid "Could not create file <b>%1</b>!"
+msgstr "Nie można utworzyć pliku <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:117
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Nie można usunąć pliku <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:182
+msgid "Remove Link"
+msgstr "Usuń skrót"
+
+#: ../kshutdown/links.cpp:186
+msgid "Add Link"
+msgstr "Dodaj skrót"
+
+#: ../kshutdown/links.cpp:205
+msgid "Logout"
+msgstr "Wyloguj"
+
+#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143
+msgid "Method"
+msgstr "Metoda"
+
+#: ../kshutdown/mactioneditdialog.cpp:70
+msgid "Select a method:"
+msgstr "Wybierz metodę:"
+
+#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431
+msgid "KDE (default)"
+msgstr "KDE (domyślne)"
+
+#: ../kshutdown/mactioneditdialog.cpp:80
+msgid "Enter a custom command:"
+msgstr "Wprowadź własne polecenie:"
+
+#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144
+msgid "Command before action"
+msgstr "Polecenie przed akcją"
+
+#: ../kshutdown/mactioneditdialog.cpp:87
+msgid "Run command"
+msgstr "Uruchom polecenie"
+
+#: ../kshutdown/mactioneditdialog.cpp:90
+msgid "Pause after run command:"
+msgstr "Pauza po uruchomieniu polecenia:"
+
+#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445
+msgid "No pause"
+msgstr "Bez pauzy"
+
+#: ../kshutdown/mactioneditdialog.cpp:93
+msgid "second(s)"
+msgstr "sekunda(y)"
+
+#: ../kshutdown/mactioneditdialog.cpp:109
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"W większości przypadków potrzebne są uprawnienia do zamknięcia systemu (np. "
+"uruchomienia /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Jeśli używasz <b>KDE</b> i <b>KDM</b> (KDE Display Manager), ustaw wszystkie "
+"metody na <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:112
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Jeśli używasz <b>KDE</b> i menedżera logowania innego niż <b>KDM</b>, ustaw "
+"metody poleceń <i>Wyłącz komputer</i> i <i>Uruchom ponownie</i> na <i>/"
+"sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid "Manuals:"
+msgstr "Podręczniki:"
+
+#: ../kshutdown/mactioneditdialog.cpp:135
+msgid "User Command"
+msgstr "Polecenie użytkownika"
+
+#: ../kshutdown/main.cpp:43
+msgid "A Shut Down Utility for KDE"
+msgstr "Narzędzie do zamykania systemu dla KDE"
+
+#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56
+msgid "Turn off computer"
+msgstr "Wyłącz komputer"
+
+#: ../kshutdown/main.cpp:58
+msgid "Restart computer"
+msgstr "Uruchom ponownie"
+
+#: ../kshutdown/main.cpp:60
+msgid "Lock session"
+msgstr "Zablokuj ekran"
+
+#: ../kshutdown/main.cpp:62
+msgid "End current session"
+msgstr "Zakończ bieżącą sesję"
+
+#: ../kshutdown/main.cpp:64
+msgid "Execute \"Extras\" command (.desktop file)"
+msgstr "Uruchom polecenie \"Extra\" (plik .desktop)"
+
+#: ../kshutdown/main.cpp:65
+msgid "Confirm command line action"
+msgstr "Potwierdź akcję linii poleceń"
+
+#: ../kshutdown/main.cpp:66
+msgid "Show standard logout dialog"
+msgstr "Pokaż standardowe okno wylogowywania"
+
+#: ../kshutdown/main.cpp:68
+msgid "Cancel an active action"
+msgstr "Anuluj aktywną akcję"
+
+#: ../kshutdown/main.cpp:69
+msgid "Don't show window at startup"
+msgstr "Nie pokazuj okna przy starcie"
+
+#: ../kshutdown/main.cpp:70
+msgid "Enable test mode"
+msgstr "Włącz tryb testowy"
+
+#: ../kshutdown/main.cpp:71
+msgid "Disable test mode"
+msgstr "Wyłącz tryb testowy"
+
+#: ../kshutdown/main.cpp:72
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Czas; Przykłady: 01:30 - czas bezwzględny (GG:MM); 10 - liczba minut do "
+"odczekania od teraz"
+
+#: ../kshutdown/main.cpp:245
+msgid "Invalid time: <b>%1</b>"
+msgstr "Nieprawidłowy czas: <b>%1</b>"
+
+#: ../kshutdown/miscutils.cpp:110
+msgid "1 hour warning"
+msgstr "Ostrzeżenie: 1 godzina"
+
+#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114
+msgid "5 minutes warning"
+msgstr "Ostrzeżenie: 5 minut"
+
+#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118
+msgid "1 minute warning"
+msgstr "Ostrzeżenie: 1 minuta"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "10 seconds warning"
+msgstr "Ostrzeżenie: 10 sekund"
+
+#: ../kshutdown/miscutils.cpp:226
+msgid "Could not run \"%1\"!"
+msgstr "Nie można uruchomić \"%1\"!"
+
+#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471
+#: ../kshutdown/msettingsdialog.cpp:558
+msgid "Test"
+msgstr "Test"
+
+#: ../kshutdown/mmainwindow.cpp:149
+msgid "Enter hour and minute."
+msgstr "Podaj godzinę i minutę."
+
+#: ../kshutdown/mmainwindow.cpp:159
+msgid "Enter date and time."
+msgstr "Podaj datę i godzinę."
+
+#: ../kshutdown/mmainwindow.cpp:238
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Najpierw kliknij na przycisk <b>Wybierz polecenie...</b>."
+
+#: ../kshutdown/mmainwindow.cpp:280
+msgid "Selected date/time: %1"
+msgstr "Wybrana data/godzina: %1"
+
+#: ../kshutdown/mmainwindow.cpp:281
+msgid "Current date/time: %1"
+msgstr "Bieżąca data/godzina: %1"
+
+#: ../kshutdown/mmainwindow.cpp:287
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Wybrana data/godzina jest wcześniejsza niż bieżąca data/godzina!"
+
+#: ../kshutdown/mmainwindow.cpp:292
+msgid "Action cancelled!"
+msgstr "Akcja anulowana!"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode enabled"
+msgstr "Tryb testowy włączony"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode disabled"
+msgstr "Tryb testowy wyłączony"
+
+#: ../kshutdown/mmainwindow.cpp:477
+msgid "&Actions"
+msgstr "&Akcje"
+
+#: ../kshutdown/mmainwindow.cpp:483
+msgid "Configure Global Shortcuts..."
+msgstr "Konfiguracja skrótów globalnych..."
+
+#: ../kshutdown/mmainwindow.cpp:531
+msgid "C&ancel"
+msgstr "&Anuluj"
+
+#: ../kshutdown/mmainwindow.cpp:539
+msgid "Check &System Configuration"
+msgstr "&Sprawdź konfigurację systemu"
+
+#: ../kshutdown/mmainwindow.cpp:556
+msgid "&Statistics"
+msgstr "&Statystyka"
+
+#: ../kshutdown/mmainwindow.cpp:600
+msgid "Select an &action to perform"
+msgstr "Wybierz &akcję do wykonania"
+
+#: ../kshutdown/mmainwindow.cpp:610
+msgid "Select an action to perform at the selected time."
+msgstr "Wybierz akcję do wykonania o wybranym czasie."
+
+#: ../kshutdown/mmainwindow.cpp:616
+msgid "S&elect a time"
+msgstr "&Wybierz czas"
+
+#: ../kshutdown/mmainwindow.cpp:623
+msgid "Time From Now (HH:MM)"
+msgstr "Czas od teraz (GG:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:624
+msgid "At Date/Time"
+msgstr "O dacie/godzinie"
+
+#: ../kshutdown/mmainwindow.cpp:625
+msgid "When selected application exit"
+msgstr "Gdy wybrana aplikacja zakończy się"
+
+#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117
+msgid "Disabled by the Administrator."
+msgstr "Wyłączone przez Administratora."
+
+#: ../kshutdown/mmainwindow.cpp:629
+msgid "Select the type of delay."
+msgstr "Wybierz rodzaj opóźnienia."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "Selected time."
+msgstr "Wybrany czas."
+
+#: ../kshutdown/mmainwindow.cpp:671
+msgid "TEST MODE"
+msgstr "TRYB TESTOWY"
+
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Remaining time: <b>%1</b>"
+msgstr "Pozostały czas: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:678
+msgid "Selected time: <b>%1</b>"
+msgstr "Wybrany czas: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:679
+msgid "Selected action: <b>%1</b>"
+msgstr "Wybrana akcja: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:682
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Uwaga: </b> Tryb testowy jest włączony"
+
+#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905
+msgid "KShutDown has been minimized"
+msgstr "KShutDown został zminimalizowany"
+
+#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926
+msgid "KShutDown has quit"
+msgstr "KShutDown zakończył działanie"
+
+#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82
+msgid "Message"
+msgstr "Komunikat"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Pozostały czas."
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Ustawienia"
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Akcje"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Akcja"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Edytuj..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Sprawdź konfigurację systemu"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Menu Extra"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Modyfikuj..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Zaawansowane"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Po zalogowaniu"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Zablokuj ekran"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Przed wylogowaniem"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Zamknij tackę CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Polecenie:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Powiązane ustawienia KDE..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Ogólne"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Powszechne problemy"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Wyłącz komputer\" nie działa"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Wyskakujące komunikaty są bardzo irytujące"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Dodaj/usuń skróty"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Pokazuj ikonę tacki systemowej"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Zawsze"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Ikona tacki systemowej będzie zawsze widoczna."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Jeśli aktywny"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+"Ikona tacki systemowej będzie widoczna tylko, jeśli KShutDown jest aktywny."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Nigdy"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Ikona tacki systemowej będzie zawsze ukryta."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Pokaż tematy KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Strona domowa SuperKaramby"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Komunikaty"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Wyświetl komunikat ostrzegawczy przed akcją"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minuta(y)"
+
+#: ../kshutdown/msettingsdialog.cpp:303
+msgid "Recommended"
+msgstr "Zalecany"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "Warning Message"
+msgstr "Komunikat ostrzegawczy"
+
+#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351
+msgid "Enabled"
+msgstr "Włączony"
+
+#: ../kshutdown/msettingsdialog.cpp:318
+msgid "A shell command to execute:"
+msgstr "Polecenie powłoki do wykonania:"
+
+#: ../kshutdown/msettingsdialog.cpp:323
+msgid "Enter a command."
+msgstr "Wprowadź polecenie."
+
+#: ../kshutdown/msettingsdialog.cpp:326
+msgid "A message text"
+msgstr "Tekst komunikatu"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "The current main window title"
+msgstr "Bieżący tytuł okna głównego"
+
+#: ../kshutdown/msettingsdialog.cpp:333
+msgid "Presets"
+msgstr "Wybrane ustawienia"
+
+#: ../kshutdown/msettingsdialog.cpp:347
+msgid "Custom Message"
+msgstr "Własny komunikat"
+
+#: ../kshutdown/msettingsdialog.cpp:350
+msgid "Progress Bar"
+msgstr "Pasek postępu"
+
+#: ../kshutdown/msettingsdialog.cpp:354
+msgid "Re-enable All Message Boxes"
+msgstr "Włącz ponownie wszystkie komunikaty"
+
+#: ../kshutdown/msettingsdialog.cpp:358
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Włącz wszystkie komunikaty, które zostały wyłączone przez opcję <b>Nie "
+"wyświetlaj więcej tego komunikatu</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:447
+msgid "Pause: %1"
+msgstr "Pauza: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:516
+msgid "This file is used to lock session at KDE startup"
+msgstr "Ten plik jest używany do blokowania sesji przy starcie KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:596
+msgid "Restore default settings for this page?"
+msgstr "Przywrócić domyślne ustawienia dla tej karty?"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statystyka"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Ten widok wyświetla informacje o bieżących użytkownikach komputera, i ich "
+"procesy.<br>Nagłówek pokazuje jak długo system jest uruchomiony."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Odśwież"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Więcej informacji"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Pokaż czas zalogowania, oraz czas JCPU i PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Przełącz \"FROM\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Przełącz pole \"FROM\" (zdalnego hosta)."
+
+#: ../kshutdown/progressbar.cpp:99
+msgid "Hide"
+msgstr "Ukryj"
+
+#: ../kshutdown/systemconfig.cpp:71
+msgid "System Configuration"
+msgstr "Konfiguracja systemu"
+
+#: ../kshutdown/systemconfig.cpp:88
+msgid ""
+"Tip: Click here if you have problem with the \"/sbin/shutdown\" command."
+msgstr ""
+"Wskazówka: Kliknij tutaj, jeśli masz problem z poleceniem \"/sbin/shutdown\"."
+
+#: ../kshutdown/systemconfig.cpp:97
+msgid "No problems were found."
+msgstr "Nie znaleziono problemów."
+
+#: ../kshutdown/systemconfig.cpp:128
+msgid "Program \"%1\" was not found!"
+msgstr "Nie znaleziono programu \"%1\"!"
+
+#: ../kshutdown/systemconfig.cpp:135
+msgid "No permissions to execute \"%1\"."
+msgstr "Brak uprawnień do wykonania \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:144
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Wygląda na to, że to nie jest pełna sesja KDE.\n"
+"KShutDown został zaprojektowany do pracy z KDE.\n"
+"Niemniej jednak, możesz skonfigurować Akcje w oknie ustawień KShutDown\n"
+"(Ustawienia -> Konfiguracja: KShutDown... -> Akcje)."
+
+#: ../kshutdown/systemconfig.cpp:161
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Wskazówka: Możesz skonfigurować Akcje, aby działały z GDM.\n"
+"(Ustawienia -> Konfiguracja: KShutDown... -> Akcje)"
+
+#: ../kshutdown/systemconfig.cpp:162
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"Menedżer logowania KDE nie jest uruchomiony,\n"
+"lub funkcja zamykania/restartu jest wyłączona.\n"
+"\n"
+"Kliknij tutaj, aby skonfigurować KDM."
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Konrad Twardowski"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "kdtonline@poczta.onet.pl"
+
+#: ../kshutdownlockout/lockout.cpp:120
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+"Kliknij, aby wyświetlić główne okno KShutDown<br>Kliknij i przytrzymaj, aby "
+"wyświetlić menu"
+
+#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155
+#: ../kshutdownlockout/lockout.cpp:200
+msgid "Could not run KShutDown!"
+msgstr "Nie można uruchomić KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:165
+msgid "Lock Screen"
+msgstr "Zablokuj ekran"
+
+#: ../kshutdownlockout/lockout.cpp:191
+msgid "&Configure KShutDown..."
+msgstr "&Konfiguracja: KShutDown..."
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..19ee13b
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,846 @@
+# translation of pt_BR.po to Português do Brasil
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Paulo Zambon <pzambon@astornet.com.br>, 2005.
+# Phantom X <megaphantomx@bol.com.br>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: pt_BR\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2006-07-04 23:30-0300\n"
+"Last-Translator: Phantom X <megaphantomx@bol.com.br>\n"
+"Language-Team: Português do Brasil <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Projeto-Versăo: 0.6\n"
+"Data de criaçăo do POT: 09-06-2005 14:00+0100\n"
+"Data de revisăo do PO: 2005-06-09 \n"
+"X-Generator: KBabel 1.11.2\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Estatísticas"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Esta tela apresenta uma informaçăo sobre o usuário ativo na máquina e os "
+"processos dele.<br>O cabeçalho mostra quanto tempo o sistema está ativo."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Atualizar"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "Opções"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Mais informações"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Exibir tempo de login, JCPU e PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Mudar \"FROM\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Mudar o campo \"FROM\" (nome de host remoto)."
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "Erro"
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Comando: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Mais ações..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Selecione um comando..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Use o menu contexto para adicionar/editar/remover atalhes."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Use <b>Menu Contexto</b> para criar um novo link para aplicaçăo"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Use <b>Criar Nova|Pasta...</b> para criar um novo submenu"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Use <b>Propriedades</b> para trocar o ícone, nome ou comentário"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Extras"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Erro interno!\n"
+"Item do menu selecionado está com problemas."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "1 hora aguardando"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 minutos aguardando"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 minuto aguardando"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 segundos aguardando"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 segundos antes da ação"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 segundos antes da ação"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 segundos antes da ação"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "Năo foi possível executar \"%1\"!"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Teste"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Local para criar o atalho:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Desktop"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "Menu K"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Tipo do atalho:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Diálogo Padrăo de Logout"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "Um utilitário de desligamento para o KDE"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Năofoi possível criar arquivo <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Năo foi possível remover arquivo <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Remover Atalho"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "Adicionar Atalho"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Logout"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Um utilitário de desligamento para o KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Desligar o Computador"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Reiniciar o Computador"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Fechar Sessăo"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Finalizar Sessăo Atual"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Confirmar ação de linha de comando"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Mostrar diálogo padrăo do logout"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Cancelar um açăo ativa"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Năo mostrar janela para iniciar"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Habilitar modo de teste"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Desabilitar modo de teste"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Tempo; Exemplos: 01:30 - tempo absoluto (HH:MM); 10 - número de minutos para "
+"aguardar para agora"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Tempo inválido: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Preferências"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Desabilitado pelo Administrador."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Açőes"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Ação"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Método"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Comando antes da açăo"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Editar..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Verificar a configuração do sistema"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Menu Extras"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Modificar..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Avançado"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Após o Login"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Bloquear tela"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Antes do Logout"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Fechar a bandeja do CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Comando:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Preferências do &KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Geral"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Problemas comuns"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Desligar o Computador\" não funciona"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Mensagens popup são muito irritantes"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Adicionar/Remover Atalhos"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Exibir Ícone na Área de Notificação"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Sempre"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Ícone na Área de Notificação será sempre visível."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Se Ativo"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "Ícone na Área de Notificação será visível.apenas se KShutDown estiver ativo"
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Nunca"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Ícone na Área de Notificação será sempre escondido"
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Mostrar Temas para o KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Página do SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Mensagens"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Exibir uma mensagem antes da açăo"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minutos(s)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Mensagem de Aviso"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Habilitado"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Um comando shell para executar:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Entre com um comando."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "Uma mensagem de texto"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "O título atual da janela"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Mensagem Modificada"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Reabilitar todas a caixas de mensagem"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Habilitar todas as mensagens que tenham reiniciado com o <b>Năo mostrar "
+"estamensagem novamente</b> no futuro."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Sem pausa"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "Pausa: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "Este arquivo é usado para bloquear a sessão no início do KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Restaurar preferências padrăo para esta página?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Entre com hora e minuto."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Entre com hora e data."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Clique no botão <b>Selecione um comando...</b> primeiro."
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Data/Hora selecionada: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Data/Hora atual: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Data/Hora selecionada estão mais cedo do que a data/hora atual!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Açăo cancelada!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Modo de teste habilitado"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Modo de teste desabilitado"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Năo Atrasar"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&Arquivo"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "Aç&őes"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "&Configurar..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "&Preferências"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "A&juda"
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "Cancelar: %1"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "Verificar a Configuração do &Sistema"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "&Iniciar [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "&Estatísticas"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "Selecione um ação para realizar"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Selecione um ação para realizar em um tempo determinado."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "&Selecione um tempo:"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Tempo a partir de agora (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Para Data/Hora"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "Quando a açăo selecionada terminar"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Selecione o tipo de atraso"
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Tempo selecionado."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "MODO DE TESTE"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Tempo restante: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Tempo selecionado: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "Açăo selecionada: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Nota: </b> O modo de teste está habilitado"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "O KShutdown está minimizado"
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "KShutDown saiu"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Por favor, aguarde..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Năo pôde sair corretamente.\n"
+"O gerenciador de sessăo năo pôde ser contactado."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Nada"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Desligar o Computador"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Reiniciar o Computador"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Fechar Sessăo"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Finalizar Sessăo Atual"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Açăo falhou!(%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "Kdesktop: chamada do DCOP falhou!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Configuração do Sistema"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Mensagem"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Dica: Se você tiver problemas com o comando \"/sbin/shutdown\",\n"
+"tente modificar o arquivo \"/etc/shutdown.allow\",\n"
+"então execute o comando \"/sbin/shutdown\" com o parâmentro \"-a\".\n"
+"\n"
+"Clique aqui para mais informação."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Nenhum problema foi encontrado."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "O programa \"%1\" não foi encontrado!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "Sem permissões para executar \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Parece que esta não é um sessão completa do KDE.\n"
+"KShutDown foi criado para funcionar com o KDE.\n"
+"Entretanto, você pode modificar Ações no diálogo de configurações do KShutDown\n"
+"(Preferências -> Configurar KShutDown... -> Ações)."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Dica: Você pode modificar Ações para funcionar com o GDM.\n"
+"(Preferências -> Configurar KShutDown... -> Ações)."
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"O KDE Display Manager não está executando,\n"
+"ou oa função de desligar/reiniciar está desabilitada.\n"
+"\n"
+"Clique aqui para configurar o KDM."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Selecione um método:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Digite um comando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Executar comando"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "Pausar depois executar comando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "segundo(s)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Na maioria dos casos você precisa de privilégios para desligar o sistema (ex.: executar "
+"/sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Se você estiver usando o<b>KDE</b> e o <b>KDM</b> (KDE Display Manager), entăo "
+"coloque todos os métodos para <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Se vocę estiver usando <b>KDE</b> e um display manager diferente que o "
+"<b>KDM</b>, entăo coloque <i>Desligar Computador</i> e <i>Reiniciar o "
+"Computador</i> métodos para <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Manuais:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Comando de usuário"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Tempo restante."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Atualizar a lista de processos"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Lista de processos executando"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Matar"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Matar o processo selecionado"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Esperando por \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "O processo selecionado não exixte!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Năo foi possível executar o comando<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Você tem certeza que quer MATAR<br><b>%1</b>?<br><br>Todos os dados não "
+"salvos serão perdidos!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Processo não encontrado<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Sem permissões para matar <br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "MORTO: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Confirmar..."
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "&Cancelar"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Você tem certeza?<br><br>Ação selecionada: <b>%1</b><br>STempo selecionado: <b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr ""
+"Paulo Zambon\n"
+"Phantom X"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr ""
+"pzambon@astornet.com.br\n"
+"megaphantomx@bol.com.br"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr "Clique para a janela principal do KShutDown<br>Clique e segure para o menu"
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "Năo foi possível executar o KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "Bloquear Tela"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "&Configurar KShutDown..."
+
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..5911e49
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,1299 @@
+# translation of ru.po to
+# translation of ru1.po to
+# translation of ru.po to
+# translation of kshutdown.po to
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# spider <spider@malta.altlinux.ru>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ru\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2004-09-02 21:48+0400\n"
+"Last-Translator: spider <spider@malta.altlinux.ru>\n"
+"Language-Team: <ru@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.3.1\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Статистика"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Дисплей просмотра показывает информацию о пользователях находящихся на "
+"компьютере, и их процессах.<br>Заголовок показывает как долго работает "
+"компьютер."
+
+#: ../kshutdown/mstatstab.cpp:79
+#, fuzzy
+msgid "Refresh"
+msgstr "Обновить"
+
+#: ../kshutdown/mstatstab.cpp:83
+#, fuzzy
+msgid "Options"
+msgstr "Действия"
+
+#: ../kshutdown/mstatstab.cpp:85
+#, fuzzy
+msgid "More information"
+msgstr " Настройка"
+
+#: ../kshutdown/mstatstab.cpp:88
+#, fuzzy
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Показывать время захода, время JCPU и PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Команда: %1"
+
+#: ../kshutdown/extras.cpp:57
+#, fuzzy
+msgid "More actions..."
+msgstr " Настройка"
+
+#: ../kshutdown/extras.cpp:227
+#, fuzzy
+msgid "Select a command..."
+msgstr "Задержка в секундах."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr ""
+"Используйте контекстное меню для добавления/редактирования и удаления ссылок."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Используйте <b>Контекстное меню</b> для создания ссылок на приложения"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Используйте <b>Создать Новый|Каталог</b> для создания субменю"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Используйте<b>Настройки</b> для смены иконки, имени, или комментария"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Дополнительно"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Внутренняя ошибка!\n"
+"Выбранное меню потеряно."
+
+#: ../kshutdown/miscutils.cpp:104
+#, fuzzy
+msgid "1 hour warning"
+msgstr "ожидание в 1 минуту"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "ожидание 5 минут"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "ожидание в 1 минуту"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "ожидание 10 секунд"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr ""
+
+#: ../kshutdown/miscutils.cpp:124
+#, fuzzy
+msgid "1 second before action"
+msgstr "ожидание 10 секунд"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "Не могу запустить \"%1\"!"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Тест"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr ""
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Десктоп"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr ""
+
+#: ../kshutdown/links.cpp:62
+#, fuzzy
+msgid "Type of the link:"
+msgstr "Выберите тип задержки:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Стандартный диалог выхода"
+
+#: ../kshutdown/links.cpp:96
+#, fuzzy
+msgid "System Shut Down Utility"
+msgstr "Утилита выключения компьютера для KDE"
+
+#: ../kshutdown/links.cpp:107
+#, fuzzy
+msgid "Could not create file <b>%1</b>!"
+msgstr "Не могу удалить файл <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Не могу удалить файл <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+#, fuzzy
+msgid "Remove Link"
+msgstr "Удалить Ссылку"
+
+#: ../kshutdown/links.cpp:187
+#, fuzzy
+msgid "Add Link"
+msgstr "Удалить Ссылку"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Завершить сеанс"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Утилита выключения компьютера для KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Выключить компьютер"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Перезагрузить компьютер"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Запереть экран"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Завершить сеанс"
+
+#: ../kshutdown/main.cpp:60
+#, fuzzy
+msgid "Confirm command line action"
+msgstr "Отменить активное задание"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Показать стандартный диалог выхода"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Отменить активное задание"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Не показывать окно при зауске"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Включить тестовый режим"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Отключить тестовый режим"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Время; Примеры: 01:30 - абсолютное время (HH:MM); 10 - количество минут."
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "неверное время: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Настройки"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Запрещено Администратором."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+#, fuzzy
+msgid "Actions"
+msgstr "Действия"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Действие"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+#, fuzzy
+msgid "Method"
+msgstr "Метод:"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:162
+#, fuzzy
+msgid "Edit..."
+msgstr "Правка"
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:168
+#, fuzzy
+msgid "Extras Menu"
+msgstr "Меню дополнений"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+#, fuzzy
+msgid "Modify..."
+msgstr "Изменить..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:190
+#, fuzzy
+msgid "After Login"
+msgstr "После регистрации"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+#, fuzzy
+msgid "Lock screen"
+msgstr "Запереть экран"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+#, fuzzy
+msgid "Before Logout"
+msgstr "Завершить сеанс"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Команда:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+#, fuzzy
+msgid "Related KDE Settings..."
+msgstr "Настройки KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Общие"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:226
+#, fuzzy
+msgid "\"Turn Off Computer\" does not work"
+msgstr "Выключить компьютер"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:234
+#, fuzzy
+msgid "Add/Remove Links"
+msgstr "Удалить Ссылку"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:274
+#, fuzzy
+msgid "Show KShutDown Themes"
+msgstr "KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:285
+#, fuzzy
+msgid "Messages"
+msgstr "Сообщение"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+#, fuzzy
+msgid "Display a warning message before action"
+msgstr "Показывать предупреждение за %1 минут."
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "минут"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+#, fuzzy
+msgid "Warning Message"
+msgstr "Предупреждающие сообщения (рекомендуется)"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+#, fuzzy
+msgid "Enabled"
+msgstr "Включено"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:317
+#, fuzzy
+msgid "Enter a command."
+msgstr "Задержка в секундах."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+#, fuzzy
+msgid "A message text"
+msgstr "Скрывать сообщения после:"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+#, fuzzy
+msgid "Custom Message"
+msgstr "Сообщение"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Восстановить первоначальные значения для этой страницы ?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+#, fuzzy
+msgid "Enter hour and minute."
+msgstr " Час и минута:"
+
+#: ../kshutdown/mmainwindow.cpp:142
+#, fuzzy
+msgid "Enter date and time."
+msgstr "Время и дата:"
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Выбранная дата/время: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Текущяя дата/время: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Выбранная дата/время более ранняя чем текущее время."
+
+#: ../kshutdown/mmainwindow.cpp:275
+#, fuzzy
+msgid "Action cancelled!"
+msgstr "Действие неудачно! (%1)"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:380
+#, fuzzy
+msgid "Test mode disabled"
+msgstr "Планировщик отключен!"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+#, fuzzy
+msgid "No Delay"
+msgstr "Без задержки"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:449
+#, fuzzy
+msgid "&Actions"
+msgstr "Действия"
+
+#: ../kshutdown/mmainwindow.cpp:455
+#, fuzzy
+msgid "Configure Global Shortcuts..."
+msgstr " Настройка"
+
+#: ../kshutdown/mmainwindow.cpp:460
+#, fuzzy
+msgid "&Settings"
+msgstr "Настройки"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+#, fuzzy
+msgid "C&ancel"
+msgstr "Команда: %1"
+
+#: ../kshutdown/mmainwindow.cpp:511
+#, fuzzy
+msgid "Check &System Configuration"
+msgstr "Подтверждения"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:528
+#, fuzzy
+msgid "&Statistics"
+msgstr "Статистика"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:589
+#, fuzzy
+msgid "S&elect a time"
+msgstr "Выбранная дата/время: %1"
+
+#: ../kshutdown/mmainwindow.cpp:596
+#, fuzzy
+msgid "Time From Now (HH:MM)"
+msgstr "Время с текущего момента (HH:MM):"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "В Дату/Время"
+
+#: ../kshutdown/mmainwindow.cpp:598
+#, fuzzy
+msgid "When selected application exit"
+msgstr "Когда вы хотите выполнить это действие ?"
+
+#: ../kshutdown/mmainwindow.cpp:602
+#, fuzzy
+msgid "Select the type of delay."
+msgstr "Выберите тип задержки"
+
+#: ../kshutdown/mmainwindow.cpp:617
+#, fuzzy
+msgid "Selected time."
+msgstr "Выбранная дата/время: %1"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "ТЕСТОВЫЙ РЕЖИМ"
+
+#: ../kshutdown/mmainwindow.cpp:651
+#, fuzzy
+msgid "Remaining time: <b>%1</b>"
+msgstr "неверное время: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Неизвестный"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Выбранное время :<b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+#, fuzzy
+msgid "Selected action: <b>%1</b>"
+msgstr "Выбранное время :<b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+#, fuzzy
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "Планировщик отключен!"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+#, fuzzy
+msgid "KShutDown has quit"
+msgstr "KShutDown"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr ""
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr "Невозможно корректно завершить сеанс."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Ничего"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Выключить компьютер"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Перезагрузить компьютер"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Запереть экран"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Завершить сеанс"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Действие неудачно! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:65
+#, fuzzy
+msgid "System Configuration"
+msgstr "Подтверждения"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Сообщение"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+#, fuzzy
+msgid "Enter a custom command:"
+msgstr "Задержка в секундах."
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+#, fuzzy
+msgid "Run command"
+msgstr "Выполнить команду"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+#, fuzzy
+msgid "Pause after run command:"
+msgstr "Пауза после выполнения команды:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "секунд"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+#, fuzzy
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Может случиться, что вам потребуются некоторые привилегии для выключения "
+"компьютера (для запуска /sbin/reboot или /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Если вы используете <b>KDE</b> и <b>KDM</b> (KDE Display Manager), то "
+"используйте все методы для <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Документация:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Команды пользователя"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+#, fuzzy
+msgid "Remaining time."
+msgstr "неверное время: <b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:68
+#, fuzzy
+msgid "Kill the selected process"
+msgstr "Когда вы хотите выполнить это действие ?"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:111
+#, fuzzy
+msgid "The selected process does not exist!"
+msgstr "Когда вы хотите выполнить это действие ?"
+
+#: ../kshutdown/appobserver.cpp:164
+#, fuzzy
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Не могу удалить файл <b>%1</b>!"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr ""
+
+#: ../kshutdown/confirmation.cpp:65
+#, fuzzy
+msgid "Confirm"
+msgstr "Подтверждения"
+
+#: ../kshutdown/confirmation.cpp:74
+#, fuzzy
+msgid "&Cancel"
+msgstr "Команда: %1"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid ""
+"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr ""
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+#, fuzzy
+msgid "Could not run KShutDown!"
+msgstr "Не могу запустить \"%1\"!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+#, fuzzy
+msgid "Lock Screen"
+msgstr "Запереть экран"
+
+#: ../kshutdownlockout/lockout.cpp:199
+#, fuzzy
+msgid "&Configure KShutDown..."
+msgstr " Настройка"
+
+#~ msgid "Are you sure?"
+#~ msgstr "Вы уверены ?"
+
+#, fuzzy
+#~ msgid ""
+#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu"
+#~ msgstr "<b>Средняя кнопка</b>показывает меню действий"
+
+#~ msgid "No delay"
+#~ msgstr "Без задержки"
+
+#, fuzzy
+#~ msgid "Create Link"
+#~ msgstr "Создать Ссылку"
+
+#, fuzzy
+#~ msgid "&Cancel: %1"
+#~ msgstr "Команда: %1"
+
+#, fuzzy
+#~ msgid "KShutDown Actions (no delay!)"
+#~ msgstr "Сейчас (без задержки)"
+
+#, fuzzy
+#~ msgid "Actions (no delay!)"
+#~ msgstr "Сейчас (без задержки)"
+
+#~ msgid "&Turn Off Computer"
+#~ msgstr "Выключить компьютер"
+
+#~ msgid "&Restart Computer"
+#~ msgstr "Перезагрузить компьютер"
+
+#~ msgid "&Lock Session"
+#~ msgstr "Запереть зкран"
+
+#~ msgid "&End Current Session"
+#~ msgstr "Завершить сеанс"
+
+#~ msgid "&Immediate Action"
+#~ msgstr "Немедленнное действие"
+
+#, fuzzy
+#~ msgid "Run KShutDown"
+#~ msgstr "KShutDown"
+
+#, fuzzy
+#~ msgid "&Run KShutDown"
+#~ msgstr "KShutDown"
+
+#, fuzzy
+#~ msgid "MSettingsDialog"
+#~ msgstr "Настройки"
+
+#, fuzzy
+#~ msgid "MMessageDialog"
+#~ msgstr "Сообщение"
+
+#, fuzzy
+#~ msgid "MActionEditDialog"
+#~ msgstr "Настройки"
+
+#, fuzzy
+#~ msgid "SystemConfig"
+#~ msgstr "Подтверждения"
+
+#~ msgid "Links"
+#~ msgstr "Ссылки"
+
+#, fuzzy
+#~ msgid "Lockout"
+#~ msgstr "Завершить сеанс"
+
+#~ msgid "Maintainer"
+#~ msgstr "Мантейнер"
+
+#~ msgid "Ideas"
+#~ msgstr "Идеи"
+
+#~ msgid "Bug reports"
+#~ msgstr "Отчеты об ошибках"
+
+#, fuzzy
+#~ msgid "Cancel an active action."
+#~ msgstr "Отменить активное задание"
+
+#, fuzzy
+#~ msgid "Hide message after:"
+#~ msgstr "Скрывать сообщения после:"
+
+#, fuzzy
+#~ msgid "Enter time. (HH:MM)"
+#~ msgstr "Время (HH:MM):"
+
+#, fuzzy
+#~ msgid "Enter date."
+#~ msgstr "Дата"
+
+#, fuzzy
+#~ msgid "&Time (HH:MM):"
+#~ msgstr "Время (HH:MM):"
+
+#, fuzzy
+#~ msgid "Stop the active action"
+#~ msgstr "Выбранное время :<b>%1</b>"
+
+#, fuzzy
+#~ msgid "Start the selected action"
+#~ msgstr "Выбранное время :<b>%1</b>"
+
+#, fuzzy
+#~ msgid "Time From Now"
+#~ msgstr "Время с текущего момента"
+
+#~ msgid "HH:MM"
+#~ msgstr "HH:MM"
+
+#~ msgid "&Date:"
+#~ msgstr "Дата:"
+
+#~ msgid "This page has been disabled by the Administator."
+#~ msgstr "Эта страница была закрыта Администратором."
+
+#, fuzzy
+#~ msgid "&Action"
+#~ msgstr "Действие"
+
+#~ msgid "Click to close"
+#~ msgstr "Кликни для закрытия"
+
+#, fuzzy
+#~ msgid "Configure &Notifications..."
+#~ msgstr " Настройка"
+
+#, fuzzy
+#~ msgid "Scheduler"
+#~ msgstr "Планировщик"
+
+#, fuzzy
+#~ msgid "Registered tasks:"
+#~ msgstr "Текущие задания:"
+
+#~ msgid "Name"
+#~ msgstr "Имя"
+
+#~ msgid "Description"
+#~ msgstr "Описание"
+
+#, fuzzy
+#~ msgid "Remove All"
+#~ msgstr "Удалить все"
+
+#, fuzzy
+#~ msgid "MSchedulerTab"
+#~ msgstr "Планировщик"
+
+#, fuzzy
+#~ msgid "AppScheduler"
+#~ msgstr "Планировщик"
+
+#~ msgid "The task is not registered!"
+#~ msgstr "Задача не задана!"
+
+#~ msgid "Invalid action: %1"
+#~ msgstr "Неправильное действие:%1"
+
+#~ msgid "The scheduler is disabled!"
+#~ msgstr "Планировщик отключен!"
+
+#, fuzzy
+#~ msgid "S&cheduler"
+#~ msgstr "Планировщик"
+
+#, fuzzy
+#~ msgid ""
+#~ "Actions\n"
+#~ "and Extras Menu"
+#~ msgstr "Меню действий и дополнений"
+
+#, fuzzy
+#~ msgid ""
+#~ "Confirmations\n"
+#~ "and Messages"
+#~ msgstr "Сообщения и подтверждения"
+
+#, fuzzy
+#~ msgid "Confirm action (recommended)"
+#~ msgstr "Подтверждения (рекомендуется)"
+
+#, fuzzy
+#~ msgid "&Scheduler"
+#~ msgstr "Планировщик"
+
+#, fuzzy
+#~ msgid "&Download KShutDown"
+#~ msgstr "KShutDown"
+
+#~ msgid ""
+#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. "
+#~ "<b>GNOME</b>), then change all methods..."
+#~ msgstr ""
+#~ "Если вы запускаете <b>KShutDown</b> не из под KDE (Gnome), то поменяйте "
+#~ "методы..."
+
+#, fuzzy
+#~ msgid "Time"
+#~ msgstr "Время"
+
+#~ msgid "Disabled"
+#~ msgstr "Выключено"
+
+#, fuzzy
+#~ msgid "Extras..."
+#~ msgstr "Дополнительно..."
+
+#~ msgid "More commands...<br>Click <b>Modify...</b> to add/edit/remove items."
+#~ msgstr ""
+#~ "Больше команд...<br>Кликните <b>Изменить...</b> для добавления/"
+#~ "редактирования/удаления пунктов."
+
+#, fuzzy
+#~ msgid "Configure..."
+#~ msgstr " Настройка"
+
+#~ msgid "Re&move"
+#~ msgstr "Удалить"
+
+#~ msgid "Locatio&n:"
+#~ msgstr "Местонахождение:"
+
+#~ msgid "&Type:"
+#~ msgstr "Тип"
+
+#~ msgid "See FAQ for more details"
+#~ msgstr "Вопросы ? - cмотрите FAQ "
+
+#~ msgid "Automation"
+#~ msgstr "Автоматизация"
+
+#, fuzzy
+#~ msgid "Co&mmand:"
+#~ msgstr "Команда:"
+
+#, fuzzy
+#~ msgid "Remember time &settings"
+#~ msgstr "Запомнить настройки времени"
+
+#, fuzzy
+#~ msgid "Enable &Scheduler"
+#~ msgstr "Планировщик"
+
+#, fuzzy
+#~ msgid "Screen Sa&ver..."
+#~ msgstr "Хранитель экрана..."
+
+#~ msgid "Session &Manager..."
+#~ msgstr "Менеджер сессий..."
+
+#, fuzzy
+#~ msgid "&Links"
+#~ msgstr "Ссылки"
+
+#, fuzzy
+#~ msgid "Themes"
+#~ msgstr "Тест"
+
+#~ msgid "&Popup Messages (Passive)"
+#~ msgstr "Всплывающие сообщения (Пассивные)"
+
+#, fuzzy
+#~ msgid "Notifications"
+#~ msgstr "Подтверждения"
+
+#~ msgid "Wizard"
+#~ msgstr "Помощник"
+
+#~ msgid "&End current session"
+#~ msgstr "Завершить сеанс"
+
+#~ msgid "&Turn off computer"
+#~ msgstr "Выключить компьютер"
+
+#~ msgid "&Restart computer"
+#~ msgstr "Перезагрузить компьютер"
+
+#, fuzzy
+#~ msgid "What do you want to do?"
+#~ msgstr "Что вы хотите сделать ?"
+
+#~ msgid "&Now (no delay)"
+#~ msgstr "Сейчас (без задержки)"
+
+#~ msgid "At &date/time"
+#~ msgstr "Дата/Время "
+
+#~ msgid "&Time from now"
+#~ msgstr "Время начиная от текущего момента"
+
+#, fuzzy
+#~ msgid "MWizard"
+#~ msgstr "Помощник"
+
+#~ msgid "St&atistics"
+#~ msgstr "Статистика"
+
+#~ msgid "Enter delay:"
+#~ msgstr "Задержка:"
+
+#~ msgid "Set delay to 0 seconds"
+#~ msgstr "Установить задержку в 0 секунд"
+
+#~ msgid "Set delay to 00:00"
+#~ msgstr "Задержка к 00:00"
+
+#~ msgid "Set date/time to the current date/time"
+#~ msgstr "Установить дату/время к текущей дате/время"
+
+#~ msgid "Quit the application"
+#~ msgstr "Выйти из приложения"
+
+#~ msgid "Enter delay in seconds."
+#~ msgstr "Задержка в секундах."
+
+#~ msgid "Enter delay in minutes."
+#~ msgstr "Задержка в минутах."
+
+#~ msgid "Enter delay in hours."
+#~ msgstr "Задержка в часах."
+
+#~ msgid "Lock the screen using a screen saver"
+#~ msgstr "Запереть зкран"
+
+#~ msgid "&Wizard..."
+#~ msgstr "Помощник..."
+
+#~ msgid "Run the Wizard"
+#~ msgstr "Запуск помощника"
+
+#~ msgid "Now!"
+#~ msgstr "Сейчас !"
+
+#~ msgid "Time from &now:"
+#~ msgstr "Время с текущего момента:"
+
+#~ msgid "Second(s)"
+#~ msgstr "Секунд"
+
+#~ msgid "Minute(s)"
+#~ msgstr "Минут"
+
+#~ msgid "Hour(s)"
+#~ msgstr "Час(ов)"
+
+#~ msgid "Co&lors"
+#~ msgstr "Цвета"
+
+#~ msgid "Text color:"
+#~ msgstr "Цвет текста:"
+
+#~ msgid "Background color:"
+#~ msgstr "Цвет фона:"
+
+#~ msgid "Header color:"
+#~ msgstr "Цвет заголовков:"
+
+#~ msgid "Warning color:"
+#~ msgstr "Цвет предупреждений:"
+
+#~ msgid "Preview"
+#~ msgstr "Просмотр"
+
+#~ msgid "Info"
+#~ msgstr "Информация"
+
+#~ msgid "Tip"
+#~ msgstr "Подсказка"
+
+#~ msgid "Comm&and:"
+#~ msgstr "Команда:"
+
+#~ msgid "Method / Command"
+#~ msgstr "Метод/Команда"
+
+#~ msgid "&Before System Shut Down"
+#~ msgstr "До выключения компьютера"
+
+#~ msgid "Preview:"
+#~ msgstr "Просмотр:"
+
+#~ msgid "Step %1 of %2"
+#~ msgstr "Шаг %1 из %2"
+
+#~ msgid "Create/Remove Link"
+#~ msgstr "Создать/Удалить Ссылку"
+
+#~ msgid "Sound"
+#~ msgstr "Звук"
+
+#~ msgid "So&und directory:"
+#~ msgstr "Кталог со звуками:"
+
+#~ msgid ""
+#~ "Select a sound directory.<br><br>Press <b>Defaults</b> button to restore "
+#~ "the default sound directory."
+#~ msgstr ""
+#~ "Выберите каталог со звуковыми файлами.<br><br>Нажмите кнопку<b>По "
+#~ "умолчанию</b> для восстановления первоначальных настроек."
+
+#~ msgid "File <b>%1</b> not found."
+#~ msgstr "Файл <b>%1</b> не найден."
+
+#~ msgid "Re&set Time"
+#~ msgstr "Сбросить время"
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..7d1323f
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,837 @@
+# translation of sk.po to
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Jozef Riha <zefo@seznam.cz>, 2004, 2005, 2008.
+# Zdenko Podobný <zdpo@mailbox.sk>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: sk\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2008-05-17 00:41+0200\n"
+"Last-Translator: Jozef Riha <jose1711@gmail.com>\n"
+"Language-Team: <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%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Štatistika"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Tento pohľad zobrazí informácie o aktuálnych používateľoch v systéme a o ich "
+"procesoch.<br> Hlavička zobrazí ako dlho je systém spustený."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Obnoviť"
+
+#: ../kshutdown/mstatstab.cpp:83
+msgid "Options"
+msgstr "Voľby"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Viac informácií"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Zobraziť čas prihlásenia, časy JPCU a PCPU."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Prepnúť \"FROM\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Prepnúť políčko \"FROM\" (názov vzdialeného počítača)."
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr "Chyba"
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Príkaz: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Viac akcií..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Vyberte príkaz..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Použite kontextovú ponuku na pridanie/úpravu/odstránenie odkazov."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Použite <b>Kontextovú ponuku</b> na vytvorenie nového odkazu k aplikácií"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Použite <b>Vytvoriť Nový|Priečinok...</b> na vytvorenie novej ponuky"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Použite <b>Vlastnosti</b> na zmenu ikony, názvu, alebo komentára"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Extra"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Interná chyba!\n"
+"Zvolená položka v ponuke nie je funkčná."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "Upozornenie 1 minútu vopred"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "Upozornenie 5 minút vopred"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "Upozornenie 1 minútu vopred"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "Upozornenie 10 vopred"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 sekundy pred akciou"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 sekundy pred akciou"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 sekunda pred akciou"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "\"%1\" nemohol byť spustený!"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Test"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Umiestnenie kde vytvoriť odkaz:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Plocha"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K Menu"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Typ odkazu:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Zobraziť štandardný dialóg odhlásenia"
+
+#: ../kshutdown/links.cpp:96
+msgid "System Shut Down Utility"
+msgstr "Utilita pre vypínanie systému"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Nemohol byť vytvorený súbor <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Nemohol byť odstránený súbor <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Odstrániť odkaz"
+
+#: ../kshutdown/links.cpp:187
+msgid "Add Link"
+msgstr "Pridať odkaz"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Odhlásiť sa"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Vypínacia utilita pre KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Vypnúť počítač"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Reštartovať počítač"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Uzamknúť obrazovku"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Ukončiť aktuálne sedenie"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Potvrdiť akciu na príkazovom riadku"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Zobraziť štandardný dialóg odhlásenia"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Zrušiť bežiacu akciu"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Nezobrazovať okno pri spustení"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Zapnúť testovací režim"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Vypnúť testovací režim"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr "Čas; Príklad: 01:30 - absolútny čas (HH:MM); 10 - počet minút čakania"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Neplatný čas: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Nastavenia"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Zablokované správcom."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Akcie"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Akcia"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Metóda"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Príkaz pred akciou"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Upraviť..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Skontrolovať nastavenie systému"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Menu Extra"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Zmeniť..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Pokročilé"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Po prihlásení"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Uzamknúť obrazovku"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Pred odhlásením"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Zavrieť dvierka CD-ROM"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Príkaz:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Zodpovedajúce nastavenia KDE..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Všeobecné"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Všeobecné problémy"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Vypnutie počítača\" nefunguje"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Vyskakovacie správy veľmi otravujú"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Pridať/Odstrániť odkazy"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Zobrazovať ikonu v oznamovacej oblasti"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Vždy"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Ikona v oznamovacej oblasti bude vždy zobrazená."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Ak aktívny"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "Ikona v oznamovacej oblasti bude zobrazená, ak je KShutDown aktívny."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Nikdy"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Ikona v oznamovacej oblasti bude vždy skrytá."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "Zobraziť témy KShutDown"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "Home Page programu SuperKaramba"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Správy"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Zobraziť správu s varovaním pred akciou"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minúta(y)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Varovná správa"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Povolený"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Príkaz shellu, ktorý sa má spustiť:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Zadajte príkaz."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "Text správy"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "Súčasný nadpis hlavného okna"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr "Predvoľby"
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Vlastná správa"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Opätovne povoliť všetky správy"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Zapnúť všetky správy, ktoré boli vypnuté pomocou funkcie <b>Nezobrazovať "
+"túto správu v budúcnosti</b>."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (východzie)"
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Bez čakania"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+msgid "Pause: %1"
+msgstr "Pauza: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr "Tento súbor je použitý na uzamknutie sedenia pri štarte KDE"
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Obnoviť východzie nastavenia pre túto záložku?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Zadajte hodinu a minútu."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Zadajte dátum a čas."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Najprv kliknite na tlačidlo <b>Vyberte príkaz...</b>."
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Zvolený dátum/čas: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Aktuálny dátum/čas: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Zvolený dátum/čas už vypršal!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Akcia zrušená!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Spustený testovací režim"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Testovací režim je vypnutý"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Bez čakania"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr "&Súbor"
+
+#: ../kshutdown/mmainwindow.cpp:449
+msgid "&Actions"
+msgstr "&Akcie"
+
+#: ../kshutdown/mmainwindow.cpp:455
+msgid "Configure Global Shortcuts..."
+msgstr "Nastaviť globálne skratky..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+msgid "&Settings"
+msgstr "&Nastavenia"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr "&Pomocník"
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+msgid "C&ancel"
+msgstr "&Zrušiť"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "S&kontrolovať nastavenie systému"
+
+#: ../kshutdown/mmainwindow.cpp:520
+msgid "&Start [%1]"
+msgstr "Š&tart [%1]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "Št&atistika"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "Vyberte &akciu, ktorá sa má uskutočniť"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Vyberte akciu, ktorá sa má v daný čas uskutočniť"
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "&Vyberte čas"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Od teraz za (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Dátum/čas"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "Keď vybraná aplikácia skončí"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Vyberte druh oneskorenia."
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Zvolený čas."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "TESTOVACÍ REŽIM"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Zostávajúci čas <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Neznáme"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Vybraný čas: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "Zvolená akcia: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Poznámka: </b>Je aktivovaný testovací režim"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr "KShutDown bol minimalizovaný"
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+msgid "KShutDown has quit"
+msgstr "KShutDown skončil"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Prosím čakajte..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Nebolo možné sa korektne odhlásiť.\n"
+"Nepodarilo sa kontaktovať správcu sedenia."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Nič"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Vypnúť počítač"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Reštartovať počítač"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Uzamknúť obrazovku"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Ukončiť aktuálne sedenie"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Akcia zlyhala! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP volanie zlyhalo!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Nastavenie systému"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Správa"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Tip: Ak máte problém s príkazom \"/sbin/shutdown\",\n"
+"skúste zmeniť súbor \"/etc/shutdown.allow\",\n"
+"potom spustite príkaz \"/sbin/shutdown\" s dodatočným parametrom \"-a\".\n"
+"Kliknite sem pre viac informácií."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Neboli nájdené žiadne problémy."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "Program \"%1\" nebol nájdený!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "Nemáte oprávnenie pre spustenie \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Podľa všetkého nemáte spustené plné KDE sedenie.\n"
+"KShutDown bol navrhnutý pracovať v KDE.\n"
+"Môžete však upraviť Akcie v dialógu nastavení KShutDown\n"
+"(Nastavenia -> Nastaviť KShutDown... -> Akcie)."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Tip: Môžete upraviť Akcie tak, aby pracovali s GDM.\n"
+"(Nastavenia -> Nastaviť KShutDown... -> Akcie)."
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"KDE Display Manager nie je spustený,\n"
+"alebo je vypnutá funkcia vypnutia/reštartu.\n"
+"\n"
+"Kliknite sem pre nastavenie KDM."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Vyberte metódu:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Zadajte vlastný príkaz:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Spustiť príkaz"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "Pozastaviť po spustení príkazu:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "sekunda(y)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Vo väčšine prípadov potrebujete na vypnutie systému práva (napr. na "
+"spustenie /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Ak používate <b>KDE</b> a <b>KDM</b> (správca sedení KDE), nastavte všetky "
+"metódy na <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Ak používate <b>KDE</b> a správcu sedení iný než <b>KDM</b>, nastavte metódy "
+"<i>Vypnúť</i> a <i>Reštartovať</i> na <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Ručne:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Používateľov príkaz"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Zostávajúci čas."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Obnoviť zoznam procesov"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Zoznam bežiacich procesov"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Zabiť"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Zabiť vybraný proces"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Čakám na \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Vybraný proces neexistuje!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Nepodarilo sa spustiť príkaz<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr "Určite chcete ZABIŤ<br><b>%1</b>?<br><br>Všetky neuložené dáta budu stratené!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Proces nebol nájdený<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Nemáte práva na zabitie<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "MŔTVY: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Potvrdiť"
+
+#: ../kshutdown/confirmation.cpp:74
+msgid "&Cancel"
+msgstr "&Zrušiť"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Ste si istý?<br><br>Vybraná akcia: <b>%1</b><br>Vybraný čas: <b>%2</b>"
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr ""
+"Jozef Říha\n"
+"Zdenko Podobný"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr ""
+"jose1711@gmail.com\n"
+"zdpo@mailbox.sk"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr "Kliknite pre hlavné okno KShutDown<b>Kliknite a držte pre zobrazenie ponuky"
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "Nepodarilo sa spustiť KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+msgid "Lock Screen"
+msgstr "Uzamknúť obrazovku"
+
+#: ../kshutdownlockout/lockout.cpp:199
+msgid "&Configure KShutDown..."
+msgstr "&Nastaviť KShutDown..."
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..6756a96
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,1182 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: kshutdown 0.6.0-4 kshutdown\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2005-11-17 21:26+0100\n"
+"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: sv\n"
+"X-Poedit-Country: sv\n"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "Statistik"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Denna vy visar information om användarna för närvarande i systemet och deras "
+"processer.<br>Huvudet visar hur länge systemet har körts."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Uppdatera"
+
+#: ../kshutdown/mstatstab.cpp:83
+#, fuzzy
+msgid "Options"
+msgstr "Åtgärder"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Mer information"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Vi&sa inloggningstid, JCPU och PCPU-tider."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "Växla \"FRÅN\""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "Växla \"&FRÅN\"-fältet (fjärrvärdnamnet)."
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "Kommando: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Fler åtgärder..."
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "Välj ett kommando..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Använd kontextmenyn för att lägga till/redigera/ta bort länkar."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Använd <b>Kontextmenyn</b> för att skapa nya länkar till applikationen"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Använd <b>Skapa Ny|Mapp...</b> för att skapa en ny undermeny"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "Använd <b>Egenskaper</b> för att ändra ikon, namn eller kommentar"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "Extra"
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"Internt fel!\n"
+"Vald menypost är trasig."
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "1 timmas varning"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5 minuters varning"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "1 minuts varning"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "10 sekunders varning"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3 sekunder före åtgärd"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2 sekunder före åtgärd"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "1 sekund före åtgärd"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "Kunde inte köra \"%1\"!"
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "Test"
+
+#: ../kshutdown/links.cpp:50
+#, fuzzy
+msgid "Location where to create the link:"
+msgstr "Välj en plats där länken kommer att skapas:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Skrivbord"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K Meny"
+
+#: ../kshutdown/links.cpp:62
+#, fuzzy
+msgid "Type of the link:"
+msgstr "Välj typ av länk:"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Standard utloggningsruta"
+
+#: ../kshutdown/links.cpp:96
+#, fuzzy
+msgid "System Shut Down Utility"
+msgstr "Ett verktyg för nedstängning för KDE"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "Kunde inte skapa filen <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "Kunde inte ta bort filen <b>%1</b>!"
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "Ta bort länk"
+
+#: ../kshutdown/links.cpp:187
+#, fuzzy
+msgid "Add Link"
+msgstr "Lägg till/Ta bort länkar"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "Logga ut"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "Ett verktyg för nedstängning för KDE"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "Stäng av datorn"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "Starta om datorn"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "Lås session"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "Avsluta nuvarande session"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "Bekräfta kommandoradsåtgärd"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "Visa standard utloggningsruta"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "Avbryt en aktiv åtgärd"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "Visa inte fönster vid uppstart"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "Aktivera testläge"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "Stäng av testläge"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Tid; Exempel: 01:30 - absolut tid (TT:MM); 10 - antal minuter att vänta från "
+"och med nu"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "Ogiltig tid: <b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Inställningar"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "Avstängd av administratören."
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Åtgärder"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Åtgärd"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "Metod"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "Kommando före åtgärd"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Redigera..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Kontrollera Systemkonfigurationen"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Extrameny"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Modifiera..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Advancerad"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Efter inloggning"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Lås skärmen"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Före utloggning"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "Stäng cd-rom-lucka"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Kommando:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "Relaterade KDE-inställningar..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Allmänt"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Vanliga problem"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Stäng av datorn\" fungerar inte"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Popup-meddelanden är väldigt störande"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Lägg till/Ta bort länkar"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Visa systempanelsikonen"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Alltid"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Panelikonen kommer alltid vara synlig."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Om aktiv"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "Panelikonen kommer att vara synlig bara om KShutDown är aktiv."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Aldrig"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Panelikonen kommer alltid vara gömd."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+#, fuzzy
+msgid "Show KShutDown Themes"
+msgstr "KShutDown-teman"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "SuperKarambas webbplats"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "Meddelanden"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Visa varningsmeddelande före åtgärd"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "minut(er)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "Varningsmeddelande"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "Aktiverad"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Ett skalkommando att starta:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "Ange ett kommando."
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "En meddelandetext"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "Nuvarande huvudfönstrets titel"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "Anpassat meddelande"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr "Återaktivera alla meddelanden"
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"Aktivera alla meddelanden som har stängts av med <b>Visa inte detta "
+"meddelande igen</b> funktionen."
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE (förvald)"
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "Ingen paus"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+#, fuzzy
+msgid "Pause: %1"
+msgstr "Paus:"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "Återställ standardinställningarna för denna sida?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "Ange timme och minut."
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "Ange tid och datum."
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Klicka på knappen <b>Välj ett kommando...</b> först."
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "Valt datum/tid: %1"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "Nuvarande datum/tid: %1"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Valt datum/tid är tidigare än nuvarande datum/tid!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "Åtgärd avbröts!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "Testläge aktiverad"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "Testläge avstängd"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Ingen fördröjning"
+
+#: ../kshutdown/mmainwindow.cpp:438
+#, fuzzy
+msgid "&File"
+msgstr "T&id"
+
+#: ../kshutdown/mmainwindow.cpp:449
+#, fuzzy
+msgid "&Actions"
+msgstr "Åtgärder"
+
+#: ../kshutdown/mmainwindow.cpp:455
+#, fuzzy
+msgid "Configure Global Shortcuts..."
+msgstr "&Konfigurera KShutDown..."
+
+#: ../kshutdown/mmainwindow.cpp:460
+#, fuzzy
+msgid "&Settings"
+msgstr "Inställningar"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+#, fuzzy
+msgid "C&ancel"
+msgstr "Kommando: %1"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "Kontrollera &systemkonfiguration"
+
+#: ../kshutdown/mmainwindow.cpp:520
+#, fuzzy
+msgid "&Start [%1]"
+msgstr "Start [Enter]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "&Statistik"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "Välj en åtgärd att genomför&a"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "Välj en åtgård att genomföra vid den valda tiden."
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "Välj &en tid"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "Tid från och med nu (HH:MM)"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "Den datum/tid"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "När valda applikationen avslutas"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "Välj typ av fördröjning."
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "Vald tid."
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "TESTLÄGE"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "Återstående tid: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "Okänd"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "Vald tid: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "Vald åtgärd: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Notera: </b> Testläget är aktiverat"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+#, fuzzy
+msgid "KShutDown has quit"
+msgstr "KShutDown-menyn"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Var god vänta..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Kunde inte logga ut korrekt.\n"
+"Sessionshanteraren kan inte kontaktas."
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Inget"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "Stäng av datorn"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "Starta om datorn"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "Lås sessionen"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "Avsluta nuvarande session"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "Åtgärd misslyckades! (%1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP-anrop misslyckades!"
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "Systemkonfiguration"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "Meddelande"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"Tips: Om du har problem med kommandot \"/sbin/shutdown\"\n"
+"så försök att modifiera filen \"/etc/shutdown.allow\" och kör\n"
+"sedan kommandot \"/sbin/shutdown\" med extra parametern \"-a\".\n"
+"\n"
+"Klicka här för mer information."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "Inga problem hittades."
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "Programmet \"%1\" hittades inte!"
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "Inga rättigheter för att starta \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Det verkar som detta inte är en full KDE-session.\n"
+"KShutDown blev designad att fungera med KDE.\n"
+"Dock kan du anpassa Åtgärder i KShutDown-inställningarna\n"
+"(Inställningar -> Konfigurera KShutDown... -> Åtgärder)."
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"Tipa: Du kan anpassa Åtgärder för att fungera med GDM.\n"
+"(Inställningar -> Konfigurera KShutDown... -> Åtgärder)"
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"Fönsterhanteraren KDE körs inte eller\n"
+"så är avstängning/omstartsfunktionen avstängd.\n"
+"\n"
+"Klicka här för att konfigurera KDM."
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "Välj en metod:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "Ange ett anpassat kommando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "Kör kommando"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "Paus efter kört kommando:"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "sekund(er)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"I de flesta fall behöver du rättigheter att stänga ned systemet (till "
+"exempel att köra /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Om du använder <b>KDE</b> och <b>KDM</b> (KDE Skärmhanterare) så sätt alla "
+"metoder till <i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Om du kör <b>KDE</b> och skärmhanteraren är en annan än <b>KDM</b> så sätt "
+"metoderna för <i>Stäng av datorn</i> och <i>Starta om datorn</i> till <i>/"
+"sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "Manualer:"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "Användarkommando"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Återstående tid."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Döda"
+
+#: ../kshutdown/appobserver.cpp:68
+#, fuzzy
+msgid "Kill the selected process"
+msgstr "Den valda processen existerar inte!"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "Väntar på \"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Den valda processen existerar inte!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Kunde inte starta kommando<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"Är du säker att du vill DÖDA<br><b>%1</b>?<br><br>All osparad data kommer "
+"att förloras!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Process inte hittad<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "Inga rättigheter att döda<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "DÖD: %1"
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "Bekräfta"
+
+#: ../kshutdown/confirmation.cpp:74
+#, fuzzy
+msgid "&Cancel"
+msgstr "Kommando: %1"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid ""
+"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Daniel Nylander"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "po@danielnylander.se"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "Kunde inte köra KShutDown!"
+
+#: ../kshutdownlockout/lockout.cpp:167
+#, fuzzy
+msgid "Lock Screen"
+msgstr "Lås skärmen"
+
+#: ../kshutdownlockout/lockout.cpp:199
+#, fuzzy
+msgid "&Configure KShutDown..."
+msgstr "&Konfigurera: KShutDown..."
+
+#~ msgid "Are you sure?"
+#~ msgstr "Är du säker?"
+
+#~ msgid "Stop [Esc]"
+#~ msgstr "Stopp [Esc]"
+
+#~ msgid ""
+#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu"
+#~ msgstr ""
+#~ "<b>Tips:</b> Använd <b>mittenknappen på musen</b> för att visa "
+#~ "åtgärdsmenyn"
+
+#~ msgid "No delay"
+#~ msgstr "Ingen fördröjning"
+
+#~ msgid "Create Link"
+#~ msgstr "Skapa länk"
+
+#~ msgid "&I'm Sure"
+#~ msgstr "Jag är säker"
+
+#, fuzzy
+#~ msgid "&Cancel: %1"
+#~ msgstr "Kommando: %1"
+
+#~ msgid "KShutDown Actions (no delay!)"
+#~ msgstr "KShutDown-åtgärder (ingen fördröjning!)"
+
+#~ msgid "Actions (no delay!)"
+#~ msgstr "Atgärder (ingen fördröjning!)"
+
+#~ msgid "&Turn Off Computer"
+#~ msgstr "S&täng av datorn"
+
+#~ msgid "&Restart Computer"
+#~ msgstr "Sta&rta om datorn"
+
+#~ msgid "&Lock Session"
+#~ msgstr "&Lås session"
+
+#~ msgid "&End Current Session"
+#~ msgstr "Avsluta nuvarand&e session"
+
+#~ msgid "&Immediate Action"
+#~ msgstr "Omedelbar åtgärd"
+
+#~ msgid "&Stop"
+#~ msgstr "&Stopp"
+
+#~ msgid "Run KShutDown"
+#~ msgstr "Kör KShutDown"
+
+#~ msgid "&Run KShutDown"
+#~ msgstr "Kö&r KShutDown"
+
+#~ msgid "&Transparent"
+#~ msgstr "Genomskinnlig"
+
+#~ msgid "&Show Lock Button"
+#~ msgstr "Vi&sa låsknapp"
+
+#~ msgid "AppObserver"
+#~ msgstr "AppObserver"
+
+#~ msgid "MSettingsDialog"
+#~ msgstr "MSettingsDialog"
+
+#~ msgid "MSystemTray"
+#~ msgstr "MSystemTray"
+
+#~ msgid "MMessageDialog"
+#~ msgstr "MMessageDialog"
+
+#~ msgid "MStatsTab"
+#~ msgstr "MStatsTab"
+
+#~ msgid "MActionEditDialog"
+#~ msgstr "MActionEditDialog"
+
+#~ msgid "SystemConfig"
+#~ msgstr "SystemKonfig"
+
+#~ msgid "MMainWindow"
+#~ msgstr "MMainWindow"
+
+#~ msgid "Links"
+#~ msgstr "Länkar"
+
+#~ msgid "Lockout"
+#~ msgstr "Lås ute"
+
+#~ msgid "Registere&d tasks:"
+#~ msgstr "Registrera&de uppgifter:"
+
+#~ msgid "Name"
+#~ msgstr "Namn"
+
+#~ msgid "Description"
+#~ msgstr "Beskrivning"
+
+#~ msgid ""
+#~ "Any external application can register a KShutDown task through the DCOP "
+#~ "mechanism. For example, a movie player optionally can use the KShutDown "
+#~ "task to shut down the system after playing a movie.<br><br>All the "
+#~ "registered tasks are listed here. Click <b>Remove</b> or <b>Remove All</"
+#~ "b> to cancel the selected task. Click <b>Configure</b> to disable the "
+#~ "<b>Scheduler</b>."
+#~ msgstr ""
+#~ "Alla externa applikationer kan registrera en uppgift i KShutDown genom "
+#~ "DCOP-mekanismen. Till exempel kan en mediaspelare valfritt använda en "
+#~ "uppgift i KShutDown för att stänga av systemet efter att ha spelat en "
+#~ "film.<br><br>Alla registrerade uppgifter listas här. Klicka <b>Ta bort</"
+#~ "b> eller <b>Ta bort alla</b> för att avbryta de valda uppgifterna. Klicka "
+#~ "<b>Konfigurera</b> för att stänga av <b>Schemaläggaren</b>."
+
+#~ msgid "Re&move"
+#~ msgstr "Ta bort"
+
+#~ msgid "Remo&ve All"
+#~ msgstr "Ta bort alla"
+
+#~ msgid "MSchedulerTab"
+#~ msgstr "MSchedulerTab"
+
+#~ msgid "AppScheduler"
+#~ msgstr "AppScheduler"
+
+#~ msgid "Locatio&n:"
+#~ msgstr "Plats:"
+
+#~ msgid "&Type:"
+#~ msgstr "&Typ:"
+
+#~ msgid "KShutDown Wizard"
+#~ msgstr "KShutDown vägvisare"
+
+#~ msgid "This page has been disabled by the Administator."
+#~ msgstr "Denna sida har stängts av administratören."
+
+#~ msgid "Actions & Extras Menu"
+#~ msgstr "Åtgärder & Extrameny"
+
+#~ msgid ""
+#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. "
+#~ "<b>GNOME</b>), then change all methods..."
+#~ msgstr ""
+#~ "Om du kör <b>KShutDown</b> från en icke-KDE session (exempelvis <b>GNOME</"
+#~ "b>) så ändra alla metoder..."
+
+#~ msgid "See FAQ for more details"
+#~ msgstr "Se FAQ för mer detaljer"
+
+#~ msgid "Automation"
+#~ msgstr "Automation"
+
+#~ msgid "Co&mmand:"
+#~ msgstr "Ko&mmando:"
+
+#~ msgid "Remember time &settings"
+#~ msgstr "Kom i håg in&ställningar"
+
+#~ msgid "Enable &Scheduler"
+#~ msgstr "Aktivera &schemaläggaren"
+
+#~ msgid "Screen Sa&ver..."
+#~ msgstr "Skärmsparare..."
+
+#~ msgid "Session &Manager..."
+#~ msgstr "Sessionshanterare..."
+
+#~ msgid "&Links"
+#~ msgstr "&Länkar"
+
+#~ msgid "Themes"
+#~ msgstr "Teman"
+
+#~ msgid "Home Page"
+#~ msgstr "Webbplats"
+
+#~ msgid "Confirmations & Messages"
+#~ msgstr "Bekräftelser & Meddelanden"
+
+#~ msgid "Confirm action (&recommended)"
+#~ msgstr "Bekräfta åtgärd (&rekommenderat)"
+
+#~ msgid "&Popup Messages (Passive)"
+#~ msgstr "&Popup-meddelanden (Passiva)"
+
+#~ msgid "Hide &message after:"
+#~ msgstr "Göm &meddelande efter:"
+
+#~ msgid "Notifications"
+#~ msgstr "Notifieringar"
+
+#~ msgid "Wizard"
+#~ msgstr "Vägvisare"
+
+#~ msgid "&End current session"
+#~ msgstr "Avsluta nuvarand&e session"
+
+#~ msgid "&Turn off computer"
+#~ msgstr "S&täng av dator"
+
+#~ msgid "&Restart computer"
+#~ msgstr "Sta&rta om dator"
+
+#~ msgid "What do you want to do?"
+#~ msgstr "Vad vill du göra nu?"
+
+#~ msgid "&Now (no delay)"
+#~ msgstr "&Nu (utan fördröjning)"
+
+#~ msgid "At &date/time"
+#~ msgstr "Den &datum/tid"
+
+#~ msgid "&Time from now"
+#~ msgstr "&Tid från och med nu"
+
+#~ msgid "HH:MM"
+#~ msgstr "TT:MM"
+
+#~ msgid "The task is not registered!"
+#~ msgstr "Uppgiften är inte registrerad!"
+
+#~ msgid "Invalid action: %1"
+#~ msgstr "Ogiltig åtgärd: %1"
+
+#~ msgid "The scheduler is disabled!"
+#~ msgstr "Schemaläggaren är avstängd!"
+
+#~ msgid "MRadioButton"
+#~ msgstr "MRadioButton"
+
+#~ msgid "MWizard"
+#~ msgstr "MWizard"
+
+#~ msgid "St&atistics"
+#~ msgstr "St&atistik"
+
+#~ msgid "Enter delay:"
+#~ msgstr "Ange fördröjning:"
+
+#~ msgid "Set delay to 0 seconds"
+#~ msgstr "Sätt fördröjning till 0 sekunder"
+
+#~ msgid "Set delay to 00:00"
+#~ msgstr "Sätt fördröjning till 00:00"
+
+#~ msgid "Set date/time to the current date/time"
+#~ msgstr "Sätt datum/tid till nuvarande datum/tid"
+
+#~ msgid "Ti&me (HH:MM):"
+#~ msgstr "Ti&d (TT:MM):"
+
+#~ msgid "Quit the application"
+#~ msgstr "Avsluta applikationen"
+
+#~ msgid "Enter delay in seconds."
+#~ msgstr "Ange fördröjning i sekunder."
+
+#~ msgid "Enter delay in minutes."
+#~ msgstr "Ange fördröjning i minuter."
+
+#~ msgid "Enter delay in hours."
+#~ msgstr "Ange fördröjning i timmar."
+
+#~ msgid "Sched&uler"
+#~ msgstr "Schemaläggare"
+
+#~ msgid "Disabled"
+#~ msgstr "Avstängd"
+
+#~ msgid "Lock the screen using a screen saver"
+#~ msgstr "Lås skärmen med en skärmsläckare"
+
+#~ msgid "&Wizard..."
+#~ msgstr "Vägvisare..."
+
+#~ msgid "Run the Wizard"
+#~ msgstr "Kör vägvisaren"
+
+#~ msgid "E&xtras..."
+#~ msgstr "E&xtra..."
+
+#~ msgid "More commands...<br>Click <b>Modify...</b> to add/edit/remove items."
+#~ msgstr ""
+#~ "Fler kommandon...<br>Klicka <b>Modifiera...</b> för att lägga till/"
+#~ "redigera/ta bort poster."
+
+#~ msgid "Now!"
+#~ msgstr "Nu!"
+
+#~ msgid "Time From Now"
+#~ msgstr "Tid från och med nu"
+
+#~ msgid "Time from &now:"
+#~ msgstr "Tid från och med &nu:"
+
+#~ msgid "Second(s)"
+#~ msgstr "Sekund(er)"
+
+#~ msgid "Minute(s)"
+#~ msgstr "Minut(er)"
+
+#~ msgid "Hour(s)"
+#~ msgstr "Timme(ar)"
+
+#~ msgid "&Date:"
+#~ msgstr "&Datum:"
+
+#~ msgid "Enter date"
+#~ msgstr "Ange datum"
+
+#~ msgid "Click to close"
+#~ msgstr "Klicka för att stänga"
+
+#~ msgid "Maintainer"
+#~ msgstr "Ansvarig"
+
+#~ msgid "Ideas"
+#~ msgstr "Idéer"
+
+#~ msgid "Bug reports"
+#~ msgstr "Buggrapporter"
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..46f4e7c
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,794 @@
+# translation of tr.po to
+# Copyright (C) 2006 Konrad Twardowski
+# This file is distributed under the same license as the KShutDown package.
+#
+# Ahmet AYGÜN <ahmet@pardusman.org>, 2006.
+# Ahmet AYGÜN <ahmet@pardusman.org>, 2007.
+# Eren Türkay <turkay.eren@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: tr\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-08-27 19:36+0200\n"
+"PO-Revision-Date: 2007-08-27 21:57+0300\n"
+"Last-Translator: Eren Türkay <turkay.eren@gmail.com>\n"
+"Language-Team: <turkce@pardus.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.11.4\n"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "Lütfen bekleyin..."
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr ""
+"Oturum sonlandırılamadı.\n"
+"Oturum yöneticisiyle bağlantı kurulamadı."
+
+#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419
+#: ../kshutdown/mstatstab.cpp:191
+msgid "Command: %1"
+msgstr "Komut: %1"
+
+#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445
+#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "Bekleme Yok"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Nothing"
+msgstr "Hiçbiri"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183
+msgid "Turn Off Computer"
+msgstr "Bilgisayarı Kapat"
+
+#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177
+msgid "Restart Computer"
+msgstr "Bilgisayarı Yeniden Başlat"
+
+#: ../kshutdown/actions.cpp:322
+msgid "Lock Session"
+msgstr "Oturumu Kilitle"
+
+#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171
+msgid "End Current Session"
+msgstr "Oturumu Sonlandır"
+
+#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Unknown"
+msgstr "Bilinmeyen"
+
+#: ../kshutdown/actions.cpp:362
+msgid "Action failed! (%1)"
+msgstr "Eylem başarısız! (%1)"
+
+#: ../kshutdown/actions.cpp:406
+msgid "kdesktop: DCOP call failed!"
+msgstr "kdesktop: DCOP çağrısı başarısız!"
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr "Süreçler listesini yenile"
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr "Çalışan süreçler listesi"
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "Öldür"
+
+#: ../kshutdown/appobserver.cpp:68
+msgid "Kill the selected process"
+msgstr "Seçili süreçleri öldür"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "\"%1\" bekleniyor"
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "Seçtiğiniz süreç mevcut değil!"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "Komut çalıştırılamıyor<br><br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr ""
+"<b>%1</b><br>sürecini ÖLDÜRMEK istediğinizden emin misiniz?"
+"<br><br>Kaydedilmemiş tüm veriler silinecek!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "Süreç bulunamadı<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "<b>%1</b>sürecini öldürmek için yeterli yetki yok"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr "ÖLÜ: %1"
+
+#: ../kshutdown/confirmation.cpp:64
+msgid "Confirm"
+msgstr "Onayla"
+
+#: ../kshutdown/confirmation.cpp:78
+msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr "Emin misiniz?<br><br>Seçilen eylem: <b>%1</b><br>Seçilen zaman: <b>%2</b>"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "Daha fazla eylem..."
+
+#: ../kshutdown/extras.cpp:91
+msgid "Select a command..."
+msgstr "Komut seçin..."
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "Kısayol ekle/çıkar için sağ tık menüsünü kullanın."
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "Yeni kısayol oluşturmak için <b>Sağ tık menüsü</b>nü kullanın."
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "Yeni alt menü oluşturmak için <b>Yeni oluştur|Dizin...</b> kullanın"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "İsmi, uyarıyı ya da simgeyi değiştirmek için <b>Ayarlar</b>'ı kullanın"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:609
+msgid "Extras"
+msgstr "Diğer"
+
+#: ../kshutdown/links.cpp:50
+msgid "Location where to create the link:"
+msgstr "Kısayolun oluşturulacağı yeri seçin:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "Masaüstü"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K Menüsü"
+
+#: ../kshutdown/links.cpp:62
+msgid "Type of the link:"
+msgstr "Kısayol türünü seçin:"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "Standart Çıkış Penceresi"
+
+#: ../kshutdown/links.cpp:95
+msgid "System Shut Down Utility"
+msgstr "Bilgisayar Kapatma Aracı"
+
+#: ../kshutdown/links.cpp:106
+msgid "Could not create file <b>%1</b>!"
+msgstr "<b>%1</b> dosyası oluşturulamıyor!"
+
+#: ../kshutdown/links.cpp:117
+msgid "Could not remove file <b>%1</b>!"
+msgstr "<b>%1</b> dosyası silinemiyor!"
+
+#: ../kshutdown/links.cpp:182
+msgid "Remove Link"
+msgstr "Kısayol Sil"
+
+#: ../kshutdown/links.cpp:186
+msgid "Add Link"
+msgstr "Linkleri Ekle/Kaldır"
+
+#: ../kshutdown/links.cpp:205
+msgid "Logout"
+msgstr "Çıkış"
+
+#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143
+msgid "Method"
+msgstr "Yöntem"
+
+#: ../kshutdown/mactioneditdialog.cpp:70
+msgid "Select a method:"
+msgstr "Yöntem seçin:"
+
+#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431
+msgid "KDE (default)"
+msgstr "KDE (öntanımlı)"
+
+#: ../kshutdown/mactioneditdialog.cpp:80
+msgid "Enter a custom command:"
+msgstr "Komut girin:"
+
+#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144
+msgid "Command before action"
+msgstr "İşlemden önce komut çalıştır"
+
+#: ../kshutdown/mactioneditdialog.cpp:87
+msgid "Run command"
+msgstr "Komutu çalıştır"
+
+#: ../kshutdown/mactioneditdialog.cpp:90
+msgid "Pause after run command:"
+msgstr "Komutu çalıştırdıktan sonra beklenecek süre"
+
+#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445
+msgid "No pause"
+msgstr "Duraksama yok"
+
+#: ../kshutdown/mactioneditdialog.cpp:93
+msgid "second(s)"
+msgstr "saniye"
+
+#: ../kshutdown/mactioneditdialog.cpp:109
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr ""
+"Çoğu zaman sistemi kapatmak için bazı haklara sahip olmanız gerekir "
+"(örneğin: /sbin/shutdown'ı çalıştırabiliyor olmalısınız)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"Eğer <b>KDE</b> ve <b>KDM</b> kullanıyorsanız tüm yöntemleri <i>KDE</i> "
+"olarak seçin"
+
+#: ../kshutdown/mactioneditdialog.cpp:112
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"Eğer <b>KDE</b> kullanıyorsanız ve <b>KDM</b>'dan farklı bir görüntü "
+"yönetici kullanıyorsanız <i>Bilgisayarı Kapat</i> ve <i>Bilgisayarı Yeniden "
+"Başlat</i> yöntemlerini <i>/sbin/...</i> şeklinde ayarlayın."
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid "Manuals:"
+msgstr "Belgeler:"
+
+#: ../kshutdown/mactioneditdialog.cpp:135
+msgid "User Command"
+msgstr "Kullanıcı Komutu"
+
+#: ../kshutdown/main.cpp:43
+msgid "A Shut Down Utility for KDE"
+msgstr "KDE için Bilgisayar Kapatma Yazılımı"
+
+#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56
+msgid "Turn off computer"
+msgstr "Bilgisayarı Kapat"
+
+#: ../kshutdown/main.cpp:58
+msgid "Restart computer"
+msgstr "Bilgisayarı Yeniden Başlat"
+
+#: ../kshutdown/main.cpp:60
+msgid "Lock session"
+msgstr "Oturumu Kilitle"
+
+#: ../kshutdown/main.cpp:62
+msgid "End current session"
+msgstr "Oturumu Sonlandır"
+
+#: ../kshutdown/main.cpp:64
+msgid "Execute \"Extras\" command (.desktop file)"
+msgstr "\"Ek\" komut çalıştır (.desktop dosyası)"
+
+#: ../kshutdown/main.cpp:65
+msgid "Confirm command line action"
+msgstr "Komut satırı eylemini onayla"
+
+#: ../kshutdown/main.cpp:66
+msgid "Show standard logout dialog"
+msgstr "Standart çıkış diyaloğunu görüntüle"
+
+#: ../kshutdown/main.cpp:68
+msgid "Cancel an active action"
+msgstr "Etkin işlemi iptal et"
+
+#: ../kshutdown/main.cpp:69
+msgid "Don't show window at startup"
+msgstr "Başlangıçta pencereyi gösterme"
+
+#: ../kshutdown/main.cpp:70
+msgid "Enable test mode"
+msgstr "Deneme modunu etkinleştir"
+
+#: ../kshutdown/main.cpp:71
+msgid "Disable test mode"
+msgstr "Deneme modunu devre dışı bırak"
+
+#: ../kshutdown/main.cpp:72
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr ""
+"Zaman örnekleri: 01:30 - tam zaman (SA:DK); 10 - şu andan itibaren "
+"beklenecek dakika"
+
+#: ../kshutdown/main.cpp:245
+msgid "Invalid time: <b>%1</b>"
+msgstr "Geçersiz zaman: <b>%1</b>"
+
+#: ../kshutdown/miscutils.cpp:110
+msgid "1 hour warning"
+msgstr "1 saat uyarısı"
+
+#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114
+msgid "5 minutes warning"
+msgstr "5 dakika uyarısı"
+
+#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118
+msgid "1 minute warning"
+msgstr "1 dakika uyarısı"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "10 seconds warning"
+msgstr "10 saniye uyarısı"
+
+#: ../kshutdown/miscutils.cpp:226
+msgid "Could not run \"%1\"!"
+msgstr "\"%1\" çalıştırılamadı!"
+
+#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471
+#: ../kshutdown/msettingsdialog.cpp:558
+msgid "Test"
+msgstr "Deneme"
+
+#: ../kshutdown/mmainwindow.cpp:149
+msgid "Enter hour and minute."
+msgstr "Saat ve dakika girin."
+
+#: ../kshutdown/mmainwindow.cpp:159
+msgid "Enter date and time."
+msgstr "Tarih ve saat girin."
+
+#: ../kshutdown/mmainwindow.cpp:238
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "Önce <b>Komut Seçin...</b> düğmesine basın."
+
+#: ../kshutdown/mmainwindow.cpp:280
+msgid "Selected date/time: %1"
+msgstr "Belirlenen tarih/saat: %1"
+
+#: ../kshutdown/mmainwindow.cpp:281
+msgid "Current date/time: %1"
+msgstr "Şimdiki tarih/saat: %1"
+
+#: ../kshutdown/mmainwindow.cpp:287
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "Belirlenen tarih/saat şimdiki tarihten/saatten daha erken!"
+
+#: ../kshutdown/mmainwindow.cpp:292
+msgid "Action cancelled!"
+msgstr "İşlem iptal edildi."
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode enabled"
+msgstr "Deneme modu etkin"
+
+#: ../kshutdown/mmainwindow.cpp:408
+msgid "Test mode disabled"
+msgstr "Deneme modu devre dışı"
+
+#: ../kshutdown/mmainwindow.cpp:477
+msgid "&Actions"
+msgstr "&Eylemler"
+
+#: ../kshutdown/mmainwindow.cpp:483
+msgid "Configure Global Shortcuts..."
+msgstr "Genel Kısayolları Yapılandır..."
+
+#: ../kshutdown/mmainwindow.cpp:531
+msgid "C&ancel"
+msgstr "İ&ptal"
+
+#: ../kshutdown/mmainwindow.cpp:539
+msgid "Check &System Configuration"
+msgstr "&Sistem yapılandırmasını denetle"
+
+#: ../kshutdown/mmainwindow.cpp:556
+msgid "&Statistics"
+msgstr "İ&statistikler"
+
+#: ../kshutdown/mmainwindow.cpp:600
+msgid "Select an &action to perform"
+msgstr "&Gerçekleştirilecek eylemi seçin"
+
+#: ../kshutdown/mmainwindow.cpp:610
+msgid "Select an action to perform at the selected time."
+msgstr "Belirtilen zamanda uygulanmak üzere bir eylem seçin."
+
+#: ../kshutdown/mmainwindow.cpp:616
+msgid "S&elect a time"
+msgstr "&Zaman seçin"
+
+#: ../kshutdown/mmainwindow.cpp:623
+msgid "Time From Now (HH:MM)"
+msgstr "Şu andan itibaren (SA:DK) "
+
+#: ../kshutdown/mmainwindow.cpp:624
+msgid "At Date/Time"
+msgstr "Tarih/saat"
+
+#: ../kshutdown/mmainwindow.cpp:625
+msgid "When selected application exit"
+msgstr "Belirtilen uygulama kapanınca"
+
+#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117
+msgid "Disabled by the Administrator."
+msgstr "Yönetici tarafından devre dışı bırakıldı."
+
+#: ../kshutdown/mmainwindow.cpp:629
+msgid "Select the type of delay."
+msgstr "Bekleme tipini seçin"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "Selected time."
+msgstr "Belirlenen süre."
+
+#: ../kshutdown/mmainwindow.cpp:671
+msgid "TEST MODE"
+msgstr "DENEME MODU"
+
+#: ../kshutdown/mmainwindow.cpp:677
+msgid "Remaining time: <b>%1</b>"
+msgstr "Kalan zaman: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:678
+msgid "Selected time: <b>%1</b>"
+msgstr "Seçilen zaman: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:679
+msgid "Selected action: <b>%1</b>"
+msgstr "Seçilen eylem: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:682
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>Not:</b> Deneme modu etkin"
+
+#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905
+msgid "KShutDown has been minimized"
+msgstr "KShutDown sistem çekmecesine küçültüldü"
+
+#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926
+msgid "KShutDown has quit"
+msgstr "KShutDown kapandı"
+
+#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82
+msgid "Message"
+msgstr "İleti"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "Kalan zaman."
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "Ayarlar"
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "Eylemler"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "Eylem"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "Düzenle..."
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "Sistem Yapılandırmasını Denetle"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "Ekstralar Menüsü"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "Düzenle..."
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "Gelişmiş"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "Oturum açıldıktan sonra"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "Ekranı kilitle"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "Oturum kapanmadan önce"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "CD-ROM kapağını kapat"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "Komut:"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "İlgili KDE Ayarları..."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "Genel"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "Yaygın Sorunlar"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "\"Bilgisayarı Kapat\" çalışmıyor"
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr "Popup iletileri çok can sıkıcı"
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "Linkleri Ekle/Kaldır"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "Sistem Çekmecesi Simgesini Göster"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "Her zaman"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "Simge her zaman görünür olacaktır."
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "Eğer etkin ise"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "Simge sadece KShutDown etkin iken görünecektir."
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "Asla"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "Simge asla görünmeyecektir."
+
+#: ../kshutdown/msettingsdialog.cpp:274
+msgid "Show KShutDown Themes"
+msgstr "KShutDown Temalarını Göster"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr "SuperKaramba Sitesi"
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "İletiler"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "Eylemden önce uyarı iletisi görüntüle"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "dakika"
+
+#: ../kshutdown/msettingsdialog.cpp:303
+msgid "Recommended"
+msgstr "Önerilen"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "Warning Message"
+msgstr "Uyarı İletisi"
+
+#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351
+msgid "Enabled"
+msgstr "Etkin"
+
+#: ../kshutdown/msettingsdialog.cpp:318
+msgid "A shell command to execute:"
+msgstr "Çalıştırılacak kabuk komutu:"
+
+#: ../kshutdown/msettingsdialog.cpp:323
+msgid "Enter a command."
+msgstr "Komut girin."
+
+#: ../kshutdown/msettingsdialog.cpp:326
+msgid "A message text"
+msgstr "İleti metni"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "The current main window title"
+msgstr "Ana pencere başlığı"
+
+#: ../kshutdown/msettingsdialog.cpp:333
+msgid "Presets"
+msgstr "Öntanımlılar"
+
+#: ../kshutdown/msettingsdialog.cpp:347
+msgid "Custom Message"
+msgstr "Uyarı İletisini Özelleştir"
+
+#: ../kshutdown/msettingsdialog.cpp:350
+msgid "Progress Bar"
+msgstr "İşlem Çubuğu"
+
+#: ../kshutdown/msettingsdialog.cpp:354
+msgid "Re-enable All Message Boxes"
+msgstr "Tüm İleti Kutucuklarını Etkinleştir"
+
+#: ../kshutdown/msettingsdialog.cpp:358
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+"<b>Bu iletiyi bir daha asla gösterme</b> özelliğiyle kapatılan tüm iletileri "
+"etkinleştir."
+
+#: ../kshutdown/msettingsdialog.cpp:447
+msgid "Pause: %1"
+msgstr "Duraksa: %1"
+
+#: ../kshutdown/msettingsdialog.cpp:516
+msgid "This file is used to lock session at KDE startup"
+msgstr "Bu dosya KDE başlangıcında oturumu kilitlemek için kullanılıyor"
+
+#: ../kshutdown/msettingsdialog.cpp:596
+msgid "Restore default settings for this page?"
+msgstr "Bu sayfadaki ayarları öntanımlı haline getir?"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr "İstatistikler"
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr ""
+"Bu pencerede bilgisayarda oturum açan kullanıcıları ve onların yürüttüğü "
+"süreçleri görebilirsiniz.\n"
+"Sistemin ne kadar süredir çalışır durumda olduğu en üst satırda yazmaktadır."
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "Yenile"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "Daha fazla bilgi"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "Oturum süresini, JCPU ve PCPU sürelerini göster."
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr "\"FROM\" sütununu göster"
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr "\"FROM\" sütununu göster."
+
+#: ../kshutdown/progressbar.cpp:99
+msgid "Hide"
+msgstr "Gizle"
+
+#: ../kshutdown/systemconfig.cpp:71
+msgid "System Configuration"
+msgstr "Sistem Yapılandırması"
+
+#: ../kshutdown/systemconfig.cpp:88
+msgid "Tip: Click here if you have problem with the \"/sbin/shutdown\" command."
+msgstr "İpucu: Eğer \"/sbin/shutdown\" komutu ile problem yaşıyorsanız buraya tıklayın."
+
+#: ../kshutdown/systemconfig.cpp:97
+msgid "No problems were found."
+msgstr "Sorun bulunamadı."
+
+#: ../kshutdown/systemconfig.cpp:128
+msgid "Program \"%1\" was not found!"
+msgstr "\"%1\" programı bulunamadı!"
+
+#: ../kshutdown/systemconfig.cpp:135
+msgid "No permissions to execute \"%1\"."
+msgstr "\"%1\" eylemi için yeterli yetkiniz yok."
+
+#: ../kshutdown/systemconfig.cpp:144
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"Öyle görünüyor ki oturumunuz KDE oturumu değil.\n"
+"KShutDown, KDE ile çalışmak üzere tasarlanmıştır.\n"
+"Eylemleri KShutDown yapılandırmasından ayarlayabilirsiniz\n"
+"(Ayarlar -> KShutDown Programını Yapılandır -> Eylemler)"
+
+#: ../kshutdown/systemconfig.cpp:161
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr ""
+"İpucu: Eylemleri GDM ile çalışacak şekilde ayarlayabilirsiniz.\n"
+"(Ayarlar -> KShutDown Programını Yapılandır -> Eylemler)"
+
+#: ../kshutdown/systemconfig.cpp:162
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"KDM çalışmıyor ya da\n"
+"bilgisayarı kapat/yeniden başlat işlevleri pasifleştirilmiş.\n"
+"\n"
+"KDM'ı ayarlamak için buraya tıklayın."
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "Ahmet AYGÜN, Eren TÜRKAY"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "ahmet@zion.gen.tr, turkay.eren@gmail.com"
+
+#: ../kshutdownlockout/lockout.cpp:120
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr "KShutDown için tıklayın<br>Menü için tıklayıp basılı tutun"
+
+#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155
+#: ../kshutdownlockout/lockout.cpp:200
+msgid "Could not run KShutDown!"
+msgstr "KShutDown Çalıştırılamıyor"
+
+#: ../kshutdownlockout/lockout.cpp:165
+msgid "Lock Screen"
+msgstr "Ekranı Kilitle"
+
+#: ../kshutdownlockout/lockout.cpp:191
+msgid "&Configure KShutDown..."
+msgstr "KShutDown Programını &Yapılandır"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..4c227da
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,915 @@
+# translation of zh_CN.po to
+# translation of ch_CN.po to
+# translation of es.po to Polish
+# Translation of kshutdown to Castilian aka Spanish
+# This file is distributed under the same license as the Kshutdown package.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# lczxl, 2005.
+# Quique <quique@sindominio.net>, 2004.
+# lczxl, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: zh_CN\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-04-22 18:03+0200\n"
+"PO-Revision-Date: 2005-12-04 16:26+0800\n"
+"Last-Translator: lczxl\n"
+"Language-Team: <zh@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"
+
+#: ../kshutdown/mstatstab.cpp:46
+msgid "Statistics"
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:71
+msgid ""
+"This view displays information about the users currently on the machine, and "
+"their processes.<br>The header shows how long the system has been running."
+msgstr "显示系统运行了多长时间"
+
+#: ../kshutdown/mstatstab.cpp:79
+msgid "Refresh"
+msgstr "重刷新(&R)"
+
+#: ../kshutdown/mstatstab.cpp:83
+#, fuzzy
+msgid "Options"
+msgstr "命令编辑"
+
+#: ../kshutdown/mstatstab.cpp:85
+msgid "More information"
+msgstr "更多信息"
+
+#: ../kshutdown/mstatstab.cpp:88
+msgid "Show login time, JCPU and PCPU times."
+msgstr "显示登入时间,JCPU和PCPU时间。"
+
+#: ../kshutdown/mstatstab.cpp:90
+msgid "Toggle \"FROM\""
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:92
+msgid "Toggle the \"FROM\" (remote hostname) field."
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167
+#: ../kshutdown/appobserver.cpp:269
+msgid "Error"
+msgstr ""
+
+#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176
+#: ../kshutdown/actions.cpp:416
+msgid "Command: %1"
+msgstr "命令: %1"
+
+#: ../kshutdown/extras.cpp:57
+msgid "More actions..."
+msgstr "更多命令"
+
+#: ../kshutdown/extras.cpp:227
+msgid "Select a command..."
+msgstr "选择一个命令"
+
+#: ../kshutdown/extras.cpp:245
+msgid "Use context menu to add/edit/remove links."
+msgstr "使用上下文来添加/编辑/删除链接"
+
+#: ../kshutdown/extras.cpp:247
+msgid "Use <b>Context Menu</b> to create a new link to application"
+msgstr "使用 <b>上下文菜单</b>创建一个到应用程序的新链接"
+
+#: ../kshutdown/extras.cpp:248
+msgid "Use <b>Create New|Folder...</b> to create a new submenu"
+msgstr "使用<b>创建新的文件夹....</b>创建一个新的子菜单"
+
+#: ../kshutdown/extras.cpp:249
+msgid "Use <b>Properties</b> to change icon, name, or comment"
+msgstr "使用<b>属性</b>改变图标,名称,或者说明"
+
+#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271
+#: ../kshutdown/mmainwindow.cpp:582
+msgid "Extras"
+msgstr "更多的...."
+
+#: ../kshutdown/extras.cpp:270
+msgid ""
+"Internal error!\n"
+"Selected menu item is broken."
+msgstr ""
+"内部错误!\n"
+"选择的菜单项目是无效的"
+
+#: ../kshutdown/miscutils.cpp:104
+msgid "1 hour warning"
+msgstr "一小时警告"
+
+#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108
+msgid "5 minutes warning"
+msgstr "5分钟警告"
+
+#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112
+msgid "1 minute warning"
+msgstr "一分钟警告"
+
+#: ../kshutdown/miscutils.cpp:115
+msgid "10 seconds warning"
+msgstr "十秒钟警告"
+
+#: ../kshutdown/miscutils.cpp:118
+msgid "3 seconds before action"
+msgstr "3秒钟后执行动作"
+
+#: ../kshutdown/miscutils.cpp:121
+msgid "2 seconds before action"
+msgstr "2秒钟后执行动作"
+
+#: ../kshutdown/miscutils.cpp:124
+msgid "1 second before action"
+msgstr "一秒钟后执行动作"
+
+#: ../kshutdown/miscutils.cpp:223
+msgid "Could not run \"%1\"!"
+msgstr "不能运行 <b>%1</b>."
+
+#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457
+#: ../kshutdown/msettingsdialog.cpp:544
+msgid "Test"
+msgstr "测试"
+
+#: ../kshutdown/links.cpp:50
+#, fuzzy
+msgid "Location where to create the link:"
+msgstr "选择位置创建链接:"
+
+#: ../kshutdown/links.cpp:54
+msgid "Desktop"
+msgstr "桌面"
+
+#: ../kshutdown/links.cpp:55
+msgid "K Menu"
+msgstr "K菜单"
+
+#: ../kshutdown/links.cpp:62
+#, fuzzy
+msgid "Type of the link:"
+msgstr "选择一种链接方式"
+
+#: ../kshutdown/links.cpp:66
+msgid "KShutDown"
+msgstr "KShutDown关机程序"
+
+#: ../kshutdown/links.cpp:69
+msgid "Standard Logout Dialog"
+msgstr "标准注销对话"
+
+#: ../kshutdown/links.cpp:96
+#, fuzzy
+msgid "System Shut Down Utility"
+msgstr "KDE的关机程序"
+
+#: ../kshutdown/links.cpp:107
+msgid "Could not create file <b>%1</b>!"
+msgstr "不能创建连接 <b>%1</b>."
+
+#: ../kshutdown/links.cpp:118
+msgid "Could not remove file <b>%1</b>!"
+msgstr "不能删除 <b>%1</b>."
+
+#: ../kshutdown/links.cpp:183
+msgid "Remove Link"
+msgstr "删除链接"
+
+#: ../kshutdown/links.cpp:187
+#, fuzzy
+msgid "Add Link"
+msgstr "添加/删除链接"
+
+#: ../kshutdown/links.cpp:206
+msgid "Logout"
+msgstr "注销"
+
+#: ../kshutdown/main.cpp:40
+msgid "A Shut Down Utility for KDE"
+msgstr "KDE的关机程序"
+
+#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53
+msgid "Turn off computer"
+msgstr "关闭电脑"
+
+#: ../kshutdown/main.cpp:55
+msgid "Restart computer"
+msgstr "重启电脑"
+
+#: ../kshutdown/main.cpp:57
+msgid "Lock session"
+msgstr "锁定命令"
+
+#: ../kshutdown/main.cpp:59
+msgid "End current session"
+msgstr "结束当前命令"
+
+#: ../kshutdown/main.cpp:60
+msgid "Confirm command line action"
+msgstr "确认命令"
+
+#: ../kshutdown/main.cpp:61
+msgid "Show standard logout dialog"
+msgstr "显示标准的注销对话"
+
+#: ../kshutdown/main.cpp:63
+msgid "Cancel an active action"
+msgstr "取消活动的命令"
+
+#: ../kshutdown/main.cpp:64
+msgid "Don't show window at startup"
+msgstr "视窗启动时不显示"
+
+#: ../kshutdown/main.cpp:65
+msgid "Enable test mode"
+msgstr "激活测试模式"
+
+#: ../kshutdown/main.cpp:66
+msgid "Disable test mode"
+msgstr "取消测试模式"
+
+#: ../kshutdown/main.cpp:67
+msgid ""
+"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to "
+"wait from now"
+msgstr "时间;例如:01:30-绝对时间(HH:MM);"
+
+#: ../kshutdown/main.cpp:229
+msgid "Invalid time: <b>%1</b>"
+msgstr "无效时间:<b>%1</b>"
+
+#: ../kshutdown/msettingsdialog.cpp:64
+msgid "Settings"
+msgstr "设置"
+
+#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600
+msgid "Disabled by the Administrator."
+msgstr "通过超级管理员取消"
+
+#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135
+msgid "Actions"
+msgstr "命令编辑"
+
+#: ../kshutdown/msettingsdialog.cpp:142
+msgid "Action"
+msgstr "命令"
+
+#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69
+msgid "Method"
+msgstr "方式(&M)"
+
+#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88
+msgid "Command before action"
+msgstr "执行之前运行命令"
+
+#: ../kshutdown/msettingsdialog.cpp:162
+msgid "Edit..."
+msgstr "编辑(&E)"
+
+#: ../kshutdown/msettingsdialog.cpp:165
+msgid "Check System Configuration"
+msgstr "检查系统设置"
+
+#: ../kshutdown/msettingsdialog.cpp:168
+msgid "Extras Menu"
+msgstr "额外的菜单"
+
+#: ../kshutdown/msettingsdialog.cpp:169
+msgid "Modify..."
+msgstr "更改(&M)"
+
+#: ../kshutdown/msettingsdialog.cpp:186
+msgid "Advanced"
+msgstr "高级"
+
+#: ../kshutdown/msettingsdialog.cpp:190
+msgid "After Login"
+msgstr "登入后"
+
+#: ../kshutdown/msettingsdialog.cpp:191
+msgid "Lock screen"
+msgstr "锁定屏幕"
+
+#: ../kshutdown/msettingsdialog.cpp:195
+msgid "Before Logout"
+msgstr "注销前"
+
+#: ../kshutdown/msettingsdialog.cpp:196
+msgid "Close CD-ROM Tray"
+msgstr "关闭光驱托盘"
+
+#: ../kshutdown/msettingsdialog.cpp:198
+msgid "Command:"
+msgstr "命令"
+
+#: ../kshutdown/msettingsdialog.cpp:208
+msgid "Related KDE Settings..."
+msgstr "相关的KDE设置...."
+
+#: ../kshutdown/msettingsdialog.cpp:219
+msgid "General"
+msgstr "一般"
+
+#: ../kshutdown/msettingsdialog.cpp:223
+msgid "Common Problems"
+msgstr "常用程序"
+
+#: ../kshutdown/msettingsdialog.cpp:226
+msgid "\"Turn Off Computer\" does not work"
+msgstr "如果您的\"关机\"程序不能运行..."
+
+#: ../kshutdown/msettingsdialog.cpp:230
+msgid "Popup messages are very annoying"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:234
+msgid "Add/Remove Links"
+msgstr "添加/删除链接"
+
+#: ../kshutdown/msettingsdialog.cpp:238
+msgid "Show System Tray Icon"
+msgstr "显示托盘图标"
+
+#: ../kshutdown/msettingsdialog.cpp:240
+msgid "Always"
+msgstr "总是"
+
+#: ../kshutdown/msettingsdialog.cpp:241
+msgid "Tray icon will be always visible."
+msgstr "托盘图标总是显示"
+
+#: ../kshutdown/msettingsdialog.cpp:242
+msgid "If Active"
+msgstr "如果KShutDown是活动的"
+
+#: ../kshutdown/msettingsdialog.cpp:243
+msgid "Tray icon will be visible only if KShutDown is active."
+msgstr "只有KshutDown激活时,托盘图标才可见。"
+
+#: ../kshutdown/msettingsdialog.cpp:244
+msgid "Never"
+msgstr "从不"
+
+#: ../kshutdown/msettingsdialog.cpp:245
+msgid "Tray icon will be always hidden."
+msgstr "托盘图标总是隐藏"
+
+#: ../kshutdown/msettingsdialog.cpp:274
+#, fuzzy
+msgid "Show KShutDown Themes"
+msgstr "KShutDown主题"
+
+#: ../kshutdown/msettingsdialog.cpp:276
+msgid "SuperKaramba Home Page"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:285
+msgid "Messages"
+msgstr "信息"
+
+#: ../kshutdown/msettingsdialog.cpp:295
+msgid "Display a warning message before action"
+msgstr "动作之前显示警告信息"
+
+#: ../kshutdown/msettingsdialog.cpp:298
+msgid "minute(s)"
+msgstr "分钟(s)"
+
+#: ../kshutdown/msettingsdialog.cpp:306
+msgid "Warning Message"
+msgstr "警告信息"
+
+#: ../kshutdown/msettingsdialog.cpp:311
+msgid "Enabled"
+msgstr "使能"
+
+#: ../kshutdown/msettingsdialog.cpp:312
+msgid "A shell command to execute:"
+msgstr "Shell命令运行:"
+
+#: ../kshutdown/msettingsdialog.cpp:317
+msgid "Enter a command."
+msgstr "键入命令"
+
+#: ../kshutdown/msettingsdialog.cpp:320
+msgid "A message text"
+msgstr "信息"
+
+#: ../kshutdown/msettingsdialog.cpp:321
+msgid "The current main window title"
+msgstr "当前主窗口标题"
+
+#: ../kshutdown/msettingsdialog.cpp:327
+msgid "Presets"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:341
+msgid "Custom Message"
+msgstr "自定义信息"
+
+#: ../kshutdown/msettingsdialog.cpp:344
+msgid "Re-enable All Message Boxes"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:348
+msgid ""
+"Enable all messages which have been turned off with the <b>Do not show this "
+"message again</b> feature."
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77
+msgid "KDE (default)"
+msgstr "KDE(默认)"
+
+#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94
+msgid "No pause"
+msgstr "不暂停"
+
+#: ../kshutdown/msettingsdialog.cpp:433
+#, fuzzy
+msgid "Pause: %1"
+msgstr "暂停:"
+
+#: ../kshutdown/msettingsdialog.cpp:502
+msgid "This file is used to lock session at KDE startup"
+msgstr ""
+
+#: ../kshutdown/msettingsdialog.cpp:582
+msgid "Restore default settings for this page?"
+msgstr "恢复默认设置?"
+
+#: ../kshutdown/mmainwindow.cpp:132
+msgid "Enter hour and minute."
+msgstr "输入小时和分钟"
+
+#: ../kshutdown/mmainwindow.cpp:142
+msgid "Enter date and time."
+msgstr "输入日期和时间"
+
+#: ../kshutdown/mmainwindow.cpp:221
+msgid "Click the <b>Select a command...</b> button first."
+msgstr "先点击<b>选择命令....</b>按钮"
+
+#: ../kshutdown/mmainwindow.cpp:263
+msgid "Selected date/time: %1"
+msgstr "选择日期/时间"
+
+#: ../kshutdown/mmainwindow.cpp:264
+msgid "Current date/time: %1"
+msgstr "当前日期/时间"
+
+#: ../kshutdown/mmainwindow.cpp:270
+msgid "Selected date/time is earlier than current date/time!"
+msgstr "选择的时间比当前时间早!"
+
+#: ../kshutdown/mmainwindow.cpp:275
+msgid "Action cancelled!"
+msgstr "动作取消!"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode enabled"
+msgstr "是测试模式生效"
+
+#: ../kshutdown/mmainwindow.cpp:380
+msgid "Test mode disabled"
+msgstr "取消测试模式"
+
+#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442
+#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200
+#: ../kshutdownlockout/lockout.cpp:86
+msgid "No Delay"
+msgstr "无延时"
+
+#: ../kshutdown/mmainwindow.cpp:438
+msgid "&File"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:449
+#, fuzzy
+msgid "&Actions"
+msgstr "命令编辑"
+
+#: ../kshutdown/mmainwindow.cpp:455
+#, fuzzy
+msgid "Configure Global Shortcuts..."
+msgstr "设置&KshutDown"
+
+#: ../kshutdown/mmainwindow.cpp:460
+#, fuzzy
+msgid "&Settings"
+msgstr "设置"
+
+#: ../kshutdown/mmainwindow.cpp:463
+msgid "&Help"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193
+#, fuzzy
+msgid "C&ancel"
+msgstr "命令: %1"
+
+#: ../kshutdown/mmainwindow.cpp:511
+msgid "Check &System Configuration"
+msgstr "检查系统设置(&S)"
+
+#: ../kshutdown/mmainwindow.cpp:520
+#, fuzzy
+msgid "&Start [%1]"
+msgstr "开始[Enter]"
+
+#: ../kshutdown/mmainwindow.cpp:528
+msgid "&Statistics"
+msgstr "进程列表(&S)"
+
+#: ../kshutdown/mmainwindow.cpp:573
+msgid "Select an &action to perform"
+msgstr "选择一个命令执行(&a)"
+
+#: ../kshutdown/mmainwindow.cpp:583
+msgid "Select an action to perform at the selected time."
+msgstr "在选择的时间上选择命令执行"
+
+#: ../kshutdown/mmainwindow.cpp:589
+msgid "S&elect a time"
+msgstr "选择时间(&e)"
+
+#: ../kshutdown/mmainwindow.cpp:596
+msgid "Time From Now (HH:MM)"
+msgstr "(HH:MM)后执行命令"
+
+#: ../kshutdown/mmainwindow.cpp:597
+msgid "At Date/Time"
+msgstr "在选择的日期/时间执行命令"
+
+#: ../kshutdown/mmainwindow.cpp:598
+msgid "When selected application exit"
+msgstr "当选择的应用程序关闭"
+
+#: ../kshutdown/mmainwindow.cpp:602
+msgid "Select the type of delay."
+msgstr "选择一种延时方式"
+
+#: ../kshutdown/mmainwindow.cpp:617
+msgid "Selected time."
+msgstr "选择的时间:"
+
+#: ../kshutdown/mmainwindow.cpp:644
+msgid "TEST MODE"
+msgstr "测试模式"
+
+#: ../kshutdown/mmainwindow.cpp:651
+msgid "Remaining time: <b>%1</b>"
+msgstr "剩余时间:<b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324
+#: ../kshutdown/confirmation.cpp:77
+msgid "Unknown"
+msgstr "不认识"
+
+#: ../kshutdown/mmainwindow.cpp:652
+msgid "Selected time: <b>%1</b>"
+msgstr "选择的时间: <b>%1</b>"
+
+#: ../kshutdown/mmainwindow.cpp:653
+msgid "Selected action: <b>%1</b>"
+msgstr "选择的命令: <b>%1</b>."
+
+#: ../kshutdown/mmainwindow.cpp:656
+msgid "<b>Note: </b> The test mode is enabled"
+msgstr "<b>注意: </b> 测试模式生效"
+
+#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867
+msgid "KShutDown has been minimized"
+msgstr ""
+
+#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888
+#, fuzzy
+msgid "KShutDown has quit"
+msgstr "KShutDown菜单"
+
+#: ../kshutdown/actions.cpp:63
+msgid "Please wait..."
+msgstr "请等待:"
+
+#: ../kshutdown/actions.cpp:85
+msgid ""
+"Could not logout properly.\n"
+"The session manager cannot be contacted."
+msgstr "不能被注销"
+
+#: ../kshutdown/actions.cpp:316
+msgid "Nothing"
+msgstr "Nada"
+
+#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185
+msgid "Turn Off Computer"
+msgstr "关闭计算机"
+
+#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179
+msgid "Restart Computer"
+msgstr "重启计算机"
+
+#: ../kshutdown/actions.cpp:319
+msgid "Lock Session"
+msgstr "锁住会话"
+
+#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173
+msgid "End Current Session"
+msgstr "结束当前会话"
+
+#: ../kshutdown/actions.cpp:359
+msgid "Action failed! (%1)"
+msgstr "命令失败!(que = %1)"
+
+#: ../kshutdown/actions.cpp:403
+msgid "kdesktop: DCOP call failed!"
+msgstr ""
+
+#: ../kshutdown/systemconfig.cpp:65
+msgid "System Configuration"
+msgstr "系统设置"
+
+#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48
+msgid "Message"
+msgstr "消息"
+
+#: ../kshutdown/systemconfig.cpp:82
+msgid ""
+"Tip: If you have problem with the \"/sbin/shutdown\" command,\n"
+"try to modify the \"/etc/shutdown.allow\" file,\n"
+"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n"
+"\n"
+"Click here for more information."
+msgstr ""
+"提示:如果\"/sbin/shutdown\" 命令有问题,\n"
+" 请尝试修改 \"/etc/shutdown.allow\" 文件,\n"
+" 然后附带 \"-a\" 参数运行 \"/sbin/shutdown\" \n"
+" \n"
+" 点击\"这里\"获得更多信息."
+
+#: ../kshutdown/systemconfig.cpp:91
+msgid "No problems were found."
+msgstr "未发现程序"
+
+#: ../kshutdown/systemconfig.cpp:122
+msgid "Program \"%1\" was not found!"
+msgstr "未发现程序 \"%1\" "
+
+#: ../kshutdown/systemconfig.cpp:129
+msgid "No permissions to execute \"%1\"."
+msgstr "不允许运行 \"%1\"."
+
+#: ../kshutdown/systemconfig.cpp:138
+msgid ""
+"It seems that this is not a KDE full session.\n"
+"KShutDown was designed to work with KDE.\n"
+"However, you can customize Actions in the KShutDown settings dialog\n"
+"(Settings -> Configure KShutDown... -> Actions)."
+msgstr ""
+"KShutDown是在KDE下设计的.\n"
+"然而,您可自定义动作(设置 -> 配置KShutDown.... -> 动作)"
+
+#: ../kshutdown/systemconfig.cpp:155
+msgid ""
+"Tip: You can customize Actions to work with GDM.\n"
+"(Settings -> Configure KShutDown... -> Actions)"
+msgstr "提示: 您可在GDM中自定义动作(设置 -> 配置KShutDown.... -> 动作)"
+
+#: ../kshutdown/systemconfig.cpp:156
+msgid ""
+"KDE Display Manager is not running,\n"
+"or the shut down/reboot function is disabled.\n"
+"\n"
+"Click here to configure KDM."
+msgstr ""
+"KDE显示管理器没有运行,\n"
+"或者关闭/重启功能被取消.\n"
+"\n"
+"点击\"这里\"设置KDM"
+
+#: ../kshutdown/mactioneditdialog.cpp:72
+msgid "Select a method:"
+msgstr "选择一个方式:"
+
+#: ../kshutdown/mactioneditdialog.cpp:82
+msgid "Enter a custom command:"
+msgstr "键入用户命令:"
+
+#: ../kshutdown/mactioneditdialog.cpp:89
+msgid "Run command"
+msgstr "运行命令(&O)"
+
+#: ../kshutdown/mactioneditdialog.cpp:92
+msgid "Pause after run command:"
+msgstr "运行命令后暂停"
+
+#: ../kshutdown/mactioneditdialog.cpp:95
+msgid "second(s)"
+msgstr "秒(s)"
+
+#: ../kshutdown/mactioneditdialog.cpp:111
+msgid ""
+"In most cases you need privileges to shut down system (e.g. run /sbin/"
+"shutdown)"
+msgstr "多数情况下您需要有特权才能关闭系统(例如运行 /sbin/shutdown)"
+
+#: ../kshutdown/mactioneditdialog.cpp:113
+msgid ""
+"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set "
+"all methods to <i>KDE</i>"
+msgstr ""
+"如果您正在使用<b>KDE</b> 和 <b>KDM</b> (KDE显示管理器),设置所有模式为"
+"<i>KDE</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:114
+msgid ""
+"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, "
+"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/"
+"sbin/...</i>"
+msgstr ""
+"如果您正在使用<b>KDE</b>,显示管理器与<b>KDM</b>不同,则设置<i>关闭计算机</i> "
+"和 <i>重启计算机</i> 方式为 <i>/sbin/...</i>"
+
+#: ../kshutdown/mactioneditdialog.cpp:116
+msgid "Manuals:"
+msgstr "手册"
+
+#: ../kshutdown/mactioneditdialog.cpp:137
+msgid "User Command"
+msgstr "使用者命令"
+
+#: ../kshutdown/mmessagedialog.cpp:79
+msgid "Remaining time."
+msgstr "剩余时间."
+
+#: ../kshutdown/appobserver.cpp:57
+msgid "Refresh the list of processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:63
+msgid "List of the running processes"
+msgstr ""
+
+#: ../kshutdown/appobserver.cpp:66
+msgid "Kill"
+msgstr "终止某命令"
+
+#: ../kshutdown/appobserver.cpp:68
+#, fuzzy
+msgid "Kill the selected process"
+msgstr "选择的进程不存在"
+
+#: ../kshutdown/appobserver.cpp:80
+msgid "Waiting for \"%1\""
+msgstr "等待\"%1\""
+
+#: ../kshutdown/appobserver.cpp:111
+msgid "The selected process does not exist!"
+msgstr "选择的进程不存在"
+
+#: ../kshutdown/appobserver.cpp:164
+msgid "Could not execute command<br><br><b>%1</b>"
+msgstr "不能运行命令<b>%1</b>."
+
+#: ../kshutdown/appobserver.cpp:191
+msgid ""
+"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be "
+"lost!"
+msgstr "您确认要终止<br><b>%1</b>?<br><br>,所有未保存的数据将丢失!"
+
+#: ../kshutdown/appobserver.cpp:206
+msgid "Process not found<br><b>%1</b>"
+msgstr "进程未发现<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:212
+msgid "No permissions to kill<br><b>%1</b>"
+msgstr "不允许终止<br><b>%1</b>"
+
+#: ../kshutdown/appobserver.cpp:221
+msgid "DEAD: %1"
+msgstr ""
+
+#: ../kshutdown/confirmation.cpp:65
+msgid "Confirm"
+msgstr "确认"
+
+#: ../kshutdown/confirmation.cpp:74
+#, fuzzy
+msgid "&Cancel"
+msgstr "命令: %1"
+
+#: ../kshutdown/confirmation.cpp:79
+msgid ""
+"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>"
+msgstr ""
+
+#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1
+msgid ""
+"_: NAME OF TRANSLATORS\n"
+"Your names"
+msgstr "张旭亮"
+
+#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3
+msgid ""
+"_: EMAIL OF TRANSLATORS\n"
+"Your emails"
+msgstr "cnsdxl@gmail.com"
+
+#: ../kshutdownlockout/lockout.cpp:122
+msgid "Click for KShutDown main window<br>Click and hold for menu"
+msgstr ""
+
+#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157
+#: ../kshutdownlockout/lockout.cpp:208
+msgid "Could not run KShutDown!"
+msgstr "不能执行KShutDown <b>%1</b>."
+
+#: ../kshutdownlockout/lockout.cpp:167
+#, fuzzy
+msgid "Lock Screen"
+msgstr "锁定屏幕"
+
+#: ../kshutdownlockout/lockout.cpp:199
+#, fuzzy
+msgid "&Configure KShutDown..."
+msgstr "设置(&C):KShutDown...."
+
+#~ msgid "Are you sure?"
+#~ msgstr "您确定吗?"
+
+#~ msgid "Stop [Esc]"
+#~ msgstr "取消"
+
+#~ msgid ""
+#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu"
+#~ msgstr "<b>提示:</b> 使用 <b>鼠标中键</b> 显示动作菜单"
+
+#~ msgid "No delay"
+#~ msgstr "无延时"
+
+#~ msgid "Create Link"
+#~ msgstr "建立连接"
+
+#~ msgid "&I'm Sure"
+#~ msgstr "确定"
+
+#, fuzzy
+#~ msgid "&Cancel: %1"
+#~ msgstr "命令: %1"
+
+#~ msgid "KShutDown Actions (no delay!)"
+#~ msgstr "KShutDown动作 (无延时!)"
+
+#~ msgid "Actions (no delay!)"
+#~ msgstr "动作(无延时!)"
+
+#~ msgid "&Turn Off Computer"
+#~ msgstr "关机(&T)"
+
+#~ msgid "&Restart Computer"
+#~ msgstr "重启(&R)"
+
+#~ msgid "&Lock Session"
+#~ msgstr "锁定会话(&L)"
+
+#~ msgid "&End Current Session"
+#~ msgstr "结束当前会话(&E)"
+
+#~ msgid "&Immediate Action"
+#~ msgstr "立即执行(&I)"
+
+#~ msgid "&Stop"
+#~ msgstr "停止(&S)"
+
+#~ msgid "Run KShutDown"
+#~ msgstr "运行KSutDown"
+
+#~ msgid "&Run KShutDown"
+#~ msgstr "运行KSutDown(&R)"
+
+#~ msgid "&Show Lock Button"
+#~ msgstr "显示锁定按钮(&S)"
+
+#~ msgid "MStatsTab"
+#~ msgstr "MStatsTab"
+
+#~ msgid "SystemConfig"
+#~ msgstr "系统设置"
+
+#~ msgid "Lockout"
+#~ msgstr "注销"
diff --git a/sounds/1m.ogg b/sounds/1m.ogg
new file mode 100644
index 0000000..70a8a52
--- /dev/null
+++ b/sounds/1m.ogg
Binary files differ
diff --git a/sounds/5m.ogg b/sounds/5m.ogg
new file mode 100644
index 0000000..7e00def
--- /dev/null
+++ b/sounds/5m.ogg
Binary files differ
diff --git a/sounds/COPYRIGHT b/sounds/COPYRIGHT
new file mode 100644
index 0000000..8c09bc8
--- /dev/null
+++ b/sounds/COPYRIGHT
@@ -0,0 +1 @@
+(C) Caryn "Hellchick" Law
diff --git a/sounds/Makefile.am b/sounds/Makefile.am
new file mode 100644
index 0000000..1cab2f5
--- /dev/null
+++ b/sounds/Makefile.am
@@ -0,0 +1,10 @@
+eventsrcdir = $(kde_datadir)/kshutdown
+eventsrc_DATA = eventsrc
+
+soundsdir = $(kde_datadir)/kshutdown/sounds
+sounds_DATA = \
+ COPYRIGHT \
+ 1m.ogg \
+ 5m.ogg
+
+EXTRA_DIST = $(eventsrc_DATA) $(sounds_DATA)
diff --git a/sounds/eventsrc b/sounds/eventsrc
new file mode 100644
index 0000000..7266977
--- /dev/null
+++ b/sounds/eventsrc
@@ -0,0 +1,29 @@
+# encoding: UTF-8
+[!Global!]
+IconName=kshutdown
+Comment=KShutDown
+
+[kshutdown-5m]
+Name=5 Minutes Warning
+Comment=5 Minutes Warning
+Comment[it]=Avvertimento a 5 minuti
+Comment[pl]=Ostrzeżenie: 5 minut
+Comment[el]=Προειδοποίηση των 5 λεπτών
+default_sound=5m.ogg
+default_presentation=72
+
+[kshutdown-1m]
+Name=1 Minute Warning
+Comment=1 Minute Warning
+Comment[it]=Avvertimento a un minuto
+Comment[pl]=Ostrzeżenie: 1 minuta
+Comment[el]=Προειδοποίηση του 1 λεπτού
+default_sound=1m.ogg
+default_presentation=72
+
+[kshutdown-runerror]
+Name=Run Error
+Comment=Run Error
+Comment[pl]=Błąd uruchomienia
+Comment[el]=Σφάλμα εκτέλεσης
+default_presentation=88 \ No newline at end of file
diff --git a/stamp-h.in b/stamp-h.in
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/stamp-h.in
@@ -0,0 +1 @@
+timestamp
diff --git a/subdirs b/subdirs
new file mode 100644
index 0000000..c5b8f76
--- /dev/null
+++ b/subdirs
@@ -0,0 +1,8 @@
+doc
+extras
+karamba
+kshutdown
+kshutdownlockout
+pics
+po
+sounds