From 48a589b8c526b34e79e8cdddc4cb7f5fc7b76815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Sun, 28 Jul 2013 02:30:20 +0200 Subject: [PATCH] Initial import of kshutdown 1.0.4 --- AUTHORS | 1 + COPYING | 340 + ChangeLog | 410 + Doxyfile | 278 + INSTALL | 180 + Makefile.am | 23 + NEWS | 1 + README | 33 + Setup | 266 + TODO | 55 + VERSION | 1 + acinclude.m4 | 11809 ++++++++++++++++++++ aclocal.m4 | 863 ++ config.h.in | 237 + configure.files | 2 + configure.in | 136 + configure.in.in | 10 + doc/Makefile.am | 1 + doc/de/Makefile.am | 2 + doc/de/index.docbook | 269 + doc/de/mainwindow.png | Bin 0 -> 11222 bytes doc/kshutdown/Makefile.am | 2 + doc/kshutdown/index.docbook | 270 + doc/kshutdown/mainwindow.png | Bin 0 -> 20976 bytes extras/Makefile.am | 11 + extras/hibernate.desktop | 17 + extras/multimedia/.directory | 7 + extras/multimedia/Makefile.am | 13 + extras/multimedia/amarok.desktop | 12 + extras/multimedia/juk.desktop | 19 + extras/multimedia/kaffeine.desktop | 20 + extras/multimedia/kdetv.desktop | 19 + extras/multimedia/kscd.desktop | 20 + extras/multimedia/noatun.desktop | 18 + extras/multimedia/xmms.desktop | 12 + extras/shutdown/.directory | 7 + extras/shutdown/Makefile.am | 8 + extras/shutdown/cancelshutdown.desktop | 19 + extras/shutdown/fsck.desktop | 19 + extras/system/.directory | 6 + extras/system/Makefile.am | 9 + extras/system/adsl-stop.desktop | 20 + extras/system/kdeeject.desktop | 19 + extras/system/kppp.desktop | 19 + karamba/Makefile.am | 8 + karamba/kshutdown-48x48.png | Bin 0 -> 3502 bytes karamba/kshutdown-classic-notext.theme | 8 + karamba/kshutdown-classic-text.theme | 11 + kshutdown-mdk.spec | 86 + kshutdown-suse.spec | 94 + kshutdown.kdevelop | 321 + kshutdown.lsm | 12 + kshutdown.spec | 65 + kshutdown/Makefile.am | 44 + kshutdown/actions.cpp | 455 + kshutdown/actions.h | 217 + kshutdown/appobserver.cpp | 290 + kshutdown/appobserver.h | 99 + kshutdown/configuration.cpp | 80 + kshutdown/configuration.h | 91 + kshutdown/confirmation.cpp | 97 + kshutdown/confirmation.h | 38 + kshutdown/extras.cpp | 309 + kshutdown/extras.h | 115 + kshutdown/kshutdown.desktop | 19 + kshutdown/kshutdown.upd | 10 + kshutdown/kshutdowniface.h | 98 + kshutdown/kshutdowniface.kidl | 53 + kshutdown/kshutdowniface_skel.cpp | 135 + kshutdown/kshutdowniface_stub.cpp | 229 + kshutdown/kshutdowniface_stub.h | 38 + kshutdown/links.cpp | 210 + kshutdown/links.h | 74 + kshutdown/mactioneditdialog.cpp | 225 + kshutdown/mactioneditdialog.h | 76 + kshutdown/main.cpp | 393 + kshutdown/miscutils.cpp | 244 + kshutdown/miscutils.h | 135 + kshutdown/mmainwindow.cpp | 954 ++ kshutdown/mmainwindow.h | 209 + kshutdown/mmessagedialog.cpp | 184 + kshutdown/mmessagedialog.h | 68 + kshutdown/msettingsdialog.cpp | 622 ++ kshutdown/msettingsdialog.h | 127 + kshutdown/mstatstab.cpp | 196 + kshutdown/mstatstab.h | 74 + kshutdown/msystemtray.cpp | 212 + kshutdown/msystemtray.h | 113 + kshutdown/mtip.cpp | 90 + kshutdown/mtip.h | 65 + kshutdown/progressbar.cpp | 153 + kshutdown/progressbar.h | 66 + kshutdown/systemconfig.cpp | 189 + kshutdown/systemconfig.h | 60 + kshutdownlockout/Makefile.am | 15 + kshutdownlockout/kshutdownlockout.desktop | 71 + kshutdownlockout/lockout.cpp | 236 + kshutdownlockout/lockout.h | 59 + pics/Makefile.am | 15 + pics/hi32-app-kshutdown.png | Bin 0 -> 2082 bytes pics/hi48-app-kshutdown.png | Bin 0 -> 3502 bytes pics/kshutdown.svg | 153 + po/Makefile.am | 2 + po/README | 32 + po/ar.po | 841 ++ po/bg.po | 830 ++ po/cs.po | 796 ++ po/de.po | 850 ++ po/el.po | 859 ++ po/es.po | 878 ++ po/fr.po | 823 ++ po/hu.po | 1301 +++ po/it.po | 801 ++ po/nl.po | 1303 +++ po/pl.po | 799 ++ po/pt_BR.po | 846 ++ po/ru.po | 1299 +++ po/sk.po | 837 ++ po/sv.po | 1182 ++ po/tr.po | 794 ++ po/zh_CN.po | 915 ++ sounds/1m.ogg | Bin 0 -> 12529 bytes sounds/5m.ogg | Bin 0 -> 11810 bytes sounds/COPYRIGHT | 1 + sounds/Makefile.am | 10 + sounds/eventsrc | 29 + stamp-h.in | 1 + subdirs | 8 + 128 files changed, 39830 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 Doxyfile create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100755 Setup create mode 100644 TODO create mode 100644 VERSION create mode 100644 acinclude.m4 create mode 100644 aclocal.m4 create mode 100644 config.h.in create mode 100644 configure.files create mode 100644 configure.in create mode 100644 configure.in.in create mode 100644 doc/Makefile.am create mode 100644 doc/de/Makefile.am create mode 100644 doc/de/index.docbook create mode 100644 doc/de/mainwindow.png create mode 100644 doc/kshutdown/Makefile.am create mode 100644 doc/kshutdown/index.docbook create mode 100644 doc/kshutdown/mainwindow.png create mode 100644 extras/Makefile.am create mode 100644 extras/hibernate.desktop create mode 100644 extras/multimedia/.directory create mode 100644 extras/multimedia/Makefile.am create mode 100644 extras/multimedia/amarok.desktop create mode 100644 extras/multimedia/juk.desktop create mode 100644 extras/multimedia/kaffeine.desktop create mode 100644 extras/multimedia/kdetv.desktop create mode 100644 extras/multimedia/kscd.desktop create mode 100644 extras/multimedia/noatun.desktop create mode 100644 extras/multimedia/xmms.desktop create mode 100644 extras/shutdown/.directory create mode 100644 extras/shutdown/Makefile.am create mode 100644 extras/shutdown/cancelshutdown.desktop create mode 100644 extras/shutdown/fsck.desktop create mode 100644 extras/system/.directory create mode 100644 extras/system/Makefile.am create mode 100644 extras/system/adsl-stop.desktop create mode 100644 extras/system/kdeeject.desktop create mode 100644 extras/system/kppp.desktop create mode 100644 karamba/Makefile.am create mode 100644 karamba/kshutdown-48x48.png create mode 100644 karamba/kshutdown-classic-notext.theme create mode 100644 karamba/kshutdown-classic-text.theme create mode 100644 kshutdown-mdk.spec create mode 100644 kshutdown-suse.spec create mode 100644 kshutdown.kdevelop create mode 100644 kshutdown.lsm create mode 100644 kshutdown.spec create mode 100644 kshutdown/Makefile.am create mode 100644 kshutdown/actions.cpp create mode 100644 kshutdown/actions.h create mode 100644 kshutdown/appobserver.cpp create mode 100644 kshutdown/appobserver.h create mode 100644 kshutdown/configuration.cpp create mode 100644 kshutdown/configuration.h create mode 100644 kshutdown/confirmation.cpp create mode 100644 kshutdown/confirmation.h create mode 100644 kshutdown/extras.cpp create mode 100644 kshutdown/extras.h create mode 100644 kshutdown/kshutdown.desktop create mode 100644 kshutdown/kshutdown.upd create mode 100644 kshutdown/kshutdowniface.h create mode 100644 kshutdown/kshutdowniface.kidl create mode 100644 kshutdown/kshutdowniface_skel.cpp create mode 100644 kshutdown/kshutdowniface_stub.cpp create mode 100644 kshutdown/kshutdowniface_stub.h create mode 100644 kshutdown/links.cpp create mode 100644 kshutdown/links.h create mode 100644 kshutdown/mactioneditdialog.cpp create mode 100644 kshutdown/mactioneditdialog.h create mode 100644 kshutdown/main.cpp create mode 100644 kshutdown/miscutils.cpp create mode 100644 kshutdown/miscutils.h create mode 100644 kshutdown/mmainwindow.cpp create mode 100644 kshutdown/mmainwindow.h create mode 100644 kshutdown/mmessagedialog.cpp create mode 100644 kshutdown/mmessagedialog.h create mode 100644 kshutdown/msettingsdialog.cpp create mode 100644 kshutdown/msettingsdialog.h create mode 100644 kshutdown/mstatstab.cpp create mode 100644 kshutdown/mstatstab.h create mode 100644 kshutdown/msystemtray.cpp create mode 100644 kshutdown/msystemtray.h create mode 100644 kshutdown/mtip.cpp create mode 100644 kshutdown/mtip.h create mode 100644 kshutdown/progressbar.cpp create mode 100644 kshutdown/progressbar.h create mode 100644 kshutdown/systemconfig.cpp create mode 100644 kshutdown/systemconfig.h create mode 100644 kshutdownlockout/Makefile.am create mode 100644 kshutdownlockout/kshutdownlockout.desktop create mode 100644 kshutdownlockout/lockout.cpp create mode 100644 kshutdownlockout/lockout.h create mode 100644 pics/Makefile.am create mode 100644 pics/hi32-app-kshutdown.png create mode 100644 pics/hi48-app-kshutdown.png create mode 100644 pics/kshutdown.svg create mode 100644 po/Makefile.am create mode 100644 po/README create mode 100644 po/ar.po create mode 100644 po/bg.po create mode 100644 po/cs.po create mode 100644 po/de.po create mode 100644 po/el.po create mode 100644 po/es.po create mode 100644 po/fr.po create mode 100644 po/hu.po create mode 100644 po/it.po create mode 100644 po/nl.po create mode 100644 po/pl.po create mode 100644 po/pt_BR.po create mode 100644 po/ru.po create mode 100644 po/sk.po create mode 100644 po/sv.po create mode 100644 po/tr.po create mode 100644 po/zh_CN.po create mode 100644 sounds/1m.ogg create mode 100644 sounds/5m.ogg create mode 100644 sounds/COPYRIGHT create mode 100644 sounds/Makefile.am create mode 100644 sounds/eventsrc create mode 100644 stamp-h.in create mode 100644 subdirs 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. + + + Copyright (C) + + 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. + + , 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 +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 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 , 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 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 ], [${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 + 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 +# include +# define environ (*_NSGetEnviron()) +#endif +]) + +AH_VERBATIM(_AIX_STRINGS_H_BZERO, +[ +/* + * AIX defines FD_SET in terms of bzero, but fails to include + * that defines bzero. + */ + +#if defined(_AIX) +#include +#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 +#include +#else +#include +#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 +#ifdef STDC_HEADERS +# include +#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 < +#include +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext < +#include +#include +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <> conftest.$ac_ext < +#include +#include +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <> conftest.$ac_ext <&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 + +NewConnectionDialog + + + + testInput + + + + +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 < +#endif +#include +#include "confdefs.h" +#include + +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 + ], + [ + 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(, [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 +], + [setenv("VAR", "VALUE", 1);], + [int setenv (const char *, const char *, int)], + [SETENV]) +]) + +AC_DEFUN([AC_CHECK_UNSETENV], +[ + KDE_CHECK_FUNC_EXT(unsetenv, [ +#include +], + [unsetenv("VAR");], + [void unsetenv (const char *)], + [UNSETENV]) +]) + +AC_DEFUN([AC_CHECK_GETDOMAINNAME], +[ + KDE_CHECK_FUNC_EXT(getdomainname, [ +#include +#include +#include +], + [ +char buffer[200]; +getdomainname(buffer, 200); +], + [#include + int getdomainname (char *, size_t)], + [GETDOMAINNAME]) +]) + +AC_DEFUN([AC_CHECK_GETHOSTNAME], +[ + KDE_CHECK_FUNC_EXT(gethostname, [ +#include +#include +], + [ +char buffer[200]; +gethostname(buffer, 200); +], + [int gethostname (char *, unsigned int)], + [GETHOSTNAME]) +]) + +AC_DEFUN([AC_CHECK_USLEEP], +[ + KDE_CHECK_FUNC_EXT(usleep, [ +#include +], + [ +usleep(200); +], + [int usleep (unsigned int)], + [USLEEP]) +]) + + +AC_DEFUN([AC_CHECK_RANDOM], +[ + KDE_CHECK_FUNC_EXT(random, [ +#include +], + [ +random(); +], + [long int random(void)], + [RANDOM]) + + KDE_CHECK_FUNC_EXT(srandom, [ +#include +], + [ +srandom(27); +], + [void srandom(unsigned int)], + [SRANDOM]) + +]) + +AC_DEFUN([AC_CHECK_INITGROUPS], +[ + KDE_CHECK_FUNC_EXT(initgroups, [ +#include +#include +#include +], + [ +char buffer[200]; +initgroups(buffer, 27); +], + [int initgroups(const char *, gid_t)], + [INITGROUPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMPS], +[ + KDE_CHECK_FUNC_EXT(mkstemps, [ +#include +#include +], + [ +mkstemps("/tmp/aaaXXXXXX", 6); +], + [int mkstemps(char *, int)], + [MKSTEMPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMP], +[ + KDE_CHECK_FUNC_EXT(mkstemp, [ +#include +#include +], + [ +mkstemp("/tmp/aaaXXXXXX"); +], + [int mkstemp(char *)], + [MKSTEMP]) +]) + +AC_DEFUN([AC_CHECK_MKDTEMP], +[ + KDE_CHECK_FUNC_EXT(mkdtemp, [ +#include +#include +], + [ +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 +#include +#include +#include + ], + [ + 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 +#include +#include +#include + ], + [res_init()], + [int res_init(void)], + [RES_INIT]) +]) + +AC_DEFUN([AC_CHECK_STRLCPY], +[ + KDE_CHECK_FUNC_EXT(strlcpy, [ +#include +], +[ 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 +], +[ 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 +#include +#include +#include +#include +], +[ +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 +#include +#include +#include +], +[ +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 ], + [ + 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 +], +[ + 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 +], + [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 + ], + [ + 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_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 + ], + [ + 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 + +#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 + 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 + ], + [ + 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 +#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 + #include + ], + [ + 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 + #include + ], + [ + $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 , 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 . +# Ulrich Drepper , 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 ], [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 , 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 + ], + [ + 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 ],[], + 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 + #include + #include + #include + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + ac_cv_have_dpms="yes", [ + LIBS="-lXdpms $LIBS" + AC_TRY_LINK([ + #include + #include + #include + #include + 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 ]) + AC_CHECK_DECL(DPMSCapable, + AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),, + [#include + #include ]) + AH_TEMPLATE(HAVE_DPMSINFO_PROTO, + [Define if you have the DPMSInfo prototype in ]) + AC_CHECK_DECL(DPMSInfo, + AC_DEFINE(HAVE_DPMSINFO_PROTO),, + [#include + #include ]) + 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 +#include +], [], + 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 ],[(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 +],[ + 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 +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 +#include +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 +], +[ +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 < +#endif +#include +#include +#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 + ], + [ + #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 < +#include + +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 +], + [ 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 + ], + [ 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 < +#include + 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 , 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 , 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 , 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 </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 < +#endif + +#include + +#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.so + # instead of lib.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 <&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 &1 /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 < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$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 , 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 < $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 < 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 <> 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 <&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 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 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 <&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 +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #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 +# 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 /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 header file. */ +#undef HAVE_CARBON_CARBON_H + +/* Define if you have the CoreAudio API */ +#undef HAVE_COREAUDIO + +/* Define to 1 if you have the 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 header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the 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 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 header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the 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 header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the 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 + * that defines bzero. + */ + +#if defined(_AIX) +#include +#endif + + + +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include +# include +# 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 +#include +#else +#include +#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 @@ + +KShutDown"> + + + + +]> + + + + + Das &kmyapplication; Handbuch + + + + Konrad + Twardowski + + kdtonline@poczta.onet.pl + + + + 2005 + Konrad Twardowski + + &FDLNotice; + 2005-11-24 + 1.08.00 + + &kmyapplication; ist ein Programm zum erweiterten Herunterfahren in &kde;. + + + KDE + kshutdown + shutdown + shut + down + poweroff + reboot + lock + halt + exit + logout + + + + + Einführung + &kmyapplication; ist ein Programm zum erweiterten Herunterfahren in &kde;. + + Fähigkeiten: + + Computer abschalten (ausloggen und anhalten des Systems) + Computer Neustart (ausloggen und neu booten des Systems) + Sitzung sperren (sperrt den Bildschirm mit dem Bildschirmschoner) + Beendet aktive Sitzung (Beendet die aktive Sitzung in &kde; und loggt den Benutzer aus) + Extras (zusätzliche, Benutzereingaben) + Zeit und Verzögerungsoptionen + Kommandozeilen- und DCOP- Unterstützung + System tray + Visuelle und Klangbenachrichtigungen + &kde; Kiosk Unterstützung + + + + + + Benutzen von &kmyapplication; + + Hauptfenster + + Benutzen Sie das erste Aufklappmenü um eine Aktion auszuwählen (Computer ausschalten, Extras, usw). + Benutzen Sie das zweite Aufklappmenü um die Verzögerung einzustellen (Keine, Zeit ab jetzt, usw). + Klicken Sie den Start Knopf um eine ausgewählte Aktion zu aktivieren. Die Aktion wird zur angegebenen Zeit gestartet. + Klicken Sie den Stop Knopf oder die Esc Taste um die Aktion zu stoppen. + + + &kmyapplication; Hauptfenster + + + + + + Hauptfenster + + + + + + System Tray + + Linker Mausknopf - versteckt/zeigt Hauptfenster + Mittlerer Mausknopf - zeigt das Menü mit den Aktionen (Keine Verzögerung!) + Rechter Mausknopf - Zeigt das Kontextmenü + + + + + + Kommandozeile + + +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 + + + + + Kiosk + + &kde; Kiosk erlaubt Ihnen die Kontrolle über sämtliche kritische Funktionen, wie zum Beispiel Computer Ausschalten oder Computer neu starten. Wollen Sie diese Restriktionen einschalten, können Sie eine globale Konfigurationsdatei namens kshutdownrc im allgemeinen &kde; Verzeichnis anlegen. Dieses liegt in ([prefix]/share/config). + + + In den meisten Fällen müssen Sie &kmyapplication; neu starten damit die neuen Einstellungen übernommen werden. + + + Seit Version 0.3.1 Beta ist allen Schlüsseln eine "kshutdown_" Zeichenkette vorangestellt. + + +Beispiel kshutdownrc Datei mit den Einschränkungen + +[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 <- "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 + + + + + + DCOP API (KShutdownIface) + + Einführung + + Achten Sie darauf das &kmyapplication; gestartet ist. + Tippen Sie kshutdown --init zum Starten von &kmyapplication; ohne Hauptfenster. + Zum Auflisten aller DCOP Functionen, tippen Sie dcop kshutdown KShutdownIface. + Mit dcop kshutdown MMainWindow hide verstecken Sie das Hauptfenster. + Mit dcop kshutdown MMainWindow show machen Sie das Hauptfenster wieder sichtbar. + + + + Funktionen + + ASYNC cancel() + Stoppt eine aktive Aktion. + + + bool shutDown(), bool shutdown() + Fährt das System herunter. + + + bool reboot() + Startet den Rechner neu. + + + bool lockScreen() + Sperrt den Bildschirm. + + + bool logout() + Beendet die Sitzung und meldet den Benutzer ab. + + + ASYNC configure() + [Seit 0.6] Zeigt den Einstellungen Dialog. + + + QString getStatusInfo() + Zeigt &kmyapplication; Status Informationen. + + + ASYNC makeVisible() + [Since 0.6] Macht das Hauptfenster auf der aktuellen Arbeitsfläche sichtbar. + + + ASYNC setTestMode(bool yes) + De-/aktiviert den Testmodus. + + Aktiviert Testmodus + dcop kshutdown KShutdownIface setTestMode true + + + Deaktiviert Testmodus + dcop kshutdown KShutdownIface setTestMode false + + + + + + + Danksagung und Lizenz + &kmyapplication; + + Program Copyright 2005 Konrad Twardowski + kdtonline@poczta.onet.pl + + + Documentation Copyright © 2005 Konrad Twardowski + kdtonline@poczta.onet.pl + + Czech FAQ Copyright © Robert Kratky + Siehe Hilfe | Über &kmyapplication; für mehr Informationen. + &underFDL; + &underGPL; + + +&documentation.index; + + diff --git a/doc/de/mainwindow.png b/doc/de/mainwindow.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7a104bd0821fb23b698542264bb1abf09274e5 GIT binary patch literal 11222 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 HwFvrOUEi^` literal 0 HcmV?d00001 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 @@ + +KShutDown"> + + + + +]> + + + + + The &kmyapplication; Handbook + + + + Konrad + Twardowski + + kdtonline@poczta.onet.pl + + + + 2005 + Konrad Twardowski + + &FDLNotice; + 2006-04-22 + 1.09.00 + + &kmyapplication; is an advanced shut down utility for &kde;. + + + KDE + kshutdown + shutdown + shut + down + poweroff + reboot + lock + halt + exit + logout + + + + + Introduction + &kmyapplication; 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 + Visual and sound notifications + &kde; Kiosk support + + + + + + Using &kmyapplication; + + Main Window + + Use the first combo box to select an action (turn off computer, extras, etc). + Use the second combo box to select a delay type (no delay, time from now, etc). + Click the Start button to activate the selected action. The action will be executed at the selected time. + Click the Stop button or press Esc key to cancel an active action. + + + &kmyapplication; main window + + + + + + Main window + + + + + + System Tray + + Left mouse button - hide/show main window + Middle mouse button - show menu with Actions (no delay!) + Right mouse button - show context menu + + + + + + Command Line + + +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 <file> 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 + + + + + Kiosk + + &kde; Kiosk allows you to control some critical features, such as Turn Off Computer or Restart Computer commands. To enable restrictions, you need to create a global configuration file - kshutdownrc in your global &kde; directory ([prefix]/share/config). + + + In some cases you need to restart &kmyapplication; to see effects. + + + Since version 0.3.1 Beta all Kiosk keys are prefixed with a "kshutdown_" string. + + +Example kshutdownrc file with restrictions + +[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 <- "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 + + + + + + DCOP API (KShutdownIface) + + Introduction + + Make sure &kmyapplication; is running. + Type kshutdown --init to start &kmyapplication; without displaying its main window. + To display all DCOP functions, type dcop kshutdown KShutdownIface. + Run dcop kshutdown MMainWindow hide to hide the main window. + Run dcop kshutdown MMainWindow show to restore the main window. + + + + Functions + + ASYNC cancel() + Cancels the active action. + + + bool shutDown(), bool shutdown() + Shuts down the system. + + + bool reboot() + Reboots the system. + + + bool lockScreen() + Locks the screen using a screen saver. + + + bool logout() + Logouts the current user and ends the session. + + + ASYNC configure() + [Since 0.6] Shows the settings dialog. + + + QString getStatusInfo() + Returns a &kmyapplication; status information. + + + ASYNC makeInvisible() + [Since 0.9 Beta] Hiddes the main window and its system tray icon. + + + ASYNC makeVisible() + [Since 0.6] Shows and raises the main window. The window will be visible on the current desktop. + + + ASYNC setTestMode(bool yes) + Enables/disables the test mode. + + Enable test mode + dcop kshutdown KShutdownIface setTestMode true + + + Disable test mode + dcop kshutdown KShutdownIface setTestMode false + + + + + + + Credits and License + &kmyapplication; + + Program Copyright 2005 Konrad Twardowski + kdtonline@poczta.onet.pl + + + Documentation Copyright © 2005 Konrad Twardowski + kdtonline@poczta.onet.pl + + Czech FAQ Copyright © Robert Kratky + See Help | About &kmyapplication; for more credits. + &underFDL; + &underGPL; + + +&documentation.index; + + diff --git a/doc/kshutdown/mainwindow.png b/doc/kshutdown/mainwindow.png new file mode 100644 index 0000000000000000000000000000000000000000..e6ff3e8ebe4c0cfd69dfd6c5a1f44fe14e40289b GIT binary patch literal 20976 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 x=0 y=0 +image x=0 y=0 path="kshutdown-48x48.png" +clickarea x=0 y=0 w=48 h=48 onclick="kshutdown" + 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 + + 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" + 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} < 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 +- 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 +- italian translation patch applied + +* Sat Nov 24 2007 Andrea Florio +- Packman porting + +* Wed Apr 18 2007 Pascal Bleser 1.0-1 +- new upstream version + +* Sun Feb 18 2007 Pascal Bleser 0.8.2-1 +- new package + +* Sat Nov 26 2005 Konrad Twardowski +- updated description + +* Mon Aug 1 2005 Konrad Twardowski +- removed "kdebase" from "Requires" + +* Mon Apr 4 2005 Konrad Twardowski +- 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 @@ + + + + Konrad Twardowski + kdtonline@poczta.onet.pl + KDevKDEAutoProject + C++ + + KDE + Qt + + . + false + 1.0.4 + An advanced shut down utility for KDE. + + kdevabbrev + kdevkonsoleview + kdevfilelist + kdevfileview + kdevdistpart + kdevopenwith + kdevpartexplorer + kdevregexptest + kdevreplace + kdevscripting + kdevfilter + kdevastyle + kdevtexttools + kdevtools + + + kdevsubversion + kshutdown + + + + + kshutdown + default + + + + + + true + 1 + false + + + + + + 0 + false + + + + \s-O0 -g3 -Wall + + + executable + / + /home/kdt/Documents/src/kshutdown/trunk/kshutdown/kshutdown/kshutdown + --nofork --test + false + true + + + /home/kdt/Documents/src/kshutdown/trunk/kshutdown + true + false + true + + + + --prefix=`kde-config --prefix` --enable-debug=full + + + + + kdevgccoptions + kdevgppoptions + kdevpgf77options + + + + -O0 + -O0 + + + + + + + + + + + + + false + false + + + * + true + true + + + + + gtk + gnustep + python + php + perl + ada + w3c-dom-level2-html + gnome1 + haskell + kde2book + kdev3api + opengl + ruby + w3c-svg + sdl + stl + sw + w3c-uaag10 + clanlib + ada_bugs_gcc + bash_bugs + c++_bugs_gcc + fortran_bugs_gcc + gtk_bugs + haskell_bugs_ghc + java_bugs_gcc + pascal_bugs_fp + perl_bugs + php_bugs + python_bugs + ruby_bugs + wxwindows_bugs + java_bugs_sun + wxwidgets_bugs + + + html/ + html/ + + + Guide to the Qt Translation Tools + qmake User Guide + Qt Assistant Manual + Qt Designer Manual + + + + + gdk-pixbuf + pango + libbonoboui + libbonobo + gtk + gobject + gnome-vfs + glib + gdk + bonobo-activation + + + + + libtool + + + + + + true + false + false + + + false + true + 10 + + + + + + + + + + + + + .h + .cpp + + + + + true + true + true + true + true + true + true + 250 + 400 + 250 + false + 0 + true + true + false + std=_GLIBCXX_STD;__gnu_cxx=std + true + false + false + false + true + true + true + false + .; + + + + + set + m_,_ + theValue + true + true + + + false + 3 + /usr/share/qt3 + 3 + EmbeddedKDevDesigner + /usr/bin/qmake-qt3 + + + + + false + true + Vertical + + + + -f + + + + -dP + -f + -C -d -P + -u3 -p + + + + true + true + true + true + -C + + + false + false + + + + + + +

+ + + + + false + false + false + 0 + false + false + false + false + + + + + + + + + + + + /home/kdt/Documents/src/kshutdown/trunk/kshutdown/tags + + + + VisualBoyAdvance + + + false + false + -f0 + -1 + + 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 +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 +- removed "kdebase" from "Requires" + +* Mon Apr 4 2005 Konrad Twardowski +- 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 + + 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 +#include + +#include +#include +#include +#include +#include +#include + +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 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(); + #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 + + 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 + +// 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 test mode. + * @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 total exit info to @p yes. + */ + inline void setTotalExit(const bool yes) { _totalExit = yes; } +private: + static Action *_instance; + bool + _active, + _testMode, + _totalExit; + QMap *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 + + 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 + +#include "appobserver.h" +#include "miscutils.h" +#include "mmainwindow.h" + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +// 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()), + _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 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 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

%1").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 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
%1?

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
%1").arg(cb_processes->currentText())) + ); + break; + case EPERM: + KMessageBox::error( + ks_main, + MiscUtils::HTML(i18n("No permissions to kill
%1").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 + + 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 + +#include + +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 *_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 + + 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 + + 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 + +#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 + + 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 +#include +#include +#include +#include +#include + +// 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?

Selected Action: %1
Selected Time: %2") + .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 + + 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 + + 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 + +#include "extras.h" +#include "miscutils.h" +#include "mmainwindow.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 *Extras::getIdToFileMap() +{ + if (!_idToFileMap) + _idToFileMap = new QMap; + + return _idToFileMap; +} + +// public slots + +void Extras::slotModify() +{ + KMessageBox::information( + 0, + MiscUtils::HTML( + i18n("Use context menu to add/edit/remove links.") + + "
    " + + "
  • " + i18n("Use Context Menu to create a new link to application") + "
  • " + + "
  • " + i18n("Use Create New|Folder... to create a new submenu") + "
  • " + + "
  • " + i18n("Use Properties to change icon, name, or comment") + "
  • " + + "
" + ), + 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::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 + + 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 +#include + +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 *_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 *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 + + 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 + +/** + * @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 Shut Down action. + */ + virtual bool shutDown() = 0; + + /** + * @see shutDown + */ + virtual bool shutdown() = 0; + + /** + * Executes the @b Reboot" action. + */ + virtual bool reboot() = 0; + + /** + * Executes the Lock Screen 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 @@ + +kshutdowniface.h +dcopobject.h + + KShutdownIface + DCOPObject + + ASYNC + cancel + + + bool + shutDown + + + bool + shutdown + + + bool + reboot + + + bool + lockScreen + + + bool + logout + + + ASYNC + configure + + + QString + getStatusInfo + + + void + makeInvisible + + + ASYNC + makeVisible + + + ASYNC + setTestMode + boolyes + + + 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 +#include + + +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* fdict = 0; + if ( !fdict ) { + fdict = new QAsciiDict( 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 + +#include + + +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 +#include + + +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 + + 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// 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 %1!").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 %1!").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 + + 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 + +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 .desktop file. + * @param path A path to the .desktop 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 .desktop file. + * @param path A .desktop 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 + + 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 +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +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)") + "
" \ + "
    " \ + "
  • " + i18n("If you are using KDE and KDM (KDE Display Manager), then set all methods to KDE") + "
  • " \ + "
  • " + i18n("If you are using KDE and display manager different than KDM, then set Turn Off Computer and Restart Computer methods to /sbin/...") + "
  • " \ + "
" + + i18n("Manuals:") + + "" \ + ) + ); + + 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 + + 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 + +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 + + 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 + +#include +#include +#include +#include +#include + +// 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 ", 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: %1").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 + + 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 + +#include "configuration.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "msystemtray.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 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 + + 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 + +#include + +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 ("" + text + ""); + } + + inline static QString HTML(QString &text) { + text.prepend(""); + text.append(""); + + 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. "Shut Down") + */ + 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 Test Mode. + * @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 + + 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 +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 Select a command... 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("" + KGlobal::locale()->formatDateTime(dt_end, false, true)+ ""); + QString curDT = i18n("Current date/time: %1").arg("" + KGlobal::locale()->formatDateTime(dt_start, false, true) + ""); + + cancel(); + KMessageBox::error( + 0, + MiscUtils::HTML( + i18n("Selected date/time is earlier than current date/time!") + + "

" + + selDT + "
" + + curDT + "
" \ + "
" + + 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 = "
"; + s += i18n("Remaining time: %1").arg(remainingTime.isNull() ? i18n("Unknown") : remainingTime) + "
"; + s += i18n("Selected time: %1").arg(selectedTime) + "
"; + s += i18n("Selected action: %1").arg(ks_actions->getCurrentName()) + "
"; + if (ks_actions->testMode()) + { + s += "
" + i18n("Note: The test mode is enabled") + "
"; + } + } + else { + s = ""; + } + if (MSystemTray::isInstance()) { + QToolTip::add( + ks_tray, + MiscUtils::HTML("KShutDown
" + s) + ); + } + if (ProgressBar::isInstance()) { + QToolTip::add( + ProgressBar::getInstance(), + MiscUtils::HTML("KShutDown
" + 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("" + getTimeInfo() + ""); +} + +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 + + 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 + +#include + +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 + + 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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +// 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 + + 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 + +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 + + 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 + "

SuperKaramba

" \ + // themes + "" + i18n("Show KShutDown Themes") + "
" \ + // home page + "" + i18n("SuperKaramba Home Page") + "" \ + ); + 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.") + + "
    " \ + "
  • %appname KShutDown
  • " \ + "
  • %text " + i18n("A message text") + "
  • " \ + "
  • %title " + i18n("The current main window title") + "
  • " \ + "
" + ) + ); + 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 " \ + "Do not show this message again 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(_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 + + 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 + +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 + + 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 +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +// 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.
" \ + "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", "
"); + _buf.replace(" ", " "); + + #define KS_HEADER(text) \ + _buf.replace(text, "" text ""); + + #define KS_WARNING(text) \ + _buf.replace(QRegExp("\\b" text "\\b"), "" text ""); + + // 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("
");
+	_buf.append("
"); + + 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 = "" + i18n("Error") + "

"; + _buf.append(i18n("Command: %1").arg(_process->arguments().join(" "))); + _buf.append("
"); + 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 + + 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 + +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 + + 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 + +#include +#include +#include +#include +#include +#include +#include +#include + +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 + + 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 + +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 + + 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 + +#include + +// 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 = ""; + leftCell += ""; + leftCell += ""; + } + setText(MiscUtils::HTML( + "" \ + "" + leftCell + "" \ + "
" + value + "
" + )); +} + +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 + + 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 + +/** @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 + + 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 +#include +#include + +#include +#include +#include +#include + +#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 + + 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 + +#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 + + 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 + +#include "miscutils.h" +#include "systemconfig.h" + +#include +#include + +#include +#include +#include +#include + +// http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=417301 +#include + +// 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 + + 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 + +class KListView; +class KListViewItem; + +/** @short A system configuration manager. */ +class SystemConfig: KDialogBase +{ + Q_OBJECT +public: + /** + * Returns @c true if the shut down 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 + 2001 Matthias Elter + 2001 Martijn Klingens + + KShutDown Branch: + 2005 Stephen Ellwood + 2005 Konrad Twardowski + +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 + +#include "lockout.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 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, + "" \ + "KShutDown

" + + i18n("Click for KShutDown main window
Click and hold for menu") + + "
" + ); +} + +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 + +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 0000000000000000000000000000000000000000..b03dddb3e2c5a188db82340eab42a47b1813c026 GIT binary patch literal 2082 zcmV+-2;KLIP)T7FjHFM!`i8gz>x^mM_oG|N8pDyHrL3#h7QikZ(sbK82a|xdPxu%1DK!V z*r}Qt77mAJ0Xy5<+4zSaGI8@}#>&bV+q#vp@^Z#@?P7t73fBMWr_6fk5(@+Z@_&*f zu{#Y7EX4DXDxs8pV=~px;8Fmvc6R1xeeuO9VR)DVz)u@CU{6yM6bc0Z!0+?HU0;ud zb#>5;jDP@uLJ?U!4=5C%gkYi93;q53=;1iB)U&{9+^HLY!(YbMkA6JEC3+{bnRMr%w}jOCSdS->0?3Aw%F|#NJmG9E~&M( zVkRa1@4kzI6)OM$k|e?R_19SN>#qQ%03iUS2oZutqY?S%&SBZ9Q@FNm8zi2O*hK9L zMG*rhPr~o_0|4{}1ExOySU&RNv9XHn+qdfowcB?jU%##ffCmZ%UU~n0*=Vw(11U{S zPaQ|s6}KC^j~#j!>g5*7)ecyvs)Vs;$};W>~GPk<6ZJYy`*HEcT!jQ-r`^FvyOzS}jD4CeDuMdGPJ+2m}I=0Q7oH zzWzD@Kp76B)NbEGgrT8TGmePKBs+CYOklx{8*!{aDJaj!RS}6jf|#RNsnx>r`|q+H zjlszBcvcbOcIU{-f&y77_Vs}V0&%QBDQL7hVudOcadw~-NlGQ$gM&{4jls|agE<6& zK#HtPOOussY%C#r5E5bgYyi(@ASM`TdK!r^cu7hj5@YfPM~M6_B{=)%Wq>FYi36q- zk|ZU>V3Gt9rgTzPPE5$ka9Y}&4inu0`b-(d+K1I@B*F*)lO(8C+hk>L?^8y(xd_hO z>}MR4x$Z!MU|pgJZM5_Nfa~j%zo$6PMqKIX7I~+wP5v}wW@2>t^8c?2C`H@Y7}l1S zJ`JF?RsOb7Y9WKGS6>b(l>mVJt}gWV_X7ZUo=5Plw;;_hi%F|ap@7Tfk{yLYAt*wj zI6D!5FFzmZ=n;549%wIK1OWIr4$UgnW#ZQ9nnw!@eE_i78Usb7mqa4@F0YGb2RpZ7p zXWj#V{Y@nb*`A}^pIKoSHD>vT{hB_ZAC12^+J3IZSq z`1j~2mQ+{c6{9i2*y90PzaE;-P5{6sI^D^-si_(Q0M^pduSRooMF7ZiIx%qM2t-kg z+=cXXq<;Q6ZoT|6!ZGX!rC1UOAj9pBlvYgIe;gT^1ujVvymfUl_;o=L&!|*i0nvV- zxw(0K)2>~*T&s0Gkt8hY>q8qM$T69~aU7D8laW?dhTD{4bZ7{v00cphpJpf&a7hxb zIGyNTvIOOa4$03sV+`YFGxQ&Q1TGv#kmGPXDe0Tv#>daf0RTX8Wn~-n`**!GIG9cu zL*}(>xIqZAOG`nc56eph1u$&ehVJZa^lCI1P^H}t z$IWIetgZ&}`2YZa(`c-JSE=6ddc9&?Db*f7p4+uzh1`^il(Jh@Rc!3hqyM=n^|;;4 zar7vgY4aGs%u1yrL$6QVl+MWU!-tD4M&qoud}Q%r*4fa&>~{OSz%G}I{pW`tn7gQG zR$FdXDjiGp`na|{;b3z3gAa1wXl*rbzI(Tj4~OObiHr<5O(xJyn?MT+K%#>Qi5W~5 zT)G5J%w*xhPD!aZ7z}fc zX7kG4%F6ujN=h1UWMz5%F+;{&%gb@>qFU|!BsH~hQC8Nx!)d}JNF+OV?$qg~r+2J- z^k_@w^zR~P5=M^ M07*qoM6N<$g6osxApigX literal 0 HcmV?d00001 diff --git a/pics/hi48-app-kshutdown.png b/pics/hi48-app-kshutdown.png new file mode 100644 index 0000000000000000000000000000000000000000..a71ed470c3e7fc07754851870e0c74000acb02d7 GIT binary patch literal 3502 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 + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + 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: +text - bold text +text - italic text +
- 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 , 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 \n" +"Language-Team: \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.
The header shows how long the system has been running." +msgstr "هذا العرض يظهر معلومات المستخدمين على الجهاز, وعملياتهم.
التروسية تظهر كم مدة من الزمن بقي النظام قيد التشغيل." + +#: ../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 Context Menu to create a new link to application" +msgstr "استخدم قائمة السياق لإنشاء وصلة جديدة للتطبيق" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "استخدم إنشئ مجلد|جديد... لإنشاء قائمة فرعية جديدة" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "استخدم خصائص لتغيير أيقونة, اسم, أو تعليق" + +#: ../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 %1!" +msgstr "لا يمكن إنشاء ملف %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "لا يمكن إزالة ملف %1!" + +#: ../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: %1" +msgstr "وقت غير صالح: %1" + +#: ../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 Do not show this message again 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 Select a command... 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 +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: %1" +msgstr "الوقت المتبقي: %1" + +#: ../kshutdown/mmainwindow.cpp:651 +#: ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "مجهول" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "الوقت المختار: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "الإجراء المختار: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "ملاحظة: نمط الاختبار ممكن" + +#: ../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 KDE and KDM (KDE Display Manager), then set all methods to KDE" +msgstr "إذا كنت تستعمل KDE وKDM، استعمل KDE قي كل الوظائف." + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "If you are using KDE and display manager different than KDM, then set Turn Off Computer and Restart Computer methods to /sbin/..." +msgstr "إذا كنت تستعمل KDE ومدير جلسات غير KDM، اكتب /sbin في خانات إغلاق الحاسوب و<أعد تشغيل الحاسوب" + +#: ../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

%1" +msgstr "لا يمكن تنفيذ الأمر

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "Are you sure you want to KILL
%1?

All unsaved data will be lost!" +msgstr "هل تريد حقا إنهاء باستعمال KILL البرنامج
%1?

شتضيع بذلك كل البيانات غير المحفوظة!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "العملية غير موجودة
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "لا توجد أذون لقتل
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "هل أنت متأكد؟

الإجراء المختار: %1
الوقت المختار: %2" + +#: ../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
Click and hold for menu" +msgstr "" +"انقر للوصول إلى النافذة اﻷساسية لKShutDown
" +"انقر واضغط من أجل قائمة الخيارات." + +#: ../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 , 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 \n" +"Language-Team: Bulgarian \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.
The header shows how long the system has been running." +msgstr "Този изглед показва информацията за текущите потребители на компютъра и процесите.
Най-отгоре се показва колко време е работил компютъра." + +#: ../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 Context Menu to create a new link to application" +msgstr "Използвайте контекстното меню за създаване на нова връзка към програма" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Използвайте Създаване на нова|директория... за създаване на подменю" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Използвайте Настройки за смяна на иконата, името или коментара" + +#: ../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 %1!" +msgstr "Файлът %1 не беше създаден!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Файлът %1 не беше премахнат!" + +#: ../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: %1" +msgstr "Невалидно време: %1" + +#: ../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 Do not show this " +"message again 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 Select a command... 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 +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: %1" +msgstr "Оставащо време: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Неизвестно" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Време: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "Действие: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Забележка: Включен е тестов режим" + +#: ../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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "Ако използвате KDE и KDM (KDE Display Manager), тогава настройте всички методи на KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Ако използвате KDE и мениджърът не е KDM, тогава настройте методите за Изключване на компютъра и Рестартиране на компютъра на /" +"sbin/..." + +#: ../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

%1" +msgstr "Невъзможно изпълнение на команда

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "Сигурни ли сте, че искате да убиете
%1?

Незаписаните данни ще бъдат загубени!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Не е намерен процес
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Нямате праза за убиване на
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Сигурни ли сте?

Действие: %1
Време: %2" + +#: ../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
Click and hold for menu" +msgstr "Щракнете да се покаже главният прозорец на KShutDown
За менюто натиснете и задръжте" + +#: ../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 , 2004, 2008. +# Robert Kratky , 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 \n" +"Language-Team: čeština \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

%1" +msgstr "Nelze provést příkaz

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Opravdu chete ZABÍT
%1?

Všechna neuložená data budou " +"ztracena!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Proces nebyl nalezen
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Nemám oprávnění k ukončení
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Jste si jistí?

Zvolená akce: %1
Zvolený čas: %2" + +#: ../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 Context Menu to create a new link to application" +msgstr "Použijte kontextové menu k vytvoření nového odkazu na aplikaci" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Použijte Vytvořit nový|Složka... k vytvoření nového podmenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Použijte Vlastnosti 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 %1!" +msgstr "Soubor %1 nelze vytvořit!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file %1!" +msgstr "Soubor %1 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Používáte-li KDE a KDM (správce sezení KDE), nastavte všechny " +"metody na KDE." + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Používáte-li KDE a jiného správce sezení než KDM, nastavte " +"metody Vypnout počítač a Restartovat počítač na /sbin/...." + +#: ../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: %1" +msgstr "Neplatný čas: %1" + +#: ../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 "%1 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 Select a command... button first." +msgstr "Nejprve klikněte na tlačítko Zvolit příkaz..." + +#: ../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: %1" +msgstr "Zbývá: %1" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: %1" +msgstr "Zvolený čas: %1" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: %1" +msgstr "Zvolená akce: %1" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "Note: The test mode is enabled" +msgstr "Poznámka: 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 Do not show this " +"message again feature." +msgstr "" +"Povolit všechna upozornění, která byla vypnuta pomocí Tuto zprávu již " +"nezobrazuj." + +#: ../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.
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.
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
Click and hold for menu" +msgstr "Kliknutím zobrazíte hlavní okno KShutDown
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 , 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 \n" +"Language-Team: Deutsch \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.
The header shows how long the system has been running." +msgstr "" +"Diese Ansicht zeigt Informationen über die momentan angemeldeten Benutzer " +"und deren laufende Prozesse.
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 Context Menu to create a new link to application" +msgstr "" +"Benutze das Kontextmenü um einen neuen Verweis zu einem Programm " +"anzulegen." + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Benutze Neu | Verzeichnis... um ein Untermenü zu erstellen" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "" +"Benutze Eigenschaften 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 %1!" +msgstr "Konnte Datei %1 nicht erstellen!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Konnte Datei %1 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: %1" +msgstr "Ungültige Zeitangabe: %1" + +#: ../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 Do not show this " +"message again feature." +msgstr "" +"Alle Nachrichten die mit der Funktion Diese Nachricht nicht mehr " +"anzeigen 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 Select a command... 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: %1" +msgstr "Verbleibende Zeit: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Unbekannt" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Ausgewählte Zeit: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "Ausgewählte Aktion:%1 " + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Hinweis: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Falls Sie KDE und KDM (KDE Display Manager) benutzen, stellen " +"Sie alle Methoden auf KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Falls Sie KDE und einen anderen Displaymanager als KDM " +"verwenden, dann setzen sie die Methoden fürHerunterfahren und " +"Neustarten auf /sbin/..." + +#: ../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

%1" +msgstr "Konnte Befehl nicht ausführen:

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Sind Sie sicher, dass sie
%1 beenden wollen? Alle ungespeicherten " +"Daten dieses Programms würden verloren gehen!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Prozess nicht gefunden:
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Keine Berechtigungen um den Prozess zu beenden:
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Sind Sie sicher?

Ausgewählte Aktion: %1
Ausgewählte Zeit: %2" + +#: ../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
Click and hold for menu" +msgstr "Klicken um das KShutDown-Hauptfenster anzuzeigen.
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 , 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 \n" +"Language-Team: Greek \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.
The header shows how long the system has been running." +msgstr "" +"Εδώ εμφανίζονται πληροφορίες σχετικά με τους χρήστες που είναι συνδεδεμένοι " +"στο μηχάνημα, και τις διεργασίες τους.
Η επικεφαλίδα δείχνει την ώρα " +"λειτουργίας του συστήματος." + +#: ../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 Context Menu to create a new link to application" +msgstr "" +"Χρησιμοποιήστε το σχετικό μενού για να δημιουργήσετε ένα νέο δεσμό σε " +"εφαρμογή" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "" +"Χρησιμοποιήστε το Δημιουργία νέου/Φάκελος... για να δημιουργήσετε ένα " +"νέο υπομενού" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "" +"Χρησιμοποιήστε τις Ιδιότητες για να αλλάξετε το εικονίδιο, το όνομα ή " +"το σχόλιο" + +#: ../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 %1!" +msgstr "Αδύνατη η δημιουργία του αρχείου %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Αδύνατη η αφαίρεση του αρχείου %1!" + +#: ../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: %1" +msgstr "Μη έγκυρος χρόνος: %1" + +#: ../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 Do not show this " +"message again 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 Select a command... 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 +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: %1" +msgstr "Υπολειπόμενος χρόνος: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Άγνωστο" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Επιλεγμένος χρόνος: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "Επιλεγμένη ενέργεια: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Σημείωση: Η δοκιμαστική λειτουργία είναι ενεργοποιημένη" + +#: ../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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Αν χρησιμοποιείτε το KDE και το KDM (Διαχειριστής συνεδρίας " +"του KDE), ορίστε όλες τις μεθόδους σε KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Αν χρησιμοποιείτε το KDE και διαχειριστή συνεδρίας διαφορετικό του " +"KDM, ορίστε τις μεθόδους Κλείσιμο υπολογιστή και " +"Επανεκκίνηση υπολογιστή σε /sbin/..." + +#: ../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

%1" +msgstr "Αδύνατη η εκτέλεση της εντολής

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Είστε σίγουροι ότι θέλετε να ΣΚΟΤΩΣΕΤΕ το
%1;

Όλα τα μη " +"αποθηκευμένα δεδομένα θα χαθούν!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Δε βρέθηκε η διεργασία
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Δεν έχετε άδεια να σκοτώσετε το
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "" +"Είστε σίγουροι;

Επιλεγμένη ενέργεια: %1
Επιλεγμένος χρόνος: " +"%2" + +#: ../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
Click and hold for menu" +msgstr "" +"Κάντε κλικ για να εμφανιστεί το κύριο παράθυρο του KShutDown
Κάντε κλικ " +"και κρατήστε το για να εμφανιστεί το μενού" + +#: ../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) , 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) \n" +"Language-Team: Spanish \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 Context Menu to create a new link to application" +msgstr "Use el menú contextual para crear un nuevo enlace a una aplicación" + +#: ../kshutdown/extras.cpp:247 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Use Crear nuevo|Carpeta... para crear un nuevo submenú" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Use Propiedades 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: %1" +msgstr "Hora no válida: %1" + +#: ../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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Si está usando KDE y KDM (Gestor de Sesiones de KDE), " +"establezca todos los métodos a KDE" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Si está usando KDE y un gestor de sesiones diferente a KDM, " +"establezca los métodos Apagar el equipo y Reiniciar el equipo " +"a /sbin/..." + +#: ../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

%1" +msgstr "No se ha podido ejecutar la orden

%1" + +#: ../kshutdown/appobserver.cpp:184 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"¿Seguro que desea MATAR
%1?

Se perderán todos los datos no " +"guardados." + +#: ../kshutdown/appobserver.cpp:199 +msgid "Process not found
%1" +msgstr "Proceso no encontrado
%1" + +#: ../kshutdown/appobserver.cpp:205 +msgid "No permissions to kill
%1" +msgstr "No tiene permisos para matar
%1" + +#: ../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 Do not show this " +"message again feature." +msgstr "" +"Habilitar todos los mensajes que hayan sido desactivados con la función " +"No mostrar este mensaje de nuevo." + +#: ../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 Select a command... button first." +msgstr "Pulse antes el botón Seleccionar una orden...." + +#: ../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: %1" +msgstr "Tiempo restante: %1" + +#: ../kshutdown/mmainwindow.cpp:561 ../kshutdown/actions.cpp:355 +msgid "Unknown" +msgstr "Desconocido" + +#: ../kshutdown/mmainwindow.cpp:562 +msgid "Selected time: %1" +msgstr "Hora seleccionada: %1" + +#: ../kshutdown/mmainwindow.cpp:563 +msgid "Selected action: %1" +msgstr "Acción seleccionada: %1" + +#: ../kshutdown/mmainwindow.cpp:566 +msgid "Note: The test mode is enabled" +msgstr "Nota: El modo de prueba está habilitado" + +#: ../kshutdown/mmainwindow.cpp:581 +msgid "Tip: Use the Middle Mouse Button to display the actions menu" +msgstr "Truco: Use el botón central del ratón 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 %1!" +msgstr "No se ha podido crear el fichero %1." + +#: ../kshutdown/links.cpp:109 +msgid "Could not remove file %1!" +msgstr "No se ha podido eliminar el fichero %1." + +#: ../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.
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.
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 \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.
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.
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 Context Menu to create a new link to application" +msgstr "Utiliser le Menu Contextuel pour créer un nouveau lien vers une application" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties 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 %1!" +msgstr "Ne peut pas créer le fichier %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Ne peut pas supprimer le fichier %1!" + +#: ../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: %1" +msgstr "Heure invalide: %1" + +#: ../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 Do not show this message again feature." +msgstr "Activer tous les messages qui avaient été désactivés par la fonction Ne pas montrer ce message à nouveau." + +#: ../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 Select a command... button first." +msgstr "Cliquez sur le bouton Sélectionner une commande... 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: %1" +msgstr "Temps restant: %1" + +#: ../kshutdown/mmainwindow.cpp:651 +#: ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Inconnu" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Note: 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 KDE and KDM (KDE Display Manager), then set all methods to KDE" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "If you are using KDE and display manager different than KDM, then set Turn Off Computer and Restart Computer methods to /sbin/..." +msgstr "Si vous utilisez KDE et un gestionnaire d'affichage différent de KDM, alors configurez Éteindre l'ordinateur et Redémarrer l'ordinateur pour utiliser /sbin/..." + +#: ../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

%1" +msgstr "" + +#: ../kshutdown/appobserver.cpp:191 +msgid "Are you sure you want to KILL
%1?

All unsaved data will be lost!" +msgstr "Êtes-vous certain de vouloir tuer
%1?

Toutes les données non enregistrées seront perdues !" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Processus non trouvé
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Pas la permission de tuer
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Êtes-vous sûr ?

Action sélectionnée: %1
Temps sélectionné: %2" + +#: ../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
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 , 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) \n" +"Language-Team: Hungarian \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.
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.
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 Context Menu to create a new link to application" +msgstr "Alkalmazás link létrehozásához használjon Kontext Menüt" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "" +"Új főmenü létrehozásához használjad az Új létrehozása|Könyvtár...-at" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "" +"Ikon, név vagy megjegyzés változtatásához használja a Beállításokat" + +#: ../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 "%1! 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 %1!" +msgstr "%1 fájl eltávolítása sikertelen!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "%1 fájl eltávolítása sikertelen!" + +#: ../kshutdown/links.cpp:183 +#, fuzzy +msgid "Remove Link" +msgstr "Link e<ávolítása" + +#: ../kshutdown/links.cpp:187 +#, fuzzy +msgid "Add Link" +msgstr "Link e<á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: %1" +msgstr "Érvénytelen idő: %1" + +#: ../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<á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 Do not show this " +"message again feature." +msgstr "" +"Enable all messages which have been turned off with the Do not show this " +"message again 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 Select a command... 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: %1" +msgstr "Érvénytelen idő: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Ismeretlen" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "kiválasztott idő: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +#, fuzzy +msgid "Selected action: %1" +msgstr "kiválasztott idő: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +#, fuzzy +msgid "Note: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Ha te KDE és KDM-et (KDE Display Manager) használsz akkor " +"állitsad be az összes módot a KDE-hez" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Ha KDE vagy KDM-től különböző ablakkezelőt használsz be kell állítanod a " +"Shut Down és Reboot módot /sbin/...-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ő: %1" + +#: ../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

%1" +msgstr "%1 fájl eltávolítása sikertelen!" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +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?

Selected Action: %1
Selected Time: %2" +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
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! 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 "" +#~ "Tip: Use the Middle Mouse Button to display the actions menu" +#~ msgstr "Középső gomb 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ő: %1" + +#, fuzzy +#~ msgid "Start the selected action" +#~ msgstr "kiválasztott idő: %1" + +#, 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 Bezár 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 KShutDown from the non-KDE session (e.g. " +#~ "GNOME), then change all methods..." +#~ msgstr "" +#~ "Ha te használod a KShutDown-t a nem-KDE felülethez (pl. GNOME)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.

All the " +#~ "registered tasks are listed here. Click Remove or Remove All to cancel the selected task. Click Configure to disable the " +#~ "Scheduler." +#~ 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.

All the " +#~ "registered tasks are listed here. Click Remove or Remove All to cancel the selected task. Click Configure to disable the " +#~ "Scheduler." + +#, fuzzy +#~ msgid "Time" +#~ msgstr "I&dő" + +#~ msgid "Disabled" +#~ msgstr "Kikapcsolva" + +#, fuzzy +#~ msgid "Extras..." +#~ msgstr "E&xtrák...." + +#~ msgid "More commands...
Click Modify... to add/edit/remove items." +#~ msgstr "" +#~ "Felhasználói parancsok:
KlikkVáltoztat... 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 "Karamba Themes" +#~ msgstr "Karamba 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 , 2004, 2005. +# Giovanni Venturi , 2004. +# Andrea , 2007. +# Andrea Florio , 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 \n" +"Language-Team: italiano \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

%1" +msgstr "Impossibile eseguire il comando

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Sei sicuro di voler UCCIDERE
%1?

Tutti i dati non salvati " +"saranno persi!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Processo non trovato
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Nessun permesso per uccidere
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Sei sicuro?

Azione Selezionata%1
Tempo Selezionato: %2" + +#: ../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 Context Menu to create a new link to application" +msgstr "" +"Usa il Menu contestuale per creare un nuovo collegamento " +"all'applicazione" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Usa Crea Nuovo|Cartella... per creare un nuovo sottomenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Usa Proprietà 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 %1!" +msgstr "Impossibile creare il file %1!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file %1!" +msgstr "Impossibile cancellare il file %1!" + +#: ../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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Se stai usando KDE e KDM (Gestore Display di KDE), " +"allora imposta tutti i metodi a KDE" + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Se stai usando KDE e gestori di visulizzazione diversi da KDM, " +"allora imposta i metodi Spegni computer e Riavvia computer a " +"/sbin/..." + +#: ../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: %1" +msgstr "Orario non valido: %1" + +#: ../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 Select a command... button first." +msgstr "Clicca prima sul pulsante Seleziona un comando" + +#: ../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: %1" +msgstr "Tempo restante: %1" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: %1" +msgstr "Orario selezionato: %1" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: %1" +msgstr "Azione selezionata: %1" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "Note: The test mode is enabled" +msgstr "Nota: 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 Do not show this " +"message again feature." +msgstr "" +"Abilita tutti i messaggi che sono stati disattivati con la funzionalità " +"Non mostrare questo messaggio di nuovo." + +#: ../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.
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.
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
Click and hold for menu" +msgstr "" +"Clicca per la finestra proncipale di KShutDown
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 , 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 \n" +"Language-Team: Nederlands \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.
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 Context Menu to create a new link to application" +msgstr "" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties 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 %1 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 %1!" +msgstr "" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +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: %1" +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 Do not show this " +"message again 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 Select a command... 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: %1" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Onbekend" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:653 +#, fuzzy +msgid "Selected action: %1" +msgstr "Kon %1 niet starten!" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Wanneer u gebruik maakt van KDE en KDM (KDE Display Manager), " +"zet dan alle methoden op KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +#, fuzzy +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Wanneer u gebruik maakt van KDE en een andere display beheerder dan " +"KDM, zet dan de methoden voor Uitschakelen en Herstarten " +"op op /sbin/..." + +#: ../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 %1 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

%1" +msgstr "" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +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?

Selected Action: %1
Selected Time: %2" +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
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 %1 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 %1 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®istreerde 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 KShutDown from the non-KDE session (e.g. " +#~ "GNOME), then change all methods..." +#~ msgstr "" +#~ "Wanneer u Shut-Down-O-Matik uitgevoerd heeft vanuit een niet-KDE-" +#~ "sessie (bijv. GNOME) 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.

Press Defaults button to restore " +#~ "the default sound directory." +#~ msgstr "" +#~ "Kies een geluidsmap.

Druk op de knop Standaardwaarden om de " +#~ "standaard geluidsmap in te stellen." + +#~ msgid "File %1 not found." +#~ msgstr "Bestand %1 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: Actions." +#~ msgstr "Zie ook: Acties." + +#~ 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 , 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 \n" +"Language-Team: Polish \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

%1" +msgstr "Nie można wykonać polecenia

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Jesteś pewien, że chcesz ZABIĆ
%1?

Wszystkie niezapisane " +"dane zostaną utracone!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Nie znaleziono procesu
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Brak uprawnień do zabicia
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "" +"Jesteś pewna/pewien?

Wybrana akcja: %1
Wybrany czas: %2" + +#: ../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 Context Menu to create a new link to application" +msgstr "Użyj Menu Kontekstowego, aby utworzyć nowy skrót do aplikacji" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Użyj Utwórz nowe|Katalog..., aby utworzyć nowe podmenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Użyj Właściwości..., 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 %1!" +msgstr "Nie można utworzyć pliku %1!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file %1!" +msgstr "Nie można usunąć pliku %1!" + +#: ../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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Jeśli używasz KDE i KDM (KDE Display Manager), ustaw wszystkie " +"metody na KDE" + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Jeśli używasz KDE i menedżera logowania innego niż KDM, ustaw " +"metody poleceń Wyłącz komputer i Uruchom ponownie na /" +"sbin/..." + +#: ../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: %1" +msgstr "Nieprawidłowy czas: %1" + +#: ../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 Select a command... button first." +msgstr "Najpierw kliknij na przycisk Wybierz polecenie...." + +#: ../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: %1" +msgstr "Pozostały czas: %1" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: %1" +msgstr "Wybrany czas: %1" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: %1" +msgstr "Wybrana akcja: %1" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "Note: The test mode is enabled" +msgstr "Uwaga: 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 Do not show this " +"message again feature." +msgstr "" +"Włącz wszystkie komunikaty, które zostały wyłączone przez opcję Nie " +"wyświetlaj więcej tego komunikatu." + +#: ../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.
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.
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
Click and hold for menu" +msgstr "" +"Kliknij, aby wyświetlić główne okno KShutDown
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 , 2005. +# Phantom X , 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 \n" +"Language-Team: Português do Brasil \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.
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.
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 Context Menu to create a new link to application" +msgstr "Use Menu Contexto para criar um novo link para aplicaçăo" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Use Criar Nova|Pasta... para criar um novo submenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Use Propriedades 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 %1!" +msgstr "Năofoi possível criar arquivo %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Năo foi possível remover arquivo %1!" + +#: ../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: %1" +msgstr "Tempo inválido: %1" + +#: ../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 Do not show this " +"message again feature." +msgstr "" +"Habilitar todas as mensagens que tenham reiniciado com o Năo mostrar " +"estamensagem novamente 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 Select a command... button first." +msgstr "Clique no botão Selecione um comando... 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: %1" +msgstr "Tempo restante: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Desconhecido" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Tempo selecionado: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "Açăo selecionada: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Nota: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Se você estiver usando oKDE e o KDM (KDE Display Manager), entăo " +"coloque todos os métodos para KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Se vocę estiver usando KDE e um display manager diferente que o " +"KDM, entăo coloque Desligar Computador e Reiniciar o " +"Computador métodos para /sbin/..." + +#: ../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

%1" +msgstr "Năo foi possível executar o comando

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Você tem certeza que quer MATAR
%1?

Todos os dados não " +"salvos serão perdidos!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Processo não encontrado
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Sem permissões para matar
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Você tem certeza?

Ação selecionada: %1
STempo selecionado: %2" + +#: ../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
Click and hold for menu" +msgstr "Clique para a janela principal do KShutDown
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 , 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 \n" +"Language-Team: \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.
The header shows how long the system has been running." +msgstr "" +"Дисплей просмотра показывает информацию о пользователях находящихся на " +"компьютере, и их процессах.
Заголовок показывает как долго работает " +"компьютер." + +#: ../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 Context Menu to create a new link to application" +msgstr "Используйте Контекстное меню для создания ссылок на приложения" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Используйте Создать Новый|Каталог для создания субменю" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "ИспользуйтеНастройки для смены иконки, имени, или комментария" + +#: ../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 %1!" +msgstr "Не могу удалить файл %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Не могу удалить файл %1!" + +#: ../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: %1" +msgstr "неверное время: %1" + +#: ../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 Do not show this " +"message again 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 Select a command... 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: %1" +msgstr "неверное время: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Неизвестный" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Выбранное время :%1" + +#: ../kshutdown/mmainwindow.cpp:653 +#, fuzzy +msgid "Selected action: %1" +msgstr "Выбранное время :%1" + +#: ../kshutdown/mmainwindow.cpp:656 +#, fuzzy +msgid "Note: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Если вы используете KDE и KDM (KDE Display Manager), то " +"используйте все методы для KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +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 "неверное время: %1" + +#: ../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

%1" +msgstr "Не могу удалить файл %1!" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +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?

Selected Action: %1
Selected Time: %2" +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
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 "" +#~ "Tip: Use the Middle Mouse Button to display the actions menu" +#~ msgstr "Средняя кнопкапоказывает меню действий" + +#~ 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 "Выбранное время :%1" + +#, fuzzy +#~ msgid "Start the selected action" +#~ msgstr "Выбранное время :%1" + +#, 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 KShutDown from the non-KDE session (e.g. " +#~ "GNOME), then change all methods..." +#~ msgstr "" +#~ "Если вы запускаете KShutDown не из под KDE (Gnome), то поменяйте " +#~ "методы..." + +#, fuzzy +#~ msgid "Time" +#~ msgstr "Время" + +#~ msgid "Disabled" +#~ msgstr "Выключено" + +#, fuzzy +#~ msgid "Extras..." +#~ msgstr "Дополнительно..." + +#~ msgid "More commands...
Click Modify... to add/edit/remove items." +#~ msgstr "" +#~ "Больше команд...
Кликните Изменить... для добавления/" +#~ "редактирования/удаления пунктов." + +#, 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.

Press Defaults button to restore " +#~ "the default sound directory." +#~ msgstr "" +#~ "Выберите каталог со звуковыми файлами.

Нажмите кнопкуПо " +#~ "умолчанию для восстановления первоначальных настроек." + +#~ msgid "File %1 not found." +#~ msgstr "Файл %1 не найден." + +#~ 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 , 2004, 2005, 2008. +# Zdenko Podobný , 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 \n" +"Language-Team: \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.
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.
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 Context Menu to create a new link to application" +msgstr "Použite Kontextovú ponuku na vytvorenie nového odkazu k aplikácií" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Použite Vytvoriť Nový|Priečinok... na vytvorenie novej ponuky" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Použite Vlastnosti 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 %1!" +msgstr "Nemohol byť vytvorený súbor %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Nemohol byť odstránený súbor %1!" + +#: ../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: %1" +msgstr "Neplatný čas: %1" + +#: ../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 Do not show this " +"message again feature." +msgstr "" +"Zapnúť všetky správy, ktoré boli vypnuté pomocou funkcie Nezobrazovať " +"túto správu v budúcnosti." + +#: ../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 Select a command... button first." +msgstr "Najprv kliknite na tlačidlo Vyberte príkaz...." + +#: ../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: %1" +msgstr "Zostávajúci čas %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Neznáme" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Vybraný čas: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "Zvolená akcia: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Poznámka: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Ak používate KDE a KDM (správca sedení KDE), nastavte všetky " +"metódy na KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Ak používate KDE a správcu sedení iný než KDM, nastavte metódy " +"Vypnúť a Reštartovať na /sbin/..." + +#: ../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

%1" +msgstr "Nepodarilo sa spustiť príkaz

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "Určite chcete ZABIŤ
%1?

Všetky neuložené dáta budu stratené!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Proces nebol nájdený
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Nemáte práva na zabitie
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +msgstr "Ste si istý?

Vybraná akcia: %1
Vybraný čas: %2" + +#: ../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
Click and hold for menu" +msgstr "Kliknite pre hlavné okno KShutDownKliknite 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 , 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 \n" +"Language-Team: Swedish \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.
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.
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 Context Menu to create a new link to application" +msgstr "Använd Kontextmenyn för att skapa nya länkar till applikationen" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Använd Skapa Ny|Mapp... för att skapa en ny undermeny" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "Använd Egenskaper 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 %1!" +msgstr "Kunde inte skapa filen %1!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "Kunde inte ta bort filen %1!" + +#: ../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: %1" +msgstr "Ogiltig tid: %1" + +#: ../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 Do not show this " +"message again feature." +msgstr "" +"Aktivera alla meddelanden som har stängts av med Visa inte detta " +"meddelande igen 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 Select a command... button first." +msgstr "Klicka på knappen Välj ett kommando... 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: %1" +msgstr "Återstående tid: %1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Okänd" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "Vald tid: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "Vald åtgärd: %1" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: The test mode is enabled" +msgstr "Notera: 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Om du använder KDE och KDM (KDE Skärmhanterare) så sätt alla " +"metoder till KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Om du kör KDE och skärmhanteraren är en annan än KDM så sätt " +"metoderna för Stäng av datorn och Starta om datorn till /" +"sbin/..." + +#: ../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

%1" +msgstr "Kunde inte starta kommando

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"Är du säker att du vill DÖDA
%1?

All osparad data kommer " +"att förloras!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Process inte hittad
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "Inga rättigheter att döda
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +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
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 "" +#~ "Tip: Use the Middle Mouse Button to display the actions menu" +#~ msgstr "" +#~ "Tips: Använd mittenknappen på musen 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.

All the " +#~ "registered tasks are listed here. Click Remove or Remove All to cancel the selected task. Click Configure to disable the " +#~ "Scheduler." +#~ 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.

Alla registrerade uppgifter listas här. Klicka Ta bort eller Ta bort alla för att avbryta de valda uppgifterna. Klicka " +#~ "Konfigurera för att stänga av Schemaläggaren." + +#~ 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 KShutDown from the non-KDE session (e.g. " +#~ "GNOME), then change all methods..." +#~ msgstr "" +#~ "Om du kör KShutDown från en icke-KDE session (exempelvis GNOME) 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...
Click Modify... to add/edit/remove items." +#~ msgstr "" +#~ "Fler kommandon...
Klicka Modifiera... 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 , 2006. +# Ahmet AYGÜN , 2007. +# Eren Türkay , 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 \n" +"Language-Team: \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

%1" +msgstr "Komut çalıştırılamıyor

%1" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "" +"%1
sürecini ÖLDÜRMEK istediğinizden emin misiniz?" +"

Kaydedilmemiş tüm veriler silinecek!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "Süreç bulunamadı
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "%1sü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?

Selected Action: %1
Selected Time: %2" +msgstr "Emin misiniz?

Seçilen eylem: %1
Seçilen zaman: %2" + +#: ../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 Context Menu to create a new link to application" +msgstr "Yeni kısayol oluşturmak için Sağ tık menüsünü kullanın." + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "Yeni alt menü oluşturmak için Yeni oluştur|Dizin... kullanın" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "İsmi, uyarıyı ya da simgeyi değiştirmek için Ayarlar'ı 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 %1!" +msgstr "%1 dosyası oluşturulamıyor!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file %1!" +msgstr "%1 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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"Eğer KDE ve KDM kullanıyorsanız tüm yöntemleri KDE " +"olarak seçin" + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"Eğer KDE kullanıyorsanız ve KDM'dan farklı bir görüntü " +"yönetici kullanıyorsanız Bilgisayarı Kapat ve Bilgisayarı Yeniden " +"Başlat yöntemlerini /sbin/... ş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: %1" +msgstr "Geçersiz zaman: %1" + +#: ../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 Select a command... button first." +msgstr "Önce Komut Seçin... 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: %1" +msgstr "Kalan zaman: %1" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: %1" +msgstr "Seçilen zaman: %1" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: %1" +msgstr "Seçilen eylem: %1" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "Note: The test mode is enabled" +msgstr "Not: 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 Do not show this " +"message again feature." +msgstr "" +"Bu iletiyi bir daha asla gösterme ö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.
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
Click and hold for menu" +msgstr "KShutDown için tıklayın
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 , 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: \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.
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 Context Menu to create a new link to application" +msgstr "使用 上下文菜单创建一个到应用程序的新链接" + +#: ../kshutdown/extras.cpp:248 +msgid "Use Create New|Folder... to create a new submenu" +msgstr "使用创建新的文件夹....创建一个新的子菜单" + +#: ../kshutdown/extras.cpp:249 +msgid "Use Properties to change icon, name, or comment" +msgstr "使用属性改变图标,名称,或者说明" + +#: ../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 "不能运行 %1." + +#: ../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 %1!" +msgstr "不能创建连接 %1." + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file %1!" +msgstr "不能删除 %1." + +#: ../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: %1" +msgstr "无效时间:%1" + +#: ../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 Do not show this " +"message again 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 Select a command... 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 "选择的时间比当前时间早!" + +#: ../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: %1" +msgstr "剩余时间:%1" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "不认识" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: %1" +msgstr "选择的时间: %1" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: %1" +msgstr "选择的命令: %1." + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "Note: 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 "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 KDE and KDM (KDE Display Manager), then set " +"all methods to KDE" +msgstr "" +"如果您正在使用KDEKDM (KDE显示管理器),设置所有模式为" +"KDE" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using KDE and display manager different than KDM, " +"then set Turn Off Computer and Restart Computer methods to /" +"sbin/..." +msgstr "" +"如果您正在使用KDE,显示管理器与KDM不同,则设置关闭计算机 " +"和 重启计算机 方式为 /sbin/..." + +#: ../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

%1" +msgstr "不能运行命令%1." + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL
%1?

All unsaved data will be " +"lost!" +msgstr "您确认要终止
%1?

,所有未保存的数据将丢失!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found
%1" +msgstr "进程未发现
%1" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill
%1" +msgstr "不允许终止
%1" + +#: ../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?

Selected Action: %1
Selected Time: %2" +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
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 %1." + +#: ../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 "" +#~ "Tip: Use the Middle Mouse Button to display the actions menu" +#~ msgstr "提示: 使用 鼠标中键 显示动作菜单" + +#~ 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 0000000000000000000000000000000000000000..70a8a52e88a9ba76b847001a77611296774dc765 GIT binary patch literal 12529 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