diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2013-07-28 02:30:20 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2013-07-28 02:30:20 +0200 |
commit | 48a589b8c526b34e79e8cdddc4cb7f5fc7b76815 (patch) | |
tree | 0f30d90998669b60a0aa840f824cc3d4ea7ddc66 | |
download | kshutdown-48a589b8c526b34e79e8cdddc4cb7f5fc7b76815.tar.gz kshutdown-48a589b8c526b34e79e8cdddc4cb7f5fc7b76815.zip |
Initial import of kshutdown 1.0.4
128 files changed, 39830 insertions, 0 deletions
@@ -0,0 +1 @@ +See Help -> About KShutDown -> Thanks To... @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..4009e5e --- /dev/null +++ b/ChangeLog @@ -0,0 +1,410 @@ +// svn log -r 347:HEAD|tac|xsel -i -b +// See also: http://kshutdown.sourceforge.net/releases/ + +2009/01/15 1.0.4 + +* Fixed Restart/Turn Off Computer action in newer distributions +* Removed deprecated entries and values from *.desktop files + + +2008/05/26 1.0.3 + +* Updated Czech translation +* Updated Italian translation +* Updated Polish translation +* Updated Slovak translation +* Extras: Show icon of the selected action (thanks to Guillaume Millet) +* Setup: Automatically create "configure" file if necessary +* Source: Added RPM .spec file for SUSE + +2007/11/25 1.0.2 +- Now the sound is disabled by default. + You can re-enable sound notifications via menu -> Settings -> Configure Notifications... +- Updated Italian translation (thanks to Andrea Florio) +- Updated Turkish translation +- Updated Polish translation +- NEW: Added "extra" command line option. Run "kshutdown --help" for more info. +- NEW: Remember recent "Extras" command + +2007/07/08 1.0.1 +- NEW: Arabic translation. Thanks to Abdulaziz Alsharif and Youssef Chahibi. +- NEW: Bulgarian translation. Thanks to Zlatko Popov +- Updated Greek (el) translation +- Minor fixes + +2007/04/14 1.0 +- NEW: Added "Hibernate Computer" action (see Extras -> Select a command...) +- NEW: Added action to mute and quit kdetv (see Extras -> Select a command...) +- Fixed compilation problems +- Fixed system tray icon size +- Updated language translations (es, sk, tr) + +2006/10/10 0.9.1 Beta +- Updated German, Greek, Portuguese-Brazilian, and Spanish translations +- NEW: French translation (thanks to Maxime Chéramy) +- Fixed some DCOP functions +- Fixed KShutDown autostart and session saving +- NEW: Warning info in task bar title +- Improved progress bar + +2006/06/29 0.9 Beta +- NEW: Progress bar +- FIXED: Setup: Launch installer in existing Konsole window +- FIXED: Fixed compilation errors (thanks to Ole) +- NEW: Global keyboard shortcuts +- NEW: Redesigned and improved KShutDown panel applet +- NEW: DCOP: Added "makeInvisible()" function +- Added missing "What's this?" texts +- Action icons are now cached +- Addded passive messages +- NEW: Greek translation (thanks to Spiros Georgaras) +- Patches from the FreeBSD (thanks to Markus Brueffer) +- Simplified "link creator" in the "Settings" dialog +- NEW: "Presets" menu in the "Custom Message" configuration +- FIXED: "Test" button in the "Custom Message" configuration +- Code cleanup +- NEW: Redesigned the system tray context menu +- Statistics: Changed the "Options" view +- NEW: Statistics: Ctrl+R or F5 refreshes the view +- NEW: Selected action/time in the confirmation dialog +- NEW: Shortcut configuration (Settings -> Configure Shortcuts...) +- NEW: "Actions" menu in the menu bar + +2006/02/05 0.8.2 +- NEW: Turkish translation (thanks to Ahmet AYGÜN) +- French desktop entry (e.g. in the "K" Menu) +- Updated the "./admin" directory + +2006/01/09 0.8.1 +- NEW: Chinese translation +- NEW: German Handbook +- Setup: Do not ask for root password + if prefix directory exists and is writeable by the current user +- Changed some GUI texts +- Added generic name for "K" menu entry +- Setup: Removed the "Changes" command (ChangeLog); + added "What's new?" instead (NEWS) +- Removed "Help" from the system tray context menu +- API: public MiscUtils::playSound -> private MiscUtils::notifyUser +- Action list: display "s" suffix for pause value +- Action editor: display "No pause" instead of "0 second(s)" +- Updated "kshutdown/templates" files +- FIXED: Do not display popup message if "test mode" is already enabled/disabled +- Setup: Removed confusing "root password" message +- Setup: Fixed Polish encoding +- Setup: Added support for "LANG=pl_PL.UTF-8" +- Changed title time separator from " - " to " > " +- FIXED: "dcop kshutdown KShutdownIface makeVisible" +- Removed broken links from the About dialog +- Removed unused "kshutdown/karamba/kshutdown-32x32.png" file +- NEW: NEWS file with human readable list of changes +- Updated German translation +- Updated Czech translation + +2005/11/27 0.8 +- NEW: Swedish translation (thanks to Daniel Nylander) +- Minor bugfixes +- Removed the Authors tab from the About dialog +- Setup: Fast compilation is now enabled by default (--enable-final) +- Updated documentation +- Setup: "kdesu" instead of "su" (works on both Fedora and Kubuntu) + +2005/10/18 0.7.1 Beta +- NEW: Ability to execute a specified action when selected application exit +- Removed "Download" menu item +- FIXED: Captions in system tray menu +- NEW: Changed default custom message command to: + "kdialog --title \"%title\" --passivepopup \"%text\" 10" +- NEW: System configuration checker (EXPERIMENTAL) +- Updated Handbook +- Removed obsolete FAQ +- Removed "locolor" icon +- RPM .spec: Removed "kdebase" dependency +- Removed deprecated Wizard and Scheduler functions +- NEW: "Shut Down" and "Reboot" commands are now disabled if KDM is not running. + To enable these commands go to "Settings" -> "Configure KShutDown" -> "Actions", + and set methods to "/sbin/...", "poweroff" or "reboot". +- NEW: Balloon popup messages based on the "kdialog" program +- QListView* -> KListView* +- Improved and fixed KDE Kiosk support +- FIXED: System tray icon hidding option +- FIXED: Confirmation message box position +- FIXED: Enter key now starts/stops the selected action +- Removed the "Action" menu from the menu bar +- FIXED: "Common Problems" buttons in the "Settings" dialog +- FIXED: DCOP "cancel()" function now can cancel the warning message dialog +- Misc. bugfixes +- Updated the "admin" directory +ACTION EDIT DIALOG: +- Removed the "Help" button +- "KDE" -> "KDE (default)" +- Improved tip text +- Changed the default external "Lock Session" command + from "xlock" to "xscreensaver-command -lock" + +2005/07/02 0.7.0 Beta +NEW: +- Redesigned the main window (thanks to Stephen) +- Redesigned the settings dialog +- Menu bar +- Link to the "Download" page in the "File" menu +- KShutDown Kicker Applet (based on the KDE Lock/Logout Applet) +- New icons +- System tray icon configuration +- Redesigned "Statistics" dialog +- Cool tray icon fade effects +- Portuguese Brazilian language translation (also in version 0.6.1) +- The "--confirm" command line option forces confirmation message box: + EXAMPLE 1 - with confirmation: + "kshutdown --confirm --shutdown" + EXAMPLE 2 - without confirmation (default): + "kshutdown --shutdown" +IMPORTANT: +- Since version 0.7.0 KShutDown requires KDE 3.3.x or newer +- "K Menu" link is now placed in the "Accessories" menu. + Old menu items (Utilities->KShutDown and Utilities->KShutDown Wizard) + are now obsolete. You can remove these items manually. +- Removed the Wizard dialog +- Removed "Examples" directory from the "Extras" menu +- Removed "Scheduler". + "Scheduler" DCOP functions are now deprecated, and should not be used. +- "-w" and "--wizard" command line arguments are now deprecated, and should not be used. +IMPROVED: +- Setup script +- Usability +- KShutDown is now smaller and faster +- Link creator: confirmation messages, shut down, reboot, lock screen and logout links +- Warning message +- A confirmation message box +- Visual and sound notifications +UNDER CONSTRUCTION: +- A new popup messages (based on the Kopete "balloon") +- Action execution when a desired application exit +- .spec file for Fedora Core +- System configuration checker +FIXED/MISC: +- Fixed possible "make install" error (thanks to Gregorio) +- Removed "build" info from the "About" dialog + +2005/02/28 0.6.0 +- NEW: Settings: "Default" button in action edit dialog +- NEW: DCOP functions: "configure" and "makeVisible" +- REMOVED: Removed color configuration from the "Statistics" tab +- FIXED: Text alignment in reversed layout +- Cleaned up the settings dialog +- Small fixes related to window management +- Updated Italian translation + +2005/02/12 0.5.1 Beta +- NEW: Added options to execute a shell commad before + shut down, reboot, logout or lock screen + (Configure -> Actions & Extras Menu) +- NEW: Added option to close the CD-ROM tray before logout + (Configure -> Automation) +- NEW: Changed window caption and system tray tool tip to be more usable +- FIXED: Now the Wizard dialog window does not block the entire desktop +- FIXED: Do not show minimized main window after Wizard cancel +- Updated Manual and README +- A shorter date/time format in window title +- Minor fixes and improvements + +2004/12/15 0.5.0 Beta +- NEW: A custom message command +- NEW: Selected time in the main window +- NEW: Added support for AM/PM time format +- NEW: Statistics: Added option to toggle the "from" (remote hostname) field +- NEW: A new notifications configuration dialog +- NEW: Last selected tab page is remembered +- NEW: Last selected settings page is remembered +- NEW: Warning 1 hour before action +- FIXED: Fixed focus and default button in the Wizard +- Added help button to the Wizard dialog +- Info is displayed if "test" mode has been toggled +- Now KShutDown should compile on KDE 3.1.1+ +- Cleaned up the source files +- Updated API documentation +- Added link to "xscreensaver-command" manual in action edit dialog +- Link to the SuperKaramba home page in settings dialog +- Smaller bugfixes and improvements +- The source package is smaller + +2004/11/13 0.4.0 +- NEW: Cancel button in passive message +- NEW: Now the date/time editor will automatically advance focus + to the next date/time section if a user has completed a section +- Kiosk: Time selection is disabled in Wizard + if "kshutdown_tab_time" is set to "false" +- Updated translations + +2004/10/23 0.3.2 Beta +- NEW: Added Karamba info (click Configure button) +- NEW: Standard KDE notifications + (Control Center > Sound & Multimedia > System Notifications > KShutDown + or + KShutDown > Configure > Confirmations & Messages > Configure Notifications) +- NEW: Added option to re-enable all messages which have been disabled with the + "Do not show this message again" option +- NEW: Changed Wizard image +- NEW: Changed statistics default colors +- NEW: Title in the system tray context menu +- FIXED: Fixed amaroK "stop" function +- FIXED: Wizard window is now centered on screen +- FIXED: No confirmations if you execute a KShutDown action from the command + line +- SETUP: Added Polish language +- SETUP: Added option "--enable-final" (press "F" to toggle) +- SETUP: "Setup" is launched in a new Konsole window, + so you can run it from a Konqueror (EXPERIMENTAL) +- Improved and updated help +- Bugfixes + +2004/09/11 0.3.1 Beta +- NEW: Russian translation +- NEW: Simple Karamba themes + (see /YOUR_INSTALL_PATH/share/apps/kshutdown/karamba) +- CHANGE: Smaller Vorbis Ogg sound files +- CHANGE: All KIOSK keys are now prefixed with "kshutdown_" string + (see Handbook) +- Updated translations + +2004/08/30 0.3.0 Beta +- NEW: Ability to run a command before shut down + (click "Configure", "Automation") +- NEW: Automatic screen locking after login (click "Configure", "Automation") +- NEW: Reorganized and improved settings dialog +- NEW: Colors in the "Setup" script +- NEW: Added help buttons +- NEW: Icons in tool tips +- NEW: Italian translation +- NEW: Links creator (click "Configure", "Links") +- SYSTEM TRAY: Middle mouse button displays the actions menu +- SYSTEM TRAY: Added confirmations +- SYSTEM TRAY: Tear off handles in menus +- FIXED: Source code and API cleanup +- FIXED: Better usability +- FIXED: Added "now" argument to the command line options +- FIXED: Message window is now always on top +- Added new items to the "Extras" menu + +2004/07/19 0.2.0 +- Improved "Extras" menu +- Better sounds quality; Vorbis Ogg format +- Added Handbook (see Help menu) +- Fixed documentation + +2004/07/05 0.1.9 Beta +- Changed DCOP API: + changed "registerTask" + removed "command"; use "activateAction" instead + added "getStatusInfo" +- Updated translations +- Added .spec file +- Changed Wizard "finish" button +- Bugfixes + +2004/06/13 0.1.8 Beta +- NEW: New name - KShutDown +- NEW: Wizard +- NEW: Dutch translation +- NEW: KDE Kiosk support. For example you can disable "Shut down" command, + or the "Statistics" tab. See README for details. +- NEW: "Extras" - user commands. + Now you can add as many new commands as you want. +- NEW: Options in the "Statistics" tab +- NEW: Rewritten popup messages +- NEW: Time argument in the command line. Examples: + "kshutdown --your-option HH:MM" (absolute time), + or "kshutdown --your-option MM" (time from now in minutes) +- NEW: "--default" command line option disables test mode +- FIXED: Sound configuration +- IMPROVED: User interface +- IMPROVED: "Setup" script +- Updated translations +- Bugfixes + +2004/03/27 0.1.7 Beta +- Slovak translation +- German translation +- Improved usability +- Updated CVS... +- More tool tips +- Source files cleanup +- Bugfixes + +2004/03/11 0.1.6 Beta +- Fixed "Statistics" tab +- Command line option to display standard logout dialog (--standard) +- Flat buttons +- Removed "Options" tab +- Settings dialog size is saved in the configuration file +- "Remove All" button in the "Scheduler" tab +- Czech translation and FAQ +- Hungarian translation +- Changed some icons +- Bugfixes + +2004/02/22 0.1.5 Beta +- Bugfixes +- Improved warning message box +- Improved scheduler and DCOP server (still under construction) +- Code cleanups +- Fixed memory leaks +- Added cancel option to the command line (-c and --cancel) + +2004/02/07 0.1.4 Beta +- Code cleanups +- Fixed keyboard shortcuts +- Fixed default window size +- Added -s and --shutdown to the command line options +- LED icon has been replaced with the system tray icon +- Spanish translation by Quique +- Test mode (kshutdown --test) +- Error message if selected date/time is earlier than current date/time +- Bugfixes + +2004/01/17 0.1.3 Beta +- "Exit" to the system tray +- "Settings" command in the system tray context menu +- Links to "man" manuals +- Some tabs are initialized on demand (faster startup) +- Tab icons +- Statistics: colorized `w` output (logged-in users, uptime) +- Scheduler: changed columns order, application icons +- Bugfixes +- System tray: caption + +2003/12/08 0.1.2 Beta +- ui improvements +- system tray context menu +- migration to KDevelop 3 +- user interface fixes +- now you can directly specify delay in seconds, minutes, or hours +- fixed "about" window +- FAQ file +- system tray icon is now always visible +- changed default external commands to /sbin/reboot and /sbin/poweroff +- experimental DCOP interface (will be useful in v0.2.0) +- code and api cleanups + api docs +- fixed settings saving +- "embedded" tool tips +- only 1 instance of kshutdown is now allowed +- bugfixes +- new icons (created with Sodipodi and GIMP) +- warning is displayed 10 seconds before timeout + +2003/11/09 0.1.1 Beta +- polska jezyk, trudna jezyk ;-))) (pl.po) +- standard gui items +- passive popup warning messages (optional) +- status info +- install script +- simple system tray configuration +- support for /sbin/shutdown, xlock, and user commands +- added command line options for lock screen (-k and --lock) +- a new settings dialog +- code and API clean-ups +- different "cancel" button texts (Close/Cancel) +- added "Whats This" texts + +2003/10/27 0.1.0 Beta +- first version diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 0000000..e94f44f --- /dev/null +++ b/Doxyfile @@ -0,0 +1,278 @@ +# Doxyfile 1.4.1-KDevelop + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = KShutDown +PROJECT_NUMBER = +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = NO +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = /home/kdt/Documents/src/kshutdown/kshutdown/ +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +TAB_SIZE = 4 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = NO +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = YES +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = YES +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = NO +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= NO +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = /home/kdt/src/kshutdown +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox \ + *.C \ + *.CC \ + *.C++ \ + *.II \ + *.I++ \ + *.H \ + *.HH \ + *.H++ \ + *.CS \ + *.PHP \ + *.PHP3 \ + *.M \ + *.MM \ + *.C \ + *.H \ + *.tlh \ + *.diff \ + *.patch \ + *.moc \ + *.xpm \ + *.dox +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = *.moc.cpp \ + kshutdowniface_stub.h \ + kshutdowniface_stub.cpp \ + kshutdowniface_skel.cpp +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = kshutdown.tag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO @@ -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 @@ -0,0 +1 @@ +See: http://kshutdown.sourceforge.net/releases/
\ No newline at end of file @@ -0,0 +1,33 @@ + +KShutDown is an advanced shut down utility for KDE. + +Odd numbers in version mean it's unstable/beta (e.g. 0.7.1, 0.9). +Even numbers mean it's stable (e.g. 0.8, 0.10.5). + +FEATURES +-------- +- Turn Off Computer (logout and halt the system) +- Restart Computer (logout and reboot the system) +- Lock Session (lock the screen using a screen saver) +- End Current Session (end the current KDE session and logout the user) +- Extras (additional, user commands) +- Time and delay options +- Command line and DCOP support +- System tray and panel applet +- Visual and sound notifications +- KDE Kiosk support +- And more... + +LINKS +----- +http://kshutdown.sourceforge.net (Home Page) +http://sourceforge.net/projects/kshutdown (Project Page) +http://freshmeat.net/projects/kshutdown (freshmeat.net Page) +http://www.kde-apps.org/content/show.php?content=9754 (KDE-Apps.org Page) +http://www.kde.org (KDE Home Page) + +COPYRIGHT & LICENSE +------------------- +(C) Konrad Twardowski <kdtonline@poczta.onet.pl> +KShutDown is licensed under the GNU General Public License (GPL) +(http://www.gnu.org/licenses/gpl.html) @@ -0,0 +1,266 @@ +#!/bin/bash + +# TODO: 2.0: use kdialog + +META_FULL_NAME="KShutDown" +META_VERSION="`cat VERSION`" + +#if [[ (("$TERM" == "dumb") || ("$TERM" == "xterm")) && ("${1}" != "--launch-in-konsole") ]]; then +# echo +# echo "Press Ctrl+C to exit $META_FULL_NAME installer" +# konsole --notabbar --notoolbar --workdir `dirname "${0}"` -T "$META_FULL_NAME Installer" -e ${0} --launch-in-konsole +# exit +#fi + +# installation dirs +DEFAULT_DIR=`kde-config --prefix` +if [ -z "$DEFAULT_DIR" ]; then + DEFAULT_DIR="/usr" +fi +INSTALL_DIR="$DEFAULT_DIR" + +# colors +DEF_C="\E[37;40m" +KEY_C="\E[31;40m" + +# configure options +CONFIGURE_OPTIONS="" +FAST_COMPILATION="true" + +# i18n +# english +I18N_TITLE_DOCS="Documentation and License" +I18N_TITLE_SETUP="Compilation and Installation" +I18N_CHANGE_DIR="Change installation directory (prefix)" +I18N_DISABLE_FAST="Disable fast compilation" +I18N_ENABLE_FAST="Enable fast compilation" +I18N_INSTALL="Install" +I18N_LICENSE="License" +I18N_NEWS="What's new? (q - quit)" +I18N_PRESS_ENTER="Press <Enter> to exit" +I18N_QUIT="Quit" +I18N_THANKS="Thank you for using" +I18N_MENU="K Menu: Accessories -> KShutDown" +I18N_CONF_WITH="Configuring with" +I18N_INST_FAILED="Installation failed!" +I18N_COMP_FAILED="Compilation failed!" +I18N_CONF_FAILED="Configuration failed!" +I18N_COMP_START="Compiling..." +I18N_MINU=" This may take a few minutes." +I18N_MISSING_DEPEN1="Make sure you have installed the 'kdelibs-devel' package" +I18N_MISSING_DEPEN2=" which is required to compile any KDE application." +I18N_ENTER_DIR="Enter a new prefix" +I18N_SETUP="Setup" +I18N_README="Readme" + +# polish +if [[ ("$LANG" == "pl_PL.UTF-8") || ("$LANG" == "pl_PL") || ("$LANG" == "pl") ]]; then + I18N_TITLE_DOCS="Dokumentacja i licencja" + I18N_TITLE_SETUP="Kompilacja i instalacja" + I18N_CHANGE_DIR="Zmien katalog instalacji (prefix)" + I18N_DISABLE_FAST="Wylacz szybka kompilacje" + I18N_ENABLE_FAST="Wlacz szybka kompilacje" + I18N_INSTALL="Instaluj" + I18N_LICENSE="Licencja" + I18N_NEWS="Co nowego? (q - wyjscie)" + I18N_PRESS_ENTER="Nacisnij <Enter>, aby wyjsc" + I18N_QUIT="Zakoncz" + I18N_THANKS="Dziekujemy za uzycie" + I18N_MENU="Menu K: Akcesoria -> KShutDown" + I18N_CONF_WITH="Konfigurowanie z" + I18N_INST_FAILED="Instalacja nie powiodla sie!" + I18N_COMP_FAILED="Kompilacja nie powiodla sie!" + I18N_CONF_FAILED="Konfiguracja nie powiodla sie!" + I18N_COMP_START="Kompilowanie..." + I18N_MINU=" To moze potrwac kilka minut." + I18N_MISSING_DEPEN1="Upewnij sie, ze masz zainstalowana paczke 'kdelibs-devel'," + I18N_MISSING_DEPEN2=" ktora jest wymagana do kompilacji jakiejkolwiek aplikacji KDE." + I18N_ENTER_DIR="Wprowadz nowy prefix" + I18N_SETUP="Instalator" + I18N_README="Przeczytaj (readme)" +fi + +#italian +if [[ ("$LANG" == "it_IT.UTF-8") || ("$LANG" == "it_IT") || ("$LANG" == "it") ]]; then + I18N_TITLE_DOCS="Documentazione e Licenza" + I18N_TITLE_SETUP="Compilazione ed Installazione" + I18N_CHANGE_DIR="Cambia la cartella di destinazione (prefix)" + I18N_DISABLE_FAST="Disabilita compilazione veloce" + I18N_ENABLE_FAST="Abilita compilazione veloce" + I18N_INSTALL="Installa" + I18N_LICENSE="Licenza" + I18N_NEWS="Cosa c'è di nuovo? (q - esci)" + I18N_PRESS_ENTER="Premi <Enter> per uscire" + I18N_QUIT="Esci" + I18N_THANKS="Grazie di usare" + I18N_MENU="Menu K: Accessori -> KShutDown" + I18N_CONF_WITH="Configurazione con" + I18N_INST_FAILED="Installazione fallita!" + I18N_COMP_FAILED="Compilazione fallita!" + I18N_CONF_FAILED="Configurazione fallita!" + I18N_COMP_START="Compilazione..." + I18N_MINU=" Per questo potrebbero volerci alcuni minuti." + I18N_MISSING_DEPEN1="Assicurati di aver installato il pacchetto 'kdelibs-devel'" + I18N_MISSING_DEPEN2=" che è necessario per compilare ogni applicazione KDE." + I18N_ENTER_DIR="Inserisci una nuova destinazione" + I18N_SETUP="Installazione" + I18N_README="Leggimi" +fi +# internal functions + +ks_kill() +{ + echo + echo + echo "$I18N_SETUP: ${1}" + echo + echo "$I18N_PRESS_ENTER" + read + ks_quit 1 +} + +ks_quit() +{ + ks_reset + exit ${1} +} + +ks_reset() +{ + tput sgr0 +} + +ks_show_finish_info() +{ + echo + echo "$I18N_THANKS $META_FULL_NAME!" + echo " The $META_FULL_NAME Team" + echo + echo "HOW TO RUN?" + echo + echo "$I18N_MENU" + echo "Command: kshutdown" + echo "Command line options: kshutdown --help" + echo + echo -e "$I18N_PRESS_ENTER" + read +} + +ks_show_menu() +{ + echo -e "$DEF_C" + clear + echo + echo + echo " $I18N_SETUP" + echo " $META_FULL_NAME $META_VERSION" + echo + echo + echo -e " ${KEY_C}${I18N_TITLE_SETUP}${DEF_C}" + echo -e " [${KEY_C}i${DEF_C}] $I18N_INSTALL (./configure --prefix=${INSTALL_DIR}, make, kdesu -c \"make install\")" + echo -e " [${KEY_C}p${DEF_C}] $I18N_CHANGE_DIR" + if [ -n "$FAST_COMPILATION" ]; then + echo -e " [${KEY_C}f${DEF_C}] $I18N_DISABLE_FAST"; + else + echo -e " [${KEY_C}f${DEF_C}] $I18N_ENABLE_FAST (--enable-final)"; + fi + echo + echo -e " ${KEY_C}${I18N_TITLE_DOCS}${DEF_C}" + echo -e " [${KEY_C}n${DEF_C}] $I18N_NEWS" + echo -e " [${KEY_C}l${DEF_C}] $I18N_LICENSE (GNU GPL)" + echo -e " [${KEY_C}r${DEF_C}] $I18N_README" + echo + echo -e " [${KEY_C}q${DEF_C}] $I18N_QUIT" + echo + echo + echo " http://kshutdown.sourceforge.net" +} + +while [ 1 ]; do + ks_show_menu + # wait for a single key + read -n 1 -s + + # install + if [[ ("$REPLY" == "i") || ( "$REPLY" == "I" ) ]]; then + if [ -n "$FAST_COMPILATION" ]; then + CONFIGURE_OPTIONS="--prefix=${INSTALL_DIR} --enable-final"; + else + CONFIGURE_OPTIONS="--prefix=${INSTALL_DIR}"; + fi + echo + echo "$I18N_SETUP: $I18N_CONF_WITH '$CONFIGURE_OPTIONS'..." + echo + # configure + if ! [ -f ./configure ]; then + make -f admin/Makefile.common cvs + fi + if ./configure $CONFIGURE_OPTIONS; then + echo "$I18N_SETUP: $I18N_COMP_START" + echo "$I18N_MINU" + if make; then + if [ -w "${INSTALL_DIR}" ]; then + if make install; then + ks_show_finish_info + ks_quit + else + ks_kill "$I18N_INST_FAILED" + fi + else + if kdesu -c "make install"; then + ks_show_finish_info + ks_quit + else + ks_kill "$I18N_INST_FAILED" + fi + fi + else + ks_kill "$I18N_COMP_FAILED" + fi + else + echo + echo + echo "$I18N_SETUP: $I18N_MISSING_DEPEN1" + echo "$I18N_MISSING_DEPEN2" + ks_kill "$I18N_CONF_FAILED" + fi + ks_quit + + # prefix + elif [[ ("$REPLY" == "p") || ( "$REPLY" == "P" ) ]]; then + echo + echo "$I18N_ENTER_DIR [${DEFAULT_DIR}]: " + read -e + if [ -z "$REPLY" ]; then + REPLY="$DEFAULT_DIR" + fi + INSTALL_DIR="$REPLY" + + # toggle fast compilation + elif [[ ("$REPLY" == "f") || ( "$REPLY" == "F" ) ]]; then + if [ -z "$FAST_COMPILATION" ]; then + FAST_COMPILATION="true"; + else + FAST_COMPILATION=""; + fi + + # news + elif [[ ("$REPLY" == "n") || ( "$REPLY" == "N" ) ]]; then + less "NEWS" + + # license + elif [[ ("$REPLY" == "l") || ( "$REPLY" == "L" ) ]]; then + less "COPYING" + + # readme + elif [[ ("$REPLY" == "r") || ( "$REPLY" == "R" ) ]]; then + less "README" + + # quit + elif [[ ("$REPLY" == "q") || ( "$REPLY" == "Q" ) ]]; then + ks_reset + clear + exit + fi + +done @@ -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 @@ -0,0 +1 @@ +1.0.4
\ No newline at end of file diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..d674ff8 --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,11809 @@ +## -*- autoconf -*- + +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 1997 Janos Farkas (chexum@shadow.banki.hu) +dnl (C) 1997,98,99 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. + +dnl IMPORTANT NOTE: +dnl Please do not modify this file unless you expect your modifications to be +dnl carried into every other module in the repository. +dnl +dnl Single-module modifications are best placed in configure.in for kdelibs +dnl and kdebase or configure.in.in if present. + +# KDE_PATH_X_DIRECT +dnl Internal subroutine of AC_PATH_X. +dnl Set ac_x_includes and/or ac_x_libraries. +AC_DEFUN([KDE_PATH_X_DIRECT], +[ +AC_REQUIRE([KDE_CHECK_LIB64]) + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +AC_TRY_CPP([#include <$x_direct_test_include>], +[# We can compile using X headers with no special include directory. +ac_x_includes=], +[# Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done]) +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)], +[LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries=], +[LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \ + /usr/X11/lib${kdelibsuff} \ + /usr/X11R6/lib${kdelibsuff} \ + /usr/X11R5/lib${kdelibsuff} \ + /usr/X11R4/lib${kdelibsuff} \ + \ + /usr/lib${kdelibsuff}/X11 \ + /usr/lib${kdelibsuff}/X11R6 \ + /usr/lib${kdelibsuff}/X11R5 \ + /usr/lib${kdelibsuff}/X11R4 \ + \ + /usr/local/X11/lib${kdelibsuff} \ + /usr/local/X11R6/lib${kdelibsuff} \ + /usr/local/X11R5/lib${kdelibsuff} \ + /usr/local/X11R4/lib${kdelibsuff} \ + \ + /usr/local/lib${kdelibsuff}/X11 \ + /usr/local/lib${kdelibsuff}/X11R6 \ + /usr/local/lib${kdelibsuff}/X11R5 \ + /usr/local/lib${kdelibsuff}/X11R4 \ + \ + /usr/X386/lib${kdelibsuff} \ + /usr/x386/lib${kdelibsuff} \ + /usr/XFree86/lib${kdelibsuff}/X11 \ + \ + /usr/lib${kdelibsuff} \ + /usr/local/lib${kdelibsuff} \ + /usr/unsupported/lib${kdelibsuff} \ + /usr/athena/lib${kdelibsuff} \ + /usr/local/x11r5/lib${kdelibsuff} \ + /usr/lpp/Xamples/lib${kdelibsuff} \ + /lib/usr/lib${kdelibsuff}/X11 \ + \ + /usr/openwin/lib${kdelibsuff} \ + /usr/openwin/share/lib${kdelibsuff} \ + ; \ +do +dnl Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done]) +fi # $ac_x_libraries = NO +]) + + +dnl ------------------------------------------------------------------------ +dnl Find a file (or one of more files in a list of dirs) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_FIND_FILE], +[ +$3=NO +for i in $2; +do + for j in $1; + do + echo "configure: __oline__: $i/$j" >&AC_FD_CC + if test -r "$i/$j"; then + echo "taking that" >&AC_FD_CC + $3=$i + break 2 + fi + done +done +]) + +dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs, +dnl if-not-found, test-parameter, prepend-path) +dnl +dnl Look for program-name in list-of-dirs+$PATH. +dnl If prepend-path is set, look in $PATH+list-of-dirs instead. +dnl If found, $variable-name is set. If not, if-not-found is evaluated. +dnl test-parameter: if set, the program is executed with this arg, +dnl and only a successful exit code is required. +AC_DEFUN([KDE_FIND_PATH], +[ + AC_MSG_CHECKING([for $1]) + if test -n "$$2"; then + kde_cv_path="$$2"; + else + kde_cache=`echo $1 | sed 'y%./+-%__p_%'` + + AC_CACHE_VAL(kde_cv_path_$kde_cache, + [ + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + dirs="" + for dir in $PATH; do + dirs="$dirs $dir" + done + if test -z "$6"; then dnl Append dirs in PATH (default) + dirs="$3 $dirs" + else dnl Prepend dirs in PATH (if 6th arg is set) + dirs="$dirs $3" + fi + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/$1"; then + if test -n "$5" + then + evalstr="$dir/$1 $5 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/$1" + break + fi + else + kde_cv_path="$dir/$1" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + ]) + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + AC_MSG_RESULT(not found) + $4 + else + AC_MSG_RESULT($kde_cv_path) + $2=$kde_cv_path + + fi +]) + +AC_DEFUN([KDE_MOC_ERROR_MESSAGE], +[ + AC_MSG_ERROR([No Qt meta object compiler (moc) found! +Please check whether you installed Qt correctly. +You need to have a running moc binary. +configure tried to run $ac_cv_path_moc and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable MOC to the right one before running +configure. +]) +]) + +AC_DEFUN([KDE_UIC_ERROR_MESSAGE], +[ + AC_MSG_WARN([No Qt ui compiler (uic) found! +Please check whether you installed Qt correctly. +You need to have a running uic binary. +configure tried to run $ac_cv_path_uic and the test didn't +succeed. If configure shouldn't have tried this one, set +the environment variable UIC to the right one before running +configure. +]) +]) + + +AC_DEFUN([KDE_CHECK_UIC_FLAG], +[ + AC_MSG_CHECKING([whether uic supports -$1 ]) + kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'` + AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache, + [ + cat >conftest.ui <<EOT + <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI> +EOT + ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null" + if AC_TRY_EVAL(ac_uic_testrun); then + eval "kde_cv_prog_uic_$kde_cache=yes" + else + eval "kde_cv_prog_uic_$kde_cache=no" + fi + rm -f conftest* + ]) + + if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then + AC_MSG_RESULT([yes]) + : + $3 + else + AC_MSG_RESULT([no]) + : + $4 + fi +]) + + +dnl ------------------------------------------------------------------------ +dnl Find the meta object compiler and the ui compiler in the PATH, +dnl in $QTDIR/bin, and some more usual places +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_MOC_UIC], +[ + AC_REQUIRE([KDE_CHECK_PERL]) + qt_bindirs="" + for dir in $kde_qt_dirs; do + qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc" + done + qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin" + if test ! "$ac_qt_bindir" = "NO"; then + qt_bindirs="$ac_qt_bindir $qt_bindirs" + fi + + KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE]) + if test -z "$UIC_NOT_NEEDED"; then + KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""]) + if test -z "$UIC_PATH" ; then + KDE_UIC_ERROR_MESSAGE + exit 1 + else + UIC=$UIC_PATH + + if test $kde_qtver = 3; then + KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no) + KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no) + + if test x$ac_uic_supports_libpath = xyes; then + UIC="$UIC -L \$(kde_widgetdir)" + fi + if test x$ac_uic_supports_nounload = xyes; then + UIC="$UIC -nounload" + fi + fi + fi + else + UIC="echo uic not available: " + fi + + AC_SUBST(MOC) + AC_SUBST(UIC) + + UIC_TR="i18n" + if test $kde_qtver = 3; then + UIC_TR="tr2i18n" + fi + + AC_SUBST(UIC_TR) +]) + +AC_DEFUN([KDE_1_CHECK_PATHS], +[ + KDE_1_CHECK_PATH_HEADERS + + KDE_TEST_RPATH= + + if test -n "$USE_RPATH"; then + + if test -n "$kde_libraries"; then + KDE_TEST_RPATH="-R $kde_libraries" + fi + + if test -n "$qt_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries" + fi + + if test -n "$x_libraries"; then + KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries" + fi + + KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH" + fi + +AC_MSG_CHECKING([for KDE libraries installed]) +ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5' + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + AC_MSG_RESULT(yes) +else + AC_MSG_ERROR([your system fails at linking a small KDE application! +Check, if your compiler is installed correctly and if you have used the +same compiler to compile Qt and kdelibs as you did use now. +For more details about this problem, look at the end of config.log.]) +fi + +if eval `KDEDIR= ./conftest 2>&5`; then + kde_result=done +else + kde_result=problems +fi + +KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log +kde_have_all_paths=yes + +KDE_SET_PATHS($kde_result) + +]) + +AC_DEFUN([KDE_SET_PATHS], +[ + kde_cv_all_paths="kde_have_all_paths=\"yes\" \ + kde_htmldir=\"$kde_htmldir\" \ + kde_appsdir=\"$kde_appsdir\" \ + kde_icondir=\"$kde_icondir\" \ + kde_sounddir=\"$kde_sounddir\" \ + kde_datadir=\"$kde_datadir\" \ + kde_locale=\"$kde_locale\" \ + kde_cgidir=\"$kde_cgidir\" \ + kde_confdir=\"$kde_confdir\" \ + kde_kcfgdir=\"$kde_kcfgdir\" \ + kde_mimedir=\"$kde_mimedir\" \ + kde_toolbardir=\"$kde_toolbardir\" \ + kde_wallpaperdir=\"$kde_wallpaperdir\" \ + kde_templatesdir=\"$kde_templatesdir\" \ + kde_bindir=\"$kde_bindir\" \ + kde_servicesdir=\"$kde_servicesdir\" \ + kde_servicetypesdir=\"$kde_servicetypesdir\" \ + kde_moduledir=\"$kde_moduledir\" \ + kde_styledir=\"$kde_styledir\" \ + kde_widgetdir=\"$kde_widgetdir\" \ + xdg_appsdir=\"$xdg_appsdir\" \ + xdg_menudir=\"$xdg_menudir\" \ + xdg_directorydir=\"$xdg_directorydir\" \ + kde_result=$1" +]) + +AC_DEFUN([KDE_SET_DEFAULT_PATHS], +[ +if test "$1" = "default"; then + + if test -z "$kde_htmldir"; then + kde_htmldir='\${datadir}/doc/HTML' + fi + if test -z "$kde_appsdir"; then + kde_appsdir='\${datadir}/applnk' + fi + if test -z "$kde_icondir"; then + kde_icondir='\${datadir}/icons' + fi + if test -z "$kde_sounddir"; then + kde_sounddir='\${datadir}/sounds' + fi + if test -z "$kde_datadir"; then + kde_datadir='\${datadir}/apps' + fi + if test -z "$kde_locale"; then + kde_locale='\${datadir}/locale' + fi + if test -z "$kde_cgidir"; then + kde_cgidir='\${exec_prefix}/cgi-bin' + fi + if test -z "$kde_confdir"; then + kde_confdir='\${datadir}/config' + fi + if test -z "$kde_kcfgdir"; then + kde_kcfgdir='\${datadir}/config.kcfg' + fi + if test -z "$kde_mimedir"; then + kde_mimedir='\${datadir}/mimelnk' + fi + if test -z "$kde_toolbardir"; then + kde_toolbardir='\${datadir}/toolbar' + fi + if test -z "$kde_wallpaperdir"; then + kde_wallpaperdir='\${datadir}/wallpapers' + fi + if test -z "$kde_templatesdir"; then + kde_templatesdir='\${datadir}/templates' + fi + if test -z "$kde_bindir"; then + kde_bindir='\${exec_prefix}/bin' + fi + if test -z "$kde_servicesdir"; then + kde_servicesdir='\${datadir}/services' + fi + if test -z "$kde_servicetypesdir"; then + kde_servicetypesdir='\${datadir}/servicetypes' + fi + if test -z "$kde_moduledir"; then + if test "$kde_qtver" = "2"; then + kde_moduledir='\${libdir}/kde2' + else + kde_moduledir='\${libdir}/kde3' + fi + fi + if test -z "$kde_styledir"; then + kde_styledir='\${libdir}/kde3/plugins/styles' + fi + if test -z "$kde_widgetdir"; then + kde_widgetdir='\${libdir}/kde3/plugins/designer' + fi + if test -z "$xdg_appsdir"; then + xdg_appsdir='\${datadir}/applications/kde' + fi + if test -z "$xdg_menudir"; then + xdg_menudir='\${sysconfdir}/xdg/menus' + fi + if test -z "$xdg_directorydir"; then + xdg_directorydir='\${datadir}/desktop-directories' + fi + + KDE_SET_PATHS(defaults) + +else + + if test $kde_qtver = 1; then + AC_MSG_RESULT([compiling]) + KDE_1_CHECK_PATHS + else + AC_MSG_ERROR([path checking not yet supported for KDE 2]) + fi + +fi +]) + +AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS], +[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" || + test -z "$kde_icondir" || test -z "$kde_sounddir" || + test -z "$kde_datadir" || test -z "$kde_locale" || + test -z "$kde_cgidir" || test -z "$kde_confdir" || + test -z "$kde_kcfgdir" || + test -z "$kde_mimedir" || test -z "$kde_toolbardir" || + test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" || + test -z "$kde_bindir" || test -z "$kde_servicesdir" || + test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" || + test -z "$kde_styledir" || test -z "kde_widgetdir" || + test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" || + test "x$kde_have_all_paths" != "xyes"; then + kde_have_all_paths=no + fi +]) + +AC_DEFUN([KDE_MISSING_PROG_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed KDE correctly. +]) +]) + +AC_DEFUN([KDE_MISSING_ARTS_ERROR], +[ + AC_MSG_ERROR([The important program $1 was not found! +Please check whether you installed aRts correctly or use +--without-arts to compile without aRts support (this will remove functionality). +]) +]) + +AC_DEFUN([KDE_SET_DEFAULT_BINDIRS], +[ + kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin" + test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs" + if test -n "$KDEDIRS"; then + kde_save_IFS=$IFS + IFS=: + for dir in $KDEDIRS; do + kde_default_bindirs="$dir/bin $kde_default_bindirs " + done + IFS=$kde_save_IFS + fi +]) + +AC_DEFUN([KDE_SUBST_PROGRAMS], +[ + AC_ARG_WITH(arts, + AC_HELP_STRING([--without-arts],[build without aRts [default=no]]), + [build_arts=$withval], + [build_arts=yes] + ) + AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no") + if test "$build_arts" = "no"; then + AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts]) + fi + + KDE_SET_DEFAULT_BINDIRS + kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs" + KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)]) + KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)]) + if test "$build_arts" '!=' "no"; then + KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)]) + KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)]) + fi + KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs]) + + kde32ornewer=1 + kde33ornewer=1 + if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then + kde32ornewer= + kde33ornewer= + else + if test "$kde_qtver" = "3"; then + if test "$kde_qtsubver" -le 1; then + kde32ornewer= + fi + if test "$kde_qtsubver" -le 2; then + kde33ornewer= + fi + if test "$KDECONFIG" != "compiled"; then + if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then + kde33ornewer= + fi + fi + fi + fi + + if test -n "$kde32ornewer"; then + KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)]) + KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)]) + fi + if test -n "$kde33ornewer"; then + KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)]) + AC_SUBST(MAKEKDEWIDGETS) + fi + KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""]) + + if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then + kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share" + test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs" + AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET) + if test "$KDE_XSL_STYLESHEET" = "NO"; then + KDE_XSL_STYLESHEET="" + else + KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl" + fi + fi + + DCOP_DEPENDENCIES='$(DCOPIDL)' + if test -n "$kde32ornewer"; then + KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)' + DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)' + AC_SUBST(KCONFIG_COMPILER) + AC_SUBST(KCFG_DEPENDENCIES) + AC_SUBST(DCOPIDLNG) + fi + AC_SUBST(DCOPIDL) + AC_SUBST(DCOPIDL2CPP) + AC_SUBST(DCOP_DEPENDENCIES) + AC_SUBST(MCOPIDL) + AC_SUBST(ARTSCCONFIG) + AC_SUBST(MEINPROC) + AC_SUBST(KDE_XSL_STYLESHEET) + AC_SUBST(XMLLINT) +])dnl + +AC_DEFUN([AC_CREATE_KFSSTND], +[ +AC_REQUIRE([AC_CHECK_RPATH]) + +AC_MSG_CHECKING([for KDE paths]) +kde_result="" +kde_cached_paths=yes +AC_CACHE_VAL(kde_cv_all_paths, +[ + KDE_SET_DEFAULT_PATHS($1) + kde_cached_paths=no +]) +eval "$kde_cv_all_paths" +KDE_CHECK_PATHS_FOR_COMPLETENESS +if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then + # wrong values were cached, may be, we can set better ones + kde_result= + kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir= + kde_datadir= kde_locale= kde_cgidir= kde_confdir= kde_kcfgdir= + kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir= + kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir= + kde_have_all_paths= + kde_styledir= + kde_widgetdir= + xdg_appsdir = xdg_menudir= xdg_directorydir= + KDE_SET_DEFAULT_PATHS($1) + eval "$kde_cv_all_paths" + KDE_CHECK_PATHS_FOR_COMPLETENESS + kde_result="$kde_result (cache overridden)" +fi +if test "$kde_have_all_paths" = "no"; then + AC_MSG_ERROR([configure could not run a little KDE program to test the environment. +Since it had compiled and linked before, it must be a strange problem on your system. +Look at config.log for details. If you are not able to fix this, look at +http://www.kde.org/faq/installation.html or any www.kde.org mirror. +(If you're using an egcs version on Linux, you may update binutils!) +]) +else + rm -f conftest* + AC_MSG_RESULT($kde_result) +fi + +bindir=$kde_bindir + +KDE_SUBST_PROGRAMS + +]) + +AC_DEFUN([AC_SUBST_KFSSTND], +[ +AC_SUBST(kde_htmldir) +AC_SUBST(kde_appsdir) +AC_SUBST(kde_icondir) +AC_SUBST(kde_sounddir) +AC_SUBST(kde_datadir) +AC_SUBST(kde_locale) +AC_SUBST(kde_confdir) +AC_SUBST(kde_kcfgdir) +AC_SUBST(kde_mimedir) +AC_SUBST(kde_wallpaperdir) +AC_SUBST(kde_bindir) +dnl X Desktop Group standards +AC_SUBST(xdg_appsdir) +AC_SUBST(xdg_menudir) +AC_SUBST(xdg_directorydir) +dnl for KDE 2 +AC_SUBST(kde_templatesdir) +AC_SUBST(kde_servicesdir) +AC_SUBST(kde_servicetypesdir) +AC_SUBST(kde_moduledir) +AC_SUBST(kdeinitdir, '$(kde_moduledir)') +AC_SUBST(kde_styledir) +AC_SUBST(kde_widgetdir) +if test "$kde_qtver" = 1; then + kde_minidir="$kde_icondir/mini" +else +# for KDE 1 - this breaks KDE2 apps using minidir, but +# that's the plan ;-/ + kde_minidir="/dev/null" +fi +dnl AC_SUBST(kde_minidir) +dnl AC_SUBST(kde_cgidir) +dnl AC_SUBST(kde_toolbardir) +]) + +AC_DEFUN([KDE_MISC_TESTS], +[ + dnl Checks for libraries. + AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD + AC_SUBST(LIBUTIL) + AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD + AC_SUBST(LIBCOMPAT) + kde_have_crypt= + AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes], + AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [ + AC_MSG_WARN([you have no crypt in either libcrypt or libc. +You should install libcrypt from another source or configure with PAM +support]) + kde_have_crypt=no + ])) + AC_SUBST(LIBCRYPT) + if test $kde_have_crypt = yes; then + AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function]) + fi + AC_CHECK_SOCKLEN_T + AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"]) + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + AC_CHECK_LIB(dnet_stub, dnet_ntoa, + [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"]) + fi + AC_CHECK_FUNC(inet_ntoa) + if test $ac_cv_func_inet_ntoa = no; then + AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl") + fi + AC_CHECK_FUNC(connect) + if test $ac_cv_func_connect = no; then + AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", , + $X_EXTRA_LIBS) + fi + + AC_CHECK_FUNC(remove) + if test $ac_cv_func_remove = no; then + AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix") + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + AC_CHECK_FUNC(shmat, , + AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")) + + # more headers that need to be explicitly included on darwin + AC_CHECK_HEADERS(sys/types.h stdint.h) + + # sys/bitypes.h is needed for uint32_t and friends on Tru64 + AC_CHECK_HEADERS(sys/bitypes.h) + + # darwin requires a poll emulation library + AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll") + + # for some image handling on Mac OS X + AC_CHECK_HEADERS(Carbon/Carbon.h) + + # CoreAudio framework + AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [ + AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API]) + FRAMEWORK_COREAUDIO="-Xlinker -framework -Xlinker CoreAudio" + ]) + + AC_CHECK_RES_INIT + AC_SUBST(LIB_POLL) + AC_SUBST(FRAMEWORK_COREAUDIO) + LIBSOCKET="$X_EXTRA_LIBS" + AC_SUBST(LIBSOCKET) + AC_SUBST(X_EXTRA_LIBS) + AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4 + AC_SUBST(LIBUCB) + + case $host in dnl this *is* LynxOS specific + *-*-lynxos* ) + AC_MSG_CHECKING([LynxOS header file wrappers]) + [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"] + AC_MSG_RESULT(disabled) + AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS + ;; + esac + + KDE_CHECK_TYPES + KDE_CHECK_LIBDL + KDE_CHECK_STRLCPY + KDE_CHECK_PIE_SUPPORT + +# darwin needs this to initialize the environment +AC_CHECK_HEADERS(crt_externs.h) +AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])]) + +AH_VERBATIM(_DARWIN_ENVIRON, +[ +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include <sys/time.h> +# include <crt_externs.h> +# define environ (*_NSGetEnviron()) +#endif +]) + +AH_VERBATIM(_AIX_STRINGS_H_BZERO, +[ +/* + * AIX defines FD_SET in terms of bzero, but fails to include <strings.h> + * that defines bzero. + */ + +#if defined(_AIX) +#include <strings.h> +#endif +]) + +AC_CHECK_FUNCS([vsnprintf snprintf]) + +AH_VERBATIM(_TRU64,[ +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include <stdarg.h> +#include <stdlib.h> +#else +#include <varargs.h> +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Find the header files and libraries for X-Windows. Extended the +dnl macro AC_PATH_X +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([K_PATH_X], +[ +AC_REQUIRE([KDE_MISC_TESTS])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_ARG_ENABLE( + embedded, + AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]), + kde_use_qt_emb=$enableval, + kde_use_qt_emb=no +) + +AC_ARG_ENABLE( + qtopia, + AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]), + kde_use_qt_emb_palm=$enableval, + kde_use_qt_emb_palm=no +) + +AC_ARG_ENABLE( + mac, + AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]), + kde_use_qt_mac=$enableval, + kde_use_qt_mac=no +) + +# used to disable x11-specific stuff on special platforms +AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no") + +if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then + +AC_MSG_CHECKING(for X) + +AC_CACHE_VAL(kde_cv_have_x, +[# One or both of the vars are not set, and there is no cached value. +if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then + kde_x_includes=NO +else + kde_x_includes=$x_includes +fi +if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then + kde_x_libraries=NO +else + kde_x_libraries=$x_libraries +fi + +# below we use the standard autoconf calls +ac_x_libraries=$kde_x_libraries +ac_x_includes=$kde_x_includes + +KDE_PATH_X_DIRECT +dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries. +dnl Unfortunately, if compiling with the N32 ABI, this is not the correct +dnl location. The correct location is /usr/lib32 or an undefined value +dnl (the linker is smart enough to pick the correct default library). +dnl Things work just fine if you use just AC_PATH_X_DIRECT. +dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to +dnl /usr/openwin/include, which doesn't work. /usr/include does work, so +dnl x_includes should be left alone. +case "$host" in +mips-sgi-irix6*) + ;; +*-*-solaris*) + ;; +*) + _AC_PATH_X_XMKMF + if test -z "$ac_x_includes"; then + ac_x_includes="." + fi + if test -z "$ac_x_libraries"; then + ac_x_libraries="/usr/lib${kdelibsuff}" + fi +esac +#from now on we use our own again + +# when the user already gave --x-includes, we ignore +# what the standard autoconf macros told us. +if test "$kde_x_includes" = NO; then + kde_x_includes=$ac_x_includes +fi + +# for --x-libraries too +if test "$kde_x_libraries" = NO; then + kde_x_libraries=$ac_x_libraries +fi + +if test "$kde_x_includes" = NO; then + AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!]) +fi + +if test "$kde_x_libraries" = NO; then + AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!]) +fi + +# Record where we found X for the cache. +kde_cv_have_x="have_x=yes \ + kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries" +])dnl + +eval "$kde_cv_have_x" + +if test "$have_x" != yes; then + AC_MSG_RESULT($have_x) + no_x=yes +else + AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes]) +fi + +if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then + X_INCLUDES="" + x_includes="."; dnl better than nothing :- + else + x_includes=$kde_x_includes + X_INCLUDES="-I$x_includes" +fi + +if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE; then + X_LDFLAGS="" + x_libraries="/usr/lib"; dnl better than nothing :- + else + x_libraries=$kde_x_libraries + X_LDFLAGS="-L$x_libraries" +fi +all_includes="$X_INCLUDES" +all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS" + +# Check for libraries that X11R6 Xt/Xaw programs need. +ac_save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to +# check for ICE first), but we must link in the order -lSM -lICE or +# we get undefined symbols. So assume we have SM if we have ICE. +# These have to be linked with before -lX11, unlike the other +# libraries we check for below, so use a different variable. +# --interran@uluru.Stanford.EDU, kb@cs.umb.edu. +AC_CHECK_LIB(ICE, IceConnectionNumber, + [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS) +LDFLAGS="$ac_save_LDFLAGS" + +LIB_X11='-lX11 $(LIBSOCKET)' + +AC_MSG_CHECKING(for libXext) +AC_CACHE_VAL(kde_cv_have_libXext, +[ +kde_ldflags_safe="$LDFLAGS" +kde_libs_safe="$LIBS" + +LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS" +LIBS="-lXext -lX11 $LIBSOCKET" + +AC_TRY_LINK([ +#include <stdio.h> +#ifdef STDC_HEADERS +# include <stdlib.h> +#endif +], +[ +printf("hello Xext\n"); +], +kde_cv_have_libXext=yes, +kde_cv_have_libXext=no +) + +LDFLAGS=$kde_ldflags_safe +LIBS=$kde_libs_safe +]) + +AC_MSG_RESULT($kde_cv_have_libXext) + +if test "$kde_cv_have_libXext" = "no"; then + AC_MSG_ERROR([We need a working libXext to proceed. Since configure +can't find it itself, we stop here assuming that make wouldn't find +them either.]) +fi + +LIB_XEXT="-lXext" +QTE_NORTTI="" + +elif test "$kde_use_qt_emb" = "yes"; then + dnl We're using QT Embedded + CPPFLAGS=-DQWS + CXXFLAGS="$CXXFLAGS -fno-rtti" + QTE_NORTTI="-fno-rtti -DQWS" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +elif test "$kde_use_qt_mac" = "yes"; then + dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to + dnl be included to get the information) --Sam + CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp" + CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp" + X_PRE_LIBS="" + LIB_X11="" + LIB_XEXT="" + LIB_XRENDER="" + LIBSM="" + X_INCLUDES="" + X_LDFLAGS="" + x_includes="" + x_libraries="" +fi +AC_SUBST(X_PRE_LIBS) +AC_SUBST(LIB_X11) +AC_SUBST(LIB_XRENDER) +AC_SUBST(LIBSM) +AC_SUBST(X_INCLUDES) +AC_SUBST(X_LDFLAGS) +AC_SUBST(x_includes) +AC_SUBST(x_libraries) +AC_SUBST(QTE_NORTTI) +AC_SUBST(LIB_XEXT) + +]) + +AC_DEFUN([KDE_PRINT_QT_PROGRAM], +[ +AC_REQUIRE([KDE_USE_QT]) +cat > conftest.$ac_ext <<EOF +#include "confdefs.h" +#include <qglobal.h> +#include <qapplication.h> +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext <<EOF +#include <qevent.h> +#include <qstring.h> +#include <qstyle.h> +EOF + +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <<EOF +#if QT_VERSION < 210 +#error 1 +#endif +EOF +fi +fi + +if test "$kde_qtver" = "3"; then +cat >> conftest.$ac_ext <<EOF +#include <qcursor.h> +#include <qstylefactory.h> +#include <private/qucomextra_p.h> +EOF +fi + +echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext +cat >> conftest.$ac_ext <<EOF +#error 1 +#endif + +int main() { +EOF +if test "$kde_qtver" = "2"; then +cat >> conftest.$ac_ext <<EOF + QStringList *t = new QStringList(); + Q_UNUSED(t); +EOF +if test $kde_qtsubver -gt 0; then +cat >> conftest.$ac_ext <<EOF + QString s; + s.setLatin1("Elvis is alive", 14); +EOF +fi +fi +if test "$kde_qtver" = "3"; then +cat >> conftest.$ac_ext <<EOF + (void)QStyleFactory::create(QString::null); + QCursor c(Qt::WhatsThisCursor); +EOF +fi +cat >> conftest.$ac_ext <<EOF + return 0; +} +EOF +]) + +AC_DEFUN([KDE_USE_QT], +[ +if test -z "$1"; then + # Current default Qt version: 3.3 + kde_qtver=3 + kde_qtsubver=3 +else + kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'` + # following is the check if subversion isnt found in passed argument + if test "$kde_qtsubver" = "$1"; then + kde_qtsubver=1 + fi + kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'` + if test "$kde_qtver" = "1"; then + kde_qtsubver=42 + fi +fi + +if test -z "$2"; then + if test "$kde_qtver" = "2"; then + if test $kde_qtsubver -gt 0; then + kde_qt_minversion=">= Qt 2.2.2" + else + kde_qt_minversion=">= Qt 2.0.2" + fi + fi + if test "$kde_qtver" = "3"; then + if test $kde_qtsubver -gt 0; then + if test $kde_qtsubver -gt 1; then + if test $kde_qtsubver -gt 2; then + kde_qt_minversion=">= Qt 3.3 and < 4.0" + else + kde_qt_minversion=">= Qt 3.2 and < 4.0" + fi + else + kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0" + fi + else + kde_qt_minversion=">= Qt 3.0 and < 4.0" + fi + fi + if test "$kde_qtver" = "1"; then + kde_qt_minversion=">= 1.42 and < 2.0" + fi +else + kde_qt_minversion="$2" +fi + +if test -z "$3"; then + if test $kde_qtver = 3; then + if test $kde_qtsubver -gt 0; then + kde_qt_verstring="QT_VERSION >= 0x03@VER@00 && QT_VERSION < 0x040000" + qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'` + kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s,@VER@,$qtsubver,"` + else + kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000" + fi + fi + if test $kde_qtver = 2; then + if test $kde_qtsubver -gt 0; then + kde_qt_verstring="QT_VERSION >= 222" + else + kde_qt_verstring="QT_VERSION >= 200" + fi + fi + if test $kde_qtver = 1; then + kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200" + fi +else + kde_qt_verstring="$3" +fi + +if test $kde_qtver = 4; then + kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4" +fi +if test $kde_qtver = 3; then + kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3" +fi +if test $kde_qtver = 2; then + kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt" +fi +if test $kde_qtver = 1; then + kde_qt_dirs="$QTDIR /usr/lib/qt" +fi +]) + +AC_DEFUN([KDE_CHECK_QT_DIRECT], +[ +AC_REQUIRE([KDE_USE_QT]) +AC_MSG_CHECKING([if Qt compiles without flags]) +AC_CACHE_VAL(kde_cv_qt_direct, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH +ac_LIBRARY_PATH="$LIBRARY_PATH" +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_includes" +LDFLAGS="$LDFLAGS $X_LDFLAGS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBQT -lXext -lX11 $LIBSOCKET" +else +LIBS="$LIBQT $LIBSOCKET" +fi +LD_LIBRARY_PATH= +export LD_LIBRARY_PATH +LIBRARY_PATH= +export LIBRARY_PATH + +KDE_PRINT_QT_PROGRAM + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + kde_cv_qt_direct="yes" +else + kde_cv_qt_direct="no" + echo "configure: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC +fi + +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe" +export LD_LIBRARY_PATH +LIBRARY_PATH="$ac_LIBRARY_PATH" +export LIBRARY_PATH +AC_LANG_RESTORE +]) + +if test "$kde_cv_qt_direct" = "yes"; then + AC_MSG_RESULT(yes) + $1 +else + AC_MSG_RESULT(no) + $2 +fi +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the Qt headers and libraries. +dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed) +dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_PATH_QT_1_3], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([KDE_USE_QT]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +dnl ------------------------------------------------------------------------ +dnl Add configure flag to enable linking to MT version of Qt library. +dnl ------------------------------------------------------------------------ + +AC_ARG_ENABLE( + mt, + AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]), + kde_use_qt_mt=$enableval, + [ + if test $kde_qtver = 3; then + kde_use_qt_mt=yes + else + kde_use_qt_mt=no + fi + ] +) + +USING_QT_MT="" + +dnl ------------------------------------------------------------------------ +dnl If we not get --disable-qt-mt then adjust some vars for the host. +dnl ------------------------------------------------------------------------ + +KDE_MT_LDFLAGS= +KDE_MT_LIBS= +if test "x$kde_use_qt_mt" = "xyes"; then + KDE_CHECK_THREADING + if test "x$kde_use_threading" = "xyes"; then + CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS" + KDE_MT_LDFLAGS="$USE_THREADS" + KDE_MT_LIBS="$LIBPTHREAD" + else + kde_use_qt_mt=no + fi +fi +AC_SUBST(KDE_MT_LDFLAGS) +AC_SUBST(KDE_MT_LIBS) + +kde_qt_was_given=yes + +dnl ------------------------------------------------------------------------ +dnl If we haven't been told how to link to Qt, we work it out for ourselves. +dnl ------------------------------------------------------------------------ +if test -z "$LIBQT_GLOB"; then + if test "x$kde_use_qt_emb" = "xyes"; then + LIBQT_GLOB="libqte.*" + else + LIBQT_GLOB="libqt.*" + fi +fi + +dnl ------------------------------------------------------------ +dnl If we got --enable-embedded then adjust the Qt library name. +dnl ------------------------------------------------------------ +if test "x$kde_use_qt_emb" = "xyes"; then + qtlib="qte" +else + qtlib="qt" +fi + +kde_int_qt="-l$qtlib" + +if test -z "$LIBQPE"; then +dnl ------------------------------------------------------------ +dnl If we got --enable-palmtop then add -lqpe to the link line +dnl ------------------------------------------------------------ + if test "x$kde_use_qt_emb" = "xyes"; then + if test "x$kde_use_qt_emb_palm" = "xyes"; then + LIB_QPE="-lqpe" + else + LIB_QPE="" + fi + else + LIB_QPE="" + fi +fi + +dnl ------------------------------------------------------------------------ +dnl If we got --enable-qt-mt then adjust the Qt library name for the host. +dnl ------------------------------------------------------------------------ + +if test "x$kde_use_qt_mt" = "xyes"; then + LIBQT="-l$qtlib-mt" + kde_int_qt="-l$qtlib-mt" + LIBQT_GLOB="lib$qtlib-mt.*" + USING_QT_MT="using -mt" +else + LIBQT="-l$qtlib" +fi + +if test $kde_qtver != 1; then + + AC_REQUIRE([AC_FIND_PNG]) + AC_REQUIRE([AC_FIND_JPEG]) + LIBQT="$LIBQT $LIBPNG $LIBJPEG" +fi + +if test $kde_qtver = 3; then + AC_REQUIRE([KDE_CHECK_LIBDL]) + LIBQT="$LIBQT $LIBDL" +fi + +AC_MSG_CHECKING([for Qt]) + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET" +fi +ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO +qt_libraries="" +qt_includes="" +AC_ARG_WITH(qt-dir, + AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]), + [ ac_qt_includes="$withval"/include + ac_qt_libraries="$withval"/lib${kdelibsuff} + ac_qt_bindir="$withval"/bin + ]) + +AC_ARG_WITH(qt-includes, + AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]), + [ + ac_qt_includes="$withval" + ]) + +kde_qt_libs_given=no + +AC_ARG_WITH(qt-libraries, + AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]), + [ ac_qt_libraries="$withval" + kde_qt_libs_given=yes + ]) + +AC_CACHE_VAL(ac_cv_have_qt, +[#try to guess Qt locations + +qt_incdirs="" +for dir in $kde_qt_dirs; do + qt_incdirs="$qt_incdirs $dir/include $dir" +done +qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes" +if test ! "$ac_qt_includes" = "NO"; then + qt_incdirs="$ac_qt_includes $qt_incdirs" +fi + +if test "$kde_qtver" != "1"; then + kde_qt_header=qstyle.h +else + kde_qt_header=qglobal.h +fi + +AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir) +ac_qt_includes="$qt_incdir" + +qt_libdirs="" +for dir in $kde_qt_dirs; do + qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir" +done +qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries" +if test ! "$ac_qt_libraries" = "NO"; then + qt_libdir=$ac_qt_libraries +else + qt_libdirs="$ac_qt_libraries $qt_libdirs" + # if the Qt was given, the chance is too big that libqt.* doesn't exist + qt_libdir=NONE + for dir in $qt_libdirs; do + try="ls -1 $dir/${LIBQT_GLOB}" + if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done +fi +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIBQT="$LIBQT ${kde_int_qt}_incremental" + break + fi +done + +ac_qt_libraries="$qt_libdir" + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +ac_cxxflags_safe="$CXXFLAGS" +ac_ldflags_safe="$LDFLAGS" +ac_libs_safe="$LIBS" + +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" +LIBS="$LIBS $LIBQT $KDE_MT_LIBS" + +KDE_PRINT_QT_PROGRAM + +if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* +else + echo "configure: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC + ac_qt_libraries="NO" +fi +rm -f conftest* +CXXFLAGS="$ac_cxxflags_safe" +LDFLAGS="$ac_ldflags_safe" +LIBS="$ac_libs_safe" + +AC_LANG_RESTORE +if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then + ac_cv_have_qt="have_qt=no" + ac_qt_notfound="" + missing_qt_mt="" + if test "$ac_qt_includes" = NO; then + if test "$ac_qt_libraries" = NO; then + ac_qt_notfound="(headers and libraries)"; + else + ac_qt_notfound="(headers)"; + fi + else + if test "x$kde_use_qt_mt" = "xyes"; then + missing_qt_mt=" +Make sure that you have compiled Qt with thread support!" + ac_qt_notfound="(library $qtlib-mt)"; + else + ac_qt_notfound="(library $qtlib)"; + fi + fi + + AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation! +For more details about this problem, look at the end of config.log.$missing_qt_mt]) +else + have_qt="yes" +fi +]) + +eval "$ac_cv_have_qt" + +if test "$have_qt" != yes; then + AC_MSG_RESULT([$have_qt]); +else + ac_cv_have_qt="have_qt=yes \ + ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries" + AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT]) + + qt_libraries="$ac_qt_libraries" + qt_includes="$ac_qt_includes" +fi + +if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then + KDE_CHECK_QT_DIRECT(qt_libraries= ,[]) +fi + +AC_SUBST(qt_libraries) +AC_SUBST(qt_includes) + +if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then + QT_INCLUDES="" +else + QT_INCLUDES="-I$qt_includes" + all_includes="$QT_INCLUDES $all_includes" +fi + +if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then + QT_LDFLAGS="" +else + QT_LDFLAGS="-L$qt_libraries" + all_libraries="$QT_LDFLAGS $all_libraries" +fi +test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS" + +AC_SUBST(QT_INCLUDES) +AC_SUBST(QT_LDFLAGS) +AC_PATH_QT_MOC_UIC + +KDE_CHECK_QT_JPEG + +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)' +else +LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)' +fi +test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS" +for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do + if test -e "$a"; then + LIB_QT="$LIB_QT ${kde_int_qt}_incremental" + break + fi +done + +AC_SUBST(LIB_QT) +AC_SUBST(LIB_QPE) + +AC_SUBST(kde_qtver) +]) + +AC_DEFUN([AC_PATH_QT], +[ +AC_PATH_QT_1_3 +]) + +AC_DEFUN([KDE_CHECK_UIC_PLUGINS], +[ +AC_REQUIRE([AC_PATH_QT_MOC_UIC]) + +if test x$ac_uic_supports_libpath = xyes; then + +AC_MSG_CHECKING([if UIC has KDE plugins available]) +AC_CACHE_VAL(kde_cv_uic_plugins, +[ +cat > actest.ui << EOF +<!DOCTYPE UI><UI version="3.0" stdsetdef="1"> +<class>NewConnectionDialog</class> +<widget class="QDialog"> + <widget class="KLineEdit"> + <property name="name"> + <cstring>testInput</cstring> + </property> + </widget> +</widget> +</UI> +EOF + + + +kde_cv_uic_plugins=no +kde_line="$UIC_PATH -L $kde_widgetdir" +if test x$ac_uic_supports_nounload = xyes; then + kde_line="$kde_line -nounload" +fi +kde_line="$kde_line -impl actest.h actest.ui > actest.cpp" +if AC_TRY_EVAL(kde_line); then + # if you're trying to debug this check and think it's incorrect, + # better check your installation. The check _is_ correct - your + # installation is not. + if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then + kde_cv_uic_plugins=yes + fi +fi +rm -f actest.ui actest.cpp +]) + +AC_MSG_RESULT([$kde_cv_uic_plugins]) +if test "$kde_cv_uic_plugins" != yes; then + AC_MSG_ERROR([ +you need to install kdelibs first. + +If you did install kdelibs, then the Qt version that is picked up by +this configure is not the same version you used to compile kdelibs. +The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the +_same Qt version_, compiled with the _same compiler_ and the same Qt +configuration settings. +]) +fi +fi +]) + +AC_DEFUN([KDE_CHECK_FINAL], +[ + AC_ARG_ENABLE(final, + AC_HELP_STRING([--enable-final], + [build size optimized apps (experimental - needs lots of memory)]), + kde_use_final=$enableval, kde_use_final=no) + + if test "x$kde_use_final" = "xyes"; then + KDE_USE_FINAL_TRUE="" + KDE_USE_FINAL_FALSE="#" + else + KDE_USE_FINAL_TRUE="#" + KDE_USE_FINAL_FALSE="" + fi + AC_SUBST(KDE_USE_FINAL_TRUE) + AC_SUBST(KDE_USE_FINAL_FALSE) +]) + +AC_DEFUN([KDE_CHECK_CLOSURE], +[ + AC_ARG_ENABLE(closure, + AC_HELP_STRING([--enable-closure],[delay template instantiation]), + kde_use_closure=$enableval, kde_use_closure=no) + + KDE_NO_UNDEFINED="" + if test "x$kde_use_closure" = "xyes"; then + KDE_USE_CLOSURE_TRUE="" + KDE_USE_CLOSURE_FALSE="#" +# CXXFLAGS="$CXXFLAGS $REPO" + else + KDE_USE_CLOSURE_TRUE="#" + KDE_USE_CLOSURE_FALSE="" + KDE_NO_UNDEFINED="" + case $host in + *-*-linux-gnu) + KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined], + [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined], + [KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"], + [KDE_NO_UNDEFINED=""])], + [KDE_NO_UNDEFINED=""]) + ;; + esac + fi + AC_SUBST(KDE_USE_CLOSURE_TRUE) + AC_SUBST(KDE_USE_CLOSURE_FALSE) + AC_SUBST(KDE_NO_UNDEFINED) +]) + +dnl Check if the linker supports --enable-new-dtags and --as-needed +AC_DEFUN([KDE_CHECK_NEW_LDFLAGS], +[ + AC_ARG_ENABLE(new_ldflags, + AC_HELP_STRING([--enable-new-ldflags], + [enable the new linker flags]), + kde_use_new_ldflags=$enableval, + kde_use_new_ldflags=no) + + LDFLAGS_AS_NEEDED="" + LDFLAGS_NEW_DTAGS="" + if test "x$kde_use_new_ldflags" = "xyes"; then + LDFLAGS_NEW_DTAGS="" + KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags], + [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],) + + KDE_CHECK_COMPILER_FLAG([Wl,--as-needed], + [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],) + fi + AC_SUBST(LDFLAGS_AS_NEEDED) + AC_SUBST(LDFLAGS_NEW_DTAGS) +]) + +AC_DEFUN([KDE_CHECK_NMCHECK], +[ + AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]), + kde_use_nmcheck=$enableval, kde_use_nmcheck=no) + + if test "$kde_use_nmcheck" = "yes"; then + KDE_USE_NMCHECK_TRUE="" + KDE_USE_NMCHECK_FALSE="#" + else + KDE_USE_NMCHECK_TRUE="#" + KDE_USE_NMCHECK_FALSE="" + fi + AC_SUBST(KDE_USE_NMCHECK_TRUE) + AC_SUBST(KDE_USE_NMCHECK_FALSE) +]) + +AC_DEFUN([KDE_EXPAND_MAKEVAR], [ +savex=$exec_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +tmp=$$2 +while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done +exec_prefix=$savex +]) + +dnl ------------------------------------------------------------------------ +dnl Now, the same with KDE +dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed) +dnl and $(kde_includes) will be the kdehdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_BASE_PATH_KDE], +[ +AC_REQUIRE([KDE_CHECK_STL]) +AC_REQUIRE([AC_PATH_QT])dnl +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_CHECK_RPATH +AC_MSG_CHECKING([for KDE]) + +if test "${prefix}" != NONE; then + kde_includes=${includedir} + KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir) + + kde_libraries=${libdir} + KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir) + +else + ac_kde_includes= + ac_kde_libraries= + kde_libraries="" + kde_includes="" +fi + +AC_CACHE_VAL(ac_cv_have_kde, +[#try to guess kde locations + +if test "$kde_qtver" = 1; then + kde_check_header="ksock.h" + kde_check_lib="libkdecore.la" +else + kde_check_header="ksharedptr.h" + kde_check_lib="libkio.la" +fi + +if test -z "$1"; then + +kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes" +test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs" +kde_incdirs="$ac_kde_includes $kde_incdirs" +AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir) +ac_kde_includes="$kde_incdir" + +if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then + AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE headers installed. This will fail. +So, check this please and use another prefix!]) +fi + +kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}" +test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs" +kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs" +AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir) +ac_kde_libraries="$kde_libdir" + +kde_widgetdir=NO +dnl this might be somewhere else +AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir) + +if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then +AC_MSG_ERROR([ +in the prefix, you've chosen, are no KDE libraries installed. This will fail. +So, check this please and use another prefix!]) +fi + +if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then +AC_MSG_ERROR([ +I can't find the designer plugins. These are required and should have been installed +by kdelibs]) +fi + +if test -n "$kde_widgetdir"; then + kde_widgetdir="$kde_widgetdir/kde3/plugins/designer" +fi + + +if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then + ac_cv_have_kde="have_kde=no" +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" +fi + +else dnl test -z $1, e.g. from kdelibs + + ac_cv_have_kde="have_kde=no" + +fi +])dnl + +eval "$ac_cv_have_kde" + +if test "$have_kde" != "yes"; then + if test "${prefix}" = NONE; then + ac_kde_prefix="$ac_default_prefix" + else + ac_kde_prefix="$prefix" + fi + if test "$exec_prefix" = NONE; then + ac_kde_exec_prefix="$ac_kde_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix]) + else + ac_kde_exec_prefix="$exec_prefix" + AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix]) + fi + + kde_libraries="${libdir}" + kde_includes="${includedir}" + +else + ac_cv_have_kde="have_kde=yes \ + ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries" + AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes]) + + kde_libraries="$ac_kde_libraries" + kde_includes="$ac_kde_includes" +fi +AC_SUBST(kde_libraries) +AC_SUBST(kde_includes) + +if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes" || test "$kde_includes" = "/usr/include"; then + KDE_INCLUDES="" +else + KDE_INCLUDES="-I$kde_includes" + all_includes="$KDE_INCLUDES $all_includes" +fi + +KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION" + +KDE_LDFLAGS="-L$kde_libraries" +if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then + all_libraries="$KDE_LDFLAGS $all_libraries" +fi + +AC_SUBST(KDE_LDFLAGS) +AC_SUBST(KDE_INCLUDES) + +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +all_libraries="$all_libraries $USER_LDFLAGS" +all_includes="$all_includes $USER_INCLUDES" +AC_SUBST(all_includes) +AC_SUBST(all_libraries) + +if test -z "$1"; then +KDE_CHECK_UIC_PLUGINS +fi + +ac_kde_libraries="$kde_libdir" + +AC_SUBST(AUTODIRS) + + +]) + +AC_DEFUN([KDE_CHECK_EXTRA_LIBS], +[ +AC_MSG_CHECKING(for extra includes) +AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]), + kde_use_extra_includes="$withval", + kde_use_extra_includes=NONE +) +kde_extra_includes= +if test -n "$kde_use_extra_includes" && \ + test "$kde_use_extra_includes" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_includes; do + kde_extra_includes="$kde_extra_includes $dir" + USER_INCLUDES="$USER_INCLUDES -I$dir" + done + IFS=$ac_save_ifs + kde_use_extra_includes="added" +else + kde_use_extra_includes="no" +fi +AC_SUBST(USER_INCLUDES) + +AC_MSG_RESULT($kde_use_extra_includes) + +kde_extra_libs= +AC_MSG_CHECKING(for extra libs) +AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]), + kde_use_extra_libs=$withval, + kde_use_extra_libs=NONE +) +if test -n "$kde_use_extra_libs" && \ + test "$kde_use_extra_libs" != "NONE"; then + + ac_save_ifs=$IFS + IFS=':' + for dir in $kde_use_extra_libs; do + kde_extra_libs="$kde_extra_libs $dir" + KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir" + USER_LDFLAGS="$USER_LDFLAGS -L$dir" + done + IFS=$ac_save_ifs + kde_use_extra_libs="added" +else + kde_use_extra_libs="no" +fi + +AC_SUBST(USER_LDFLAGS) + +AC_MSG_RESULT($kde_use_extra_libs) + +]) + +AC_DEFUN([KDE_1_CHECK_PATH_HEADERS], +[ + AC_MSG_CHECKING([for KDE headers installed]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS +cat > conftest.$ac_ext <<EOF +#ifdef STDC_HEADERS +# include <stdlib.h> +#endif +#include <stdio.h> +#include "confdefs.h" +#include <kapp.h> + +int main() { + printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data()); + printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data()); + printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data()); + printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data()); + printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data()); + printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data()); + printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data()); + printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data()); + printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data()); + printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data()); + printf("kde_wallpaperdir=\\"%s\\"\n", + KApplication::kde_wallpaperdir().data()); + printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data()); + printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data()); + printf("kde_servicesdir=\\"/tmp/dummy\\"\n"); + printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n"); + printf("kde_moduledir=\\"/tmp/dummy\\"\n"); + printf("kde_styledir=\\"/tmp/dummy\\"\n"); + printf("kde_widgetdir=\\"/tmp/dummy\\"\n"); + printf("xdg_appsdir=\\"/tmp/dummy\\"\n"); + printf("xdg_menudir=\\"/tmp/dummy\\"\n"); + printf("xdg_directorydir=\\"/tmp/dummy\\"\n"); + printf("kde_kcfgdir=\\"/tmp/dummy\\"\n"); + return 0; + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + CPPFLAGS="$all_includes $CPPFLAGS" + if AC_TRY_EVAL(ac_compile); then + AC_MSG_RESULT(yes) + else + AC_MSG_ERROR([your system is not able to compile a small KDE application! +Check, if you installed the KDE header files correctly. +For more details about this problem, look at the end of config.log.]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_CHECK_KDEQTADDON], +[ +AC_MSG_CHECKING(for kde-qt-addon) +AC_CACHE_VAL(kde_cv_have_kdeqtaddon, +[ + kde_ldflags_safe="$LDFLAGS" + kde_libs_safe="$LIBS" + kde_cxxflags_safe="$CXXFLAGS" + + LIBS="-lkde-qt-addon $LIBQT $LIBS" + CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes" + LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS" + + AC_TRY_LINK([ + #include <qdom.h> + ], + [ + QDomDocument doc; + ], + kde_cv_have_kdeqtaddon=yes, + kde_cv_have_kdeqtaddon=no + ) + + LDFLAGS=$kde_ldflags_safe + LIBS=$kde_libs_safe + CXXFLAGS=$kde_cxxflags_safe +]) + +AC_MSG_RESULT($kde_cv_have_kdeqtaddon) + +if test "$kde_cv_have_kdeqtaddon" = "no"; then + AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first. +It is a separate package (and CVS module) named kde-qt-addon.]) +fi +]) + +AC_DEFUN([KDE_CREATE_LIBS_ALIASES], +[ + AC_REQUIRE([KDE_MISC_TESTS]) + AC_REQUIRE([KDE_CHECK_LIBDL]) + AC_REQUIRE([K_PATH_X]) + +if test $kde_qtver = 3; then + case $host in + *cygwin*) lib_kded="-lkdeinit_kded" ;; + *) lib_kded="" ;; + esac + AC_SUBST(LIB_KDED, $lib_kded) + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KJS, "-lkjs") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KABC, "-lkabc") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") + AC_SUBST(LIB_KUTILS, "-lkutils") + AC_SUBST(LIB_KDEPIM, "-lkdepim") + AC_SUBST(LIB_KIMPROXY, "-lkimproxy") + AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff") + AC_SUBST(LIB_KDNSSD, "-lkdnssd") + AC_SUBST(LIB_KUNITTEST, "-lkunittest") +# these are for backward compatibility + AC_SUBST(LIB_KSYCOCA, "-lkio") + AC_SUBST(LIB_KFILE, "-lkio") +elif test $kde_qtver = 2; then + AC_SUBST(LIB_KDECORE, "-lkdecore") + AC_SUBST(LIB_KDEUI, "-lkdeui") + AC_SUBST(LIB_KIO, "-lkio") + AC_SUBST(LIB_KSYCOCA, "-lksycoca") + AC_SUBST(LIB_SMB, "-lsmb") + AC_SUBST(LIB_KFILE, "-lkfile") + AC_SUBST(LIB_KAB, "-lkab") + AC_SUBST(LIB_KHTML, "-lkhtml") + AC_SUBST(LIB_KSPELL, "-lkspell") + AC_SUBST(LIB_KPARTS, "-lkparts") + AC_SUBST(LIB_KDEPRINT, "-lkdeprint") +else + AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)") + AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)") + AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)") + AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)") + AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)") +fi +]) + +AC_DEFUN([AC_PATH_KDE], +[ + AC_BASE_PATH_KDE + AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]), + [ + if test "$enableval" = "no"; + then ac_use_path_checking="default" + else ac_use_path_checking="" + fi + ], + [ + if test "$kde_qtver" = 1; + then ac_use_path_checking="" + else ac_use_path_checking="default" + fi + ] + ) + + AC_CREATE_KFSSTND($ac_use_path_checking) + + AC_SUBST_KFSSTND + KDE_CREATE_LIBS_ALIASES +]) + +dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found]) +AC_DEFUN([KDE_CHECK_FUNC_EXT], +[ +AC_MSG_CHECKING(for $1) +AC_CACHE_VAL(kde_cv_func_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +save_CXXFLAGS="$CXXFLAGS" +kde_safe_LIBS="$LIBS" +LIBS="$LIBS $X_EXTRA_LIBS" +if test "$GXX" = "yes"; then +CXXFLAGS="$CXXFLAGS -pedantic-errors" +fi +AC_TRY_COMPILE([ +$2 +], +[ +$3 +], +kde_cv_func_$1=yes, +kde_cv_func_$1=no) +CXXFLAGS="$save_CXXFLAGS" +LIBS="$kde_safe_LIBS" +AC_LANG_RESTORE +]) + +AC_MSG_RESULT($kde_cv_func_$1) + +AC_MSG_CHECKING([if $1 needs custom prototype]) +AC_CACHE_VAL(kde_cv_proto_$1, +[ +if test "x$kde_cv_func_$1" = xyes; then + kde_cv_proto_$1=no +else + case "$1" in + setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat) + kde_cv_proto_$1="yes - in libkdefakes" + ;; + *) + kde_cv_proto_$1=unknown + ;; + esac +fi + +if test "x$kde_cv_proto_$1" = xunknown; then + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + kde_safe_libs=$LIBS + LIBS="$LIBS $X_EXTRA_LIBS" + AC_TRY_LINK([ +$2 + +extern "C" $4; +], +[ +$3 +], +[ kde_cv_func_$1=yes + kde_cv_proto_$1=yes ], + [kde_cv_proto_$1="$1 unavailable"] +) +LIBS=$kde_safe_libs +AC_LANG_RESTORE +fi +]) +AC_MSG_RESULT($kde_cv_proto_$1) + +if test "x$kde_cv_func_$1" = xyes; then + AC_DEFINE(HAVE_$5, 1, [Define if you have $1]) + $6 +fi +if test "x$kde_cv_proto_$1" = xno; then + AC_DEFINE(HAVE_$5_PROTO, 1, + [Define if you have the $1 prototype]) +fi + +AH_VERBATIM([_HAVE_$5_PROTO], +[ +#if !defined(HAVE_$5_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +$4; +#ifdef __cplusplus +} +#endif +#endif +]) +]) + +AC_DEFUN([AC_CHECK_SETENV], +[ + KDE_CHECK_FUNC_EXT(setenv, [ +#include <stdlib.h> +], + [setenv("VAR", "VALUE", 1);], + [int setenv (const char *, const char *, int)], + [SETENV]) +]) + +AC_DEFUN([AC_CHECK_UNSETENV], +[ + KDE_CHECK_FUNC_EXT(unsetenv, [ +#include <stdlib.h> +], + [unsetenv("VAR");], + [void unsetenv (const char *)], + [UNSETENV]) +]) + +AC_DEFUN([AC_CHECK_GETDOMAINNAME], +[ + KDE_CHECK_FUNC_EXT(getdomainname, [ +#include <stdlib.h> +#include <unistd.h> +#include <netdb.h> +], + [ +char buffer[200]; +getdomainname(buffer, 200); +], + [#include <sys/types.h> + int getdomainname (char *, size_t)], + [GETDOMAINNAME]) +]) + +AC_DEFUN([AC_CHECK_GETHOSTNAME], +[ + KDE_CHECK_FUNC_EXT(gethostname, [ +#include <stdlib.h> +#include <unistd.h> +], + [ +char buffer[200]; +gethostname(buffer, 200); +], + [int gethostname (char *, unsigned int)], + [GETHOSTNAME]) +]) + +AC_DEFUN([AC_CHECK_USLEEP], +[ + KDE_CHECK_FUNC_EXT(usleep, [ +#include <unistd.h> +], + [ +usleep(200); +], + [int usleep (unsigned int)], + [USLEEP]) +]) + + +AC_DEFUN([AC_CHECK_RANDOM], +[ + KDE_CHECK_FUNC_EXT(random, [ +#include <stdlib.h> +], + [ +random(); +], + [long int random(void)], + [RANDOM]) + + KDE_CHECK_FUNC_EXT(srandom, [ +#include <stdlib.h> +], + [ +srandom(27); +], + [void srandom(unsigned int)], + [SRANDOM]) + +]) + +AC_DEFUN([AC_CHECK_INITGROUPS], +[ + KDE_CHECK_FUNC_EXT(initgroups, [ +#include <sys/types.h> +#include <unistd.h> +#include <grp.h> +], + [ +char buffer[200]; +initgroups(buffer, 27); +], + [int initgroups(const char *, gid_t)], + [INITGROUPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMPS], +[ + KDE_CHECK_FUNC_EXT(mkstemps, [ +#include <stdlib.h> +#include <unistd.h> +], + [ +mkstemps("/tmp/aaaXXXXXX", 6); +], + [int mkstemps(char *, int)], + [MKSTEMPS]) +]) + +AC_DEFUN([AC_CHECK_MKSTEMP], +[ + KDE_CHECK_FUNC_EXT(mkstemp, [ +#include <stdlib.h> +#include <unistd.h> +], + [ +mkstemp("/tmp/aaaXXXXXX"); +], + [int mkstemp(char *)], + [MKSTEMP]) +]) + +AC_DEFUN([AC_CHECK_MKDTEMP], +[ + KDE_CHECK_FUNC_EXT(mkdtemp, [ +#include <stdlib.h> +#include <unistd.h> +], + [ +mkdtemp("/tmp/aaaXXXXXX"); +], + [char *mkdtemp(char *)], + [MKDTEMP]) +]) + + +AC_DEFUN([AC_CHECK_RES_INIT], +[ + AC_MSG_CHECKING([if res_init needs -lresolv]) + kde_libs_safe="$LIBS" + LIBS="$LIBS $X_EXTRA_LIBS -lresolv" + AC_TRY_LINK( + [ +#include <sys/types.h> +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> + ], + [ + res_init(); + ], + [ + LIBRESOLV="-lresolv" + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function]) + ], + [ AC_MSG_RESULT(no) ] + ) + LIBS=$kde_libs_safe + AC_SUBST(LIBRESOLV) + + KDE_CHECK_FUNC_EXT(res_init, + [ +#include <sys/types.h> +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> + ], + [res_init()], + [int res_init(void)], + [RES_INIT]) +]) + +AC_DEFUN([AC_CHECK_STRLCPY], +[ + KDE_CHECK_FUNC_EXT(strlcpy, [ +#include <string.h> +], +[ char buf[20]; + strlcpy(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcpy(char*, const char*, unsigned long)], + [STRLCPY]) +]) + +AC_DEFUN([AC_CHECK_STRLCAT], +[ + KDE_CHECK_FUNC_EXT(strlcat, [ +#include <string.h> +], +[ char buf[20]; + buf[0]='\0'; + strlcat(buf, "KDE function test", sizeof(buf)); +], + [unsigned long strlcat(char*, const char*, unsigned long)], + [STRLCAT]) +]) + +AC_DEFUN([AC_CHECK_RES_QUERY], +[ + KDE_CHECK_FUNC_EXT(res_query, [ +#include <sys/types.h> +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> +#include <netdb.h> +], +[ +res_query(NULL, 0, 0, NULL, 0); +], + [int res_query(const char *, int, int, unsigned char *, int)], + [RES_QUERY]) +]) + +AC_DEFUN([AC_CHECK_DN_SKIPNAME], +[ + KDE_CHECK_FUNC_EXT(dn_skipname, [ +#include <sys/types.h> +#include <netinet/in.h> +#include <arpa/nameser.h> +#include <resolv.h> +], +[ +dn_skipname (NULL, NULL); +], + [int dn_skipname (unsigned char *, unsigned char *)], + [DN_SKIPNAME]) +]) + + +AC_DEFUN([AC_FIND_GIF], + [AC_MSG_CHECKING([for giflib]) +AC_CACHE_VAL(ac_cv_lib_gif, +[ac_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries -lgif -lX11 $LIBSOCKET" +else +LIBS="$all_libraries -lgif" +fi +AC_TRY_LINK(dnl +[ +#ifdef __cplusplus +extern "C" { +#endif +int GifLastError(void); +#ifdef __cplusplus +} +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +], + [return GifLastError();], + eval "ac_cv_lib_gif=yes", + eval "ac_cv_lib_gif=no") +LIBS="$ac_save_LIBS" +])dnl +if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif]) +else + AC_MSG_ERROR(You need giflib30. Please install the kdesupport package) +fi +]) + +AC_DEFUN([KDE_FIND_JPEG_HELPER], +[ +AC_MSG_CHECKING([for libjpeg$2]) +AC_CACHE_VAL(ac_cv_lib_jpeg_$1, +[ +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm" +ac_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[ +#ifdef __cplusplus +extern "C" { +#endif +void jpeg_CreateDecompress(); +#ifdef __cplusplus +} +#endif +], +[jpeg_CreateDecompress();], + eval "ac_cv_lib_jpeg_$1=-ljpeg$2", + eval "ac_cv_lib_jpeg_$1=no") +LIBS="$ac_save_LIBS" +CFLAGS="$ac_save_CFLAGS" +]) + +if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then + LIBJPEG="$ac_cv_lib_jpeg_$1" + AC_MSG_RESULT($ac_cv_lib_jpeg_$1) +else + AC_MSG_RESULT(no) + $3 +fi + +]) + +AC_DEFUN([AC_FIND_JPEG], +[ +dnl first look for libraries +KDE_FIND_JPEG_HELPER(6b, 6b, + KDE_FIND_JPEG_HELPER(normal, [], + [ + LIBJPEG= + ] + ) +) + +dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h +dnl requires system dependent includes loaded before it) +jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes" +AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir) +test "x$jpeg_incdir" = xNO && jpeg_incdir= + +dnl if headers _and_ libraries are missing, this is no error, and we +dnl continue with a warning (the user will get no jpeg support in khtml) +dnl if only one is missing, it means a configuration error, but we still +dnl only warn +if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then + AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg]) +else + if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then + AC_MSG_WARN([ +There is an installation error in jpeg support. You seem to have only one +of either the headers _or_ the libraries installed. You may need to either +provide correct --with-extra-... options, or the development package of +libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/ +Disabling JPEG support. +]) + else + AC_MSG_WARN([libjpeg not found. disable JPEG support.]) + fi + jpeg_incdir= + LIBJPEG= +fi + +AC_SUBST(LIBJPEG) +AH_VERBATIM(_AC_CHECK_JPEG, +[/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif +]) +]) + +AC_DEFUN([KDE_CHECK_QT_JPEG], +[ +if test -n "$LIBJPEG"; then +AC_MSG_CHECKING([if Qt needs $LIBJPEG]) +AC_CACHE_VAL(kde_cv_qt_jpeg, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS $LIBQT" +LIBS=`echo $LIBS | sed "s/$LIBJPEG//"` +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK( +[#include <qapplication.h>], + [ + int argc; + char** argv; + QApplication app(argc, argv);], + eval "kde_cv_qt_jpeg=no", + eval "kde_cv_qt_jpeg=yes") +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +fi +]) + +if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then + AC_MSG_RESULT(yes) + LIBJPEG_QT='$(LIBJPEG)' +else + AC_MSG_RESULT(no) + LIBJPEG_QT= +fi + +]) + +AC_DEFUN([AC_FIND_ZLIB], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for libz]) +AC_CACHE_VAL(ac_cv_lib_z, +[ +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#include<zlib.h> +], +[ + char buf[42]; + gzFile f = (gzFile) 0; + /* this would segfault.. but we only link, don't run */ + (void) gzgets(f, buf, sizeof(buf)); + + return (zlibVersion() == ZLIB_VERSION); +], + eval "ac_cv_lib_z='-lz'", + eval "ac_cv_lib_z=no") +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if test ! "$ac_cv_lib_z" = no; then + AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz]) + LIBZ="$ac_cv_lib_z" + AC_MSG_RESULT($ac_cv_lib_z) +else + AC_MSG_ERROR(not found. + Possibly configure picks up an outdated version + installed by XFree86. Remove it from your system. + + Check your installation and look into config.log) + LIBZ="" +fi +AC_SUBST(LIBZ) +]) + +AC_DEFUN([KDE_TRY_TIFFLIB], +[ +AC_MSG_CHECKING([for libtiff $1]) + +AC_CACHE_VAL(kde_cv_libtiff_$1, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm" +else +LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm" +fi +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl +[ +#include<tiffio.h> +], + [return (TIFFOpen( "", "r") == 0); ], +[ + kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ" +], [ + kde_cv_libtiff_$1=no +]) + +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +]) + +if test "$kde_cv_libtiff_$1" = "no"; then + AC_MSG_RESULT(no) + LIBTIFF="" + $3 +else + LIBTIFF="$kde_cv_libtiff_$1" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff]) + $2 +fi + +]) + +AC_DEFUN([AC_FIND_TIFF], +[ +AC_REQUIRE([K_PATH_X]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + +KDE_TRY_TIFFLIB(tiff, [], + KDE_TRY_TIFFLIB(tiff34)) + +AC_SUBST(LIBTIFF) +]) + +AC_DEFUN([KDE_FIND_LIBEXR], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_CACHE_VAL(ac_cv_libexr, +[ + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + AC_MSG_CHECKING([for OpenEXR libraries]) + + if test "$PKG_CONFIG" = "no" ; then + AC_MSG_RESULT(no) + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + if !(`$PKG_CONFIG --exists OpenEXR`) ; then + AC_MSG_RESULT(no) + EXRSTATUS=no + else + if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then + AC_MSG_RESULT(no) + EXRSTATUS=old + else + kde_save_LIBS="$LIBS" + LIBS="$LIBS $all_libraries $USER_LDFLAGS $LIBZ `pkg-config --libs OpenEXR`" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_CXXFLAGS="$CXXFLAGS" + EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR` + CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS" + + AC_TRY_LINK(dnl + [ + #include <ImfRgbaFile.h> + ], + [ + using namespace Imf; + RgbaInputFile file ("dummy"); + return 0; + ], + eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'", + eval "ac_cv_libexr=no" + ) + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR]) + LIB_EXR="$ac_cv_libexr" + AC_MSG_RESULT($ac_cv_libexr) + else + AC_MSG_RESULT(no) + LIB_EXR="" + fi + fi + fi + fi + AC_SUBST(LIB_EXR) + AC_SUBST(EXR_FLAGS) +]) + + + +AC_DEFUN([AC_FIND_PNG], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_ZLIB]) +AC_MSG_CHECKING([for libpng]) +AC_CACHE_VAL(ac_cv_lib_png, +[ +kde_save_LIBS="$LIBS" +if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET" +else +LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm" +fi +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include<png.h> + ], + [ + png_structp png_ptr = png_create_read_struct( /* image ptr */ + PNG_LIBPNG_VER_STRING, 0, 0, 0 ); + return( png_ptr != 0 ); + ], + eval "ac_cv_lib_png='-lpng $LIBZ -lm'", + eval "ac_cv_lib_png=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng]) + LIBPNG="$ac_cv_lib_png" + AC_SUBST(LIBPNG) + AC_MSG_RESULT($ac_cv_lib_png) +else + AC_MSG_RESULT(no) + LIBPNG="" + AC_SUBST(LIBPNG) +fi +]) + + +AC_DEFUN([AC_FIND_JASPER], +[ +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_REQUIRE([AC_FIND_JPEG]) +AC_MSG_CHECKING([for jasper]) +AC_CACHE_VAL(ac_cv_jasper, +[ +kde_save_LIBS="$LIBS" +LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm" +kde_save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS $all_includes $USER_INCLUDES" + +AC_TRY_LINK(dnl + [ + #include<jasper/jasper.h> + ], + [ + return( jas_init() ); + ], + eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'", + eval "ac_cv_jasper=no" +) +LIBS="$kde_save_LIBS" +CFLAGS="$kde_save_CFLAGS" +])dnl +if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then + AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper]) + LIB_JASPER="$ac_cv_jasper" + AC_MSG_RESULT($ac_cv_jasper) +else + AC_MSG_RESULT(no) + LIB_JASPER="" +fi +AC_SUBST(LIB_JASPER) +]) + +AC_DEFUN([AC_CHECK_BOOL], +[ + AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool]) +]) + +AC_DEFUN([AC_CHECK_GNU_EXTENSIONS], +[ +AC_MSG_CHECKING(if you need GNU extensions) +AC_CACHE_VAL(ac_cv_gnu_extensions, +[ +cat > conftest.c << EOF +#include <features.h> + +#ifdef __GNU_LIBRARY__ +yes +#endif +EOF + +if (eval "$ac_cpp conftest.c") 2>&5 | + egrep "yes" >/dev/null 2>&1; then + rm -rf conftest* + ac_cv_gnu_extensions=yes +else + ac_cv_gnu_extensions=no +fi +]) + +AC_MSG_RESULT($ac_cv_gnu_extensions) +if test "$ac_cv_gnu_extensions" = "yes"; then + AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions]) +fi +]) + +AC_DEFUN([KDE_CHECK_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CXX supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], []) + CXXFLAGS="$save_CXXFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + +AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG], +[ +AC_MSG_CHECKING([whether $CC supports -$1]) +kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'` +AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache, +[ + AC_LANG_SAVE + AC_LANG_C + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -$1" + AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], []) + CFLAGS="$save_CFLAGS" + AC_LANG_RESTORE +]) +if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then + AC_MSG_RESULT(yes) + : + $2 +else + AC_MSG_RESULT(no) + : + $3 +fi +]) + + +dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables +dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever]) +dnl it's all white-space separated +AC_DEFUN([AC_REMOVE_FORBIDDEN], +[ __val=$$1 + __forbid=" $2 " + if test -n "$__val"; then + __new="" + ac_save_IFS=$IFS + IFS=" " + for i in $__val; do + case "$__forbid" in + *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;; + *) # Careful to not add spaces, where there were none, because otherwise + # libtool gets confused, if we change e.g. CXX + if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;; + esac + done + IFS=$ac_save_IFS + $1=$__new + fi +]) + + +AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER], +[ + AC_MSG_CHECKING([whether $CC is blacklisted]) + + dnl In theory we have tu run this test against $CC and $CXX + dnl in C and in C++ mode, because its perfectly legal for + dnl the user to mix compiler versions, since C has a defined + dnl ABI. + dnl + dnl For now, we assume the user is not on crack. + + AC_TRY_COMPILE([ +#ifdef __GNUC__ +#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0 +choke me +#endif +#endif +], , + kde_bad_compiler=no, + kde_bad_compiler=yes +) + + AC_MSG_RESULT($kde_bad_compiler) + +if test "$kde_bad_compiler" = "yes"; then + AC_MSG_ERROR([ + +This particular compiler version is blacklisted because it +is known to miscompile KDE. Please use a newer version, or +if that is not yet available, choose an older version. + +Please do not report a bug or bother us reporting this +configure error. We know about it, and we introduced +it by intention to avoid untraceable bugs or crashes in KDE. + +]) +fi + +]) + +dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given +AC_DEFUN([AC_VALIDIFY_CXXFLAGS], +[dnl +if test "x$kde_use_qt_emb" != "xyes"; then + AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath]) +else + AC_REMOVE_FORBIDDEN(CXX, [-rpath]) + AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath]) +fi +]) + +AC_DEFUN([AC_CHECK_COMPILERS], +[ + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]), + [ + case $enableval in + yes) + kde_use_debug_code="yes" + kde_use_debug_define=no + ;; + full) + kde_use_debug_code="full" + kde_use_debug_define=no + ;; + *) + kde_use_debug_code="no" + kde_use_debug_define=yes + ;; + esac + ], + [kde_use_debug_code="no" + kde_use_debug_define=no + ]) + + dnl Just for configure --help + AC_ARG_ENABLE(dummyoption, + AC_HELP_STRING([--disable-debug], + [disables debug output and debug symbols [default=no]]), + [],[]) + + AC_ARG_ENABLE(strict, + AC_HELP_STRING([--enable-strict], + [compiles with strict compiler options (may not work!)]), + [ + if test $enableval = "no"; then + kde_use_strict_options="no" + else + kde_use_strict_options="yes" + fi + ], [kde_use_strict_options="no"]) + + AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]), + [ + if test $enableval = "no"; then + kde_use_warnings="no" + else + kde_use_warnings="yes" + fi + ], [kde_use_warnings="yes"]) + + dnl enable warnings for debug build + if test "$kde_use_debug_code" != "no"; then + kde_use_warnings=yes + fi + + AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]), + [kde_use_profiling=$enableval], + [kde_use_profiling="no"] + ) + + dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS + CFLAGS=" $CFLAGS" + + AC_PROG_CC + + AC_PROG_CPP + + if test "$GCC" = "yes"; then + if test "$kde_use_debug_code" != "no"; then + if test $kde_use_debug_code = "full"; then + CFLAGS="-g3 -fno-inline $CFLAGS" + else + CFLAGS="-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline $CFLAGS" + fi + else + CFLAGS="-O2 $CFLAGS" + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CFLAGS="-DNDEBUG $CFLAGS" + fi + + + case "$host" in + *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";; + *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";; + esac + + if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then + LDFLAGS="" + fi + + CXXFLAGS=" $CXXFLAGS" + + AC_PROG_CXX + + KDE_CHECK_FOR_BAD_COMPILER + + if test "$GXX" = "yes" || test "$CXX" = "KCC"; then + if test "$kde_use_debug_code" != "no"; then + if test "$CXX" = "KCC"; then + CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS" + else + if test "$kde_use_debug_code" = "full"; then + CXXFLAGS="-g3 -fno-inline $CXXFLAGS" + else + CXXFLAGS="-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline $CXXFLAGS" + fi + fi + KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"]) + + dnl convenience compiler flags + KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""]) + AC_SUBST(WOVERLOADED_VIRTUAL) + else + if test "$CXX" = "KCC"; then + CXXFLAGS="+K3 $CXXFLAGS" + else + CXXFLAGS="-O2 $CXXFLAGS" + fi + fi + fi + + if test "$kde_use_debug_define" = "yes"; then + CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS" + fi + + if test "$kde_use_profiling" = "yes"; then + KDE_CHECK_COMPILER_FLAG(pg, + [ + CFLAGS="-pg $CFLAGS" + CXXFLAGS="-pg $CXXFLAGS" + ]) + fi + + if test "$kde_use_warnings" = "yes"; then + if test "$GCC" = "yes"; then + CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS" + case $host in + *-*-linux-gnu) + CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS" + CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts $CXXFLAGS" + KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"]) + KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"]) + ;; + esac + KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"]) + KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"]) + dnl ### FIXME: revert for KDE 4 + KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"]) + fi + fi + + if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then + CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS" + fi + + AC_ARG_ENABLE(pch, + AC_HELP_STRING([--enable-pch], + [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]), + [ kde_use_pch=$enableval ],[ kde_use_pch=no ]) + + HAVE_GCC_VISIBILITY=0 + AC_SUBST([HAVE_GCC_VISIBILITY]) + + if test "$GXX" = "yes"; then + KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"]) + KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"]) + KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"]) + KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS= ) + ENABLE_PERMISSIVE_FLAG="-fpermissive" + + if test "$kde_use_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c header files) + echo >conftest.h + if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + if test "$kde_gcc_supports_pch" = "yes"; then + AC_MSG_CHECKING(whether gcc supports precompiling c++ header files) + if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then + kde_gcc_supports_pch=yes + AC_MSG_RESULT(yes) + else + kde_gcc_supports_pch=no + AC_MSG_RESULT(no) + fi + fi + rm -f conftest.h conftest.h.gch + fi + fi + AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes") + if test "$CXX" = "KCC"; then + dnl unfortunately we currently cannot disable exception support in KCC + dnl because doing so is binary incompatible and Qt by default links with exceptions :-( + dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"]) + dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS= ) + + if test "$kde_use_pch" = "yes"; then + dnl TODO: support --pch-dir! + KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"]) + dnl the below works (but the dir must exist), but it's + dnl useless for a whole package. + dnl The are precompiled headers for each source file, so when compiling + dnl from scratch, it doesn't make a difference, and they take up + dnl around ~5Mb _per_ sourcefile. + dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp, + dnl [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"]) + fi + dnl this flag controls inlining. by default KCC inlines in optimisation mode + dnl all implementations that are defined inside the class {} declaration. + dnl because of templates-compatibility with broken gcc compilers, this + dnl can cause excessive inlining. This flag limits it to a sane level + KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"]) + KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"]) + KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"]) + KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"]) + dnl Some source files are shared between multiple executables + dnl (or libraries) and some of those need template instantiations. + dnl In that case KCC needs to compile those sources with + dnl --one_instantiation_per_object. To make it easy for us we compile + dnl _all_ objects with that flag (--one_per is a shorthand). + KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"]) + fi + AC_SUBST(USE_EXCEPTIONS) + dnl obsolete macro - provided to keep things going + USE_RTTI= + AC_SUBST(USE_RTTI) + + case "$host" in + *-*-irix*) test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;; + *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";; + *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";; + *-*-solaris*) + if test "$GXX" = yes; then + libstdcpp=`$CXX -print-file-name=libstdc++.so` + if test ! -f $libstdcpp; then + AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so]) + fi + fi + ;; + esac + + AC_VALIDIFY_CXXFLAGS + + AC_PROG_CXXCPP + + if test "$GCC" = yes; then + NOOPT_CFLAGS=-O0 + fi + KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0]) + + AC_ARG_ENABLE(coverage, + AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [ + if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="-lgcc" + elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then + ac_coverage_compiler="-fprofile-arcs -ftest-coverage" + ac_coverage_linker="" + else + AC_MSG_ERROR([coverage with your compiler is not supported]) + fi + CFLAGS="$CFLAGS $ac_coverage_compiler" + CXXFLAGS="$CXXFLAGS $ac_coverage_compiler" + LDFLAGS="$LDFLAGS $ac_coverage_linker" + ]) + + AC_SUBST(NOOPT_CXXFLAGS) + AC_SUBST(NOOPT_CFLAGS) + AC_SUBST(ENABLE_PERMISSIVE_FLAG) + + KDE_CHECK_NEW_LDFLAGS + KDE_CHECK_FINAL + KDE_CHECK_CLOSURE + KDE_CHECK_NMCHECK + + ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), []) +]) + +AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG], + [ + AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0" + LDFLAGS="$LDFLAGS -shared -fPIC" + + AC_TRY_LINK( + [ + /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */ + #include <string> + int some_function( void ) __attribute__ ((visibility("default"))); + int some_function( void ) + { + std::string s("blafasel"); + return 0; + } + ], [/* elvis is alive */], + kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_cv_val_gcc_visibility_bug = xno; then + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + fi + ] +) + +AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY], +[ + AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY]) + + AC_MSG_CHECKING([grepping for visibility push/pop in headers]) + + if test "x$GXX" = "xyes"; then + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_EGREP_CPP( + [GCC visibility push], + [ #include <exception> + ], + [ + AC_MSG_RESULT(yes) + kde_stdc_visibility_patched=yes ], + [ + AC_MSG_RESULT(no) + AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for + visibility support. Disabling -fvisibility=hidden]) + + kde_stdc_visibility_patched=no ]) + + AC_LANG_RESTORE + + kde_have_gcc_visibility=no + KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, + [ + kde_have_gcc_visibility=yes + dnl the whole toolchain is just a mess, gcc is just too buggy + dnl to handle STL with visibility enabled. Lets reconsider + dnl when gcc 4.2 is out or when things get fixed in the compiler. + dnl Contact mueller@kde.org for details. + AC_ARG_ENABLE(gcc-hidden-visibility, + AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]), + [kde_have_gcc_visibility=$enableval], + [kde_have_gcc_visibility=no]) + + AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + safe_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $all_includes" + + AC_TRY_COMPILE( + [ +#include <qglobal.h> +#if Q_EXPORT - 0 != 0 +/* if this compiles, then Q_EXPORT is undefined */ +/* if Q_EXPORT is nonempty, this will break compilation */ +#endif + ], [/* elvis is alive */], + kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes) + + CXXFLAGS=$safe_CXXFLAGS + AC_LANG_RESTORE + ] + ) + + if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then + CXXFLAGS="$CXXFLAGS -fvisibility=hidden" + KDE_CHECK_VISIBILITY_GCC_BUG + HAVE_GCC_VISIBILITY=1 + AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported]) + fi + ]) + fi +]) + +AC_DEFUN([KDE_ADD_DEPENDENCIES], +[ + [A]M_DEPENDENCIES(CC) + [A]M_DEPENDENCIES(CXX) +]) + +dnl just a wrapper to clean up configure.in +AC_DEFUN([KDE_PROG_LIBTOOL], +[ +AC_REQUIRE([AC_CHECK_COMPILERS]) +AC_REQUIRE([AC_ENABLE_SHARED]) +AC_REQUIRE([AC_ENABLE_STATIC]) + +AC_REQUIRE([AC_LIBTOOL_DLOPEN]) +AC_REQUIRE([KDE_CHECK_LIB64]) + +AC_OBJEXT +AC_EXEEXT + +AM_PROG_LIBTOOL +AC_LIBTOOL_CXX + +LIBTOOL_SHELL="/bin/sh ./libtool" +# LIBTOOL="$LIBTOOL --silent" +KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)" +AC_SUBST(KDE_PLUGIN) + +# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs. +KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)" +AC_SUBST(KDE_CHECK_PLUGIN) + +# we patch configure quite some so we better keep that consistent for incremental runs +AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure') +]) + +AC_DEFUN([KDE_CHECK_LIB64], +[ + kdelibsuff="$kde_libs_suffix" + if test -z "$kdelibsuff"; then + kdelibsuff=no + fi + AC_ARG_ENABLE(libsuffix, + AC_HELP_STRING([--enable-libsuffix], + [/lib directory suffix (64,32,none[=default])]), + kdelibsuff=$enableval) + # TODO: add an auto case that compiles a little C app to check + # where the glibc is + if test "$kdelibsuff" = "no"; then + kdelibsuff= + fi + if test -z "$kdelibsuff"; then + AC_MSG_RESULT([not using lib directory suffix]) + AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories) + else + if test "$libdir" = '${exec_prefix}/lib'; then + libdir="$libdir${kdelibsuff}" + AC_SUBST([libdir], ["$libdir"]) dnl ugly hack for lib64 platforms + fi + AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories) + AC_MSG_RESULT([using lib directory suffix $kdelibsuff]) + fi +]) + +AC_DEFUN([KDE_CHECK_TYPES], +[ AC_CHECK_SIZEOF(int, 4)dnl + AC_CHECK_SIZEOF(short)dnl + AC_CHECK_SIZEOF(long, 4)dnl + AC_CHECK_SIZEOF(char *, 4)dnl +])dnl + +dnl Not used - kept for compat only? +AC_DEFUN([KDE_DO_IT_ALL], +[ +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM +AM_INIT_AUTOMAKE($1, $2) +AM_DISABLE_LIBRARIES +AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) +AC_CHECK_COMPILERS +KDE_PROG_LIBTOOL +AM_KDE_WITH_NLS +AC_PATH_KDE +]) + +AC_DEFUN([AC_CHECK_RPATH], +[ +AC_MSG_CHECKING(for rpath) +AC_ARG_ENABLE(rpath, + AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]), + USE_RPATH=$enableval, USE_RPATH=yes) + +if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then + + KDE_RPATH="-R \$(libdir)" + + if test "$kde_libraries" != "$libdir"; then + KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)" + fi + + if test -n "$qt_libraries"; then + KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)" + fi + dnl $x_libraries is set to /usr/lib in case + if test -n "$X_LDFLAGS"; then + X_RPATH="-R \$(x_libraries)" + KDE_RPATH="$KDE_RPATH $X_RPATH" + fi + if test -n "$KDE_EXTRA_RPATH"; then + KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)" + fi +fi +AC_SUBST(KDE_EXTRA_RPATH) +AC_SUBST(KDE_RPATH) +AC_SUBST(X_RPATH) +AC_MSG_RESULT($USE_RPATH) +]) + +dnl Check for the type of the third argument of getsockname +AC_DEFUN([AC_CHECK_SOCKLEN_T], +[ + AC_MSG_CHECKING(for socklen_t) + AC_CACHE_VAL(kde_cv_socklen_t, + [ + AC_LANG_PUSH(C++) + kde_cv_socklen_t=no + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <sys/socket.h> + ], + [ + socklen_t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t=yes + kde_cv_socklen_t_equiv=socklen_t + ]) + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t) + if test $kde_cv_socklen_t = no; then + AC_MSG_CHECKING([for socklen_t equivalent for socket functions]) + AC_CACHE_VAL(kde_cv_socklen_t_equiv, + [ + kde_cv_socklen_t_equiv=int + AC_LANG_PUSH(C++) + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include <sys/types.h> + #include <sys/socket.h> + ], + [ + $t len; + getpeername(0,0,&len); + ], + [ + kde_cv_socklen_t_equiv="$t" + break + ]) + done + AC_LANG_POP(C++) + ]) + AC_MSG_RESULT($kde_cv_socklen_t_equiv) + fi + AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined]) + AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)]) +]) + +dnl This is a merge of some macros out of the gettext aclocal.m4 +dnl since we don't need anything, I took the things we need +dnl the copyright for them is: +dnl > +dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +dnl This Makefile.in is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. +dnl > +dnl for this file it is relicensed under LGPL + +AC_DEFUN([AM_KDE_WITH_NLS], + [ + dnl If we use NLS figure out what method + + AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt, + [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then + AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + MSGFMT=$GMSGFMT + AC_SUBST(GMSGFMT) + AC_SUBST(MSGFMT) + + AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext programs is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + AC_SUBST(XGETTEXT) + + ]) + +# Search path for a program which passes the given test. +# Ulrich Drepper <drepper@cygnus.com>, 1996. + +# serial 1 +# Stephan Kulow: I appended a _KDE against name conflicts + +dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test -n "[$]$1"; then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + + +# Check whether LC_MESSAGES is available in <locale.h>. +# Ulrich Drepper <drepper@cygnus.com>, 1995. + +# serial 1 + +AC_DEFUN([AM_LC_MESSAGES], + [if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES]) + fi + fi]) + +dnl From Jim Meyering. +dnl FIXME: migrate into libit. + +AC_DEFUN([AM_FUNC_OBSTACK], +[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack, + [AC_TRY_LINK([#include "obstack.h"], + [struct obstack *mem;obstack_free(mem,(char *) 0)], + am_cv_func_obstack=yes, + am_cv_func_obstack=no)]) + if test $am_cv_func_obstack = yes; then + AC_DEFINE(HAVE_OBSTACK) + else + LIBOBJS="$LIBOBJS obstack.o" + fi +]) + +dnl From Jim Meyering. Use this if you use the GNU error.[ch]. +dnl FIXME: Migrate into libit + +AC_DEFUN([AM_FUNC_ERROR_AT_LINE], +[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line, + [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");], + am_cv_lib_error_at_line=yes, + am_cv_lib_error_at_line=no)]) + if test $am_cv_lib_error_at_line = no; then + LIBOBJS="$LIBOBJS error.o" + fi + AC_SUBST(LIBOBJS)dnl +]) + +# Macro to add for using GNU gettext. +# Ulrich Drepper <drepper@cygnus.com>, 1995. + +# serial 1 +# Stephan Kulow: I put a KDE in it to avoid name conflicts + +AC_DEFUN([AM_KDE_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([AM_KDE_WITH_NLS])dnl + AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h]) + AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \ +__argz_count __argz_stringify __argz_next]) + + AC_MSG_CHECKING(for stpcpy) + AC_CACHE_VAL(kde_cv_func_stpcpy, + [ + kde_safe_cxxflags=$CXXFLAGS + CXXFLAGS="-Werror" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ + #include <string.h> + ], + [ + char buffer[200]; + stpcpy(buffer, buffer); + ], + kde_cv_func_stpcpy=yes, + kde_cv_func_stpcpy=no) + AC_LANG_RESTORE + CXXFLAGS=$kde_safe_cxxflags + ]) + AC_MSG_RESULT($kde_cv_func_stpcpy) + if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then + AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy]) + fi + + AM_LC_MESSAGES + + if test "x$CATOBJEXT" != "x"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for lang in ${LINGUAS=$ALL_LINGUAS}; do + case "$ALL_LINGUAS" in + *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;; + esac + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + ]) + +AC_DEFUN([AC_HAVE_XPM], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$XPM_LDFLAGS" && XPM_LDFLAGS= + test -z "$XPM_INCLUDE" && XPM_INCLUDE= + + AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]), + xpm_test=$withval, xpm_test="yes") + if test "x$xpm_test" = xno; then + ac_cv_have_xpm=no + else + AC_MSG_CHECKING(for XPM) + AC_CACHE_VAL(ac_cv_have_xpm, + [ + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET" + else + LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET" + fi + CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES" + test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS" + AC_TRY_LINK([#include <X11/xpm.h>],[], + ac_cv_have_xpm="yes",ac_cv_have_xpm="no") + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + ])dnl + + if test "$ac_cv_have_xpm" = no; then + AC_MSG_RESULT(no) + XPM_LDFLAGS="" + XPMINC="" + $2 + else + AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support]) + if test "$XPM_LDFLAGS" = ""; then + XPMLIB='-lXpm $(LIB_X11)' + else + XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)' + fi + if test "$XPM_INCLUDE" = ""; then + XPMINC="" + else + XPMINC="-I$XPM_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + AC_SUBST(XPMINC) + AC_SUBST(XPMLIB) +]) + +AC_DEFUN([AC_HAVE_DPMS], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS= + test -z "$DPMS_INCLUDE" && DPMS_INCLUDE= + DPMS_LIB= + + AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]), + dpms_test=$withval, dpms_test="yes") + if test "x$dpms_test" = xno; then + ac_cv_have_dpms=no + else + AC_MSG_CHECKING(for DPMS) + dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms. + dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms". + AC_CACHE_VAL(ac_cv_have_dpms, + [ + if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then + AC_MSG_RESULT(no) + ac_cv_have_dpms="no" + else + ac_save_ldflags="$LDFLAGS" + ac_save_cflags="$CFLAGS" + ac_save_libs="$LIBS" + LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries" + LIBS="-lX11 -lXext $LIBSOCKET" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AC_TRY_LINK([ + #include <X11/Xproto.h> + #include <X11/X.h> + #include <X11/Xlib.h> + #include <X11/extensions/dpms.h> + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + ac_cv_have_dpms="yes", [ + LIBS="-lXdpms $LIBS" + AC_TRY_LINK([ + #include <X11/Xproto.h> + #include <X11/X.h> + #include <X11/Xlib.h> + #include <X11/extensions/dpms.h> + int foo_test_dpms() + { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[], + [ + ac_cv_have_dpms="-lXdpms" + ],ac_cv_have_dpms="no") + ]) + LDFLAGS="$ac_save_ldflags" + CFLAGS="$ac_save_cflags" + LIBS="$ac_save_libs" + fi + ])dnl + + if test "$ac_cv_have_dpms" = no; then + AC_MSG_RESULT(no) + DPMS_LDFLAGS="" + DPMSINC="" + $2 + else + AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support]) + if test "$ac_cv_have_dpms" = "-lXdpms"; then + DPMS_LIB="-lXdpms" + fi + if test "$DPMS_LDFLAGS" = ""; then + DPMSLIB="$DPMS_LIB "'$(LIB_X11)' + else + DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)' + fi + if test "$DPMS_INCLUDE" = ""; then + DPMSINC="" + else + DPMSINC="-I$DPMS_INCLUDE" + fi + AC_MSG_RESULT(yes) + $1 + fi + fi + ac_save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $X_INCLUDES" + test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS" + AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO, + [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>]) + AC_CHECK_DECL(DPMSCapable, + AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),, + [#include <X11/Xlib.h> + #include <X11/extensions/dpms.h>]) + AH_TEMPLATE(HAVE_DPMSINFO_PROTO, + [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>]) + AC_CHECK_DECL(DPMSInfo, + AC_DEFINE(HAVE_DPMSINFO_PROTO),, + [#include <X11/Xlib.h> + #include <X11/extensions/dpms.h>]) + CFLAGS="$ac_save_cflags" + AC_SUBST(DPMSINC) + AC_SUBST(DPMSLIB) +]) + +AC_DEFUN([AC_HAVE_GL], + [AC_REQUIRE_CPP()dnl + AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) + + test -z "$GL_LDFLAGS" && GL_LDFLAGS= + test -z "$GL_INCLUDE" && GL_INCLUDE= + + AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]), + gl_test=$withval, gl_test="yes") + if test "x$kde_use_qt_emb" = "xyes"; then + # GL and Qt Embedded is a no-go for now. + ac_cv_have_gl=no + elif test "x$gl_test" = xno; then + ac_cv_have_gl=no + else + AC_MSG_CHECKING(for GL) + AC_CACHE_VAL(ac_cv_have_gl, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_ldflags=$LDFLAGS + ac_save_cxxflags=$CXXFLAGS + ac_save_libs=$LIBS + LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries" + LIBS="$LIBS -lGL -lGLU" + test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11" + LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET" + CXXFLAGS="$CFLAGS $X_INCLUDES" + test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS" + AC_TRY_LINK([#include <GL/gl.h> +#include <GL/glu.h> +], [], + ac_cv_have_gl="yes", ac_cv_have_gl="no") + AC_LANG_RESTORE + LDFLAGS=$ac_save_ldflags + CXXFLAGS=$ac_save_cxxflags + LIBS=$ac_save_libs + ])dnl + + if test "$ac_cv_have_gl" = "no"; then + AC_MSG_RESULT(no) + GL_LDFLAGS="" + GLINC="" + $2 + else + AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)]) + if test "$GL_LDFLAGS" = ""; then + GLLIB='-lGLU -lGL $(LIB_X11)' + else + GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)' + fi + if test "$GL_INCLUDE" = ""; then + GLINC="" + else + GLINC="-I$GL_INCLUDE" + fi + AC_MSG_RESULT($ac_cv_have_gl) + $1 + fi + fi + AC_SUBST(GLINC) + AC_SUBST(GLLIB) +]) + + + dnl shadow password and PAM magic - maintained by ossi@kde.org + +AC_DEFUN([KDE_PAM], [ + AC_REQUIRE([KDE_CHECK_LIBDL]) + + want_pam= + AC_ARG_WITH(pam, + AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]), + [ if test "x$withval" = "xyes"; then + want_pam=yes + pam_service=kde + elif test "x$withval" = "xno"; then + want_pam=no + else + want_pam=yes + pam_service=$withval + fi + ], [ pam_service=kde ]) + + use_pam= + PAMLIBS= + if test "x$want_pam" != xno; then + AC_CHECK_LIB(pam, pam_start, [ + AC_CHECK_HEADER(security/pam_appl.h, + [ pam_header=security/pam_appl.h ], + [ AC_CHECK_HEADER(pam/pam_appl.h, + [ pam_header=pam/pam_appl.h ], + [ + AC_MSG_WARN([PAM detected, but no headers found! +Make sure you have the necessary development packages installed.]) + ] + ) + ] + ) + ], , $LIBDL) + if test -z "$pam_header"; then + if test "x$want_pam" = xyes; then + AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!]) + fi + else + AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)]) + PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL" + use_pam=yes + + dnl darwin claims to be something special + if test "$pam_header" = "pam/pam_appl.h"; then + AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/]) + fi + + dnl test whether struct pam_message is const (Linux) or not (Sun) + AC_MSG_CHECKING(for const pam_message) + AC_EGREP_HEADER([struct pam_message], $pam_header, + [ AC_EGREP_HEADER([const struct pam_message], $pam_header, + [AC_MSG_RESULT([const: Linux-type PAM])], + [AC_MSG_RESULT([nonconst: Sun-type PAM]) + AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])] + )], + [AC_MSG_RESULT([not found - assume const, Linux-type PAM])]) + fi + fi + + AC_SUBST(PAMLIBS) +]) + +dnl DEF_PAM_SERVICE(arg name, full name, define name) +AC_DEFUN([DEF_PAM_SERVICE], [ + AC_ARG_WITH($1-pam, + AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]), + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE=$withval + else + AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected. +You may want to enforce it by using --with-pam.]) + fi + ], + [ if test "x$use_pam" = xyes; then + $3_PAM_SERVICE="$pam_service" + fi + ]) + if test -n "$$3_PAM_SERVICE"; then + AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE]) + AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2]) + fi + AC_SUBST($3_PAM_SERVICE) +]) + +AC_DEFUN([KDE_SHADOWPASSWD], [ + AC_REQUIRE([KDE_PAM]) + + AC_CHECK_LIB(shadow, getspent, + [ LIBSHADOW="-lshadow" + ac_use_shadow=yes + ], + [ dnl for UnixWare + AC_CHECK_LIB(gen, getspent, + [ LIBGEN="-lgen" + ac_use_shadow=yes + ], + [ AC_CHECK_FUNC(getspent, + [ ac_use_shadow=yes ], + [ ac_use_shadow=no ]) + ]) + ]) + AC_SUBST(LIBSHADOW) + AC_SUBST(LIBGEN) + + AC_MSG_CHECKING([for shadow passwords]) + + AC_ARG_WITH(shadow, + AC_HELP_STRING([--with-shadow],[If you want shadow password support]), + [ if test "x$withval" != "xno"; then + use_shadow=yes + else + use_shadow=no + fi + ], [ + use_shadow="$ac_use_shadow" + ]) + + if test "x$use_shadow" = xyes; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords]) + else + AC_MSG_RESULT(no) + LIBSHADOW= + LIBGEN= + fi + + dnl finally make the relevant binaries setuid root, if we have shadow passwds. + dnl this still applies, if we could use it indirectly through pam. + if test "x$use_shadow" = xyes || + ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then + case $host in + *-*-freebsd* | *-*-netbsd* | *-*-openbsd*) + SETUIDFLAGS="-m 4755 -o root";; + *) + SETUIDFLAGS="-m 4755";; + esac + fi + AC_SUBST(SETUIDFLAGS) + +]) + +AC_DEFUN([KDE_PASSWDLIBS], [ + AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT + AC_REQUIRE([KDE_PAM]) + AC_REQUIRE([KDE_SHADOWPASSWD]) + + if test "x$use_pam" = "xyes"; then + PASSWDLIBS="$PAMLIBS" + else + PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN" + fi + + dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but + dnl /etc/master.passwd holds the actual passwords. /etc/master.passwd requires + dnl root to read, so kcheckpass needs to be root (even when using pam, since pam + dnl may need to read /etc/master.passwd). + case $host in + *-*-freebsd*) + SETUIDFLAGS="-m 4755 -o root" + ;; + *) + ;; + esac + + AC_SUBST(PASSWDLIBS) +]) + +AC_DEFUN([KDE_CHECK_LIBDL], +[ +AC_CHECK_LIB(dl, dlopen, [ +LIBDL="-ldl" +ac_cv_have_dlfcn=yes +]) + +AC_CHECK_LIB(dld, shl_unload, [ +LIBDL="-ldld" +ac_cv_have_shload=yes +]) + +AC_SUBST(LIBDL) +]) + +AC_DEFUN([KDE_CHECK_DLOPEN], +[ +KDE_CHECK_LIBDL +AC_CHECK_HEADERS(dlfcn.h dl.h) +if test "$ac_cv_header_dlfcn_h" = "no"; then + ac_cv_have_dlfcn=no +fi + +if test "$ac_cv_header_dl_h" = "no"; then + ac_cv_have_shload=no +fi + +dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE +dnl (MM) +AC_ARG_ENABLE(dlopen, +AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]), +enable_dlopen=$enableval, +enable_dlopen=yes) + +# override the user's opinion, if we know it better ;) +if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then + enable_dlopen=no +fi + +if test "$ac_cv_have_dlfcn" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn]) +fi + +if test "$ac_cv_have_shload" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload]) +fi + +if test "$enable_dlopen" = no ; then + test -n "$1" && eval $1 +else + test -n "$2" && eval $2 +fi + +]) + +AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING], +[ +KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no) +KDE_PROG_LIBTOOL +AC_MSG_CHECKING([dynamic loading]) +eval "`egrep '^build_libtool_libs=' libtool`" +if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then + dynamic_loading=yes + AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING) +else + dynamic_loading=no +fi +AC_MSG_RESULT($dynamic_loading) +if test "$dynamic_loading" = "yes"; then + $1 +else + $2 +fi +]) + +AC_DEFUN([KDE_ADD_INCLUDES], +[ +if test -z "$1"; then + test_include="Pix.h" +else + test_include="$1" +fi + +AC_MSG_CHECKING([for libg++ ($test_include)]) + +AC_CACHE_VAL(kde_cv_libgpp_includes, +[ +kde_cv_libgpp_includes=no + + for ac_dir in \ + \ + /usr/include/g++ \ + /usr/include \ + /usr/unsupported/include \ + /opt/include \ + $extra_include \ + ; \ + do + if test -r "$ac_dir/$test_include"; then + kde_cv_libgpp_includes=$ac_dir + break + fi + done +]) + +AC_MSG_RESULT($kde_cv_libgpp_includes) +if test "$kde_cv_libgpp_includes" != "no"; then + all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES" +fi +]) +]) + +AC_DEFUN([KDE_CHECK_LIBPTHREAD], +[ + dnl This code is here specifically to handle the + dnl various flavors of threading library on FreeBSD + dnl 4-, 5-, and 6-, and the (weird) rules around it. + dnl There may be an environment PTHREAD_LIBS that + dnl specifies what to use; otherwise, search for it. + dnl -pthread is special cased and unsets LIBPTHREAD + dnl below if found. + LIBPTHREAD="" + + if test -n "$PTHREAD_LIBS"; then + if test "x$PTHREAD_LIBS" = "x-pthread" ; then + LIBPTHREAD="PTHREAD" + else + PTHREAD_LIBS_save="$PTHREAD_LIBS" + PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'` + AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS]) + KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [ + LIBPTHREAD="$PTHREAD_LIBS_save"]) + PTHREAD_LIBS="$PTHREAD_LIBS_save" + fi + fi + + dnl Is this test really needed, in the face of the Tru64 test below? + if test -z "$LIBPTHREAD"; then + AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"]) + fi + + dnl This is a special Tru64 check, see BR 76171 issue #18. + if test -z "$LIBPTHREAD" ; then + AC_MSG_CHECKING([for pthread_create in -lpthread]) + kde_safe_libs=$LIBS + LIBS="$LIBS -lpthread" + AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[ + AC_MSG_RESULT(yes) + LIBPTHREAD="-lpthread"],[ + AC_MSG_RESULT(no)]) + LIBS=$kde_safe_libs + fi + + dnl Un-special-case for FreeBSD. + if test "x$LIBPTHREAD" = "xPTHREAD" ; then + LIBPTHREAD="" + fi + + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_PTHREAD_OPTION], +[ + USE_THREADS="" + if test -z "$LIBPTHREAD"; then + KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"]) + fi + + AH_VERBATIM(__svr_define, [ +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif +]) + case $host_os in + solaris*) + KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"]) + CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4" + ;; + freebsd*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS" + ;; + aix*) + CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" + LIBPTHREAD="$LIBPTHREAD -lc_r" + ;; + linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" + if test "$CXX" = "KCC"; then + CXXFLAGS="$CXXFLAGS --thread_safe" + NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe" + fi + ;; + *) + ;; + esac + AC_SUBST(USE_THREADS) + AC_SUBST(LIBPTHREAD) +]) + +AC_DEFUN([KDE_CHECK_THREADING], +[ + AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) + AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION]) + dnl default is yes if libpthread is found and no if no libpthread is available + if test -z "$LIBPTHREAD"; then + if test -z "$USE_THREADS"; then + kde_check_threading_default=no + else + kde_check_threading_default=yes + fi + else + kde_check_threading_default=yes + fi + AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]), + kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default) + if test "x$kde_use_threading" = "xyes"; then + AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)]) + fi +]) + +AC_DEFUN([KDE_TRY_LINK_PYTHON], +[ +if test "$kde_python_link_found" = no; then + +if test "$1" = normal; then + AC_MSG_CHECKING(if a Python application links) +else + AC_MSG_CHECKING(if Python depends on $2) +fi + +AC_CACHE_VAL(kde_cv_try_link_python_$1, +[ +kde_save_cflags="$CFLAGS" +CFLAGS="$CFLAGS $PYTHONINC" +kde_save_libs="$LIBS" +LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET" +kde_save_ldflags="$LDFLAGS" +LDFLAGS="$LDFLAGS $PYTHONLIB" + +AC_TRY_LINK( +[ +#include <Python.h> +],[ + PySys_SetArgv(1, 0); +], + [kde_cv_try_link_python_$1=yes], + [kde_cv_try_link_python_$1=no] +) +CFLAGS="$kde_save_cflags" +LIBS="$kde_save_libs" +LDFLAGS="$kde_save_ldflags" +]) + +if test "$kde_cv_try_link_python_$1" = "yes"; then + AC_MSG_RESULT(yes) + kde_python_link_found=yes + if test ! "$1" = normal; then + LIBPYTHON="$LIBPYTHON $2" + fi + $3 +else + AC_MSG_RESULT(no) + $4 +fi + +fi + +]) + +AC_DEFUN([KDE_CHECK_PYTHON_DIR], +[ +AC_MSG_CHECKING([for Python directory]) + +AC_CACHE_VAL(kde_cv_pythondir, +[ + if test -z "$PYTHONDIR"; then + kde_cv_pythondir=/usr/local + else + kde_cv_pythondir="$PYTHONDIR" + fi +]) + +AC_ARG_WITH(pythondir, +AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]), +[ + ac_python_dir=$withval +], ac_python_dir=$kde_cv_pythondir +) + +AC_MSG_RESULT($ac_python_dir) +]) + +AC_DEFUN([KDE_CHECK_PYTHON_INTERN], +[ +AC_REQUIRE([KDE_CHECK_LIBDL]) +AC_REQUIRE([KDE_CHECK_LIBPTHREAD]) +AC_REQUIRE([KDE_CHECK_PYTHON_DIR]) + +if test -z "$1"; then + version="1.5" +else + version="$1" +fi + +AC_MSG_CHECKING([for Python$version]) + +python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes" +AC_FIND_FILE(Python.h, $python_incdirs, python_incdir) +if test ! -r $python_incdir/Python.h; then + AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir) + python_incdir=$python_incdir/python$version + if test ! -r $python_incdir/Python.h; then + python_incdir=no + fi +fi + +PYTHONINC=-I$python_incdir + +python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs" +AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir) +if test ! -r $python_libdir/libpython$version.so; then + AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir) + if test ! -r $python_libdir/libpython$version.a; then + AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir) + python_libdir=$python_libdir/python$version/config + if test ! -r $python_libdir/libpython$version.a; then + python_libdir=no + fi + fi +fi + +PYTHONLIB=-L$python_libdir +kde_orig_LIBPYTHON=$LIBPYTHON +if test -z "$LIBPYTHON"; then + LIBPYTHON=-lpython$version +fi + +AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir) +python_moddir=$python_moddir/python$version +if test ! -r $python_moddir/copy.py; then + python_moddir=no +fi + +PYTHONMODDIR=$python_moddir + +AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir) + +if test x$python_incdir = xno || test x$python_libdir = xno || test x$python_moddir = xno; then + LIBPYTHON=$kde_orig_LIBPYTHON + test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB="" + test "x$PYTHONINC" = "x-Ino" && PYTHONINC="" + $2 +else + dnl Note: this test is very weak + kde_python_link_found=no + KDE_TRY_LINK_PYTHON(normal) + KDE_TRY_LINK_PYTHON(m, -lm) + KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD) + KDE_TRY_LINK_PYTHON(tcl, -ltcl) + KDE_TRY_LINK_PYTHON(db2, -ldb2) + KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil]) + KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm]) + KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses]) + KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [], + [AC_MSG_WARN([it seems, Python depends on another library. + Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this + and contact the authors to let them know about this problem]) + ]) + + LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET" + AC_SUBST(PYTHONINC) + AC_SUBST(PYTHONLIB) + AC_SUBST(LIBPYTHON) + AC_SUBST(PYTHONMODDIR) + AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python]) +fi + +]) + + +AC_DEFUN([KDE_CHECK_PYTHON], +[ + KDE_CHECK_PYTHON_INTERN("2.4", + [KDE_CHECK_PYTHON_INTERN("2.3", + [KDE_CHECK_PYTHON_INTERN("2.2", + [KDE_CHECK_PYTHON_INTERN("2.1", + [KDE_CHECK_PYTHON_INTERN("2.0", + [KDE_CHECK_PYTHON_INTERN($1, $2) ]) + ]) + ]) + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_STL], +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`" + + AC_MSG_CHECKING([if C++ programs can be compiled]) + AC_CACHE_VAL(kde_cv_stl_works, + [ + AC_TRY_COMPILE([ +#include <string> +using namespace std; +],[ + string astring="Hallo Welt."; + astring.erase(0, 6); // now astring is "Welt" + return 0; +], kde_cv_stl_works=yes, + kde_cv_stl_works=no) +]) + + AC_MSG_RESULT($kde_cv_stl_works) + + if test "$kde_cv_stl_works" = "yes"; then + # back compatible + AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI]) + else + AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs. +Check config.log for details - if you're using a Linux distribution you might miss +a package named similar to libstdc++-dev.]) + fi + + CXXFLAGS="$ac_save_CXXFLAGS" + AC_LANG_RESTORE +]) + +AC_DEFUN([AC_FIND_QIMGIO], + [AC_REQUIRE([AC_FIND_JPEG]) +AC_REQUIRE([KDE_CHECK_EXTRA_LIBS]) +AC_MSG_CHECKING([for qimgio]) +AC_CACHE_VAL(ac_cv_lib_qimgio, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +ac_save_LIBS="$LIBS" +ac_save_CXXFLAGS="$CXXFLAGS" +LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT" +CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes" +AC_TRY_RUN(dnl +[ +#include <qimageio.h> +#include <qstring.h> +int main() { + QString t = "hallo"; + t.fill('t'); + qInitImageIO(); +} +], + ac_cv_lib_qimgio=yes, + ac_cv_lib_qimgio=no, + ac_cv_lib_qimgio=no) +LIBS="$ac_save_LIBS" +CXXFLAGS="$ac_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then + LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG" + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available]) + AC_SUBST(LIBQIMGIO) +else + AC_MSG_RESULT(not found) +fi +]) + +AC_DEFUN([AM_DISABLE_LIBRARIES], +[ + AC_PROVIDE([AM_ENABLE_STATIC]) + AC_PROVIDE([AM_ENABLE_SHARED]) + enable_static=no + enable_shared=yes +]) + + +AC_DEFUN([AC_CHECK_UTMP_FILE], +[ + AC_MSG_CHECKING([for utmp file]) + + AC_CACHE_VAL(kde_cv_utmp_file, + [ + kde_cv_utmp_file=no + + for ac_file in \ + \ + /var/run/utmp \ + /var/adm/utmp \ + /etc/utmp \ + ; \ + do + if test -r "$ac_file"; then + kde_cv_utmp_file=$ac_file + break + fi + done + ]) + + if test "$kde_cv_utmp_file" != "no"; then + AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries]) + $1 + AC_MSG_RESULT($kde_cv_utmp_file) + else + $2 + AC_MSG_RESULT([non found]) + fi +]) + + +AC_DEFUN([KDE_CREATE_SUBDIRSLIST], +[ + +DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin" +TOPSUBDIRS="" + +if test ! -s $srcdir/subdirs; then + dnl Note: Makefile.common creates subdirs, so this is just a fallback + files=`cd $srcdir && ls -1` + dirs=`for i in $files; do if test -d $i; then echo $i; fi; done` + for i in $dirs; do + echo $i >> $srcdir/subdirs + done +fi + +ac_topsubdirs= +if test -s $srcdir/inst-apps; then + ac_topsubdirs="`cat $srcdir/inst-apps`" +elif test -s $srcdir/subdirs; then + ac_topsubdirs="`cat $srcdir/subdirs`" +fi + +for i in $ac_topsubdirs; do + AC_MSG_CHECKING([if $i should be compiled]) + if test -d $srcdir/$i; then + install_it="yes" + for j in $DO_NOT_COMPILE; do + if test $i = $j; then + install_it="no" + fi + done + else + install_it="no" + fi + AC_MSG_RESULT($install_it) + vari=`echo $i | sed -e 's,[[-+.@]],_,g'` + if test $install_it = "yes"; then + TOPSUBDIRS="$TOPSUBDIRS $i" + eval "$vari""_SUBDIR_included=yes" + else + eval "$vari""_SUBDIR_included=no" + fi +done + +AC_SUBST(TOPSUBDIRS) +]) + +AC_DEFUN([KDE_CHECK_NAMESPACES], +[ +AC_MSG_CHECKING(whether C++ compiler supports namespaces) +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +AC_TRY_COMPILE([ +], +[ +namespace Foo { + extern int i; + namespace Bar { + extern int i; + } +} + +int Foo::i = 0; +int Foo::Bar::i = 1; +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_NAMESPACES) +], [ +AC_MSG_RESULT(no) +]) +AC_LANG_RESTORE +]) + +dnl ------------------------------------------------------------------------ +dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_S_ISSOCK], +[ +AC_MSG_CHECKING(for S_ISSOCK) +AC_CACHE_VAL(ac_cv_have_s_issock, +[ +AC_TRY_LINK( +[ +#include <sys/stat.h> +], +[ +struct stat buff; +int b = S_ISSOCK( buff.st_mode ); +], +ac_cv_have_s_issock=yes, +ac_cv_have_s_issock=no) +]) +AC_MSG_RESULT($ac_cv_have_s_issock) +if test "$ac_cv_have_s_issock" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.]) +fi + +AH_VERBATIM(_ISSOCK, +[ +#ifndef HAVE_S_ISSOCK +#define HAVE_S_ISSOCK +#define S_ISSOCK(mode) (1==0) +#endif +]) + +]) + +dnl ------------------------------------------------------------------------ +dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure@kde.org +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([AC_CHECK_KDEMAXPATHLEN], +[ +AC_MSG_CHECKING(for MAXPATHLEN) +AC_CACHE_VAL(ac_cv_maxpathlen, +[ +cat > conftest.$ac_ext <<EOF +#ifdef STDC_HEADERS +# include <stdlib.h> +#endif +#include <stdio.h> +#include <sys/param.h> +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + +KDE_HELLO MAXPATHLEN + +EOF + +ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out" + +if AC_TRY_EVAL(ac_try) && test -s conftest.out; then + ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out` +else + ac_cv_maxpathlen=1024 +fi + +rm conftest.* + +]) +AC_MSG_RESULT($ac_cv_maxpathlen) +AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] ) +]) + +AC_DEFUN([KDE_CHECK_HEADER], +[ + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_CHECK_HEADER([$1], [$2], [$3], [$4]) + AC_LANG_RESTORE + CPPFLAGS=$kde_safe_cppflags +]) + +AC_DEFUN([KDE_CHECK_HEADERS], +[ + AH_CHECK_HEADERS([$1]) + AC_LANG_SAVE + kde_safe_cppflags=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $all_includes" + AC_LANG_CPLUSPLUS + AC_CHECK_HEADERS([$1], [$2], [$3], [$4]) + CPPFLAGS=$kde_safe_cppflags + AC_LANG_RESTORE +]) + +AC_DEFUN([KDE_FAST_CONFIGURE], +[ + dnl makes configure fast (needs perl) + AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]), + with_fast_perl=$enableval, with_fast_perl=yes) +]) + +AC_DEFUN([KDE_CONF_FILES], +[ + val= + if test -f $srcdir/configure.files ; then + val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files` + fi + CONF_FILES= + if test -n "$val" ; then + for i in $val ; do + CONF_FILES="$CONF_FILES $i" + done + fi + AC_SUBST(CONF_FILES) +])dnl + +dnl This sets the prefix, for arts and kdelibs +dnl Do NOT use in any other module. +dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde +AC_DEFUN([KDE_SET_PREFIX_CORE], +[ + unset CDPATH + dnl make $KDEDIR the default for the installation + AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde}) + + if test "x$prefix" = "xNONE"; then + prefix=$ac_default_prefix + ac_configure_args="$ac_configure_args --prefix=$prefix" + fi + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + kde_libs_prefix='$(prefix)' + kde_libs_htmldir='$(kde_htmldir)' + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + + +AC_DEFUN([KDE_SET_PREFIX], +[ + unset CDPATH + dnl We can't give real code to that macro, only a value. + dnl It only matters for --help, since we set the prefix in this function anyway. + AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix}) + + KDE_SET_DEFAULT_BINDIRS + if test "x$prefix" = "xNONE"; then + dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + else + dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH + kde_save_PATH="$PATH" + PATH="$exec_prefix/bin:$prefix/bin:$PATH" + KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend) + PATH="$kde_save_PATH" + fi + + kde_libs_prefix=`$KDECONFIG --prefix` + if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then + AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs. + This means it has been moved since you installed it. + This won't work. Please recompile kdelibs for the new prefix. + ]) + fi + kde_libs_htmldir=`$KDECONFIG --install html --expandvars` + kde_libs_suffix=`$KDECONFIG --libsuffix` + + AC_MSG_CHECKING([where to install]) + if test "x$prefix" = "xNONE"; then + prefix=$kde_libs_prefix + AC_MSG_RESULT([$prefix (as returned by kde-config)]) + else + dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different + given_prefix=$prefix + AC_MSG_RESULT([$prefix (as requested)]) + fi + + # And delete superfluous '/' to make compares easier + prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'` + + AC_SUBST(KDECONFIG) + AC_SUBST(kde_libs_prefix) + AC_SUBST(kde_libs_htmldir) + + KDE_FAST_CONFIGURE + KDE_CONF_FILES +]) + +pushdef([AC_PROG_INSTALL], +[ + dnl our own version, testing for a -p flag + popdef([AC_PROG_INSTALL]) + dnl as AC_PROG_INSTALL works as it works we first have + dnl to save if the user didn't specify INSTALL, as the + dnl autoconf one overwrites INSTALL and we have no chance to find + dnl out afterwards + test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL + test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM + test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT + AC_PROG_INSTALL + + if test -z "$kde_save_INSTALL_given" ; then + # OK, user hasn't given any INSTALL, autoconf found one for us + # now we test, if it supports the -p flag + AC_MSG_CHECKING(for -p flag to install) + rm -f confinst.$$.* > /dev/null 2>&1 + echo "Testtest" > confinst.$$.orig + ac_res=no + if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then + if test -f confinst.$$.new ; then + # OK, -p seems to do no harm to install + INSTALL="${INSTALL} -p" + ac_res=yes + fi + fi + rm -f confinst.$$.* + AC_MSG_RESULT($ac_res) + fi + dnl the following tries to resolve some signs and wonders coming up + dnl with different autoconf/automake versions + dnl e.g.: + dnl *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s + dnl and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS) + dnl it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s + dnl *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has + dnl INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the + dnl install-@DIR@PROGRAMS targets to explicitly use that flag + dnl *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as + dnl INSTALL_SCRIPT, which breaks with automake <= 1.4 + dnl *autoconf >2.13 (since 10.Apr 1999) has not that failure + dnl *sometimes KDE does not use the install-@DIR@PROGRAM targets from + dnl automake (due to broken Makefile.am or whatever) to install programs, + dnl and so does not see the -s flag in automake > 1.4 + dnl to clean up that mess we: + dnl +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG + dnl which cleans KDE's program with automake > 1.4; + dnl +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems + dnl with automake<=1.4 + dnl note that dues to this sometimes two '-s' flags are used (if KDE + dnl properly uses install-@DIR@PROGRAMS, but I don't care + dnl + dnl And to all this comes, that I even can't write in comments variable + dnl names used by automake, because it is so stupid to think I wanted to + dnl _use_ them, therefor I have written A_M_... instead of AM_ + dnl hmm, I wanted to say something ... ahh yes: Arghhh. + + if test -z "$kde_save_INSTALL_PROGRAM_given" ; then + INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)' + fi + if test -z "$kde_save_INSTALL_SCRIPT_given" ; then + INSTALL_SCRIPT='${INSTALL}' + fi +])dnl + +AC_DEFUN([KDE_LANG_CPLUSPLUS], +[AC_LANG_CPLUSPLUS +ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC' +pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS]) +]) + +pushdef([AC_LANG_CPLUSPLUS], +[popdef([AC_LANG_CPLUSPLUS]) +KDE_LANG_CPLUSPLUS +]) + +AC_DEFUN([KDE_CHECK_LONG_LONG], +[ +AC_MSG_CHECKING(for long long) +AC_CACHE_VAL(kde_cv_c_long_long, +[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_LINK([], [ + long long foo = 0; + foo = foo+1; + ], + kde_cv_c_long_long=yes, kde_cv_c_long_long=no) + AC_LANG_RESTORE +]) +AC_MSG_RESULT($kde_cv_c_long_long) +if test "$kde_cv_c_long_long" = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype]) +fi +]) + +AC_DEFUN([KDE_CHECK_LIB], +[ + kde_save_LDFLAGS="$LDFLAGS" + dnl AC_CHECK_LIB modifies LIBS, so save it here + kde_save_LIBS="$LIBS" + LDFLAGS="$LDFLAGS $all_libraries" + case $host_os in + aix*) LDFLAGS="-brtl $LDFLAGS" + test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS" + ;; + esac + AC_CHECK_LIB($1, $2, $3, $4, $5) + LDFLAGS="$kde_save_LDFLAGS" + LIBS="$kde_save_LIBS" +]) + +AC_DEFUN([KDE_JAVA_PREFIX], +[ + dir=`dirname "$1"` + base=`basename "$1"` + list=`ls -1 $dir 2> /dev/null` + for entry in $list; do + if test -d $dir/$entry/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/bin" + ;; + esac + elif test -d $dir/$entry/jre/bin; then + case $entry in + $base) + javadirs="$javadirs $dir/$entry/jre/bin" + ;; + esac + fi + done +]) + +dnl KDE_CHEC_JAVA_DIR(onlyjre) +AC_DEFUN([KDE_CHECK_JAVA_DIR], +[ + +AC_ARG_WITH(java, +AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]), +[ ac_java_dir=$withval +], ac_java_dir="" +) + +AC_MSG_CHECKING([for Java]) + +dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH +if test "x$ac_java_dir" = "xno"; then + kde_java_bindir=no + kde_java_includedir=no + kde_java_libjvmdir=no + kde_java_libgcjdir=no + kde_java_libhpidir=no +else + if test "x$ac_java_dir" = "x"; then + + + dnl No option set -> collect list of candidate paths + if test -n "$JAVA_HOME"; then + KDE_JAVA_PREFIX($JAVA_HOME) + fi + KDE_JAVA_PREFIX(/usr/j2se) + KDE_JAVA_PREFIX(/usr/lib/j2se) + KDE_JAVA_PREFIX(/usr/j*dk*) + KDE_JAVA_PREFIX(/usr/lib/j*dk*) + KDE_JAVA_PREFIX(/opt/j*sdk*) + KDE_JAVA_PREFIX(/usr/lib/java*) + KDE_JAVA_PREFIX(/usr/java*) + KDE_JAVA_PREFIX(/usr/java/j*dk*) + KDE_JAVA_PREFIX(/usr/java/j*re*) + KDE_JAVA_PREFIX(/usr/lib/SunJava2*) + KDE_JAVA_PREFIX(/usr/lib/SunJava*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava2*) + KDE_JAVA_PREFIX(/usr/lib/IBMJava*) + KDE_JAVA_PREFIX(/opt/java*) + + kde_cv_path="NONE" + kde_save_IFS=$IFS + IFS=':' + for dir in $PATH; do + if test -d "$dir"; then + javadirs="$javadirs $dir" + fi + done + IFS=$kde_save_IFS + jredirs= + + dnl Now javadirs contains a list of paths that exist, all ending with bin/ + for dir in $javadirs; do + dnl Check for the java executable + if test -x "$dir/java"; then + dnl And also check for a libjvm.so somewhere under there + dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big. + if test "$dir" != "/usr/bin"; then + libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + if test ! -f $libjvmdir/libjvm.so; then continue; fi + jredirs="$jredirs $dir" + fi + fi + done + + dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found + JAVAC= + JAVA= + kde_java_bindir=no + for dir in $jredirs; do + JAVA="$dir/java" + kde_java_bindir=$dir + if test -x "$dir/javac"; then + JAVAC="$dir/javac" + break + fi + done + + if test -n "$JAVAC"; then + dnl this substitution might not work - well, we test for jni.h below + kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'` + else + kde_java_includedir=no + fi + else + dnl config option set + kde_java_bindir=$ac_java_dir/bin + if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then + kde_java_includedir=no + else + kde_java_includedir=$ac_java_dir/include + fi + fi +fi + +dnl At this point kde_java_bindir and kde_java_includedir are either set or "no" +if test "x$kde_java_bindir" != "xno"; then + + dnl Look for libjvm.so + kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1` + dnl Look for libgcj.so + kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1` + dnl Look for libhpi.so and avoid green threads + kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1` + + dnl Now check everything's fine under there + dnl the include dir is our flag for having the JDK + if test -d "$kde_java_includedir"; then + if test ! -x "$kde_java_bindir/javac"; then + AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.]) + fi + if test ! -x "$kde_java_bindir/javah"; then + AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -x "$kde_java_bindir/jar"; then + AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + if test ! -r "$kde_java_includedir/jni.h"; then + AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.]) + fi + + jni_includes="-I$kde_java_includedir" + dnl Strange thing, jni.h requires jni_md.h which is under genunix here.. + dnl and under linux here.. + + dnl not needed for gcj + + if test "x$kde_java_libgcjdir" = "x"; then + test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux" + test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris" + test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix" + fi + + else + JAVAC= + jni_includes= + fi + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libjvmdir/libjvm.so"; then + AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.]) + fi + else + if test ! -r "$kde_java_libgcjdir/libgcj.so"; then + AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.]) + fi + fi + + if test ! -x "$kde_java_bindir/java"; then + AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.]) + fi + + dnl not needed for gcj compile + + if test "x$kde_java_libgcjdir" = "x"; then + if test ! -r "$kde_java_libhpidir/libhpi.so"; then + AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.]) + fi + fi + + if test -n "$jni_includes"; then + dnl Check for JNI version + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + ac_cxxflags_safe="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $all_includes $jni_includes" + + AC_TRY_COMPILE([ + #include <jni.h> + ], + [ + #ifndef JNI_VERSION_1_2 + Syntax Error + #endif + ],[ kde_jni_works=yes ], + [ kde_jni_works=no ]) + + if test $kde_jni_works = no; then + AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h. + You need to have Java Development Kit (JDK) version 1.2. + + Use --with-java to specify another location. + Use --without-java to configure without java support. + Or download a newer JDK and try again. + See e.g. http://java.sun.com/products/jdk/1.2 ]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + AC_LANG_RESTORE + + dnl All tests ok, inform and subst the variables + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + if test "x$kde_java_libgcjdir" = "x"; then + JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi" + else + JVMLIBS="-L$kde_java_libgcjdir -lgcj" + fi + AC_MSG_RESULT([java JDK in $kde_java_bindir]) + + else + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([java JRE in $kde_java_bindir]) + fi +elif test -d "/Library/Java/Home"; then + kde_java_bindir="/Library/Java/Home/bin" + jni_includes="-I/Library/Java/Home/include" + + JAVAC=$kde_java_bindir/javac + JAVAH=$kde_java_bindir/javah + JAR=$kde_java_bindir/jar + JVMLIBS="-Xlinker -framework -Xlinker JavaVM" + + AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is]) + AC_MSG_RESULT([Apple Java Framework]) +else + AC_MSG_RESULT([none found]) +fi + +AC_SUBST(JAVAC) +AC_SUBST(JAVAH) +AC_SUBST(JAR) +AC_SUBST(JVMLIBS) +AC_SUBST(jni_includes) + +# for backward compat +kde_cv_java_includedir=$kde_java_includedir +kde_cv_java_bindir=$kde_java_bindir +]) + +dnl this is a redefinition of autoconf 2.5x's AC_FOREACH. +dnl When the argument list becomes big, as in KDE for AC_OUTPUT in +dnl big packages, m4_foreach is dog-slow. So use our own version of +dnl it. (matz@kde.org) +m4_define([mm_foreach], +[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])]) +m4_define([mm_car], [[$1]]) +m4_define([mm_car2], [[$@]]) +m4_define([_mm_foreach], +[m4_if(m4_quote($2), [], [], + [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1], + mm_car2(m4_shift($2)), + [$3])])]) +m4_define([AC_FOREACH], +[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) + +AC_DEFUN([KDE_NEED_FLEX], +[ +kde_libs_safe=$LIBS +LIBS="$LIBS $USER_LDFLAGS" +AM_PROG_LEX +LIBS=$kde_libs_safe +if test -z "$LEXLIB"; then + AC_MSG_ERROR([You need to have flex installed.]) +fi +AC_SUBST(LEXLIB) +]) + +AC_DEFUN([AC_PATH_QTOPIA], +[ + dnl TODO: use AC_CACHE_VAL + + if test -z "$1"; then + qtopia_minver_maj=1 + qtopia_minver_min=5 + qtopia_minver_pat=0 + else + qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"` + qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"` + qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"` + fi + + qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat" + qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat" + + AC_REQUIRE([AC_PATH_QT]) + + AC_MSG_CHECKING([for Qtopia]) + + LIB_QTOPIA="-lqpe" + AC_SUBST(LIB_QTOPIA) + + kde_qtopia_dirs="$QPEDIR /opt/Qtopia" + + ac_qtopia_incdir=NO + + AC_ARG_WITH(qtopia-dir, + AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]), + [ ac_qtopia_incdir="$withval"/include] ) + + qtopia_incdirs="" + for dir in $kde_qtopia_dirs; do + qtopia_incdirs="$qtopia_incdirs $dir/include" + done + + if test ! "$ac_qtopia_incdir" = "NO"; then + qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs" + fi + + qtopia_incdir="" + AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir) + ac_qtopia_incdir="$qtopia_incdir" + + if test -z "$qtopia_incdir"; then + AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.]) + fi + + qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`; + qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`; + qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`; + + qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat" + qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat" + if test "$qtopia_ver" -lt "$qtopia_minver"; then + AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr +is required.]) + fi + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + ac_cxxflags_safe="$CXXFLAGS" + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes" + LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS" + LIBS="$LIBS $LIB_QTOPIA $LIBQT" + + cat > conftest.$ac_ext <<EOF +#include "confdefs.h" +#include <qpe/qpeapplication.h> +#include <qpe/version.h> + +int main( int argc, char **argv ) +{ + QPEApplication app( argc, argv ); + return 0; +} +EOF + + if AC_TRY_EVAL(ac_link) && test -s conftest; then + rm -f conftest* + else + rm -f conftest* + AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at +the end of config.log]) + fi + + CXXFLAGS="$ac_cxxflags_safe" + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + AC_LANG_RESTORE + + QTOPIA_INCLUDES="-I$qtopia_incdir" + AC_SUBST(QTOPIA_INCLUDES) + + AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir]) +]) + + +AC_DEFUN([KDE_INIT_DOXYGEN], +[ +AC_MSG_CHECKING([for Qt docs]) +kde_qtdir= +if test "${with_qt_dir+set}" = set; then + kde_qtdir="$with_qt_dir" +fi + +AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR) +AC_MSG_RESULT($QTDOCDIR) + +AC_SUBST(QTDOCDIR) + +KDE_FIND_PATH(dot, DOT, [], []) +if test -n "$DOT"; then + KDE_HAVE_DOT="YES" +else + KDE_HAVE_DOT="NO" +fi +AC_SUBST(KDE_HAVE_DOT) +KDE_FIND_PATH(doxygen, DOXYGEN, [], []) +AC_SUBST(DOXYGEN) + +DOXYGEN_PROJECT_NAME="$1" +DOXYGEN_PROJECT_NUMBER="$2" +AC_SUBST(DOXYGEN_PROJECT_NAME) +AC_SUBST(DOXYGEN_PROJECT_NUMBER) + +KDE_HAS_DOXYGEN=no +if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then + KDE_HAS_DOXYGEN=yes +fi +AC_SUBST(KDE_HAS_DOXYGEN) + +]) + + +AC_DEFUN([AC_FIND_BZIP2], +[ +AC_MSG_CHECKING([for bzDecompress in libbz2]) +AC_CACHE_VAL(ac_cv_lib_bzip2, +[ +AC_LANG_SAVE +AC_LANG_CPLUSPLUS +kde_save_LIBS="$LIBS" +LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET" +kde_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES" +AC_TRY_LINK(dnl +[ +#define BZ_NO_STDIO +#include<bzlib.h> +], + [ bz_stream s; (void) bzDecompress(&s); ], + eval "ac_cv_lib_bzip2='-lbz2'", + eval "ac_cv_lib_bzip2=no") +LIBS="$kde_save_LIBS" +CXXFLAGS="$kde_save_CXXFLAGS" +AC_LANG_RESTORE +])dnl +AC_MSG_RESULT($ac_cv_lib_bzip2) + +if test ! "$ac_cv_lib_bzip2" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2" + AC_SUBST(LIBBZ2) + +else + + cxx_shared_flag= + ld_shared_flag= + KDE_CHECK_COMPILER_FLAG(shared, [ + ld_shared_flag="-shared" + ]) + KDE_CHECK_COMPILER_FLAG(fPIC, [ + cxx_shared_flag="-fPIC" + ]) + + AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2]) + AC_CACHE_VAL(ac_cv_lib_bzip2_prefix, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + kde_save_LIBS="$LIBS" + LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET" + kde_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES" + + AC_TRY_LINK(dnl + [ + #define BZ_NO_STDIO + #include<bzlib.h> + ], + [ bz_stream s; (void) BZ2_bzDecompress(&s); ], + eval "ac_cv_lib_bzip2_prefix='-lbz2'", + eval "ac_cv_lib_bzip2_prefix=no") + LIBS="$kde_save_LIBS" + CXXFLAGS="$kde_save_CXXFLAGS" + AC_LANG_RESTORE + ])dnl + + AC_MSG_RESULT($ac_cv_lib_bzip2_prefix) + + if test ! "$ac_cv_lib_bzip2_prefix" = no; then + BZIP2DIR=bzip2 + + LIBBZ2="$ac_cv_lib_bzip2_prefix" + AC_SUBST(LIBBZ2) + + AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix]) + dnl else, we just ignore this + fi + +fi +AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR") +]) + +dnl ------------------------------------------------------------------------ +dnl Try to find the SSL headers and libraries. +dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed) +dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed) +dnl ------------------------------------------------------------------------ +dnl +AC_DEFUN([KDE_CHECK_SSL], +[ +LIBSSL="-lssl -lcrypto" +AC_REQUIRE([KDE_CHECK_LIB64]) + +ac_ssl_includes=NO ac_ssl_libraries=NO +ssl_libraries="" +ssl_includes="" +AC_ARG_WITH(ssl-dir, + AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]), + [ ac_ssl_includes="$withval"/include + ac_ssl_libraries="$withval"/lib$kdelibsuff + ]) + +want_ssl=yes +AC_ARG_WITH(ssl, + AC_HELP_STRING([--without-ssl],[disable SSL checks]), + [want_ssl=$withval]) + +if test $want_ssl = yes; then + +AC_MSG_CHECKING(for OpenSSL) + +AC_CACHE_VAL(ac_cv_have_ssl, +[#try to guess OpenSSL locations + + ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes" + ssl_incdirs="$ac_ssl_includes $ssl_incdirs" + AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir) + ac_ssl_includes="$ssl_incdir" + + ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs" + if test ! "$ac_ssl_libraries" = "NO"; then + ssl_libdirs="$ac_ssl_libraries $ssl_libdirs" + fi + + test=NONE + ssl_libdir=NONE + for dir in $ssl_libdirs; do + try="ls -1 $dir/libssl*" + if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi + done + + ac_ssl_libraries="$ssl_libdir" + + ac_ldflags_safe="$LDFLAGS" + ac_libs_safe="$LIBS" + + LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries" + LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref" + + AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();, + ac_ssl_rsaref="yes" + , + ac_ssl_rsaref="no" + ) + + LDFLAGS="$ac_ldflags_safe" + LIBS="$ac_libs_safe" + + if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then + have_ssl=no + else + have_ssl=yes; + fi + + ]) + + eval "$ac_cv_have_ssl" + + AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes]) + + AC_MSG_CHECKING([whether OpenSSL uses rsaref]) + AC_MSG_RESULT($ac_ssl_rsaref) + + AC_MSG_CHECKING([for easter eggs]) + AC_MSG_RESULT([none found]) + +else + have_ssl=no +fi + +if test "$have_ssl" = yes; then + AC_MSG_CHECKING(for OpenSSL version) + dnl Check for SSL version + AC_CACHE_VAL(ac_cv_ssl_version, + [ + + cat >conftest.$ac_ext <<EOF +#include <openssl/opensslv.h> +#include <stdio.h> + int main() { + +#ifndef OPENSSL_VERSION_NUMBER + printf("ssl_version=\\"error\\"\n"); +#else + if (OPENSSL_VERSION_NUMBER < 0x00906000) + printf("ssl_version=\\"old\\"\n"); + else + printf("ssl_version=\\"ok\\"\n"); +#endif + return (0); + } +EOF + + ac_save_CPPFLAGS=$CPPFLAGS + if test "$ac_ssl_includes" != "/usr/include"; then + CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes" + fi + + if AC_TRY_EVAL(ac_link); then + + if eval `./conftest 2>&5`; then + if test $ssl_version = error; then + AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !]) + else + if test $ssl_version = old; then + AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.]) + have_ssl=no + fi + fi + ac_cv_ssl_version="ssl_version=$ssl_version" + else + AC_MSG_ERROR([Your system couldn't run a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure <faure@kde.org>, attaching your config.log]) + fi + + else + AC_MSG_ERROR([Your system couldn't link a small SSL test program. + Check config.log, and if you can't figure it out, send a mail to + David Faure <faure@kde.org>, attaching your config.log]) + fi + CPPFLAGS=$ac_save_CPPFLAGS + + ]) + + eval "$ac_cv_ssl_version" + AC_MSG_RESULT($ssl_version) +fi + +if test "$have_ssl" != yes; then + LIBSSL=""; +else + AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL]) + ac_cv_have_ssl="have_ssl=yes \ + ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref" + + + ssl_libraries="$ac_ssl_libraries" + ssl_includes="$ac_ssl_includes" + + if test "$ac_ssl_rsaref" = yes; then + LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" + fi + + if test $ssl_version = "old"; then + AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6]) + fi +fi + +SSL_INCLUDES= + +if test "$ssl_includes" = "/usr/include"; then + if test -f /usr/kerberos/include/krb5.h; then + SSL_INCLUDES="-I/usr/kerberos/include" + fi +elif test "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then + SSL_INCLUDES="-I$ssl_includes" +fi + +if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then + SSL_LDFLAGS="" +else + SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries" +fi + +AC_SUBST(SSL_INCLUDES) +AC_SUBST(SSL_LDFLAGS) +AC_SUBST(LIBSSL) +]) + +AC_DEFUN([KDE_CHECK_STRLCPY], +[ + AC_REQUIRE([AC_CHECK_STRLCAT]) + AC_REQUIRE([AC_CHECK_STRLCPY]) + AC_CHECK_SIZEOF(size_t) + AC_CHECK_SIZEOF(unsigned long) + + AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long]) + AC_TRY_COMPILE(,[ + #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG + choke me + #endif + ],AC_MSG_RESULT([yes]),[ + AC_MSG_RESULT(no) + AC_MSG_ERROR([ + Apparently on your system our assumption sizeof size_t == sizeof unsigned long + does not apply. Please mail kde-devel@kde.org with a description of your system! + ]) + ]) +]) + +AC_DEFUN([KDE_CHECK_BINUTILS], +[ + AC_MSG_CHECKING([if ld supports unversioned version maps]) + + kde_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" + echo "{ local: extern \"C++\" { foo }; };" > conftest.map + AC_TRY_LINK([int foo;], +[ +#ifdef __INTEL_COMPILER +icc apparently does not support libtools version-info and version-script +at the same time. Dunno where the bug is, but until somebody figured out, +better disable the optional version scripts. +#endif + + foo = 42; +], kde_supports_versionmaps=yes, kde_supports_versionmaps=no) + LDFLAGS="$kde_save_LDFLAGS" + rm -f conftest.map + AM_CONDITIONAL(include_VERSION_SCRIPT, + [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"]) + + AC_MSG_RESULT($kde_supports_versionmaps) +]) + +AC_DEFUN([AM_PROG_OBJC],[ +AC_CHECK_PROGS(OBJC, gcc, gcc) +test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH]) +if test "x${OBJCFLAGS-unset}" = xunset; then + OBJCFLAGS="-g -O2" +fi +AC_SUBST(OBJCFLAGS) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)]) +]) + +AC_DEFUN([KDE_CHECK_PERL], +[ + KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [ + AC_MSG_ERROR([No Perl found in your $PATH. +We need perl to generate some code.]) + ]) + AC_SUBST(PERL) +]) + +AC_DEFUN([KDE_CHECK_LARGEFILE], +[ +AC_SYS_LARGEFILE +if test "$ac_cv_sys_file_offset_bits" != no; then + CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits" +fi + +if test "x$ac_cv_sys_large_files" != "xno"; then + CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1" +fi + +]) + +dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in) +dnl which allows to search for libs that get installed into the KDE prefix. +dnl +dnl Syntax: KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not) +dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page +dnl also defines KSTUFF_PKG_ERRORS on error +AC_DEFUN([KDE_PKG_CHECK_MODULES], [ + + PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" + if test "$prefix" != "$kde_libs_prefix"; then + PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH" + fi + export PKG_CONFIG_PATH + PKG_CHECK_MODULES($1,$2,$3,$4) +]) + + +dnl Check for PIE support in the compiler and linker +AC_DEFUN([KDE_CHECK_PIE_SUPPORT], +[ + AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + safe_CXXFLAGS=$CXXFLAGS + safe_LDFLAGS=$LDFLAGS + CXXFLAGS="$CXXFLAGS -fpie" + LDFLAGS="$LDFLAGS -pie" + + AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no]) + + CXXFLAGS=$safe_CXXFLAGS + LDFLAGS=$safe_LDFLAGS + AC_LANG_RESTORE + ]) + + AC_MSG_CHECKING(if enabling -pie/fpie support) + + AC_ARG_ENABLE(pie, + AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]), + [kde_has_pie_support=$enableval], + [kde_has_pie_support=detect]) + + if test "$kde_has_pie_support" = "detect"; then + kde_has_pie_support=$kde_cv_val_pie_support + fi + + AC_MSG_RESULT([$kde_has_pie_support]) + + KDE_USE_FPIE="" + KDE_USE_PIE="" + + AC_SUBST([KDE_USE_FPIE]) + AC_SUBST([KDE_USE_PIE]) + + if test "$kde_has_pie_support" = "yes"; then + KDE_USE_FPIE="-fpie" + KDE_USE_PIE="-pie" + fi +]) +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +## Copyright 1996, 1997, 1998, 1999, 2000, 2001 +## Free Software Foundation, Inc. +## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +## +## As a special exception to the GNU General Public License, if you +## distribute this file as part of a program that contains a +## configuration script generated by Autoconf, you may include it under +## the same distribution terms that you use for the rest of that program. + +# serial 47 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + +# Same as above, but do not quote variable references. +[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except M$VC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + ;; + *) + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<EOF +[$]* +EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string="`eval $cmd`") 2>/dev/null && + echo_test_string="`eval $cmd`" && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case "`/usr/bin/file conftest.o`" in + *32-bit*) + LINUX_64_MODE="32" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + LINUX_64_MODE="64" + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s conftest.err; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + testring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \ + = "XX$testring") >/dev/null 2>&1 && + new_result=`expr "X$testring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + testring=$testring$testring + done + testring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# -------------------- +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ------------------------------------------------------------------ +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_unknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + LDFLAGS="$LDFLAGS $link_static_flag" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + # According to Tom Tromey, Ian Lance Taylor reported there are C compilers + # that will create temporary files in the current directory regardless of + # the output directory. Thus, making CWD read-only will cause this test + # to fail, enabling locking or at least warning the user not to do parallel + # builds. + chmod -w . + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + if test ! -s out/conftest.err; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . + $rm conftest* out/* + rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi4*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext='$(test .$module = .yes && echo .so || echo .dylib)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + *) # from 3.2 on + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case "$host_cpu" in + ia64*) + shrext='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + libsuff= + if test "x$LINUX_64_MODE" = x64; then + # Some platforms are per default 64-bit, so there's no /lib64 + if test -d /lib64; then + libsuff=64 + fi + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}" + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +sco3.2v5*) + version_type=osf + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && test "X$CXX" != "Xno"; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 dll's +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +#- set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_PROG_LD_GNU +])# AC_PROG_LD + + +# AC_PROG_LD_GNU +# -------------- +AC_DEFUN([AC_PROG_LD_GNU], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# AC_PROG_LD_GNU + + +# AC_PROG_LD_RELOAD_FLAG +# ---------------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +])# AC_PROG_LD_RELOAD_FLAG + + +# AC_DEPLIBS_CHECK_METHOD +# ----------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], +[AC_CACHE_CHECK([how to recognise dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi4*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + lt_cv_deplibs_check_method=pass_all + ;; + +mingw* | pw32*) + # win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='win32_libid' + ;; + +darwin* | rhapsody*) + # this will be overwritten by pass_all, but leave it in just in case + lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' + lt_cv_file_magic_cmd='/usr/bin/file -L' + case "$host_os" in + rhapsody* | darwin1.[[012]]) + lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System` + ;; + *) # Darwin 1.3 on + lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' + ;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | kfreebsd*-gnu) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case "$host_cpu" in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + irix5* | nonstopux*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" + ;; + *) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" + ;; + esac + lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux*) + case $host_cpu in + alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* ) + lt_cv_deplibs_check_method=pass_all ;; + # the debian people say, arm and glibc 2.3.1 works for them with pass_all + arm* ) + lt_cv_deplibs_check_method=pass_all ;; + *) + # glibc up to 2.1.1 does not perform some relocations on ARM + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; + esac + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' + else + lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' + fi + ;; + +osf3* | osf4* | osf5*) + # this will be overridden with pass_all, but let us keep it just in case + lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' + lt_cv_file_magic_test_file=/shlib/libc.so + lt_cv_deplibs_check_method=pass_all + ;; + +sco3.2v5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + lt_cv_file_magic_test_file=/lib/libc.so + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/${ac_tool_prefix}nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + esac + fi + done + IFS="$lt_save_ifs" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL +# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If +# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will +# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and +# top_srcdir appropriately in the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that LIBLTDL +# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If +# DIRECTORY is not provided and an installed libltdl is not found, it is +# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' +# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single +# quotes!). If your package is not flat and you're not using automake, +# define top_builddir and top_srcdir appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# -------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# +# Check for any special shared library compilation flags. +# +_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= +if test "$GCC" = no; then + case $host_os in + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' + ;; + esac +fi +if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then + AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) + if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ ]]" >/dev/null; then : + else + AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) + _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no + fi +fi + + +# +# Check to make sure the static flag actually works. +# +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +# Report which librarie types wil actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + darwin* | rhapsody*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cc + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + _LT_AC_TAGVAR(always_export_symbols, $1)=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + dgux*) + case $cc_basename in + ec++) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | kfreebsd*-gnu) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case "$host_cpu" in + ia64*|hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + irix5* | irix6*) + case $cc_basename in + CC) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc) + # Intel C++ + with_gnu_ld=yes + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + cxx) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + osf3*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry $objdir/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sco*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext <<EOF +int a; +void foo (void) { a = 0; } +EOF +],[$1],[CXX],[cat > conftest.$ac_ext <<EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +EOF +],[$1],[F77],[cat > conftest.$ac_ext <<EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +EOF +],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + # The `*' in the case matches for architectures that use `case' in + # $output_verbose_cmd can trigger glob expansion during the loop + # eval without this substitution. + output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`" + + for p in `eval $output_verbose_link_cmd`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" \ + || test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then + _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext|*.$libext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then + _LT_AC_TAGVAR(predep_objects, $1)="$p" + else + _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then + _LT_AC_TAGVAR(postdep_objects, $1)="$p" + else + _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$rm -f confest.$objext + +case " $_LT_AC_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac +])# AC_LIBTOOL_POSTDEP_PREDEP + +# AC_LIBTOOL_LANG_F77_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) +AC_DEFUN([_LT_AC_LANG_F77_CONFIG], +[AC_REQUIRE([AC_PROG_F77]) +AC_LANG_PUSH(Fortran 77) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code=" subroutine t\n return\n end\n" + +# Code to be used in simple link tests +lt_simple_link_test_code=" program t\n end\n" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case "$host_os" in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix4*) + test "$enable_shared" = yes && enable_static=no + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$G77" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP + + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_F77_CONFIG + + +# AC_LIBTOOL_LANG_GCJ_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) +AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], +[AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_GCJ_CONFIG + + +# AC_LIBTOOL_LANG_RC_CONFIG +# -------------------------- +# Ensure that the configuration vars for the Windows resource compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) +AC_DEFUN([_LT_AC_LANG_RC_CONFIG], +[AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_RESTORE +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_RC_CONFIG + + +# AC_LIBTOOL_CONFIG([TAGNAME]) +# ---------------------------- +# If TAGNAME is not passed, then create an initial libtool script +# with a default configuration from the untagged config vars. Otherwise +# add code to config.status for appending the configuration named by +# TAGNAME from the matching tagged config vars. +AC_DEFUN([AC_LIBTOOL_CONFIG], +[# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + _LT_AC_TAGVAR(compiler, $1) \ + _LT_AC_TAGVAR(CC, $1) \ + _LT_AC_TAGVAR(LD, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ + _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ + _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ + _LT_AC_TAGVAR(old_archive_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ + _LT_AC_TAGVAR(predep_objects, $1) \ + _LT_AC_TAGVAR(postdep_objects, $1) \ + _LT_AC_TAGVAR(predeps, $1) \ + _LT_AC_TAGVAR(postdeps, $1) \ + _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ + _LT_AC_TAGVAR(archive_cmds, $1) \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ + _LT_AC_TAGVAR(postinstall_cmds, $1) \ + _LT_AC_TAGVAR(postuninstall_cmds, $1) \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ + _LT_AC_TAGVAR(allow_undefined_flag, $1) \ + _LT_AC_TAGVAR(no_undefined_flag, $1) \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ + _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ + _LT_AC_TAGVAR(hardcode_automatic, $1) \ + _LT_AC_TAGVAR(module_cmds, $1) \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) \ + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ + _LT_AC_TAGVAR(exclude_expsyms, $1) \ + _LT_AC_TAGVAR(include_expsyms, $1); do + + case $var in + _LT_AC_TAGVAR(old_archive_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ + _LT_AC_TAGVAR(archive_cmds, $1) | \ + _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(module_cmds, $1) | \ + _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ + _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\[$]0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` + ;; + esac + +ifelse([$1], [], + [cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + AC_MSG_NOTICE([creating $ofile])], + [cfgfile="$ofile"]) + + cat <<__EOF__ >> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext='$shrext' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation ? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + test -f Makefile && make "$ltmain" +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform the above into a raw symbol and a C symbol. +symxfrm='\1 \2\3 \3' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris* | sysv5*) + symcode='[[BDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGISTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat <<EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <<EOF >> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + cxx) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + sco*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + *) + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + unixware*) + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + + # KDE requires run time linking. Make it the default. + aix_use_runtimelinking=yes + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='-qmkshrobj ${wl}-G' + else + shared_flag='-qmkshrobj' + fi + fi + fi + + # Let the compiler handle the export list. + _LT_AC_TAGVAR(always_export_symbols, $1)=no + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi4*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=no + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + if test "$GXX" = yes ; then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup' + ;; + esac + fi + ;; + esac + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4.2uw2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs' + fi + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv5*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include <windows.h> +# #undef WIN32_LEAN_AND_MEAN +# #include <stdio.h> +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include <cygwin/cygwin_dll.h> +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && break + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_MSG_RESULT([$SED]) +]) diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..dd92cb3 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,863 @@ +# generated automatically by aclocal 1.9.6 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION so it can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], + [AM_AUTOMAKE_VERSION([1.9.6])]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 7 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH]) +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # So let's grep whole file. + if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.58])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +# test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && + test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"$am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. +# +# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories +# created by `make install' are always world readable, even if the +# installer happens to have an overly restrictive umask (e.g. 077). +# This was a mistake. There are at least two reasons why we must not +# use `-m 0755': +# - it causes special bits like SGID to be ignored, +# - it may be too restrictive (some setups expect 775 directories). +# +# Do not use -m 0755 and let people choose whatever they expect by +# setting umask. +# +# We cannot accept any implementation of `mkdir' that recognizes `-p'. +# Some implementations (such as Solaris 8's) are not thread-safe: if a +# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' +# concurrently, both version can detect that a/ is missing, but only +# one can create it and the other will error out. Consequently we +# restrict ourselves to GNU make (using the --version option ensures +# this.) +AC_DEFUN([AM_PROG_MKDIR_P], +[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then + # We used to keeping the `.' as first argument, in order to + # allow $(mkdir_p) to be used without argument. As in + # $(mkdir_p) $(somedir) + # where $(somedir) is conditionally defined. However this is wrong + # for two reasons: + # 1. if the package is installed by a user who cannot write `.' + # make install will fail, + # 2. the above comment should most certainly read + # $(mkdir_p) $(DESTDIR)$(somedir) + # so it does not work when $(somedir) is undefined and + # $(DESTDIR) is not. + # To support the latter case, we have to write + # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), + # so the `.' trick is pointless. + mkdir_p='mkdir -p --' +else + # On NextStep and OpenStep, the `mkdir' command does not + # recognize any option. It will interpret all options as + # directories to create, and then abort because `.' already + # exists. + for d in ./-p ./--version; + do + test -d $d && rmdir $d + done + # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. + if test -f "$ac_aux_dir/mkinstalldirs"; then + mkdir_p='$(mkinstalldirs)' + else + mkdir_p='$(install_sh) -d' + fi +fi +AC_SUBST([mkdir_p])]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([acinclude.m4]) diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..01ee35e --- /dev/null +++ b/config.h.in @@ -0,0 +1,237 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* Define to 1 if you have the <Carbon/Carbon.h> header file. */ +#undef HAVE_CARBON_CARBON_H + +/* Define if you have the CoreAudio API */ +#undef HAVE_COREAUDIO + +/* Define to 1 if you have the <crt_externs.h> header file. */ +#undef HAVE_CRT_EXTERNS_H + +/* Defines if your system has the crypt function */ +#undef HAVE_CRYPT + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define if you have libjpeg */ +#undef HAVE_LIBJPEG + +/* Define if you have libpng */ +#undef HAVE_LIBPNG + +/* Define if you have a working libpthread (will enable threaded code) */ +#undef HAVE_LIBPTHREAD + +/* Define if you have libz */ +#undef HAVE_LIBZ + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define if your system needs _NSGetEnviron to set up the environment */ +#undef HAVE_NSGETENVIRON + +/* Define if you have res_init */ +#undef HAVE_RES_INIT + +/* Define if you have the res_init prototype */ +#undef HAVE_RES_INIT_PROTO + +/* Define if you have a STL implementation by SGI */ +#undef HAVE_SGI_STL + +/* Define to 1 if you have the `snprintf' function. */ +#undef HAVE_SNPRINTF + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define if you have strlcat */ +#undef HAVE_STRLCAT + +/* Define if you have the strlcat prototype */ +#undef HAVE_STRLCAT_PROTO + +/* Define if you have strlcpy */ +#undef HAVE_STRLCPY + +/* Define if you have the strlcpy prototype */ +#undef HAVE_STRLCPY_PROTO + +/* Define to 1 if you have the <sys/bitypes.h> header file. */ +#undef HAVE_SYS_BITYPES_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + +/* Suffix for lib directories */ +#undef KDELIBSUFF + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* The size of `char *', as computed by sizeof. */ +#undef SIZEOF_CHAR_P + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* The size of `unsigned long', as computed by sizeof. */ +#undef SIZEOF_UNSIGNED_LONG + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Defined if compiling without arts */ +#undef WITHOUT_ARTS + +/* + * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system + * headers and I'm too lazy to write a configure test as long as only + * unixware is related + */ +#ifdef _UNIXWARE +#define HAVE_BOOLEAN +#endif + + + +/* + * AIX defines FD_SET in terms of bzero, but fails to include <strings.h> + * that defines bzero. + */ + +#if defined(_AIX) +#include <strings.h> +#endif + + + +#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H) +# include <sys/time.h> +# include <crt_externs.h> +# define environ (*_NSGetEnviron()) +#endif + + + +#if !defined(HAVE_RES_INIT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +int res_init(void); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCAT_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcat(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +#if !defined(HAVE_STRLCPY_PROTO) +#ifdef __cplusplus +extern "C" { +#endif +unsigned long strlcpy(char*, const char*, unsigned long); +#ifdef __cplusplus +} +#endif +#endif + + + +/* + * On HP-UX, the declaration of vsnprintf() is needed every time ! + */ + +#if !defined(HAVE_VSNPRINTF) || defined(hpux) +#if __STDC__ +#include <stdarg.h> +#include <stdlib.h> +#else +#include <varargs.h> +#endif +#ifdef __cplusplus +extern "C" +#endif +int vsnprintf(char *str, size_t n, char const *fmt, va_list ap); +#ifdef __cplusplus +extern "C" +#endif +int snprintf(char *str, size_t n, char const *fmt, ...); +#endif + + + +#if defined(__SVR4) && !defined(__svr4__) +#define __svr4__ 1 +#endif + + +/* type to use in place of socklen_t if not defined */ +#undef kde_socklen_t + +/* type to use in place of socklen_t if not defined (deprecated, use + kde_socklen_t) */ +#undef ksize_t diff --git a/configure.files b/configure.files new file mode 100644 index 0000000..030bce8 --- /dev/null +++ b/configure.files @@ -0,0 +1,2 @@ +./admin/configure.in.min +configure.in.in diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..cc63495 --- /dev/null +++ b/configure.in @@ -0,0 +1,136 @@ +dnl ======================================================= +dnl FILE: ./admin/configure.in.min +dnl ======================================================= + +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. + +# Original Author was Kalle@kde.org +# I lifted it in some mater. (Stephan Kulow) +# I used much code from Janos Farkas + +dnl Process this file with autoconf to produce a configure script. + +AC_INIT(acinclude.m4) dnl a source file from your sub dir + +dnl This is so we can use kde-common +AC_CONFIG_AUX_DIR(admin) + +dnl This ksh/zsh feature conflicts with `cd blah ; pwd` +unset CDPATH + +dnl Checking host/target/build systems, for make, install etc. +AC_CANONICAL_SYSTEM +dnl Perform program name transformation +AC_ARG_PROGRAM + +dnl Automake doc recommends to do this only here. (Janos) +AM_INIT_AUTOMAKE(kshutdown, 1.0.4) dnl searches for some needed programs + +KDE_SET_PREFIX + +dnl generate the config header +AM_CONFIG_HEADER(config.h) dnl at the distribution this done + +dnl Checks for programs. +AC_CHECK_COMPILERS +AC_ENABLE_SHARED(yes) +AC_ENABLE_STATIC(no) +KDE_PROG_LIBTOOL + +dnl for NLS support. Call them in this order! +dnl WITH_NLS is for the po files +AM_KDE_WITH_NLS + +KDE_USE_QT(3) +AC_PATH_KDE +dnl ======================================================= +dnl FILE: configure.in.in +dnl ======================================================= + +#MIN_CONFIG(3) + +dnl PACKAGE set before + +dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__ +dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__ +dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__ + +dnl KDE_NEED_FLEX dnl __kdevelop__ +dnl AC_PROG_YACC dnl __kdevelop__ +KDE_CREATE_SUBDIRSLIST +AC_CONFIG_FILES([ Makefile ]) +AC_CONFIG_FILES([ doc/Makefile ]) +AC_CONFIG_FILES([ doc/de/Makefile ]) +AC_CONFIG_FILES([ doc/kshutdown/Makefile ]) +AC_CONFIG_FILES([ extras/Makefile ]) +AC_CONFIG_FILES([ extras/multimedia/Makefile ]) +AC_CONFIG_FILES([ extras/shutdown/Makefile ]) +AC_CONFIG_FILES([ extras/system/Makefile ]) +AC_CONFIG_FILES([ karamba/Makefile ]) +AC_CONFIG_FILES([ kshutdown/Makefile ]) +AC_CONFIG_FILES([ kshutdownlockout/Makefile ]) +AC_CONFIG_FILES([ pics/Makefile ]) +AC_CONFIG_FILES([ po/Makefile ]) +AC_CONFIG_FILES([ sounds/Makefile ]) +AC_OUTPUT +# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure +if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then + # And if so, warn when they don't match + if test "$kde_libs_prefix" != "$given_prefix"; then + # And if kde doesn't know about the prefix yet + echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null + if test $? -ne 0; then + echo "" + echo "Warning: you chose to install this package in $given_prefix," + echo "but KDE was found in $kde_libs_prefix." + echo "For this to work, you will need to tell KDE about the new prefix, by ensuring" + echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix" + echo "Then restart KDE." + echo "" + fi + fi +fi + +if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then + echo "" + echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility" + echo "was not included. Therefore, GCC symbol visibility support remains disabled." + echo "" + echo "For better performance, consider including the Qt visibility supporting patch" + echo "located at:" + echo "" + echo "http://bugs.kde.org/show_bug.cgi?id=109386" + echo "" + echo "and recompile all of Qt and KDE. Note, this is entirely optional and" + echo "everything will continue to work just fine without it." + echo "" +fi + +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/configure.in.in b/configure.in.in new file mode 100644 index 0000000..197c972 --- /dev/null +++ b/configure.in.in @@ -0,0 +1,10 @@ +#MIN_CONFIG(3) + +AM_INIT_AUTOMAKE(kshutdown,1.0.4) + +dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__ +dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__ +dnl CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__ + +dnl KDE_NEED_FLEX dnl __kdevelop__ +dnl AC_PROG_YACC dnl __kdevelop__ diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..54cb7de --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = $(AUTODIRS) diff --git a/doc/de/Makefile.am b/doc/de/Makefile.am new file mode 100644 index 0000000..b2d29f6 --- /dev/null +++ b/doc/de/Makefile.am @@ -0,0 +1,2 @@ +KDE_DOCS = kshutdown +KDE_LANG = de diff --git a/doc/de/index.docbook b/doc/de/index.docbook new file mode 100644 index 0000000..3c71555 --- /dev/null +++ b/doc/de/index.docbook @@ -0,0 +1,269 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +<!ENTITY kmyapplication "<application>KShutDown</application>"> +<!ENTITY kappname "&kmyapplication;"> +<!ENTITY package "kde-module"> +<!ENTITY % addindex "IGNORE"> +<!ENTITY % German "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> + <title>Das &kmyapplication; Handbuch</title> + <authorgroup> + <author> + <personname> + <firstname>Konrad</firstname> + <surname>Twardowski</surname> + </personname> + <email>kdtonline@poczta.onet.pl</email> + </author> + </authorgroup> + <copyright> + <year>2005</year> + <holder>Konrad Twardowski</holder> + </copyright> + <legalnotice>&FDLNotice;</legalnotice> + <date>2005-11-24</date> + <releaseinfo>1.08.00</releaseinfo><!-- sync. with KShutDown version --> + <abstract> + <para>&kmyapplication; ist ein Programm zum erweiterten Herunterfahren in &kde;.</para> + </abstract> + <keywordset> + <keyword>KDE</keyword> + <keyword>kshutdown</keyword> + <keyword>shutdown</keyword> + <keyword>shut</keyword> + <keyword>down</keyword> + <keyword>poweroff</keyword> + <keyword>reboot</keyword> + <keyword>lock</keyword> + <keyword>halt</keyword> + <keyword>exit</keyword> + <keyword>logout</keyword> + </keywordset> +</bookinfo> + +<chapter id="introduction"> + <title>Einführung</title> + <para>&kmyapplication; ist ein Programm zum erweiterten Herunterfahren in &kde;.</para> + <para> + Fähigkeiten: + <itemizedlist> + <listitem><para>Computer abschalten (ausloggen und anhalten des Systems)</para></listitem> + <listitem><para>Computer Neustart (ausloggen und neu booten des Systems)</para></listitem> + <listitem><para>Sitzung sperren (sperrt den Bildschirm mit dem Bildschirmschoner)</para></listitem> + <listitem><para>Beendet aktive Sitzung (Beendet die aktive Sitzung in &kde; und loggt den Benutzer aus)</para></listitem> + <listitem><para>Extras (zusätzliche, Benutzereingaben)</para></listitem> + <listitem><para>Zeit und Verzögerungsoptionen</para></listitem> + <listitem><para><link linkend="command-line">Kommandozeilen-</link> und <link linkend="dcop">DCOP-</link> Unterstützung</para></listitem> + <listitem><para><link linkend="using-systray">System tray</link></para></listitem> + <listitem><para>Visuelle und Klangbenachrichtigungen</para></listitem> + <listitem><para><link linkend="kiosk">&kde; Kiosk Unterstützung</link></para></listitem> + </itemizedlist> + </para> +</chapter><!-- introduction --> + +<chapter id="using-kapp"> + <title>Benutzen von &kmyapplication;</title> + <sect1 id="using-mainwindow"> + <title>Hauptfenster</title> + <itemizedlist> + <listitem><para>Benutzen Sie das erste Aufklappmenü um eine Aktion auszuwählen (Computer ausschalten, Extras, usw).</para></listitem> + <listitem><para>Benutzen Sie das zweite Aufklappmenü um die Verzögerung einzustellen (Keine, Zeit ab jetzt, usw).</para></listitem> + <listitem><para>Klicken Sie den <guibutton>Start</guibutton> Knopf um eine ausgewählte Aktion zu aktivieren. Die Aktion wird zur angegebenen Zeit gestartet.</para></listitem> + <listitem><para>Klicken Sie den <guibutton>Stop</guibutton> Knopf oder die <keycap>Esc</keycap> Taste um die Aktion zu stoppen.</para></listitem> + </itemizedlist> + <screenshot> + <screeninfo>&kmyapplication; Hauptfenster</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="mainwindow.png" format="PNG"/> + </imageobject> + <textobject> + <phrase>Hauptfenster</phrase> + </textobject> + </mediaobject> + </screenshot> + </sect1> + <sect1 id="using-systray"> + <title>System Tray</title> + <itemizedlist> + <listitem><para>Linker Mausknopf - versteckt/zeigt Hauptfenster</para></listitem> + <listitem><para>Mittlerer Mausknopf - zeigt das Menü mit den Aktionen (Keine Verzögerung!)</para></listitem> + <listitem><para>Rechter Mausknopf - Zeigt das Kontextmenü</para></listitem> + </itemizedlist> + </sect1> +</chapter><!-- using-kapp --> + +<chapter id="command-line"> + <title>Kommandozeile</title> +<!-- copied from the kshutdown command line help --> +<programlisting> +Anmerkung: Die Optionen werden in Englisch angezeigt! +Auf der Kommandozeile kshutdown mit den gewünschten Optionen, ohne Klammern, angeben. + +Benutzung: kshutdown [Qt-options] [KDE-options] [options] [time] + +A Shut Down Utility for KDE + +Generic options: + --help Show help about options Hilfe Optionen + --help-qt Show Qt specific options QT-spezifische Optionen + --help-kde Show KDE specific options KDE-spezifische Optionen + --help-all Show all options Alle Optionen + --author Show author information Informationen über den Author + -v, --version Show version information Versionsinformationen + --license Show license information Lizenzinformationen + -- End of options Ende der Optionen + +Options: + -s, --shutdown Turn off computer Computer abschalten + -h, --halt Turn off computer " " + -r, --reboot Restart computer Computer neu starten + -k, --lock Lock session Sitzung sperren + -l, --logout End current session Sitzung beenden + --confirm Confirm command line action Bestätigung für Kommandozeilen Aktionen + --standard Show standard logout dialog Zeigt Standard Abmelden Dialog + -c, --cancel Cancel an active action Bricht eine aktive Aktion ab + --init Don't show window at startup Zeigt kein Fenster beim Start + --test Enable test mode Aktiviert Testmodus + --default Disable test mode Deaktiviert Testmodus + +Arguments: + time Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now +</programlisting> +</chapter><!-- command-line --> + +<chapter id="kiosk"> + <title>Kiosk</title> + <para> + &kde; Kiosk erlaubt Ihnen die Kontrolle über sämtliche kritische Funktionen, wie zum Beispiel <guibutton>Computer Ausschalten</guibutton> oder <guibutton>Computer neu starten</guibutton>. Wollen Sie diese Restriktionen einschalten, können Sie eine globale Konfigurationsdatei namens <filename>kshutdownrc</filename> im allgemeinen &kde; Verzeichnis anlegen. Dieses liegt in (<filename>[prefix]/share/config</filename>). + </para> + <note> + <para>In den meisten Fällen müssen Sie &kmyapplication; neu starten damit die neuen Einstellungen übernommen werden.</para> + </note> + <note> + <para>Seit Version 0.3.1 Beta ist allen Schlüsseln eine "kshutdown_" Zeichenkette vorangestellt.</para> + </note> +<example> +<title>Beispiel kshutdownrc Datei mit den Einschränkungen</title> +<programlisting> +[KDE Aktionseinschränkungen][$i] +# [$i] - Benutzer kann Gruppe nicht Überschreiben +# false - Feature deaktiviert +# true - Feature aktiviert +# Standard ist angeschaltet +Mit "false" verbieten, mit "true" erlauben. + +# Deaktiviert die Aktion "Computer ausschalten" +kshutdown_action_shutdown=false +# kshutdown_action_shutdown=true <- "true" aktiviert diese Aktion + +# Computer neu starten +kshutdown_action_reboot=true + +# Bilschirm sperren +kshutdown_action_lockscreen=true + +# Sitzung beenden +kshutdown_action_logout=true + +# "Extras" Aktionen +kshutdown_action_extras=true + +# Deaktiviert die Aktionen Seite in den Einstellungen +kshutdown_settings_actions=true + +# Deaktiviert "Zeit auswählen" Aufklappmenü und das Kommandozeilenargument dazu +# and the command line "time" argument +kshutdown_tab_time=true + +# Deaktiviert den Statistik Dialog +kshutdown_tab_stats=true +</programlisting> +</example> +</chapter><!-- kiosk --> + +<chapter id="dcop"> + <title>DCOP API (KShutdownIface)</title> + <sect1 id="dcop-intro"> + <title>Einführung</title> + <orderedlist> + <listitem><para>Achten Sie darauf das &kmyapplication; gestartet ist.</para></listitem> + <listitem><para>Tippen Sie <command>kshutdown --init</command> zum Starten von &kmyapplication; ohne Hauptfenster.</para></listitem> + <listitem><para>Zum Auflisten aller DCOP Functionen, tippen Sie <command>dcop kshutdown KShutdownIface</command>.</para></listitem> + <listitem><para>Mit <command>dcop kshutdown MMainWindow hide</command> verstecken Sie das Hauptfenster.</para></listitem> + <listitem><para>Mit <command>dcop kshutdown MMainWindow show</command> machen Sie das Hauptfenster wieder sichtbar.</para></listitem> + </orderedlist> + </sect1> + <sect1 id="dcop-func"> + <title>Funktionen</title> + <sect2 id="dcop-func-cancel"> + <title>ASYNC cancel()</title> + <para>Stoppt eine aktive Aktion.</para> + </sect2> + <sect2 id="dcop-func-shutdown"> + <title>bool shutDown(), bool shutdown()</title> + <para>Fährt das System herunter.</para> + </sect2> + <sect2 id="dcop-func-reboot"> + <title>bool reboot()</title> + <para>Startet den Rechner neu.</para> + </sect2> + <sect2 id="dcop-func-lock"> + <title>bool lockScreen()</title> + <para>Sperrt den Bildschirm.</para> + </sect2> + <sect2 id="dcop-func-logout"> + <title>bool logout()</title> + <para>Beendet die Sitzung und meldet den Benutzer ab.</para> + </sect2> + <sect2 id="dcop-func-config"> + <title>ASYNC configure()</title> + <para>[Seit 0.6] Zeigt den Einstellungen Dialog.</para> + </sect2> + <sect2 id="dcop-func-status"> + <title>QString getStatusInfo()</title> + <para>Zeigt &kmyapplication; Status Informationen.</para> + </sect2> + <sect2 id="dcop-func-makevisible"> + <title>ASYNC makeVisible()</title> + <para>[Since 0.6] Macht das Hauptfenster auf der aktuellen Arbeitsfläche sichtbar.</para> + </sect2> + <sect2 id="dcop-func-test"> + <title>ASYNC setTestMode(bool yes)</title> + <para>De-/aktiviert den Testmodus.</para> + <example> + <title>Aktiviert Testmodus</title> + <programlisting>dcop kshutdown KShutdownIface setTestMode true</programlisting> + </example> + <example> + <title>Deaktiviert Testmodus</title> + <programlisting>dcop kshutdown KShutdownIface setTestMode false</programlisting> + </example> + </sect2> + </sect1> +</chapter><!-- dcop --> + +<chapter id="credits"> + <title>Danksagung und Lizenz</title> + <para>&kmyapplication;</para> + <para> + Program Copyright 2005 Konrad Twardowski + <email>kdtonline@poczta.onet.pl</email> + </para> + <para> + Documentation Copyright © 2005 Konrad Twardowski + <email>kdtonline@poczta.onet.pl</email> + </para> + <para>Czech FAQ Copyright © Robert Kratky</para> + <para>Siehe <guimenuitem>Hilfe | Über &kmyapplication;</guimenuitem> für mehr Informationen.</para> + &underFDL;<!-- FDL: do not remove --> + &underGPL;<!-- GPL License --> +</chapter><!-- credits --> + +&documentation.index; + +</book> diff --git a/doc/de/mainwindow.png b/doc/de/mainwindow.png Binary files differnew file mode 100644 index 0000000..ee7a104 --- /dev/null +++ b/doc/de/mainwindow.png diff --git a/doc/kshutdown/Makefile.am b/doc/kshutdown/Makefile.am new file mode 100644 index 0000000..c937e9c --- /dev/null +++ b/doc/kshutdown/Makefile.am @@ -0,0 +1,2 @@ +KDE_DOCS = kshutdown +KDE_LANG = en diff --git a/doc/kshutdown/index.docbook b/doc/kshutdown/index.docbook new file mode 100644 index 0000000..b481c22 --- /dev/null +++ b/doc/kshutdown/index.docbook @@ -0,0 +1,270 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +<!ENTITY kmyapplication "<application>KShutDown</application>"> +<!ENTITY kappname "&kmyapplication;"> +<!ENTITY package "kde-module"> +<!ENTITY % addindex "IGNORE"> +<!ENTITY % English "INCLUDE"> +]> + +<book lang="&language;"> + +<bookinfo> + <title>The &kmyapplication; Handbook</title> + <authorgroup> + <author> + <personname> + <firstname>Konrad</firstname> + <surname>Twardowski</surname> + </personname> + <email>kdtonline@poczta.onet.pl</email> + </author> + </authorgroup> + <copyright> + <year>2005</year> + <holder>Konrad Twardowski</holder> + </copyright> + <legalnotice>&FDLNotice;</legalnotice> + <date>2006-04-22</date> + <releaseinfo>1.09.00</releaseinfo><!-- sync. with KShutDown version --> + <abstract> + <para>&kmyapplication; is an advanced shut down utility for &kde;.</para> + </abstract> + <keywordset> + <keyword>KDE</keyword> + <keyword>kshutdown</keyword> + <keyword>shutdown</keyword> + <keyword>shut</keyword> + <keyword>down</keyword> + <keyword>poweroff</keyword> + <keyword>reboot</keyword> + <keyword>lock</keyword> + <keyword>halt</keyword> + <keyword>exit</keyword> + <keyword>logout</keyword> + </keywordset> +</bookinfo> + +<chapter id="introduction"> + <title>Introduction</title> + <para>&kmyapplication; is an advanced shut down utility for &kde;.</para> + <para> + Features: + <itemizedlist> + <listitem><para>Turn Off Computer (logout and halt the system)</para></listitem> + <listitem><para>Restart Computer (logout and reboot the system)</para></listitem> + <listitem><para>Lock Session (lock the screen using a screen saver)</para></listitem> + <listitem><para>End Current Session (end the current &kde; session and logout the user)</para></listitem> + <listitem><para>Extras (additional, user commands)</para></listitem> + <listitem><para>Time and delay options</para></listitem> + <listitem><para><link linkend="command-line">Command line</link> and <link linkend="dcop">DCOP</link> support</para></listitem> + <listitem><para><link linkend="using-systray">System tray</link></para></listitem> + <listitem><para>Visual and sound notifications</para></listitem> + <listitem><para><link linkend="kiosk">&kde; Kiosk support</link></para></listitem> + </itemizedlist> + </para> +</chapter><!-- introduction --> + +<chapter id="using-kapp"> + <title>Using &kmyapplication;</title> + <sect1 id="using-mainwindow"> + <title>Main Window</title> + <itemizedlist> + <listitem><para>Use the first combo box to select an action (turn off computer, extras, etc).</para></listitem> + <listitem><para>Use the second combo box to select a delay type (no delay, time from now, etc).</para></listitem> + <listitem><para>Click the <guibutton>Start</guibutton> button to activate the selected action. The action will be executed at the selected time.</para></listitem> + <listitem><para>Click the <guibutton>Stop</guibutton> button or press <keycap>Esc</keycap> key to cancel an active action.</para></listitem> + </itemizedlist> + <screenshot> + <screeninfo>&kmyapplication; main window</screeninfo> + <mediaobject> + <imageobject> + <imagedata fileref="mainwindow.png" format="PNG"/> + </imageobject> + <textobject> + <phrase>Main window</phrase> + </textobject> + </mediaobject> + </screenshot> + </sect1> + <sect1 id="using-systray"> + <title>System Tray</title> + <itemizedlist> + <listitem><para>Left mouse button - hide/show main window</para></listitem> + <listitem><para>Middle mouse button - show menu with Actions (no delay!)</para></listitem> + <listitem><para>Right mouse button - show context menu</para></listitem> + </itemizedlist> + </sect1> +</chapter><!-- using-kapp --> + +<chapter id="command-line"> + <title>Command Line</title> +<!-- copied from the kshutdown command line help --> +<programlisting> +Usage: kshutdown [Qt-options] [KDE-options] [options] [time] + +A Shut Down Utility for KDE + +Generic options: + --help Show help about options + --help-qt Show Qt specific options + --help-kde Show KDE specific options + --help-all Show all options + --author Show author information + -v, --version Show version information + --license Show license information + -- End of options + +Options: + -s, --shutdown Turn off computer + -h, --halt Turn off computer + -r, --reboot Restart computer + -k, --lock Lock session + -l, --logout End current session + -e, --extra <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 +</programlisting> +</chapter><!-- command-line --> + +<chapter id="kiosk"> + <title>Kiosk</title> + <para> + &kde; Kiosk allows you to control some critical features, such as <guibutton>Turn Off Computer</guibutton> or <guibutton>Restart Computer</guibutton> commands. To enable restrictions, you need to create a global configuration file - <filename>kshutdownrc</filename> in your global &kde; directory (<filename>[prefix]/share/config</filename>). + </para> + <note> + <para>In some cases you need to restart &kmyapplication; to see effects.</para> + </note> + <note> + <para>Since version 0.3.1 Beta all Kiosk keys are prefixed with a "kshutdown_" string.</para> + </note> +<example> +<title>Example kshutdownrc file with restrictions</title> +<programlisting> +[KDE Action Restrictions][$i] +# [$i] - user cannot override this group +# false - feature is disabled +# true - feature is enabled +# by default all features are enabled + +# Disables the "Turn Off Computer" action +kshutdown_action_shutdown=true +# kshutdown_action_shutdown=false <- "false" will disable "Shut Down" action + +# Disables the "Restart Computer" action +kshutdown_action_reboot=true + +# Disables the "Lock Session" action +kshutdown_action_lockscreen=true + +# Disables the "End Current Session" action +kshutdown_action_logout=true + +# Disables the "Extras" action +kshutdown_action_extras=true + +# Disables the "Actions" page in the "Settings" dialog +kshutdown_settings_actions=true + +# Disables the "Select a time" combo box, +# and the command line "time" argument +kshutdown_tab_time=true + +# Disables the "Statistics" dialog +kshutdown_tab_stats=true +</programlisting> +</example> +</chapter><!-- kiosk --> + +<chapter id="dcop"> + <title>DCOP API (KShutdownIface)</title> + <sect1 id="dcop-intro"> + <title>Introduction</title> + <orderedlist> + <listitem><para>Make sure &kmyapplication; is running.</para></listitem> + <listitem><para>Type <command>kshutdown --init</command> to start &kmyapplication; without displaying its main window.</para></listitem> + <listitem><para>To display all DCOP functions, type <command>dcop kshutdown KShutdownIface</command>.</para></listitem> + <listitem><para>Run <command>dcop kshutdown MMainWindow hide</command> to hide the main window.</para></listitem> + <listitem><para>Run <command>dcop kshutdown MMainWindow show</command> to restore the main window.</para></listitem> + </orderedlist> + </sect1> + <sect1 id="dcop-func"> + <title>Functions</title> + <sect2 id="dcop-func-cancel"> + <title>ASYNC cancel()</title> + <para>Cancels the active action.</para> + </sect2> + <sect2 id="dcop-func-shutdown"> + <title>bool shutDown(), bool shutdown()</title> + <para>Shuts down the system.</para> + </sect2> + <sect2 id="dcop-func-reboot"> + <title>bool reboot()</title> + <para>Reboots the system.</para> + </sect2> + <sect2 id="dcop-func-lock"> + <title>bool lockScreen()</title> + <para>Locks the screen using a screen saver.</para> + </sect2> + <sect2 id="dcop-func-logout"> + <title>bool logout()</title> + <para>Logouts the current user and ends the session.</para> + </sect2> + <sect2 id="dcop-func-config"> + <title>ASYNC configure()</title> + <para>[Since 0.6] Shows the settings dialog.</para> + </sect2> + <sect2 id="dcop-func-status"> + <title>QString getStatusInfo()</title> + <para>Returns a &kmyapplication; status information.</para> + </sect2> + <sect2 id="dcop-func-makeinvisible"> + <title>ASYNC makeInvisible()</title> + <para>[Since 0.9 Beta] Hiddes the main window and its system tray icon.</para> + </sect2> + <sect2 id="dcop-func-makevisible"> + <title>ASYNC makeVisible()</title> + <para>[Since 0.6] Shows and raises the main window. The window will be visible on the current desktop.</para> + </sect2> + <sect2 id="dcop-func-test"> + <title>ASYNC setTestMode(bool yes)</title> + <para>Enables/disables the test mode.</para> + <example> + <title>Enable test mode</title> + <programlisting>dcop kshutdown KShutdownIface setTestMode true</programlisting> + </example> + <example> + <title>Disable test mode</title> + <programlisting>dcop kshutdown KShutdownIface setTestMode false</programlisting> + </example> + </sect2> + </sect1> +</chapter><!-- dcop --> + +<chapter id="credits"> + <title>Credits and License</title> + <para>&kmyapplication;</para> + <para> + Program Copyright 2005 Konrad Twardowski + <email>kdtonline@poczta.onet.pl</email> + </para> + <para> + Documentation Copyright © 2005 Konrad Twardowski + <email>kdtonline@poczta.onet.pl</email> + </para> + <para>Czech FAQ Copyright © Robert Kratky</para> + <para>See <guimenuitem>Help | About &kmyapplication;</guimenuitem> for more credits.</para> + &underFDL;<!-- FDL: do not remove --> + &underGPL;<!-- GPL License --> +</chapter><!-- credits --> + +&documentation.index; + +</book> diff --git a/doc/kshutdown/mainwindow.png b/doc/kshutdown/mainwindow.png Binary files differnew file mode 100644 index 0000000..e6ff3e8 --- /dev/null +++ b/doc/kshutdown/mainwindow.png diff --git a/extras/Makefile.am b/extras/Makefile.am new file mode 100644 index 0000000..ee24b22 --- /dev/null +++ b/extras/Makefile.am @@ -0,0 +1,11 @@ +extrasdir = $(kde_datadir)/kshutdown/extras + +extras_DATA = \ + hibernate.desktop + +EXTRA_DIST = $(extras_DATA) + +SUBDIRS = \ + multimedia \ + shutdown \ + system diff --git a/extras/hibernate.desktop b/extras/hibernate.desktop new file mode 100644 index 0000000..e83a52e --- /dev/null +++ b/extras/hibernate.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +Comment=Hibernate Computer +Comment[pl]=Hibernuj Komputer +# Encoding: UTF-8 +Exec=dcop kdesktop KScreensaverIface lock; dbus-send --system --dest="org.freedesktop.Hal" "/org/freedesktop/Hal/devices/computer" "org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate" +Icon=hibernate +MimeType= +Name=requires DBus/HAL +Name[pl]=wymaga DBus/HAL +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= +X-Ubuntu-Gettext-Domain=desktop_kdebase diff --git a/extras/multimedia/.directory b/extras/multimedia/.directory new file mode 100644 index 0000000..84e0c89 --- /dev/null +++ b/extras/multimedia/.directory @@ -0,0 +1,7 @@ +[Desktop Entry] +# Encoding: UTF-8 +Type=Directory +Icon=player_stop +Comment=Multimedia +Comment[pl]=Multimedia +Comment[el]=Πολυμέσα diff --git a/extras/multimedia/Makefile.am b/extras/multimedia/Makefile.am new file mode 100644 index 0000000..03bc88f --- /dev/null +++ b/extras/multimedia/Makefile.am @@ -0,0 +1,13 @@ +extrasdir = $(kde_datadir)/kshutdown/extras/multimedia + +extras_DATA = \ + .directory \ + amarok.desktop \ + juk.desktop \ + kaffeine.desktop \ + kdetv.desktop \ + kscd.desktop \ + noatun.desktop \ + xmms.desktop + +EXTRA_DIST = $(extras_DATA) diff --git a/extras/multimedia/amarok.desktop b/extras/multimedia/amarok.desktop new file mode 100644 index 0000000..9fd92d9 --- /dev/null +++ b/extras/multimedia/amarok.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Stop Playback +Comment[de]=Wiedergabe anhalten +Comment[it]=Interrompi riproduzione +Comment[pl]=Zatrzymaj odtwarzanie +Comment[el]=Σταμάτημα αναπαραγωγής +Exec=dcop amarok player stop +Icon=amarok +Name=Amarok +StartupNotify=true +Type=Application diff --git a/extras/multimedia/juk.desktop b/extras/multimedia/juk.desktop new file mode 100644 index 0000000..40d2ae9 --- /dev/null +++ b/extras/multimedia/juk.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Stop Playback +Comment[de]=Wiedergabe anhalten +Comment[it]=Interrompi riproduzione +Comment[pl]=Zatrzymaj odtwarzanie +Comment[el]=Σταμάτημα αναπαραγωγής +Exec=dcop juk Player stop +GenericName= +Icon=juk +MimeType= +Name=JuK +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/multimedia/kaffeine.desktop b/extras/multimedia/kaffeine.desktop new file mode 100644 index 0000000..fa2ec58 --- /dev/null +++ b/extras/multimedia/kaffeine.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Stop Playback +Comment[de]=Wiedergabe anhalten +Comment[it]=Interrompi riproduzione +Comment[pl]=Zatrzymaj odtwarzanie +Comment[el]=Σταμάτημα αναπαραγωγής +Exec=dcop kaffeine Kaffeine stop +GenericName= +GenericName[en_US]= +Icon=kaffeine +MimeType= +Name=Kaffeine +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/multimedia/kdetv.desktop b/extras/multimedia/kdetv.desktop new file mode 100644 index 0000000..7289364 --- /dev/null +++ b/extras/multimedia/kdetv.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Mute and quit +Comment[pl]=Wycisz i zakończ +Comment[el]=Κλείσιμο ήχου και τερματισμός +Exec=KDETV_PID=`pidof kdetv`; dcop "kdetv-$$KDETV_PID" KdetvIface toggleMute; dcop "kdetv-$$KDETV_PID" MainApplication-Interface quit +Icon=kdetv +MimeType= +Name=kdetv +Name[en_US]=kdetv +Name[el]=kdetv +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= +X-Ubuntu-Gettext-Domain=desktop_kdebase diff --git a/extras/multimedia/kscd.desktop b/extras/multimedia/kscd.desktop new file mode 100644 index 0000000..82c2feb --- /dev/null +++ b/extras/multimedia/kscd.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Stop Playback +Comment[de]=Wiedergabe anhalten +Comment[it]=Interrompi riproduzione +Comment[pl]=Zatrzymaj odtwarzanie +Comment[el]=Σταμάτημα αναπαραγωγής +Exec=dcop kscd CDPlayer stop +GenericName= +GenericName[pl]= +Icon=kscd +MimeType= +Name=KsCD +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/multimedia/noatun.desktop b/extras/multimedia/noatun.desktop new file mode 100644 index 0000000..de47d9c --- /dev/null +++ b/extras/multimedia/noatun.desktop @@ -0,0 +1,18 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Stop Playback +Comment[de]=Wiedergabe anhalten +Comment[it]=Interrompi riproduzione +Comment[pl]=Zatrzymaj odtwarzanie +Comment[el]=Σταμάτημα αναπαραγωγής +Exec=dcop noatun Noatun stop +Icon=noatun +MimeType= +Name=Noatun +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/multimedia/xmms.desktop b/extras/multimedia/xmms.desktop new file mode 100644 index 0000000..16e218c --- /dev/null +++ b/extras/multimedia/xmms.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Stop current song +Comment[de]=Bei aktuellem Lied stoppen +Comment[it]=Interrompi canzone corrente +Comment[pl]=Zatrzymaj bieżący utwór +Comment[el]=Σταμάτημα αναπαραγωγής του τρέχοντος τραγουδιού +Exec=xmms --stop +Icon=xmms +Name=XMMS +StartupNotify=true +Type=Application diff --git a/extras/shutdown/.directory b/extras/shutdown/.directory new file mode 100644 index 0000000..23f0e77 --- /dev/null +++ b/extras/shutdown/.directory @@ -0,0 +1,7 @@ +[Desktop Entry] +# Encoding: UTF-8 +Type=Directory +Icon=exit +Comment=Shut Down +Comment[pl]=Zamykanie Systemu +Comment[el]=Τερματισμός diff --git a/extras/shutdown/Makefile.am b/extras/shutdown/Makefile.am new file mode 100644 index 0000000..1ff8407 --- /dev/null +++ b/extras/shutdown/Makefile.am @@ -0,0 +1,8 @@ +extrasdir = $(kde_datadir)/kshutdown/extras/shutdown + +extras_DATA = \ + .directory \ + cancelshutdown.desktop \ + fsck.desktop + +EXTRA_DIST = $(extras_DATA) diff --git a/extras/shutdown/cancelshutdown.desktop b/extras/shutdown/cancelshutdown.desktop new file mode 100644 index 0000000..d631b40 --- /dev/null +++ b/extras/shutdown/cancelshutdown.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Cancel a running shutdown +Comment[de]=Herunterfahren aufhalten +Comment[it]=Annulla spegnimento programmato +Comment[pl]=Anuluj zamykanie systemu +Comment[el]=Ακύρωση τερματισμού +Exec=/sbin/shutdown -c +GenericName= +GenericName[pl]= +Icon=exit +MimeType= +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/shutdown/fsck.desktop b/extras/shutdown/fsck.desktop new file mode 100644 index 0000000..10e455b --- /dev/null +++ b/extras/shutdown/fsck.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Reboot and run `fsck' +Comment[it]=Riavvia ed esegui `fsck' +Comment[de]=Neustarten und `fsck` ausführen +Comment[pl]=Zrestartuj i uruchom `fsck' +Comment[el]=Επανεκκίνηση και εκτέλεση του `fsck' +Exec=/sbin/shutdown -r -F 1 +GenericName= +GenericName[pl]= +Icon=exit +MimeType= +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/system/.directory b/extras/system/.directory new file mode 100644 index 0000000..6ff76eb --- /dev/null +++ b/extras/system/.directory @@ -0,0 +1,6 @@ +[Desktop Entry] +# Encoding: UTF-8 +Type=Directory +Icon=about_kde +Comment=System +Comment[pl]=Systemowe diff --git a/extras/system/Makefile.am b/extras/system/Makefile.am new file mode 100644 index 0000000..a2e8571 --- /dev/null +++ b/extras/system/Makefile.am @@ -0,0 +1,9 @@ +extrasdir = $(kde_datadir)/kshutdown/extras/system + +extras_DATA = \ + .directory \ + adsl-stop.desktop \ + kdeeject.desktop \ + kppp.desktop + +EXTRA_DIST = $(extras_DATA) diff --git a/extras/system/adsl-stop.desktop b/extras/system/adsl-stop.desktop new file mode 100644 index 0000000..b1dd271 --- /dev/null +++ b/extras/system/adsl-stop.desktop @@ -0,0 +1,20 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Shut down a PPPoE link +Comment[de]=Eine PPPoE Verbindung trennen +Comment[it]=Disconnetti una connessione PPPoE +Comment[pl]=Zakończ połączenie PPPoE +Comment[el]=Τερματισμός μιας PPPoE σύνδεσης +Exec=/usr/sbin/adsl-stop +GenericName= +GenericName[pl]= +Icon=network_disconnected +MimeType= +Path= +StartupNotify=true +Terminal=true +TerminalOptions=\s--noclose +Type=Application +X-DCOP-ServiceType=none +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/system/kdeeject.desktop b/extras/system/kdeeject.desktop new file mode 100644 index 0000000..b20a72b --- /dev/null +++ b/extras/system/kdeeject.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Eject CD +Comment[de]=CD auswerfen +Comment[it]=Espelli CD +Comment[pl]=Wysuń CD +Comment[el]=Εξαγωγή CD +Exec=kdeeject /dev/cdrom +GenericName= +GenericName[en_US]= +Icon=cdrom_unmount +MimeType= +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/extras/system/kppp.desktop b/extras/system/kppp.desktop new file mode 100644 index 0000000..dd9cefe --- /dev/null +++ b/extras/system/kppp.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Comment=Terminate an existing PPP connection +Comment[it]=Termina una connessione PPP esistente +Comment[de]=Eine bestehende PPP Verbindung trennen +Comment[pl]=Przerwij trwające połączenie +Comment[el]=Τερματισμός μιας υπάρχουσας PPP σύνδεσης +Exec=kppp -k +GenericName= +GenericName[pl]= +Icon=kppp +MimeType= +Path= +StartupNotify=true +Terminal=false +Type=Application +X-DCOP-ServiceType= +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/karamba/Makefile.am b/karamba/Makefile.am new file mode 100644 index 0000000..2634f79 --- /dev/null +++ b/karamba/Makefile.am @@ -0,0 +1,8 @@ +karambadir = $(kde_datadir)/kshutdown/karamba + +karamba_DATA = \ + kshutdown-48x48.png \ + kshutdown-classic-notext.theme \ + kshutdown-classic-text.theme + +EXTRA_DIST = $(karamba_DATA) diff --git a/karamba/kshutdown-48x48.png b/karamba/kshutdown-48x48.png Binary files differnew file mode 100644 index 0000000..a71ed47 --- /dev/null +++ b/karamba/kshutdown-48x48.png diff --git a/karamba/kshutdown-classic-notext.theme b/karamba/kshutdown-classic-notext.theme new file mode 100644 index 0000000..10c5b92 --- /dev/null +++ b/karamba/kshutdown-classic-notext.theme @@ -0,0 +1,8 @@ +# KShutDown (no text) + +karamba x=300 y=100 w=48 h=48 interval=10000000 locked=true + +<group> x=0 y=0 +image x=0 y=0 path="kshutdown-48x48.png" +clickarea x=0 y=0 w=48 h=48 onclick="kshutdown" +</group> diff --git a/karamba/kshutdown-classic-text.theme b/karamba/kshutdown-classic-text.theme new file mode 100644 index 0000000..349e6d1 --- /dev/null +++ b/karamba/kshutdown-classic-text.theme @@ -0,0 +1,11 @@ +# KShutDown (text) + +karamba x=300 y=100 w=150 h=48 interval=10000000 locked=true + +defaultfont fontsize=16 bgcolor=88,88,88 color=255,255,255 shadow=2 + +<group> x=0 y=0 +image x=0 y=0 path="kshutdown-48x48.png" +text x=55 y=12 value="Turn Off..." +clickarea x=0 y=0 w=150 h=48 onclick="kshutdown" +</group> diff --git a/kshutdown-mdk.spec b/kshutdown-mdk.spec new file mode 100644 index 0000000..5d0c515 --- /dev/null +++ b/kshutdown-mdk.spec @@ -0,0 +1,86 @@ +Name: kshutdown +Summary: An advanced shut down utility for KDE +Version: 1.0.4 +Release: 1mdk +License: GPL +Group: Graphical desktop/KDE +Source: %{name}-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/build-root-%{name} +Packager: Zdenko Podobny +Distribution: mdk +Prefix: /usr +Url: http://kshutdown.sourceforge.net +Provides: kshutdown +Requires: kdelibs >= 3.3.0 + +%description +KShutDown is an advanced shut down utility for KDE. +Features: +- Turn Off Computer (logout and halt the system) +- Restart Computer (logout and reboot the system) +- Lock Session (lock the screen using a screen saver) +- End Current Session (end the current KDE session and logout the user) +- Extras (additional, user commands) +- Time and delay options +- Command line and DCOP support +- System tray and panel applet +- Visual and sound notifications +- KDE Kiosk support +- And more... + +%prep +rm -rf $RPM_BUILD_ROOT +mkdir $RPM_BUILD_ROOT + +%setup -q + +%build +CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \ +./configure --prefix=%{prefix} +make -j 2 + +%install +make DESTDIR=$RPM_BUILD_ROOT install-strip + +cd $RPM_BUILD_ROOT + +find . -type d -fprint $RPM_BUILD_DIR/file.list.%{name}.dirs +find . -type f -fprint $RPM_BUILD_DIR/file.list.%{name}.files.tmp +sed '/\/man\//s/$/.gz/g' $RPM_BUILD_DIR/file.list.%{name}.files.tmp > $RPM_BUILD_DIR/file.list.%{name}.files +find . -type l -fprint $RPM_BUILD_DIR/file.list.%{name}.libs +sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' $RPM_BUILD_DIR/file.list.%{name}.dirs > $RPM_BUILD_DIR/file.list.%{name} +sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.files >> $RPM_BUILD_DIR/file.list.%{name} +sed 's,^\.,\%attr(-\,root\,root) ,' $RPM_BUILD_DIR/file.list.%{name}.libs >> $RPM_BUILD_DIR/file.list.%{name} + +install -d -m 0755 %buildroot/%_menudir +cat > %buildroot/%_menudir/%{name} <<EOF +?package(kshutdown): needs=x11 section="System/Other" longtitle="KShutDown - advanced shut down utility" title="KShutDown" command="kshutdown" icon="kshutdown.png" +EOF + +%post +%update_menus + +%postun +%clean_menus + +%clean +rm -rf $RPM_BUILD_ROOT +rm -rf $RPM_BUILD_DIR/file.list.%{name} +rm -rf $RPM_BUILD_DIR/file.list.%{name}.libs +rm -rf $RPM_BUILD_DIR/file.list.%{name}.files +rm -rf $RPM_BUILD_DIR/file.list.%{name}.files.tmp +rm -rf $RPM_BUILD_DIR/file.list.%{name}.dirs + +%files -f ../file.list.%{name} +%_menudir/* +%defattr(-,root,root,0755) + +%changelog +* Sat Nov 26 2005 Konrad Twardowski +- updated description + +* Mon Aug 1 2005 Konrad Twardowski +- removed "kdebase" from "Requires" + +* Sat Jun 19 2004 Zdenko Podobný <zdpo@mailbox.sk> 0.1.8-1mdk +- initial version diff --git a/kshutdown-suse.spec b/kshutdown-suse.spec new file mode 100644 index 0000000..e5439f5 --- /dev/null +++ b/kshutdown-suse.spec @@ -0,0 +1,94 @@ +# norootforbuild + +Name: kshutdown +Summary: An advanced shut down utility for KDE +Version: 1.0.2 +Release: 3.pm.1 +License: GPL +Group: System/Management +URL: http://kshutdown.sf.net/ +Source0: http://mesh.dl.sourceforge.net/sourceforge/kshutdown/kshutdown-%{version}.tar.bz2 +BuildRoot: %{_tmppath}/kshutdown-%{version}-%{release}-root +Requires: kdelibs3 >= 3.3.0 +BuildRequires: kdelibs3-devel kdebase3-devel +BuildRequires: gcc-c++ libstdc++ libstdc++-devel +BuildRequires: autoconf automake libtool + + +%description +KShutDown is an advanced shut down utility for KDE. +Features: +- Turn Off Computer (logout and halt the system) +- Restart Computer (logout and reboot the system) +- Lock Session (lock the screen using a screen saver) +- End Current Session (end the current KDE session and logout the user) +- Extras (additional, user commands) +- Time and delay options +- Command line and DCOP support +- System tray and panel applet +- Visual and sound notifications +- KDE Kiosk support +- And more... + +%prep +%setup -q +%configure --enable-final + +%build +make + +%install +rm -fr %buildroot +make install DESTDIR=%buildroot +cd %buildroot +find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.kshutdown +find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown +find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown + +%clean +rm -fr %buildroot +rm -fr $RPM_BUILD_DIR/kshutdown +rm -fr ../file.list.kshutdown + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%files -f ../file.list.kshutdown + +%changelog +* Wed Dec 05 2007 Andrea Florio <andrea@links2linux.de> +- update to version 1.0.2 +- patch remove, no more required + Fixing and new on new version +- NEW: Added "extra" command line option. Run "kshutdown --help" for more info. +- NEW: Remember recent "Extras" command +- Now the sound is disabled by default. You can re-enable sound notifications via menu -> Settings -> Configure Notifications... +- Updated Italian translation +- Updated Turkish translation +- Updated Polish translation + + + +* Sat Nov 24 2007 Andrea Florio <andrea@links2linux.de> +- italian translation patch applied + +* Sat Nov 24 2007 Andrea Florio <andrea@links2linux.de> +- Packman porting + +* Wed Apr 18 2007 Pascal Bleser <guru@unixtech.be> 1.0-1 +- new upstream version + +* Sun Feb 18 2007 Pascal Bleser <guru@unixtech.be> 0.8.2-1 +- new package + +* Sat Nov 26 2005 Konrad Twardowski +- updated description + +* Mon Aug 1 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> +- removed "kdebase" from "Requires" + +* Mon Apr 4 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> +- Test RPM diff --git a/kshutdown.kdevelop b/kshutdown.kdevelop new file mode 100644 index 0000000..f5888db --- /dev/null +++ b/kshutdown.kdevelop @@ -0,0 +1,321 @@ +<!DOCTYPE kdevelop> +<kdevelop> + <general> + <author>Konrad Twardowski</author> + <email>kdtonline@poczta.onet.pl</email> + <projectmanagement>KDevKDEAutoProject</projectmanagement> + <primarylanguage>C++</primarylanguage> + <keywords> + <keyword>KDE</keyword> + <keyword>Qt</keyword> + </keywords> + <projectdirectory>.</projectdirectory> + <absoluteprojectpath>false</absoluteprojectpath> + <version>1.0.4</version> + <description>An advanced shut down utility for KDE.</description> + <ignoreparts> + <part>kdevabbrev</part> + <part>kdevkonsoleview</part> + <part>kdevfilelist</part> + <part>kdevfileview</part> + <part>kdevdistpart</part> + <part>kdevopenwith</part> + <part>kdevpartexplorer</part> + <part>kdevregexptest</part> + <part>kdevreplace</part> + <part>kdevscripting</part> + <part>kdevfilter</part> + <part>kdevastyle</part> + <part>kdevtexttools</part> + <part>kdevtools</part> + </ignoreparts> + <secondaryLanguages/> + <versioncontrol>kdevsubversion</versioncontrol> + <projectname>kshutdown</projectname> + <defaultencoding></defaultencoding> + </general> + <kdevautoproject> + <general> + <mainprogram>kshutdown</mainprogram> + <useconfiguration>default</useconfiguration> + </general> + <configure> + <configargs/> + </configure> + <make> + <abortonerror>true</abortonerror> + <numberofjobs>1</numberofjobs> + <dontact>false</dontact> + <makebin></makebin> + <envvars> + <envvar value="1" name="WANT_AUTOCONF_2_5" /> + <envvar value="1" name="WANT_AUTOMAKE_1_6" /> + </envvars> + <prio>0</prio> + <runmultiplejobs>false</runmultiplejobs> + </make> + <compiler> + <cflags/> + <cxxflags>\s-O0 -g3 -Wall</cxxflags> + </compiler> + <run> + <directoryradio>executable</directoryradio> + <customdirectory>/</customdirectory> + <mainprogram>/home/kdt/Documents/src/kshutdown/trunk/kshutdown/kshutdown/kshutdown</mainprogram> + <programargs>--nofork --test</programargs> + <terminal>false</terminal> + <autocompile>true</autocompile> + <envvars/> + <globaldebugarguments></globaldebugarguments> + <globalcwd>/home/kdt/Documents/src/kshutdown/trunk/kshutdown</globalcwd> + <useglobalprogram>true</useglobalprogram> + <autoinstall>false</autoinstall> + <autokdesu>true</autokdesu> + </run> + <configurations> + <default> + <configargs>--prefix=`kde-config --prefix` --enable-debug=full</configargs> + <builddir/> + <topsourcedir/> + <cppflags/> + <ldflags/> + <ccompiler>kdevgccoptions</ccompiler> + <cxxcompiler>kdevgppoptions</cxxcompiler> + <f77compiler>kdevpgf77options</f77compiler> + <ccompilerbinary/> + <cxxcompilerbinary/> + <f77compilerbinary/> + <cflags>-O0</cflags> + <cxxflags>-O0</cxxflags> + <f77flags/> + <envvars/> + </default> + </configurations> + </kdevautoproject> + <kdevfileview> + <groups> + <group pattern="*.h" name="Headers" /> + <group pattern="*.cpp;*.c" name="Sources" /> + <group pattern="*.po" name="Translations" /> + <group pattern="AUTHORS;COPYING;ChangeLog;INSTALL;README;TODO;NEWS;VERSION" name="GNU" /> + <group pattern="*" name="Others" /> + <hidenonprojectfiles>false</hidenonprojectfiles> + <hidenonlocation>false</hidenonlocation> + </groups> + <tree> + <hidepatterns>*</hidepatterns> + <showvcsfields>true</showvcsfields> + <hidenonprojectfiles>true</hidenonprojectfiles> + </tree> + </kdevfileview> + <kdevdoctreeview> + <ignoretocs> + <toc>gtk</toc> + <toc>gnustep</toc> + <toc>python</toc> + <toc>php</toc> + <toc>perl</toc> + <toc>ada</toc> + <toc>w3c-dom-level2-html</toc> + <toc>gnome1</toc> + <toc>haskell</toc> + <toc>kde2book</toc> + <toc>kdev3api</toc> + <toc>opengl</toc> + <toc>ruby</toc> + <toc>w3c-svg</toc> + <toc>sdl</toc> + <toc>stl</toc> + <toc>sw</toc> + <toc>w3c-uaag10</toc> + <toc>clanlib</toc> + <toc>ada_bugs_gcc</toc> + <toc>bash_bugs</toc> + <toc>c++_bugs_gcc</toc> + <toc>fortran_bugs_gcc</toc> + <toc>gtk_bugs</toc> + <toc>haskell_bugs_ghc</toc> + <toc>java_bugs_gcc</toc> + <toc>pascal_bugs_fp</toc> + <toc>perl_bugs</toc> + <toc>php_bugs</toc> + <toc>python_bugs</toc> + <toc>ruby_bugs</toc> + <toc>wxwindows_bugs</toc> + <toc>java_bugs_sun</toc> + <toc>wxwidgets_bugs</toc> + </ignoretocs> + <projectdoc> + <userdocDir>html/</userdocDir> + <apidocDir>html/</apidocDir> + </projectdoc> + <ignoreqt_xml> + <toc>Guide to the Qt Translation Tools</toc> + <toc>qmake User Guide</toc> + <toc>Qt Assistant Manual</toc> + <toc>Qt Designer Manual</toc> + </ignoreqt_xml> + <ignoredoxygen/> + <ignorekdocs/> + <ignoredevhelp> + <toc>gdk-pixbuf</toc> + <toc>pango</toc> + <toc>libbonoboui</toc> + <toc>libbonobo</toc> + <toc>gtk</toc> + <toc>gobject</toc> + <toc>gnome-vfs</toc> + <toc>glib</toc> + <toc>gdk</toc> + <toc>bonobo-activation</toc> + </ignoredevhelp> + </kdevdoctreeview> + <kdevdebugger> + <general> + <dbgshell>libtool</dbgshell> + <programargs/> + <gdbpath></gdbpath> + <configGdbScript></configGdbScript> + <runShellScript></runShellScript> + <runGdbScript></runGdbScript> + <breakonloadinglibs>true</breakonloadinglibs> + <separatetty>false</separatetty> + <floatingtoolbar>false</floatingtoolbar> + </general> + <display> + <staticmembers>false</staticmembers> + <demanglenames>true</demanglenames> + <outputradix>10</outputradix> + </display> + </kdevdebugger> + <kdevfilecreate> + <filetypes/> + <useglobaltypes> + <type ext="cpp" /> + <type ext="c" /> + <type ext="h" /> + </useglobaltypes> + </kdevfilecreate> + <cppsupportpart> + <filetemplates> + <interfacesuffix>.h</interfacesuffix> + <implementationsuffix>.cpp</implementationsuffix> + </filetemplates> + </cppsupportpart> + <kdevcppsupport> + <codecompletion> + <includeGlobalFunctions>true</includeGlobalFunctions> + <includeTypes>true</includeTypes> + <includeEnums>true</includeEnums> + <includeTypedefs>true</includeTypedefs> + <automaticCodeCompletion>true</automaticCodeCompletion> + <automaticArgumentsHint>true</automaticArgumentsHint> + <automaticHeaderCompletion>true</automaticHeaderCompletion> + <codeCompletionDelay>250</codeCompletionDelay> + <argumentsHintDelay>400</argumentsHintDelay> + <headerCompletionDelay>250</headerCompletionDelay> + <showOnlyAccessibleItems>false</showOnlyAccessibleItems> + <completionBoxItemOrder>0</completionBoxItemOrder> + <howEvaluationContextMenu>true</howEvaluationContextMenu> + <showCommentWithArgumentHint>true</showCommentWithArgumentHint> + <statusBarTypeEvaluation>false</statusBarTypeEvaluation> + <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases> + <processPrimaryTypes>true</processPrimaryTypes> + <processFunctionArguments>false</processFunctionArguments> + <preProcessAllHeaders>false</preProcessAllHeaders> + <parseMissingHeaders>false</parseMissingHeaders> + <resolveIncludePaths>true</resolveIncludePaths> + <alwaysParseInBackground>true</alwaysParseInBackground> + <usePermanentCaching>true</usePermanentCaching> + <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces> + <includePaths>.;</includePaths> + </codecompletion> + <references/> + <creategettersetter> + <prefixGet></prefixGet> + <prefixSet>set</prefixSet> + <prefixVariable>m_,_</prefixVariable> + <parameterName>theValue</parameterName> + <inlineGet>true</inlineGet> + <inlineSet>true</inlineSet> + </creategettersetter> + <qt> + <used>false</used> + <version>3</version> + <root>/usr/share/qt3</root> + <includestyle>3</includestyle> + <designerintegration>EmbeddedKDevDesigner</designerintegration> + <qmake>/usr/bin/qmake-qt3</qmake> + <designer></designer> + <designerpluginpaths/> + </qt> + <splitheadersource> + <enabled>false</enabled> + <synchronize>true</synchronize> + <orientation>Vertical</orientation> + </splitheadersource> + </kdevcppsupport> + <kdevcvs> + <cvsoptions>-f</cvsoptions> + <commitoptions/> + <addoptions/> + <logoptions/> + <updateoptions>-dP</updateoptions> + <removeoptions>-f</removeoptions> + <revertoptions>-C -d -P</revertoptions> + <diffoptions>-u3 -p</diffoptions> + <rshoptions/> + </kdevcvs> + <kdevcvsservice> + <recursivewhenupdate>true</recursivewhenupdate> + <prunedirswhenupdate>true</prunedirswhenupdate> + <createdirswhenupdate>true</createdirswhenupdate> + <recursivewhencommitremove>true</recursivewhencommitremove> + <revertoptions>-C</revertoptions> + </kdevcvsservice> + <dist> + <custom>false</custom> + <bzip>false</bzip> + <archname/> + <appname/> + <version/> + <release/> + <vendor/> + <licence/> + <summary/> + <group/> + <packager/> + <description/> + <changelog/> + <devpackage>false</devpackage> + <docspackage>false</docspackage> + <appicon>false</appicon> + <arch>0</arch> + <genHTML>false</genHTML> + <useRPM>false</useRPM> + <ftpkde>false</ftpkde> + <appskde>false</appskde> + <url/> + </dist> + <kdevdocumentation> + <projectdoc> + <docsystem></docsystem> + <docurl></docurl> + <usermanualurl></usermanualurl> + </projectdoc> + </kdevdocumentation> + <ctagspart> + <customArguments></customArguments> + <customTagfilePath>/home/kdt/Documents/src/kshutdown/trunk/kshutdown/tags</customTagfilePath> + <activeTagsFiles/> + </ctagspart> + <kdevvisualadvance> + <emulator>VisualBoyAdvance</emulator> + <binary/> + <addOptions/> + <terminal>false</terminal> + <fullscreen>false</fullscreen> + <graphicFilter>-f0</graphicFilter> + <scaling>-1</scaling> + </kdevvisualadvance> +</kdevelop> diff --git a/kshutdown.lsm b/kshutdown.lsm new file mode 100644 index 0000000..48dd525 --- /dev/null +++ b/kshutdown.lsm @@ -0,0 +1,12 @@ +Begin3 +Title: KShutDown +Version: 1.0.4 +Entered-date: 2009/01/15 +Description: An Advanced Shut Down Utility for KDE +Keywords: shut down shutdown halt reboot restart lock screen logout kde +Author: kdtonline@poczta.onet.pl (Konrad Twardowski) +Maintained-by: kdtonline@poczta.onet.pl (Konrad Twardowski) +Home-page: http://kshutdown.sourceforge.net/ +Platforms: Linux/KDE 3.3 +Copying-policy: GNU Public License +End diff --git a/kshutdown.spec b/kshutdown.spec new file mode 100644 index 0000000..51d47b8 --- /dev/null +++ b/kshutdown.spec @@ -0,0 +1,65 @@ +Name: kshutdown +Summary: An advanced shut down utility for KDE +Version: 1.0.4 +Release: 1.fc4 +License: GPL +Group: Applications/System +URL: http://kshutdown.sf.net/ +Packager: Konrad Twardowski <kdtonline@poczta.onet.pl> +Source0: kshutdown-%version.tar.bz2 +Buildroot: %_tmppath/kshutdown-%version-%release-root +Requires: kdelibs >= 3.3.0 +BuildRequires: kdelibs-devel + +%description +KShutDown is an advanced shut down utility for KDE. +Features: +- Turn Off Computer (logout and halt the system) +- Restart Computer (logout and reboot the system) +- Lock Session (lock the screen using a screen saver) +- End Current Session (end the current KDE session and logout the user) +- Extras (additional, user commands) +- Time and delay options +- Command line and DCOP support +- System tray and panel applet +- Visual and sound notifications +- KDE Kiosk support +- And more... + +%prep +%setup -q +%configure --enable-final + +%build +make + +%install +rm -fr %buildroot +make install DESTDIR=%buildroot +cd %buildroot +find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.kshutdown +find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown +find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kshutdown + +%clean +rm -fr %buildroot +rm -fr $RPM_BUILD_DIR/kshutdown +rm -fr ../file.list.kshutdown + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%files -f ../file.list.kshutdown + +%changelog +* Sat Nov 26 2005 Konrad Twardowski +- updated description + +* Mon Aug 1 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> +- removed "kdebase" from "Requires" + +* Mon Apr 4 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> +- Test RPM diff --git a/kshutdown/Makefile.am b/kshutdown/Makefile.am new file mode 100644 index 0000000..f06ffd1 --- /dev/null +++ b/kshutdown/Makefile.am @@ -0,0 +1,44 @@ +bin_PROGRAMS = kshutdown + +kshutdown_SOURCES = \ + actions.cpp \ + appobserver.cpp \ + configuration.cpp \ + confirmation.cpp \ + extras.cpp \ + kshutdowniface_skel.cpp \ + links.cpp \ + mactioneditdialog.cpp \ + main.cpp \ + miscutils.cpp \ + mmainwindow.cpp \ + mmessagedialog.cpp \ + msettingsdialog.cpp \ + mstatstab.cpp \ + msystemtray.cpp \ + mtip.cpp \ + progressbar.cpp \ + systemconfig.cpp + +kshutdown_LDADD = $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_KFILE) $(LIB_QT) +kshutdown_LDFLAGS = $(all_libraries) $(KDE_RPATH) + +EXTRA_DIST = \ + kshutdown.desktop \ + kshutdowniface.kidl \ + kshutdown.upd + +appdir = $(prefix)/share/applications +app_DATA = kshutdown.desktop + +kconfdir = $(kde_datadir)/kconf_update +kconf_DATA = kshutdown.upd + +INCLUDES = $(all_includes) +METASOURCES = AUTO + +messages: + LIST=`find ../kshutdown ../kshutdownlockout -name \*.h -o -name \*.cpp`; \ + if test -n "$$LIST"; then \ + $(XGETTEXT) $$LIST -o $(podir)/kshutdown.pot; \ + fi diff --git a/kshutdown/actions.cpp b/kshutdown/actions.cpp new file mode 100644 index 0000000..926a46b --- /dev/null +++ b/kshutdown/actions.cpp @@ -0,0 +1,455 @@ +/* + actions.cpp - Actions + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "actions.h" +#include "configuration.h" +#include "confirmation.h" +#include "extras.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "msystemtray.h" +#include "systemconfig.h" + +#include <qimage.h> +#include <qtimer.h> + +#include <dcopclient.h> +#include <kdebug.h> +#include <kiconloader.h> +#include <kimageeffect.h> +#include <klocale.h> +#include <kmessagebox.h> + +Action *Action::_instance = 0; + +Action::~Action() +{ +} + +QString Action::actionToConfigGroup(const Type action) const +{ + switch (action) + { + case ShutDown: return "Shut Down"; + case Reboot: return "Reboot"; + case LockScreen: return "Lock Screen"; + case Logout: return "Logout"; + default: return QString::null; + } +} + +// TODO: 2.0: GDM support +// TODO: 2.0: force application exit (without asking for data save) +bool Action::endSession(const KApplication::ShutdownType type, const Type action) +{ + _totalExit = false; + + MiscUtils::passiveMessage(i18n("Please wait...")); + + // test mode + if (_testMode) + { + MiscUtils::showTestMessage(getName(action)); + + return true; + } + + _totalExit = true; + if ( + !kapp->requestShutDown( + KApplication::ShutdownConfirmNo, + type, + KApplication::ShutdownModeForceNow + ) + ) + { + KMessageBox::error( + 0, + i18n( + "Could not logout properly.\n" \ + "The session manager cannot be contacted." + ) + ); + _totalExit = false; + + return false; // error + } + + return true; // ok +} + +bool Action::exec(const Type action, const bool stopTimer) +{ + if (stopTimer) + ks_main->cancel(); + + _totalExit = false; + + Method method = Method_KDE; + QString command; + + if (!isEnabled(action)) + return false; // error + + // kdDebug() << "Action::exec: " << action << endl; + + switch (action) + { + // nothing + case Nothing: + return false; // error + + // shut down + case ShutDown: + _totalExit = true; + MiscUtils::closeCDTray(); + getMethod(action, method, command); + MiscUtils::runCommandBeforeAction("Shut Down"); + + if (method == Method_KDE) + return endSession(KApplication::ShutdownTypeHalt, action); + + break; + + // reboot + case Reboot: + _totalExit = true; + MiscUtils::closeCDTray(); + getMethod(action, method, command); + MiscUtils::runCommandBeforeAction("Reboot"); + + if (method == Method_KDE) + return endSession(KApplication::ShutdownTypeReboot, action); + + break; + + case LockScreen: + return lockScreen(); + + // logout + case Logout: + _totalExit = true; + MiscUtils::closeCDTray(); + getMethod(action, method, command); + MiscUtils::runCommandBeforeAction("Logout"); + + if (method == Method_KDE) + return endSession(KApplication::ShutdownTypeNone, action); + + break; + + // "extras" action + case Extras: + // test mode + if (_testMode) + { + MiscUtils::showTestMessage( + ks_extras->getActionDescription() + "\n" + + ks_extras->fileToExecute() + ); + + return true; // ok + } + + return ks_extras->execAction(); + } + + // test mode + if (_testMode) + { + MiscUtils::showTestMessage(i18n("Command: %1").arg(command)); + + return true; // ok + } + + // run default or user command +// TODO: 2.0: add function to change /sbin/* permissions (e.g. /sbin/poweroff) +// TODO: 2.0: save session before /sbin/* execution + if (MiscUtils::runCommand(command)) + { + // hide window + if ((action == LockScreen) && (MSystemTray::mode() == MSystemTray::Always)) + ks_main->hide(); + + return true; // ok + } + + _totalExit = false; + + return false; // error +} + +bool Action::execConfirm(const Type action, const QString &delay) +{ + if ( + (action != LockScreen) && // no confirmation for "Lock Session" + !Confirmation::confirm(action, delay.isNull() ? i18n("No Delay") : delay) + ) + return false; + + return exec(action, action != LockScreen); +} + +bool Action::execCurrent() +{ + return exec(_current); +} + +QString Action::getCurrentName() const +{ + return getName(_current); +} + +QPixmap Action::getIcon(const Type action) const +{ + QMapIterator<Type, QPixmap> i = iconCache->find(action); + + return (i == iconCache->end()) ? SmallIcon("misc") : i.data(); +} + +QString Action::getIconName(const Type action) const +{ + switch (action) + { + case ShutDown: return "exit"; + case Reboot: return "reload"; + case LockScreen: return "lock"; + case Logout: return "undo"; + case Extras: return "bookmark"; + case Nothing: + default: + return "misc"; + } +} + +QString Action::getMethod(const Action::Type action, Method &method, QString &command) +{ + QString group = actionToConfigGroup(action); + + if (group.isNull()) + { + // kdDebug() << "Action::getMethod: No group in config for action " << action << endl; + + return QString::null; + } + + QString defaultCommand; + switch (action) + { + case ShutDown: + defaultCommand = DEFAULT_SHUT_DOWN_COMMAND; + break; + case Reboot: + defaultCommand = DEFAULT_REBOOT_COMMAND; + break; + case LockScreen: + defaultCommand = DEFAULT_LOCK_SCREEN_COMMAND; + break; + case Logout: + defaultCommand = DEFAULT_LOGOUT_COMMAND; + break; + default: + defaultCommand = QString::null; + } + + KConfig *conf = kshutdownrc->config(); + if (!conf->hasGroup(group)) + { + method = Method_KDE; + command = defaultCommand; + // kdDebug() << "Action::getMethod: No group in config for action " << action << endl; + + return defaultCommand; + } + + conf->setGroup(group); + + // read method + method = (Method)conf->readNumEntry("Method", Method_KDE); + if ((method < Method_KDE) || (method > Method_UserCommand)) + method = Method_KDE; + + switch (method) + { + case Method_KDE: + command = conf->readEntry("Command", defaultCommand); + break; + case Method_DefaultCommand: + command = defaultCommand; + break; + case Method_UserCommand: + command = conf->readEntry("Command", defaultCommand); + if (command.isEmpty()) + method = Method_KDE; + break; + } + + return defaultCommand; +} + +void Action::setMethod(const QString &group, const Method method, const QString &command) const +{ + KConfig *conf = kshutdownrc->config(); + conf->setGroup(group); + if (method == Method_UserCommand) + conf->writeEntry("Command", command); + conf->writeEntry("Method", method); +} + +QString Action::getName(const Type action) const +{ + switch (action) + { + case Nothing: return i18n("Nothing"); + case ShutDown: return i18n("Turn Off Computer"); + case Reboot: return i18n("Restart Computer"); + case LockScreen: return i18n("Lock Session"); + case Logout: return i18n("End Current Session"); + case Extras: return ks_extras->getActionDescription(); + } + + return i18n("Unknown"); +} + +bool Action::isEnabled(const Type action) +{ + Method m = Method_KDE; + QString c = QString::null; + switch (action) + { + case Nothing: + return false; + case ShutDown: + getMethod(action, m, c); + return + !MiscUtils::isRestricted("action_shutdown") && + !((m == Method_KDE) && !SystemConfig::canShutDown()); + case Reboot: + getMethod(action, m, c); + return + !MiscUtils::isRestricted("action_reboot") && + !((m == Method_KDE) && !SystemConfig::canShutDown()); + case LockScreen: + return !MiscUtils::isRestricted("action_lockscreen"); + case Logout: + return !MiscUtils::isRestricted("action_logout"); + case Extras: + return !MiscUtils::isRestricted("action_extras"); + } + + return false; +} + +void Action::totalExec() +{ + if (!execCurrent()) + KMessageBox::sorry(0, i18n("Action failed! (%1)").arg(_current)); +} + +Action::Action() + : QObject(ks_main), + _active(false), + _testMode(false), + _totalExit(false), + _current(Nothing) +{ + // NOTE: compatible with the standard KDE logout dialog + // NOTE: sync. with panel applet + iconCache = new QMap<Type, QPixmap>(); + #define KS_ADD_ICON(action) \ + iconCache->insert(action, SmallIcon(getIconName(action))); + KS_ADD_ICON(Nothing); + KS_ADD_ICON(ShutDown); + KS_ADD_ICON(Reboot); + KS_ADD_ICON(LockScreen); + KS_ADD_ICON(Logout); + KS_ADD_ICON(Extras); +} + +bool Action::lockScreen() { + Method method; + QString command; + getMethod(LockScreen, method, command); + MiscUtils::runCommandBeforeAction("Lock Screen"); + if (method == Method_KDE) { + // test mode + if (_testMode) { + MiscUtils::showTestMessage(getName(LockScreen)); + + return true; // ok + } + + // this is a modified "void Lockout::lock()" + // from the "Lock/Logout Applet" (lockout.cpp [3.1.4]) + QCString kdesktop("kdesktop"); + int kshutdown_screen_number = qt_xscreen(); + if (kshutdown_screen_number) + kdesktop.sprintf("kdesktop-screen-%d", kshutdown_screen_number); + + if (!kapp->dcopClient()->send(kdesktop, "KScreensaverIface", "lock()", "")) { + KMessageBox::error(0, i18n("kdesktop: DCOP call failed!")); + + return false; // error + } + + // hide window + if (MSystemTray::mode() == MSystemTray::Always) + ks_main->hide(); + + return true; // ok + } + else { + if (_testMode) { + MiscUtils::showTestMessage(i18n("Command: %1").arg(command)); + + return true; // ok + } + else if (MiscUtils::runCommand(command)) { + // hide window + if (MSystemTray::mode() == MSystemTray::Always) + ks_main->hide(); + + return true; // ok + } + } + + return false; // error +} + +// public slots + +void Action::slotLockScreen() +{ + execConfirm(LockScreen); +} + +void Action::slotLogout() +{ + execConfirm(Logout); +} + +void Action::slotReboot() +{ + execConfirm(Reboot); +} + +void Action::slotShutDown() +{ + execConfirm(ShutDown); +} diff --git a/kshutdown/actions.h b/kshutdown/actions.h new file mode 100644 index 0000000..238ae09 --- /dev/null +++ b/kshutdown/actions.h @@ -0,0 +1,217 @@ +/* + actions.h - Actions + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __ACTIONS_H__ +#define __ACTIONS_H__ + +#include <kapplication.h> + +// default external commands +const QString + DEFAULT_LOCK_SCREEN_COMMAND("xscreensaver-command -lock"), +// TODO: 2.0: logout command for GNOME (gnome-session-save --kill?) + DEFAULT_LOGOUT_COMMAND(""), + DEFAULT_REBOOT_COMMAND("/sbin/reboot"), + DEFAULT_SHUT_DOWN_COMMAND("/sbin/poweroff"); + +#define ks_actions Action::getInstance() + +class QPixmap; + +/** @short An action manager. */ +class Action: public QObject +{ + Q_OBJECT +public: + + /** + * Methods. Don't change these values! + */ + enum Method { + Method_KDE = 0, /**< Standard KDE/KDM method. (default) */ + Method_DefaultCommand = 1, /**< Default external command. (e.g. /sbin/reboot) */ + Method_UserCommand = 2 /**< User command. Any command that can be executed by @c KRun::run. */ + }; + + /** + * Actions. + */ + enum Type { + Nothing = 0, /**< Nothing. */ + ShutDown = 1, /**< System shut down. */ + Reboot = 2, /**< System reboot. */ + LockScreen = 3, /**< Screen lock. */ + Logout = 4, /**< End current session. */ + Extras = 5 /**< Extras. Execute an item selected from the "Extras..." menu. */ + }; + + /** Destructor. */ + virtual ~Action(); + + /** + * Converts @p action value to the configuration group name. + */ + QString actionToConfigGroup(const Type action) const; + + /** + * Returns @c true if the current action is active. + */ + inline bool active() const { return _active; } + + /** + * Activates the current action if @p yes is @c true. + */ + inline void setActive(const bool yes) { _active = yes; } + + /** Returns the currently selected action. */ + inline Type current() const { return _current; } + + /** + * Sets current action to @p action. + */ + inline void setCurrent(const Type action) { _current = action; } + + /** + * Ends current session. + * This function is a wrapper for the @c kapp->requestShutDown(). + * @param type A shut down type + * @param action An action to execute + * @return @c true if successful; otherwise @c false + */ + bool endSession(const KApplication::ShutdownType type, const Type action); + + /** + * Executes an action. + * @param action An action to execute + * @param stopTimer If @c true, the current active action and its timer are stopped + * @return @c true if successful; otherwise @c false + */ + bool exec(const Type action, const bool stopTimer = true); + + /** + * Executes an action. + * Displays confirmation message before execution. + * @param action An action to execute + * @param delay A selected delay + */ + bool execConfirm(const Type action, const QString &delay = QString::null); + + /** + * Executes the current action without confirmation. + */ + bool execCurrent(); + + /** + * Returns the current action name as text. + */ + QString getCurrentName() const; + + /** + * Returns an icon for @p action. + */ + QPixmap getIcon(const Type action) const; + + /** + * Returns an icon name for @p action. + */ + QString getIconName(const Type action) const; + + /** + * Initializes and return singleton instance of the @c Action class. + */ + inline static Action *getInstance() + { + if (!_instance) + _instance = new Action(); + + return _instance; + } + + /** + * Reads method for action from the configuration file. + * @param action An action + * @retval method A method to use + * @retval command A command to run + * @return A default command + */ + QString getMethod( + const Type action, + Method &method, + QString &command + ); + + /** + * Changes the action method. + * @param group A configuration group (in @b kshutdownrc file) + * @param method A new method + * @param command A new command + */ + void setMethod(const QString &group, const Method method, const QString &command) const; + + /** + * Returns an action name as text. + * @param action An action + */ + QString getName(const Type action) const; + + /** Returns @c true if @p action is @b not disabled by KIOSK. */ + bool isEnabled(const Type action); + + /** Returns @c true if test mode is enabled. */ + inline bool testMode() const { return _testMode; } + + /** + * Enables/disables the <b>test mode</b>. + * @param yes @c true to enable test mode + */ + inline void setTestMode(const bool yes) { _testMode = yes; } + + /** + * Executes the current action, + * and displays an error message if action failed. + */ + void totalExec(); + + /** + * Returns @c true if application/system is shutting down. + */ + inline bool totalExit() const { return _totalExit; } + + /** + * Sets <b>total exit</b> info to @p yes. + */ + inline void setTotalExit(const bool yes) { _totalExit = yes; } +private: + static Action *_instance; + bool + _active, + _testMode, + _totalExit; + QMap<Type, QPixmap> *iconCache; + Type _current; + Action(); + bool lockScreen(); +public slots: + void slotLockScreen(); + void slotLogout(); + void slotReboot(); + void slotShutDown(); +}; + +#endif // __ACTIONS_H__ diff --git a/kshutdown/appobserver.cpp b/kshutdown/appobserver.cpp new file mode 100644 index 0000000..b029e45 --- /dev/null +++ b/kshutdown/appobserver.cpp @@ -0,0 +1,290 @@ +/* + appobserver.cpp - An application observer/killer + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include <sys/types.h> + +#include "appobserver.h" +#include "miscutils.h" +#include "mmainwindow.h" + +#include <errno.h> +#include <signal.h> + +#include <qcombobox.h> +#include <qlistbox.h> +#include <qprocess.h> +#include <qwhatsthis.h> + +#include <kdebug.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kpushbutton.h> + +// TODO: 2.0: bigger combo box list +// http://ariya.blogspot.com/2006/03/resize-pop-up-list-of-combo-box_15.html + +// public + +AppObserver::AppObserver(QWidget *parent) + : QHBox(parent), + _processesMap(new QMap<int, Process>()), + _process(0), + _buf(QString::null) +{ + setName("AppObserver"); + + // refresh button + b_refresh = new KPushButton(this, "KPushButton::b_refresh"); + b_refresh->setIconSet(SmallIcon("reload")); + b_refresh->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred)); + MiscUtils::setHint(b_refresh, i18n("Refresh the list of processes")); + connect(b_refresh, SIGNAL(clicked()), SLOT(slotRefresh())); + + // processes combo box + cb_processes = new QComboBox(this, "QComboBox::cb_processes"); + cb_processes->setFocusPolicy(StrongFocus); + MiscUtils::setHint(cb_processes, i18n("List of the running processes")); + + // kill button + b_kill = new KPushButton(SmallIcon("editdelete"), i18n("Kill"), this, "KPushButton::b_kill"); + b_kill->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred)); + MiscUtils::setHint(b_kill, i18n("Kill the selected process")); + connect(b_kill, SIGNAL(clicked()), SLOT(slotKill())); +} + +QString AppObserver::getInfo() const +{ + int index = cb_processes->currentItem(); + QMapIterator<int, Process> i = _processesMap->find(index); + + if (i == _processesMap->end()) + return QString::null; + + return i18n("Waiting for \"%1\"").arg(i.data().command); +} + +bool AppObserver::isSelectedProcessRunning() const +{ +// TODO: 2.0: common code + int index = cb_processes->currentItem(); + QMapIterator<int, Process> i = _processesMap->find(index); + + if (i == _processesMap->end()) + return false; + + if (::kill(i.data().pid, 0)) // check if process exists + { + switch (errno) + { + case EINVAL: return false; + case ESRCH: return false; + case EPERM: return true; + } + } + + return true; +} + +bool AppObserver::isValid() const +{ + if (!isSelectedProcessRunning()) + { + KMessageBox::error( + ks_main, + i18n("The selected process does not exist!") + ); + + return false; + } + + return true; +} + +void AppObserver::refresh() +{ + // kdDebug() << "AppObserver::refresh()" << endl; + + b_refresh->setEnabled(false); + cb_processes->setEnabled(false); + b_kill->setEnabled(false); + + _buf = QString::null; + cb_processes->clear(); + _processesMap->clear(); + + if (!_process) + { + _process = new QProcess(this); + connect(_process, SIGNAL(processExited()), SLOT(slotProcessExit())); + connect(_process, SIGNAL(readyReadStdout()), SLOT(slotReadStdout())); + } + else + { + if (_process->isRunning()) + _process->kill(); + _process->clearArguments(); + } + _process->addArgument("ps"); + // show all processes + _process->addArgument("-A"); + // order: user pid command + _process->addArgument("-o"); + _process->addArgument("user="); + _process->addArgument("-o"); + _process->addArgument("pid="); + _process->addArgument("-o"); + _process->addArgument("comm="); + // sort by command + _process->addArgument("--sort"); + _process->addArgument("comm"); + + // start process + if (!_process->start()) + { + // error + KMessageBox::error( + ks_main, + MiscUtils::HTML(i18n("Could not execute command<br><br><b>%1</b>").arg(_process->arguments().join(" "))) + ); + cb_processes->setEnabled(false); + cb_processes->insertItem(SmallIcon("messagebox_warning"), i18n("Error")); + b_kill->setEnabled(false); + b_refresh->setEnabled(true); + } +} + +void AppObserver::setWidgetsEnabled(const bool yes) const +{ + b_refresh->setEnabled(yes); + cb_processes->setEnabled(yes); + b_kill->setEnabled(yes); +} + +// private slots + +void AppObserver::slotKill() +{ + int index = cb_processes->currentItem(); + QMapIterator<int, Process> i = _processesMap->find(index); +// FIXME: 2.0: error message + if (i != _processesMap->end()) + { + if (KMessageBox::warningYesNo( + ks_main, + MiscUtils::HTML(i18n("Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be lost!").arg(cb_processes->currentText())) + ) != KMessageBox::Yes) + return; + + pid_t pid = i.data().pid; + if (::kill(pid, SIGKILL)) + { + switch (errno) + { + case EINVAL: + // kdDebug() << "EINVAL" << endl; + break; + case ESRCH: + KMessageBox::error( + ks_main, + MiscUtils::HTML(i18n("Process not found<br><b>%1</b>").arg(cb_processes->currentText())) + ); + break; + case EPERM: + KMessageBox::error( + ks_main, + MiscUtils::HTML(i18n("No permissions to kill<br><b>%1</b>").arg(cb_processes->currentText())) + ); + break; + } + } + else + { + cb_processes->changeItem( + *cb_processes->pixmap(index), + i18n("DEAD: %1").arg(cb_processes->text(index)), + index + ); + } + } +} + +void AppObserver::slotProcessExit() +{ + // kdDebug() << "AppObserver::slotProcessExit()" << endl; + + int index = 0; + int line = 0; + Process p; + QStringList list = QStringList::split(" ", _buf.simplifyWhiteSpace()); + for (QStringList::Iterator i = list.begin(); i != list.end(); ++i) + { + switch (line) + { + // user + case 0: + line++; // next is pid + p = Process(); + p.user = *i; + break; + // pid + case 1: + line++; // next is command + p.pid = (*i).toLong(); + break; + // command + case 2: + line = 0; // next is user (wrap around) + p.command = *i; + _processesMap->insert(index, p); + // kdDebug() << "USER=" << p.user << " PID=" << p.pid << " COMMAND=" << p.command << endl; + QString text = QString("%1 (pid %2, %3)") + .arg(p.command) + .arg(p.pid) + .arg(p.user); + cb_processes->insertItem(SmallIcon(p.command), text); + index++; + break; + } + } + if (cb_processes->count() == 0) + { + cb_processes->setEnabled(false); + cb_processes->insertItem(SmallIcon("messagebox_warning"), i18n("Error")); + b_kill->setEnabled(false); + } + else + { + cb_processes->setEnabled(true); + b_kill->setEnabled(true); + } + b_refresh->setEnabled(true); +} + +void AppObserver::slotReadStdout() +{ + // kdDebug() << "AppObserver::slotReadStdout()" << endl; + + _buf.append(_process->readStdout()); +} + +void AppObserver::slotRefresh() +{ + refresh(); +} diff --git a/kshutdown/appobserver.h b/kshutdown/appobserver.h new file mode 100644 index 0000000..77b0f3d --- /dev/null +++ b/kshutdown/appobserver.h @@ -0,0 +1,99 @@ +/* + appobserver.h - An application observer/killer + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __APPOBSERVER_H__ +#define __APPOBSERVER_H__ + +#include <sys/types.h> + +#include <qhbox.h> + +class QComboBox; +class QProcess; + +class KPushButton; + +/** + * A process info. + */ +class Process +{ +private: + friend class AppObserver; + pid_t pid; /**< A process ID. */ + QString command; /**< A process command (e.g. "firefox"). */ + QString user; /**< An owner of the process (e.g. "root"). */ +}; + +/** + * An application observer/killer (stupid name ;-). + */ +class AppObserver: public QHBox +{ + Q_OBJECT +public: + /** + * Constructor. + * @param parent A parent widget + */ + AppObserver(QWidget *parent); + + /** + * Returns textual information about the current state, + * or @c QString::null. + */ + QString getInfo() const; + + /** + * Returns @c true if selected process exists. + */ + bool isSelectedProcessRunning() const; + + /** + * Returns @c true if selected process exists; + * otherwise displays an error message. + */ + bool isValid() const; + + /** + * Refreshes the list of processes. + */ + void refresh(); + + /** + * Enables/disables related widgets. + * @param yes @c true to enable widgets + */ + void setWidgetsEnabled(const bool yes) const; +private: + KPushButton + *b_kill, + *b_refresh; + QComboBox *cb_processes; + QMap<int, Process> *_processesMap; + QProcess *_process; + QString _buf; +private slots: + void slotKill(); + void slotProcessExit(); + void slotReadStdout(); + void slotRefresh(); +}; + +#endif // __APPOBSERVER_H__ diff --git a/kshutdown/configuration.cpp b/kshutdown/configuration.cpp new file mode 100644 index 0000000..0514aa9 --- /dev/null +++ b/kshutdown/configuration.cpp @@ -0,0 +1,80 @@ +/* + configuration.cpp - A configuration + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "actions.h" +#include "configuration.h" +#include "mmainwindow.h" +#include "msystemtray.h" + +Config *Config::_instance = 0; + +// public + +Config::Config() +{ + // automation + setCurrentGroup("Automation"); + i_cdTrayClose = addItemBool("cd_tray_close", cdTrayClose, false, "CDTrayClose"); +#ifdef Q_OS_FREEBSD + i_cdTrayCloseCommand = addItemString("cd_tray_close_command", cdTrayCloseCommand, "cdcontrol close", "CDTrayCloseCommand"); +#else + i_cdTrayCloseCommand = addItemString("cd_tray_close_command", cdTrayCloseCommand, "eject -t", "CDTrayCloseCommand"); +#endif + + // custom message + setCurrentGroup("Custom Message"); + i_customMessageEnabled = addItemBool("custom_message_enabled", customMessageEnabled, true, "Enabled"); + i_customMessageCommand = addItemString("custom_message_command", customMessageCommand, KS_CONFIG_KDIALOG_MESSAGE); + + // general + setCurrentGroup("General"); + ItemInt *i; + i = addItemInt("general_action", generalAction, Action::ShutDown, "Action"); + i->setMinValue(Action::ShutDown); + i->setMaxValue(Action::Extras); + i = addItemInt("general_delay_type", generalDelayType, MMainWindow::DelayType_TimeFromNow, "DelayType"); + i->setMinValue(MMainWindow::DelayType_Now); + i->setMaxValue(MMainWindow::DelayType_OnAppExit); + addItemDateTime("general_date_time", generalDateTime, QDateTime::currentDateTime(), "DelayTime"); + + // progress bar + setCurrentGroup("Progress Bar"); + i_progressBarEnabled = addItemBool("progress_bar_enabled", progressBarEnabled, false, "Enabled"); + i_progressBarPosition = addItemInt("progress_bar_position", progressBarPosition, 0, "Position"); + + // statistics + setCurrentGroup("Statistics"); + i_statsLongFormat = addItemBool("stats_long_format", statsLongFormat, false, "LongFormat"); + i_statsToggleFromField = addItemBool("stats_toggle_from_field", statsToggleFromField, false, "ToggleFromField"); + + // system tray + setCurrentGroup("System Tray"); + i_systemTray = addItemInt("system_tray", systemTray, MSystemTray::Always, "Always"); + i_systemTray->setMinValue(MSystemTray::Always); + i_systemTray->setMaxValue(MSystemTray::Never); + + // warning message + setCurrentGroup("Warning Message"); + i_warningMessageEnabled = addItemBool("warning_message_enabled", warningMessageEnabled, true, "Enabled"); + i_warningMessageDelay = addItemInt("warning_message_delay", warningMessageDelay, 2, "Delay"); + i_warningMessageDelay->setMinValue(1); + i_warningMessageDelay->setMaxValue(60); + + readConfig(); +} diff --git a/kshutdown/configuration.h b/kshutdown/configuration.h new file mode 100644 index 0000000..d5d39fb --- /dev/null +++ b/kshutdown/configuration.h @@ -0,0 +1,91 @@ +/* + configuration.h - A configuration + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __CONFIGURATION_H__ +#define __CONFIGURATION_H__ + +#include <kconfigskeleton.h> + +#define kshutdownrc Config::getInstance()->getInstance() + +#define KS_CONFIG_AMOR_MESSAGE "dcop amor AmorIface showMessage \"%appname: %text\"" +#define KS_CONFIG_KDIALOG_MESSAGE "kdialog --title \"%title\" --passivepopup \"%text\" 10" + +/** + * @short A configuration reader/writer. + * Use the @c kshutdownrc macro to access these members. + */ +class Config: public KConfigSkeleton +{ +public: + // automation + bool cdTrayClose; + ItemBool *i_cdTrayClose; + QString cdTrayCloseCommand; + ItemString *i_cdTrayCloseCommand; + + // custom message + bool customMessageEnabled; + ItemBool *i_customMessageEnabled; + QString customMessageCommand; + ItemString *i_customMessageCommand; + + // general + int generalAction; + int generalDelayType; + QDateTime generalDateTime; + + // progress bar + bool progressBarEnabled; + ItemBool *i_progressBarEnabled; + int progressBarPosition; + ItemInt *i_progressBarPosition; + + // statistics + bool statsLongFormat; + ItemBool *i_statsLongFormat; + bool statsToggleFromField; + ItemBool *i_statsToggleFromField; + + // system tray + int systemTray; + ItemInt *i_systemTray; + + // warning message + bool warningMessageEnabled; + ItemBool *i_warningMessageEnabled; + int warningMessageDelay; + ItemInt *i_warningMessageDelay; + + /** + * Constructs and returns a singleton instance of the configuration. + */ + inline static Config *getInstance() + { + if (!_instance) + _instance = new Config(); + + return _instance; + } +private: + Config(); + static Config *_instance; +}; + +#endif // __CONFIGURATION_H__ diff --git a/kshutdown/confirmation.cpp b/kshutdown/confirmation.cpp new file mode 100644 index 0000000..4f295d0 --- /dev/null +++ b/kshutdown/confirmation.cpp @@ -0,0 +1,97 @@ +/* + confirmation.cpp - A confirmation dialog + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "confirmation.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "msystemtray.h" + +#include <dcopclient.h> +#include <kdialogbase.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kwin.h> + +// public + +bool Confirmation::confirm(const Action::Type action, const QString &delay) +{ + KWin::setOnDesktop(ks_main->winId(), KWin::currentDesktop()); + + QWidget *parent; + if (ks_main->isVisible()) + parent = ks_main; + else if (MSystemTray::isInstance() && ks_tray->isVisible()) + parent = ks_tray; + else + parent = 0; + + /* + QWidget *background = new QWidget(0, "QWidget::background", Qt::WType_Popup); + background->setBackgroundMode(Qt::NoBackground); + background->setGeometry(kapp->desktop()->geometry()); + // Take screenshot - based on the aKregator's TrayIcon::takeScreenshot() (trayicon.cpp) + // and "ksmserver/shutdown.cpp". + QPixmap shot = QPixmap::grabWindow( + qt_xrootwin(), + 0, 0, // x, y + kapp->desktop()->width(), kapp->desktop()->height() + ); + QImage shotImage = shot.convertToImage(); + KImageEffect::flatten(shotImage, Qt::green, Qt::black); + bitBlt(background, 0, 0, &shotImage); + background->show(); + */ + + KDialogBase *dialog = new KDialogBase( + i18n("Confirm"), // caption + KDialogBase::Yes | KDialogBase::No, // button mask + KDialogBase::Yes, // default button + KDialogBase::No, // escape button + parent, + "Action::confirm", + true, // modal + false, // separator + KGuiItem(ks_actions->getName(action), ks_actions->getIcon(action)), + KGuiItem(i18n("&Cancel"), SmallIcon("button_cancel")) + ); + bool checkboxResultDummy = false; + QString selectedTime = delay.isNull() ? i18n("Unknown") : delay; + QString text = + i18n("Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>") + .arg(ks_actions->getName(action)) + .arg(selectedTime); + + kapp->dcopClient()->suspend(); + + bool result = (KMessageBox::createKMessageBox( + dialog, + MainBarIcon(ks_actions->getIconName(action), 32), + MiscUtils::HTML(text), + QStringList(), + QString::null, + &checkboxResultDummy, + KMessageBox::Notify + ) == KDialogBase::Yes); + + kapp->dcopClient()->resume(); + + return result; +} diff --git a/kshutdown/confirmation.h b/kshutdown/confirmation.h new file mode 100644 index 0000000..9af26c2 --- /dev/null +++ b/kshutdown/confirmation.h @@ -0,0 +1,38 @@ +/* + confirmation.h - A confirmation dialog + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __CONFIRMATION_H__ +#define __CONFIRMATION_H__ + +#include "actions.h" + +/** @short A confirmation dialog. */ +class Confirmation +{ +public: + /** + * Displays a confirmation message box. + * @param action An action to confirm + * @param delay A selected delay + * @return @c true if action has been confirmed; otherwise @c false + */ + static bool confirm(const Action::Type action, const QString &delay); +}; + +#endif // __CONFIRMATION_H__ diff --git a/kshutdown/extras.cpp b/kshutdown/extras.cpp new file mode 100644 index 0000000..bef2262 --- /dev/null +++ b/kshutdown/extras.cpp @@ -0,0 +1,309 @@ +/* + extras.cpp - Extras + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include <sys/types.h> + +#include "extras.h" +#include "miscutils.h" +#include "mmainwindow.h" + +#include <qdir.h> + +#include <kdebug.h> +#include <kdesktopfile.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kmimetype.h> +#include <kpopupmenu.h> +#include <kpushbutton.h> +#include <krun.h> +#include <kstandarddirs.h> +#include <kstringhandler.h> + +Extras *Extras::_instance = 0; + +// public + +Extras::~Extras() +{ + if (_idToFileMap) + delete _idToFileMap; + if (_menu) + delete _menu; +} + +void Extras::createButton(QWidget *parent) +{ + _button = new KPushButton(parent, "KPushButton::_button"); + _button->hide(); + _button->setPopup(_menu); + MiscUtils::setHint(_button, i18n("More actions...")); + setAction(QString::null, QString::null); /* evil */ +} + +bool Extras::execAction() const +{ + if (_fileToExecute.isNull()) + return false; // error + + if (!execFile()) + { + MiscUtils::showRunErrorMessage(_fileToExecute); + + return false; // error + } + + return true; // ok +} + +QString Extras::getActionDescription() const +{ + return + _description.isEmpty() + ? QString::null + // "Substitute characters at the middle of a string by \"...\"" + : KStringHandler::csqueeze(_description, 100); +} + +void Extras::setAction(const QString &fileToExecute, const QString &description, QIconSet *icon) +{ + _description = description; + _fileToExecute = fileToExecute; + if (_fileToExecute.isNull()) + { + _button->setText(i18n("Select a command...")); + _button->setIconSet(ks_actions->getIcon(Action::Extras)); + } + else + { + _button->setText(getActionDescription()); + if (!icon) + _button->setIconSet(ks_actions->getIcon(Action::Extras)); + else + _button->setIconSet(*icon); + } +} + +// private + +Extras::Extras() + : QObject(ks_main, "Extras"), + _idToFileMap(0) // initialized in getIdToFileMap() +{ + _menu = new KPopupMenu(0, "KPopupMenu::_menu"); + connect(_menu, SIGNAL(aboutToShow()), SLOT(slotShowMenu())); + connect(_menu, SIGNAL(activated(int)), SLOT(slotActivated(int))); +} + +// TODO: 2.0: recent items +void Extras::buildMenu(KPopupMenu *parentMenu, const QString &subdir) +{ + int id; + QDir d(subdir); + QFileInfo fi; + QString + description, + icon, + mimeType, + name, + path; + + QStringList list = d.entryList(QDir::DefaultFilter, QDir::Name | QDir::DirsFirst); + list.remove("."); + list.remove(".."); + + uint count = list.count(); + for (uint i = 0; i < count; i++) + { + fi.setFile(d, list[i]); + path = fi.filePath(); + + // dir + if (fi.isDir()) + { + KPopupMenu *submenu = new KPopupMenu(parentMenu, "KPopupMenu::submenu"); + connect(submenu, SIGNAL(activated(int)), SLOT(slotActivated(int))); + + KDesktopFile *desktopFile = new KDesktopFile(path + "/.directory", true); + if (desktopFile->getConfigState() != KConfigBase::NoAccess) + { + icon = desktopFile->readIcon(); + if (icon.isEmpty()) + icon = "folder"; + name = desktopFile->readName(); + if (name.isEmpty()) + name = fi.baseName(); + description = desktopFile->readComment(); + // add item + parentMenu->insertItem( + SmallIcon(icon), + description.isEmpty() ? name : description, + submenu + ); + } + else + { + // add item + parentMenu->insertItem(SmallIcon("folder"), fi.baseName(), submenu); + } + delete desktopFile; + + // recurse + buildMenu(submenu, fi.filePath()); + } + // file + else if (fi.isFile()) + { + mimeType = KMimeType::findByPath(path)->name(); + + if (mimeType == "application/x-trash") + continue; + + if (mimeType != "application/x-desktop") + { + // add item + id = parentMenu->insertItem( + KMimeType::pixmapForURL(KURL::fromPathOrURL(path)), + fi.baseName() + ); + // map item + getIdToFileMap()->insert(id, path); + + continue; + } + + // application/x-desktop + KDesktopFile *desktopFile = new KDesktopFile(path, true); + if (desktopFile->getConfigState() != KConfigBase::NoAccess) + { + name = desktopFile->readName(); + if (name.isEmpty()) + name = desktopFile->readEntry("Exec"); + description = desktopFile->readComment(); + // add item + id = parentMenu->insertItem( + SmallIcon(desktopFile->readIcon()), + description.isEmpty() + ? name + : (description + " (" + name + ")") + ); + // map item + getIdToFileMap()->insert(id, path); + } + delete desktopFile; + } + } +} + +bool Extras::execFile() const +{ + if (_fileToExecute.isNull()) + { + // kdDebug() << "Extras::execFile(): No file to execute" << endl; + + return false; + } + + + // HACK: It seems that KRun::runURL sometimes does not work for hibernate :/ ? + QFileInfo fi(_fileToExecute); + if (fi.fileName() == "hibernate.desktop") { + kdDebug() << "Extras::execFile(): Using hacked run..." << endl; + + pid_t pid = KRun::runCommand("kfmclient exec \"" + _fileToExecute + "\""); + + return pid; + } + else { + pid_t pid = KRun::runURL( + KURL::fromPathOrURL(_fileToExecute), + KMimeType::findByPath(_fileToExecute)->name() + ); + + return pid; + } +} + +QMap<int, QString> *Extras::getIdToFileMap() +{ + if (!_idToFileMap) + _idToFileMap = new QMap<int, QString>; + + return _idToFileMap; +} + +// public slots + +void Extras::slotModify() +{ + KMessageBox::information( + 0, + MiscUtils::HTML( + i18n("Use context menu to add/edit/remove links.") + + "<ul>" + + "<li>" + i18n("Use <b>Context Menu</b> to create a new link to application") + "</li>" + + "<li>" + i18n("Use <b>Create New|Folder...</b> to create a new submenu") + "</li>" + + "<li>" + i18n("Use <b>Properties</b> to change icon, name, or comment") + "</li>" + + "</ul>" + ), + i18n("Extras"), // title + "ModifyExtras" // config key + ); + + // launch Konqueror as an item editor + MiscUtils::runCommand("konqueror \"" + KGlobal::dirs()->saveLocation("data", "kshutdown/extras") + "\""); +} + +// private slots + +void Extras::slotActivated(int id) +{ + QMap<int, QString>::iterator i = getIdToFileMap()->find(id); + if (i == getIdToFileMap()->end()) + { + setAction(QString::null, QString::null); + KMessageBox::error( + 0, + "Internal error!\nSelected menu item is broken.", + i18n("Extras") + ); + } + else + { + setAction(i.data(), _menu->text(id), _menu->iconSet(id)); + } +} + +void Extras::slotShowMenu() +{ + setAction(QString::null, QString::null); + _menu->clear(); // reset menu + getIdToFileMap()->clear(); // reset map + QStringList extrasDirs(KGlobal::dirs()->findDirs("data", "kshutdown/extras")); + QStringList::ConstIterator + begin = extrasDirs.begin(), + end = extrasDirs.end(); + for (QStringList::ConstIterator it = begin; it != end; ++it) + { + if ((it != begin) && (_menu->count() > 0)) + _menu->insertSeparator(); + buildMenu(_menu, *it); + } +} diff --git a/kshutdown/extras.h b/kshutdown/extras.h new file mode 100644 index 0000000..58297cd --- /dev/null +++ b/kshutdown/extras.h @@ -0,0 +1,115 @@ +/* + extras.h - Extras + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __EXTRAS_H__ +#define __EXTRAS_H__ + +#include <qobject.h> +#include <qiconset.h> + +class KPopupMenu; +class KPushButton; + +#define ks_extras Extras::getInstance() + +/** @short Extras - user commands stored in "extras" directory. */ +class Extras: public QObject +{ + Q_OBJECT +public: + /** + * Destructor. + */ + virtual ~Extras(); + + /** + * Returns the @b Extras button. + */ + inline KPushButton *button() const { return _button; } + + /** + * Creates the @b Extras button. + * @param parent A parent widget + */ + void createButton(QWidget *parent); + + /** + * Executes an "extras" action previously selected from the menu. + * @return @c false if error; otherwise @c true + */ + bool execAction() const; + + /** + * Returns a file name which will be executed by @ref execAction. + */ + inline QString fileToExecute() const { return _fileToExecute; } + + /** + * Returns a full description of the action, + * or @c QString::null if no action. + */ + QString getActionDescription() const; + + /** + * Initializes and returns the instance of the "extras" manager. + */ + inline static Extras *getInstance() + { + if (!_instance) + _instance = new Extras(); + + return _instance; + } + + void setAction(const QString &fileToExecute, const QString &description, QIconSet *icon = 0); +private: + static Extras *_instance; + KPopupMenu *_menu; + KPushButton *_button; + QMap<int, QString> *_idToFileMap; + QString + _description, + _fileToExecute; + Extras(); + + /** + * Reads "extras" directory and creates menu items. + * @param parentMenu A parent menu + * @param subdir A subdirectory + */ + void buildMenu(KPopupMenu *parentMenu, const QString &subdir); + + bool execFile() const; + QMap<int, QString> *getIdToFileMap(); +public slots: + /** + * Opens the "extras" directory in the @b Konqueror. + */ + void slotModify(); +private slots: + void slotActivated(int id); + + /** + * Called before the popup menu is displayed. + * All the menu items are initialized here. + */ + void slotShowMenu(); +}; + +#endif // __EXTRAS_H__ diff --git a/kshutdown/kshutdown.desktop b/kshutdown/kshutdown.desktop new file mode 100644 index 0000000..2a94428 --- /dev/null +++ b/kshutdown/kshutdown.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +# Encoding: UTF-8 +Name=KShutDown +Exec=kshutdown +Icon=kshutdown +Comment=A Shut Down Utility for KDE +Comment[cs]=Vypínací utilita pro KDE +Comment[de]=Erweitertes Herunterfahren für KDE +Comment[el]=Ένα εργαλείο τερματισμού για το KDE +Comment[fr]=Utilitaire de gestion d'arrêt pour KDE +Comment[it]=Una utilit�KDE per lo spegnimento del sistema +Comment[pl]=Narzędzie do zamykania systemu dla KDE +GenericName=System Shut Down Utility +GenericName[fr]=Gestionnaire d'arrêt du système +GenericName[cs]=Časované vypnutí +GenericName[pl]=Narzędzie do zamykania systemu +DocPath=kshutdown/index.html +Type=Application +Categories=KDE;Utility; diff --git a/kshutdown/kshutdown.upd b/kshutdown/kshutdown.upd new file mode 100644 index 0000000..cac1ba9 --- /dev/null +++ b/kshutdown/kshutdown.upd @@ -0,0 +1,10 @@ +Id=kshutdown051 +File=kshutdownrc +Group=Automation,Shut Down +Key=RunCommandBeforeShutDown,RunCommandBeforeAction +Key=CommandBeforeShutDown,CommandBeforeAction +Key=CommandPause,CommandBeforeActionPause +Group=Automation +RemoveKey=RunCommandBeforeShutDown +RemoveKey=CommandBeforeShutDown +RemoveKey=CommandPause
\ No newline at end of file diff --git a/kshutdown/kshutdowniface.h b/kshutdown/kshutdowniface.h new file mode 100644 index 0000000..2a72c75 --- /dev/null +++ b/kshutdown/kshutdowniface.h @@ -0,0 +1,98 @@ +/* + kshutdowniface.h - KShutdown DCOP interface + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __KSHUTDOWNIFACE_H__ +#define __KSHUTDOWNIFACE_H__ + +#include <dcopobject.h> + +/** + * @short KShutDown DCOP interface (KShutdownIface). + * See the KShutDown Handbook (F1) for details. + */ +class KShutdownIface: virtual public DCOPObject +{ + K_DCOP +public: +k_dcop: + + // general actions + + /** + * Cancels the current action. + */ + virtual ASYNC cancel() = 0; + + /** + * Executes the <b>Shut Down</b> action. + */ + virtual bool shutDown() = 0; + + /** + * @see shutDown + */ + virtual bool shutdown() = 0; + + /** + * Executes the @b Reboot" action. + */ + virtual bool reboot() = 0; + + /** + * Executes the <b>Lock Screen</b> action. + */ + virtual bool lockScreen() = 0; + + /** + * Executes the @b Logout action. + */ + virtual bool logout() = 0; + + // misc. functions + + /** + * Shows the settings dialog. + */ + virtual ASYNC configure() = 0; + + /** + * Returns a KShutDown status information as text + * (e.g. "Idle", "Busy", "1 minute warning", etc). + * Can be used in Karamba themes, for example. + */ + virtual QString getStatusInfo() = 0; + + /** + * Hides the main window and its system tray icon. + */ + virtual void makeInvisible() = 0; + + /** + * Shows and raises the main window. + * The window will be visible on the current desktop. + */ + virtual ASYNC makeVisible() = 0; + + /** + * Sets test mode to @p yes. + */ + virtual ASYNC setTestMode(bool yes) = 0; +}; + +#endif // __KSHUTDOWNIFACE_H__ diff --git a/kshutdown/kshutdowniface.kidl b/kshutdown/kshutdowniface.kidl new file mode 100644 index 0000000..0ae6497 --- /dev/null +++ b/kshutdown/kshutdowniface.kidl @@ -0,0 +1,53 @@ +<!DOCTYPE DCOP-IDL><DCOP-IDL> +<SOURCE>kshutdowniface.h</SOURCE> +<INCLUDE>dcopobject.h</INCLUDE> +<CLASS> + <NAME>KShutdownIface</NAME> + <SUPER>DCOPObject</SUPER> + <FUNC> + <TYPE>ASYNC</TYPE> + <NAME>cancel</NAME> + </FUNC> + <FUNC> + <TYPE>bool</TYPE> + <NAME>shutDown</NAME> + </FUNC> + <FUNC> + <TYPE>bool</TYPE> + <NAME>shutdown</NAME> + </FUNC> + <FUNC> + <TYPE>bool</TYPE> + <NAME>reboot</NAME> + </FUNC> + <FUNC> + <TYPE>bool</TYPE> + <NAME>lockScreen</NAME> + </FUNC> + <FUNC> + <TYPE>bool</TYPE> + <NAME>logout</NAME> + </FUNC> + <FUNC> + <TYPE>ASYNC</TYPE> + <NAME>configure</NAME> + </FUNC> + <FUNC> + <TYPE>QString</TYPE> + <NAME>getStatusInfo</NAME> + </FUNC> + <FUNC> + <TYPE>void</TYPE> + <NAME>makeInvisible</NAME> + </FUNC> + <FUNC> + <TYPE>ASYNC</TYPE> + <NAME>makeVisible</NAME> + </FUNC> + <FUNC> + <TYPE>ASYNC</TYPE> + <NAME>setTestMode</NAME> + <ARG><TYPE>bool</TYPE><NAME>yes</NAME></ARG> + </FUNC> +</CLASS> +</DCOP-IDL> diff --git a/kshutdown/kshutdowniface_skel.cpp b/kshutdown/kshutdowniface_skel.cpp new file mode 100644 index 0000000..d267d86 --- /dev/null +++ b/kshutdown/kshutdowniface_skel.cpp @@ -0,0 +1,135 @@ +/**************************************************************************** +** +** DCOP Skeleton generated by dcopidl2cpp from kshutdowniface.kidl +** +** WARNING! All changes made in this file will be lost! +** +*****************************************************************************/ + +#include "kshutdowniface.h" + +#include <kdatastream.h> +#include <qasciidict.h> + + +static const int KShutdownIface_fhash = 13; +static const char* const KShutdownIface_ftable[12][3] = { + { "ASYNC", "cancel()", "cancel()" }, + { "bool", "shutDown()", "shutDown()" }, + { "bool", "shutdown()", "shutdown()" }, + { "bool", "reboot()", "reboot()" }, + { "bool", "lockScreen()", "lockScreen()" }, + { "bool", "logout()", "logout()" }, + { "ASYNC", "configure()", "configure()" }, + { "QString", "getStatusInfo()", "getStatusInfo()" }, + { "void", "makeInvisible()", "makeInvisible()" }, + { "ASYNC", "makeVisible()", "makeVisible()" }, + { "ASYNC", "setTestMode(bool)", "setTestMode(bool yes)" }, + { 0, 0, 0 } +}; +static const int KShutdownIface_ftable_hiddens[11] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +}; + +bool KShutdownIface::process(const QCString &fun, const QByteArray &data, QCString& replyType, QByteArray &replyData) +{ + static QAsciiDict<int>* fdict = 0; + if ( !fdict ) { + fdict = new QAsciiDict<int>( KShutdownIface_fhash, true, false ); + for ( int i = 0; KShutdownIface_ftable[i][1]; i++ ) + fdict->insert( KShutdownIface_ftable[i][1], new int( i ) ); + } + int* fp = fdict->find( fun ); + switch ( fp?*fp:-1) { + case 0: { // void cancel() + replyType = KShutdownIface_ftable[0][0]; + cancel( ); + } break; + case 1: { // bool shutDown() + replyType = KShutdownIface_ftable[1][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << shutDown( ); + } break; + case 2: { // bool shutdown() + replyType = KShutdownIface_ftable[2][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << shutdown( ); + } break; + case 3: { // bool reboot() + replyType = KShutdownIface_ftable[3][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << reboot( ); + } break; + case 4: { // bool lockScreen() + replyType = KShutdownIface_ftable[4][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << lockScreen( ); + } break; + case 5: { // bool logout() + replyType = KShutdownIface_ftable[5][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << logout( ); + } break; + case 6: { // void configure() + replyType = KShutdownIface_ftable[6][0]; + configure( ); + } break; + case 7: { // QString getStatusInfo() + replyType = KShutdownIface_ftable[7][0]; + QDataStream _replyStream( replyData, IO_WriteOnly ); + _replyStream << getStatusInfo( ); + } break; + case 8: { // void makeInvisible() + replyType = KShutdownIface_ftable[8][0]; + makeInvisible( ); + } break; + case 9: { // void makeVisible() + replyType = KShutdownIface_ftable[9][0]; + makeVisible( ); + } break; + case 10: { // void setTestMode(bool) + bool arg0; + QDataStream arg( data, IO_ReadOnly ); + if (arg.atEnd()) return false; + arg >> arg0; + replyType = KShutdownIface_ftable[10][0]; + setTestMode(arg0 ); + } break; + default: + return DCOPObject::process( fun, data, replyType, replyData ); + } + return true; +} + +QCStringList KShutdownIface::interfaces() +{ + QCStringList ifaces = DCOPObject::interfaces(); + ifaces += "KShutdownIface"; + return ifaces; +} + +QCStringList KShutdownIface::functions() +{ + QCStringList funcs = DCOPObject::functions(); + for ( int i = 0; KShutdownIface_ftable[i][2]; i++ ) { + if (KShutdownIface_ftable_hiddens[i]) + continue; + QCString func = KShutdownIface_ftable[i][0]; + func += ' '; + func += KShutdownIface_ftable[i][2]; + funcs << func; + } + return funcs; +} + + diff --git a/kshutdown/kshutdowniface_stub.cpp b/kshutdown/kshutdowniface_stub.cpp new file mode 100644 index 0000000..9187c8c --- /dev/null +++ b/kshutdown/kshutdowniface_stub.cpp @@ -0,0 +1,229 @@ +/**************************************************************************** +** +** DCOP Stub Implementation created by dcopidl2cpp from kshutdowniface.kidl +** +** WARNING! All changes made in this file will be lost! +** +*****************************************************************************/ + +#include "kshutdowniface_stub.h" +#include <dcopclient.h> + +#include <kdatastream.h> + + +KShutdownIface_stub::KShutdownIface_stub( const QCString& app, const QCString& obj ) + : DCOPStub( app, obj ) +{ +} + +KShutdownIface_stub::KShutdownIface_stub( DCOPClient* client, const QCString& app, const QCString& obj ) + : DCOPStub( client, app, obj ) +{ +} + +KShutdownIface_stub::KShutdownIface_stub( const DCOPRef& ref ) + : DCOPStub( ref ) +{ +} + +void KShutdownIface_stub::cancel() +{ + if ( !dcopClient() ) { + setStatus( CallFailed ); + return; + } + QByteArray data; + dcopClient()->send( app(), obj(), "cancel()", data ); + setStatus( CallSucceeded ); +} + +bool KShutdownIface_stub::shutDown() +{ + bool result = false; + if ( !dcopClient() ) { + setStatus( CallFailed ); + return result; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "shutDown()", data, replyType, replyData ) ) { + if ( replyType == "bool" ) { + QDataStream _reply_stream( replyData, IO_ReadOnly ); + _reply_stream >> result; + setStatus( CallSucceeded ); + } else { + callFailed(); + } + } else { + callFailed(); + } + return result; +} + +bool KShutdownIface_stub::shutdown() +{ + bool result = false; + if ( !dcopClient() ) { + setStatus( CallFailed ); + return result; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "shutdown()", data, replyType, replyData ) ) { + if ( replyType == "bool" ) { + QDataStream _reply_stream( replyData, IO_ReadOnly ); + _reply_stream >> result; + setStatus( CallSucceeded ); + } else { + callFailed(); + } + } else { + callFailed(); + } + return result; +} + +bool KShutdownIface_stub::reboot() +{ + bool result = false; + if ( !dcopClient() ) { + setStatus( CallFailed ); + return result; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "reboot()", data, replyType, replyData ) ) { + if ( replyType == "bool" ) { + QDataStream _reply_stream( replyData, IO_ReadOnly ); + _reply_stream >> result; + setStatus( CallSucceeded ); + } else { + callFailed(); + } + } else { + callFailed(); + } + return result; +} + +bool KShutdownIface_stub::lockScreen() +{ + bool result = false; + if ( !dcopClient() ) { + setStatus( CallFailed ); + return result; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "lockScreen()", data, replyType, replyData ) ) { + if ( replyType == "bool" ) { + QDataStream _reply_stream( replyData, IO_ReadOnly ); + _reply_stream >> result; + setStatus( CallSucceeded ); + } else { + callFailed(); + } + } else { + callFailed(); + } + return result; +} + +bool KShutdownIface_stub::logout() +{ + bool result = false; + if ( !dcopClient() ) { + setStatus( CallFailed ); + return result; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "logout()", data, replyType, replyData ) ) { + if ( replyType == "bool" ) { + QDataStream _reply_stream( replyData, IO_ReadOnly ); + _reply_stream >> result; + setStatus( CallSucceeded ); + } else { + callFailed(); + } + } else { + callFailed(); + } + return result; +} + +void KShutdownIface_stub::configure() +{ + if ( !dcopClient() ) { + setStatus( CallFailed ); + return; + } + QByteArray data; + dcopClient()->send( app(), obj(), "configure()", data ); + setStatus( CallSucceeded ); +} + +QString KShutdownIface_stub::getStatusInfo() +{ + QString result; + if ( !dcopClient() ) { + setStatus( CallFailed ); + return result; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "getStatusInfo()", data, replyType, replyData ) ) { + if ( replyType == "QString" ) { + QDataStream _reply_stream( replyData, IO_ReadOnly ); + _reply_stream >> result; + setStatus( CallSucceeded ); + } else { + callFailed(); + } + } else { + callFailed(); + } + return result; +} + +void KShutdownIface_stub::makeInvisible() +{ + if ( !dcopClient() ) { + setStatus( CallFailed ); + return; + } + QByteArray data, replyData; + QCString replyType; + if ( dcopClient()->call( app(), obj(), "makeInvisible()", data, replyType, replyData ) ) { + setStatus( CallSucceeded ); + } else { + callFailed(); + } +} + +void KShutdownIface_stub::makeVisible() +{ + if ( !dcopClient() ) { + setStatus( CallFailed ); + return; + } + QByteArray data; + dcopClient()->send( app(), obj(), "makeVisible()", data ); + setStatus( CallSucceeded ); +} + +void KShutdownIface_stub::setTestMode( bool arg0 ) +{ + if ( !dcopClient() ) { + setStatus( CallFailed ); + return; + } + QByteArray data; + QDataStream arg( data, IO_WriteOnly ); + arg << arg0; + dcopClient()->send( app(), obj(), "setTestMode(bool)", data ); + setStatus( CallSucceeded ); +} + + diff --git a/kshutdown/kshutdowniface_stub.h b/kshutdown/kshutdowniface_stub.h new file mode 100644 index 0000000..889f3bf --- /dev/null +++ b/kshutdown/kshutdowniface_stub.h @@ -0,0 +1,38 @@ +/**************************************************************************** +** +** DCOP Stub Definition created by dcopidl2cpp from kshutdowniface.kidl +** +** WARNING! All changes made in this file will be lost! +** +*****************************************************************************/ + +#ifndef __KSHUTDOWNIFACE_STUB__ +#define __KSHUTDOWNIFACE_STUB__ + +#include <dcopstub.h> +#include <dcopobject.h> + + +class KShutdownIface_stub : virtual public DCOPStub +{ +public: + KShutdownIface_stub( const QCString& app, const QCString& id ); + KShutdownIface_stub( DCOPClient* client, const QCString& app, const QCString& id ); + explicit KShutdownIface_stub( const DCOPRef& ref ); + virtual ASYNC cancel(); + virtual bool shutDown(); + virtual bool shutdown(); + virtual bool reboot(); + virtual bool lockScreen(); + virtual bool logout(); + virtual ASYNC configure(); + virtual QString getStatusInfo(); + virtual void makeInvisible(); + virtual ASYNC makeVisible(); + virtual ASYNC setTestMode( bool yes ); +protected: + KShutdownIface_stub() : DCOPStub( never_use ) {}; +}; + + +#endif diff --git a/kshutdown/links.cpp b/kshutdown/links.cpp new file mode 100644 index 0000000..f1ce810 --- /dev/null +++ b/kshutdown/links.cpp @@ -0,0 +1,210 @@ +/* + links.cpp - A link creator/remover + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "actions.h" +#include "links.h" +#include "miscutils.h" + +#include <qcombobox.h> +#include <qfile.h> +#include <qlabel.h> + +#include <kapplication.h> +#include <kdesktopfile.h> +#include <kglobalsettings.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kpushbutton.h> +#include <kstandarddirs.h> + +// public + +Links::Links(QWidget *parent) + : QVBox(parent, "Links") +{ + setSpacing(5); + int alignment = AlignVCenter; + alignment |= kapp->reverseLayout() ? AlignLeft : AlignRight; + + + // location + QHBox *w_location = new QHBox(this); + w_location->setSpacing(5); + QLabel *l_location = new QLabel(i18n("Location where to create the link:"), w_location); + l_location->setAlignment(alignment); + cb_location = new QComboBox(w_location, "QComboBox::cb_location"); + cb_location->setFocusPolicy(StrongFocus); + cb_location->insertItem(SmallIcon("desktop"), i18n("Desktop")); + cb_location->insertItem(SmallIcon("kmenu"), i18n("K Menu")); + l_location->setBuddy(cb_location); + connect(cb_location, SIGNAL(activated(int)), SLOT(slotActivated(int))); + + // type + QHBox *w_type = new QHBox(this); + w_type->setSpacing(5); + QLabel *l_type = new QLabel(i18n("Type of the link:"), w_type); + l_type->setAlignment(alignment); + cb_type = new QComboBox(w_type, "QComboBox::cb_type"); + cb_type->setFocusPolicy(StrongFocus); + cb_type->insertItem(kapp->miniIcon(), "KShutDown"); + + // NOTE: slotAddRemoveLink() + cb_type->insertItem(SmallIcon("exit"), i18n("Standard Logout Dialog")); + + cb_type->insertItem(ks_actions->getIcon(Action::ShutDown), ks_actions->getName(Action::ShutDown)); + cb_type->insertItem(ks_actions->getIcon(Action::Reboot), ks_actions->getName(Action::Reboot)); + cb_type->insertItem(ks_actions->getIcon(Action::LockScreen), ks_actions->getName(Action::LockScreen)); + cb_type->insertItem(ks_actions->getIcon(Action::Logout), ks_actions->getName(Action::Logout)); + l_type->setBuddy(cb_type); + connect(cb_type, SIGNAL(activated(int)), SLOT(slotActivated(int))); + + // add/remove link + b_addRemoveLink = new KPushButton(this, "KPushButton::b_addRemoveLink"); + connect(b_addRemoveLink, SIGNAL(clicked()), SLOT(slotAddRemoveLink())); + + updateAddRemoveButton(); +} + +void Links::createLink(const QString &path, const QString &command, const QString &icon, const QString &name, const QString &comment) +{ + if (path.isNull()) + return; + + KDesktopFile *df = new KDesktopFile(path); + df->setGroup("Desktop Entry"); + df->writeEntry("Comment", comment); + df->writeEntry("Encoding", "UTF-8"); + df->writeEntry("Exec", command); + df->writeEntry("GenericName", i18n("System Shut Down Utility")); + df->writeEntry("Icon", icon); + df->writeEntry("Name", name); + df->writeEntry("StartupNotify", "false"); + df->writeEntry("Type", "Application"); + delete df; + + if (!QFile::exists(path)) + { + KMessageBox::error( + 0, + MiscUtils::HTML(i18n("Could not create file <b>%1</b>!").arg(path)) + ); + } +} + +void Links::removeLink(const QString &path) +{ + if (QFile::exists(path) && !QFile::remove(path)) + { + KMessageBox::error( + 0, + MiscUtils::HTML(i18n("Could not remove file <b>%1</b>!").arg(path)) + ); + } +} + +// private + +QString Links::getCurrentLocationPath() const +{ + QString path; + switch (cb_location->currentItem()) + { + case 0: + path = KGlobalSettings::desktopPath() + "/"; + break; + case 1: + path = locateLocal("apps", "") + "/"; + break; + default: + return QString::null; + } + switch (cb_type->currentItem()) + { + case 0: return path += "kshutdown-classic.desktop"; + case 1: return path += "kshutdown-standard.desktop"; + case 2: return path += "kshutdown-shutdown.desktop"; + case 3: return path += "kshutdown-reboot.desktop"; + case 4: return path += "kshutdown-lock.desktop"; + case 5: return path += "kshutdown-logout.desktop"; + default: return QString::null; + } +} + +QString Links::getCurrentTypeCommand() const +{ + switch (cb_type->currentItem()) + { + case 0: return "kshutdown"; + case 1: return "kshutdown --standard"; + case 2: return "kshutdown --confirm --shutdown"; + case 3: return "kshutdown --confirm --reboot"; + case 4: return "kshutdown --confirm --lock"; + case 5: return "kshutdown --confirm --logout"; + default: return QString::null; + } +} + +QString Links::getCurrentTypeIcon() const +{ + switch (cb_type->currentItem()) + { + case 0: return "kshutdown"; + case 1: return "exit"; + // sync. with Action::getIcon + case 2: return "exit"; + case 3: return "reload"; + case 4: return "lock"; + case 5: return "undo"; + default: return QString::null; + } +} + +void Links::updateAddRemoveButton() { + if (QFile::exists(getCurrentLocationPath())) { + b_addRemoveLink->setIconSet(SmallIcon("editdelete")); + b_addRemoveLink->setText(i18n("Remove Link")); + } + else { + b_addRemoveLink->setIconSet(SmallIcon("filenew")); + b_addRemoveLink->setText(i18n("Add Link")); + } +} + +// private slots + +void Links::slotActivated(int/* index*/) { + updateAddRemoveButton(); +} + +void Links::slotAddRemoveLink() { + if (QFile::exists(getCurrentLocationPath())) { + removeLink(getCurrentLocationPath()); + } + else { + createLink( + getCurrentLocationPath(), + getCurrentTypeCommand(), + getCurrentTypeIcon(), + (cb_type->currentItem() == 1) ? i18n("Logout") : cb_type->currentText(), + cb_type->currentText() + ); + } + updateAddRemoveButton(); +} diff --git a/kshutdown/links.h b/kshutdown/links.h new file mode 100644 index 0000000..c9ef90c --- /dev/null +++ b/kshutdown/links.h @@ -0,0 +1,74 @@ +/* + links.h - A link creator/remover + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __LINKS_H__ +#define __LINKS_H__ + +#include <qvbox.h> + +class KPushButton; +class QComboBox; + +/** @short A link creator/remover. */ +class Links: public QVBox +{ + Q_OBJECT +public: + /** + * Constructor. + * @param parent A parent widget + */ + Links(QWidget *parent); + + /** + * Creates a new <b>.desktop</b> file. + * @param path A path to the <b>.desktop</b> file + * @param command A command to execute + * @param icon An icon name + * @param name A link name + * @param comment A comment + */ + static void createLink( + const QString &path, + const QString &command, + const QString &icon, + const QString &name, + const QString &comment + ); + + /** + * Removes a <b>.desktop</b> file. + * @param path A <b>.desktop</b> file to remove + */ + static void removeLink(const QString &path); +private: + KPushButton *b_addRemoveLink; + QComboBox + *cb_location, + *cb_type; + QString getCurrentLocationPath() const; + QString getCurrentTypeCommand() const; + QString getCurrentTypeIcon() const; + void updateAddRemoveButton(); +private slots: + void slotActivated(int index); + void slotAddRemoveLink(); +}; + +#endif // __LINKS_H__ diff --git a/kshutdown/mactioneditdialog.cpp b/kshutdown/mactioneditdialog.cpp new file mode 100644 index 0000000..555ad0a --- /dev/null +++ b/kshutdown/mactioneditdialog.cpp @@ -0,0 +1,225 @@ +/* + mactioneditsdialog.cpp - An action editor + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "configuration.h" +#include "mactioneditdialog.h" +#include "miscutils.h" +#include "mtip.h" + +#include <qcheckbox.h> +#include <qcombobox.h> +#include <qhbox.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qvbox.h> +#include <qvgroupbox.h> +#include <qwhatsthis.h> + +#include <klineedit.h> +#include <klocale.h> +#include <knuminput.h> +#include <kpushbutton.h> + +MActionEditDialog::MActionEditDialog(QWidget *parent, Action::Type action) + : KDialogBase( + parent, + "MActionEditDialog", + true, + "", + Default | Ok | Cancel, + Ok, // default button + true + ), + _action(action), + _userCommand("") +{ + QVBox *main = new QVBox(this); + setMainWidget(main); + + // title + l_title = new QLabel(main); + QFont f = QFont(l_title->font()); + f.setPointSize(16); + l_title->setFont(f); + l_title->setMargin(10); + + QHBox *gb_south = new QHBox(main); + gb_south->setSpacing(5); + + QVBox *gb_widgets = new QVBox(gb_south); + + QVGroupBox *gb_method = new QVGroupBox(i18n("Method"), gb_widgets); + + // method label + QLabel *l_method = new QLabel(i18n("Select a method:"), gb_method); + + // method combo box + _methods = new QComboBox(gb_method, "QComboBox::_methods"); + _methods->setFocusPolicy(StrongFocus); + _methods->insertItem(i18n("KDE (default)")); + l_method->setBuddy(_methods); + connect(_methods, SIGNAL(activated(int)), SLOT(slotMethodChange(int))); + + // command label + l_command = new QLabel(i18n("Enter a custom command:"), gb_method); + + // command edit line + in_command = new KLineEdit(gb_method, "KLineEdit::in_command"); + l_command->setBuddy(in_command); + + QVGroupBox *gb_commandBeforeAction = new QVGroupBox(i18n("Command before action"), gb_widgets); + c_runCommandBeforeAction = new QCheckBox(i18n("Run command"), gb_commandBeforeAction); + i_commandBeforeAction = new KLineEdit(gb_commandBeforeAction, "KLineEdit::i_commandBeforeAction"); + i_commandBeforeActionPause = new KIntNumInput(gb_commandBeforeAction, "KIntNumInput::i_commandBeforeActionPause"); + i_commandBeforeActionPause->setLabel(i18n("Pause after run command:")); + i_commandBeforeActionPause->setRange(0, 300, 1, true); + i_commandBeforeActionPause->setSpecialValueText(i18n("No pause")); + i_commandBeforeActionPause->setSuffix(" " + i18n("second(s)")); + b_testCommandBeforeAction = new KPushButton(KStdGuiItem::test(), gb_commandBeforeAction, "KPushButton::b_testCommandBeforeAction"); + connect(b_testCommandBeforeAction, SIGNAL(clicked()), SLOT(slotTestCommandBeforeAction())); + connect( + c_runCommandBeforeAction, SIGNAL(toggled(bool)), + i_commandBeforeAction, SLOT(setEnabled(bool))); + connect( + c_runCommandBeforeAction, SIGNAL(toggled(bool)), + i_commandBeforeActionPause, SLOT(setEnabled(bool))); + connect( + c_runCommandBeforeAction, SIGNAL(toggled(bool)), + b_testCommandBeforeAction, SLOT(setEnabled(bool))); + + MTip *t_progs = new MTip(MTip::Warning, gb_south); + t_progs->setTipText( + MiscUtils::HTML( + i18n("In most cases you need privileges to shut down system (e.g. run /sbin/shutdown)") + "<br>" \ + "<ul>" \ + "<li>" + i18n("If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set all methods to <i>KDE</i>") + "</li>" \ + "<li>" + i18n("If you are using <b>KDE</b> and display manager different than <b>KDM</b>, then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/sbin/...</i>") + "</li>" \ + "</ul>" + + i18n("Manuals:") + + "<ul>" \ + "<li><a href=\"man:/halt\">halt, poweroff, reboot</a></li>" \ + "<li><a href=\"man:/shutdown\">shutdown</a></li>" \ + "<li><a href=\"man:/xlock\">xlock</a></li>" \ + "<li><a href=\"man:/xscreensaver-command\">xscreensaver-command</a></li>" \ + "</ul>" \ + ) + ); + + connect(this, SIGNAL(okClicked()), SLOT(slotOKClicked())); + + Action::Method m = Action::Method_KDE; + QString c; + QString group = ks_actions->actionToConfigGroup(_action); + _methods->insertItem(ks_actions->getMethod(_action, m, c)); + + QString s = ks_actions->getName(_action); + l_title->setText(s); + setCaption(s); + + _methods->insertItem(i18n("User Command")); + + // method + _userCommand = c; + setMethod(m); + + // command before action + KConfig *conf = kshutdownrc->config(); + conf->setGroup(group); + c_runCommandBeforeAction->setChecked(conf->readBoolEntry("RunCommandBeforeAction", false)); + i_commandBeforeAction->setText(conf->readEntry("CommandBeforeAction", "")); + i_commandBeforeActionPause->setValue(conf->readNumEntry("CommandBeforeActionPause", 10)); + + bool runCommand = c_runCommandBeforeAction->isChecked(); + i_commandBeforeAction->setEnabled(runCommand); + i_commandBeforeActionPause->setEnabled(runCommand); + b_testCommandBeforeAction->setEnabled(runCommand); + _methods->setFocus(); + + adjustSize(); + disableResize(); +} + +MActionEditDialog::~MActionEditDialog() +{ +} + +void MActionEditDialog::setMethod(const Action::Method method) const +{ + _methods->setCurrentItem(method); + l_command->setEnabled(method == Action::Method_UserCommand); + in_command->setEnabled(method == Action::Method_UserCommand); + switch (method) + { + case Action::Method_KDE: + in_command->setText(""); + break; + case Action::Method_DefaultCommand: + in_command->setText(_methods->text(Action::Method_DefaultCommand)); + break; + case Action::Method_UserCommand: + in_command->setText(_userCommand); + break; + } +} + +void MActionEditDialog::slotDefault() +{ + setMethod(Action::Method_KDE); + c_runCommandBeforeAction->setChecked(false); + i_commandBeforeAction->clear(); + i_commandBeforeActionPause->setValue(10); +} + +void MActionEditDialog::slotMethodChange(int index) +{ + if (in_command->isEnabled()) + _userCommand = in_command->text(); + setMethod((Action::Method)index); +} + +void MActionEditDialog::slotOKClicked() +{ + Action::Method m; + QString c; + QString group = ks_actions->actionToConfigGroup(_action); + + // method + m = (Action::Method)_methods->currentItem(); + if (m == Action::Method_UserCommand) + c = in_command->text(); + else + c = ""; + ks_actions->setMethod(group, m, c); + + // command before action + KConfig *conf = kshutdownrc->config(); + conf->setGroup(group); + conf->writeEntry("RunCommandBeforeAction", c_runCommandBeforeAction->isChecked()); + conf->writeEntry("CommandBeforeAction", i_commandBeforeAction->text()); + conf->writeEntry("CommandBeforeActionPause", i_commandBeforeActionPause->value()); +} + +void MActionEditDialog::slotTestCommandBeforeAction() +{ + MiscUtils::runShellCommand( + i_commandBeforeAction->text(), + KProcess::DontCare, + i_commandBeforeActionPause->value() + ); +} diff --git a/kshutdown/mactioneditdialog.h b/kshutdown/mactioneditdialog.h new file mode 100644 index 0000000..afd851c --- /dev/null +++ b/kshutdown/mactioneditdialog.h @@ -0,0 +1,76 @@ +/* + mactioneditsdialog.h - An action editor + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MACTIONEDITDIALOG_H__ +#define __MACTIONEDITDIALOG_H__ + +#include "actions.h" + +#include <kdialogbase.h> + +class QCheckBox; +class QComboBox; + +class KIntNumInput; +class KLineEdit; +class KPushButton; + +/** + * @short An action editor. + * Used in @ref MSettingsDialog. + */ +class MActionEditDialog: public KDialogBase +{ + Q_OBJECT +public: + /** + * Constructor. + * @param parent A parent widget + * @param action An action type to edit + */ + MActionEditDialog(QWidget *parent, const Action::Type action); + + /** Destructor. */ + virtual ~MActionEditDialog(); +private: + Action::Type _action; + QComboBox *_methods; + QLabel + *l_command, + *l_title; + QString _userCommand; + KLineEdit *in_command; + // command before action + QCheckBox *c_runCommandBeforeAction; + KLineEdit *i_commandBeforeAction; + KIntNumInput *i_commandBeforeActionPause; + KPushButton *b_testCommandBeforeAction; + void setMethod(const Action::Method method) const; +protected slots: + /** + * Sets default values. + */ + virtual void slotDefault(); +private slots: + void slotMethodChange(int index); + void slotOKClicked(); + void slotTestCommandBeforeAction(); +}; + +#endif // __MACTIONEDITDIALOG_H__ diff --git a/kshutdown/main.cpp b/kshutdown/main.cpp new file mode 100644 index 0000000..4372136 --- /dev/null +++ b/kshutdown/main.cpp @@ -0,0 +1,393 @@ +/* + main.cpp - KShutDown + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "actions.h" +#include "configuration.h" +#include "extras.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "msystemtray.h" + +#include <qfileinfo.h> + +#include <kaboutdata.h> +#include <kcmdlineargs.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kuniqueapplication.h> + +// 0.1.x, 0.3.x, etc - Unstable, Beta +// 0.2.x, 0.4.x, etc - Stable +QString version = "1.0.4"; + +KAboutData aboutData( + "kshutdown", // internal name + "KShutDown", // full name + version, + I18N_NOOP("A Shut Down Utility for KDE"), // description + KAboutData::License_GPL_V2, // license + "(C) 2003-3000 Konrad Twardowski", // copyright + "", // text + "http://kshutdown.sourceforge.net/", // project page + "kdtonline@poczta.onet.pl" // bugs +); + +static KCmdLineOptions options[] = +{ + { "s", 0, 0 }, + { "shutdown", I18N_NOOP("Turn off computer"), 0 }, + { "h", 0, 0 }, + { "halt", I18N_NOOP("Turn off computer"), 0 }, + { "r", 0, 0 }, + { "reboot", I18N_NOOP("Restart computer"), 0 }, + { "k", 0, 0 }, + { "lock", I18N_NOOP("Lock session"), 0 }, + { "l", 0, 0 }, + { "logout", I18N_NOOP("End current session"), 0 }, + { "e", 0, 0 }, + { "extra <file>", I18N_NOOP("Execute \"Extras\" command (.desktop file)"), 0 }, + { "confirm", I18N_NOOP("Confirm command line action"), 0 }, + { "standard", I18N_NOOP("Show standard logout dialog"), 0 }, + { "c", 0, 0 }, + { "cancel", I18N_NOOP("Cancel an active action"), 0 }, + { "init", I18N_NOOP("Don't show window at startup"), 0 }, + { "test", I18N_NOOP("Enable test mode"), 0 }, + { "default", I18N_NOOP("Disable test mode"), 0 }, + { "+[time]", I18N_NOOP("Time; Examples: 01:30 - absolute time (HH:MM); " \ + "10 - number of minutes to wait from now"), 0 }, + KCmdLineLastOption +}; + +/** @short KShutDown application. */ +class KShutDownApplication: public KUniqueApplication +{ +public: + /** + * Constructor. + */ + KShutDownApplication() + : KUniqueApplication(), + _confirm(false), + isTimeArg(false), + now(false), + timeArgIsValid(false), + timeArg() + { + } + + /** + * Initializes the main window, and checks command line arguments. + */ + virtual int newInstance(); +private: + enum Mode { + Mode_Visible = -1, // show the main window at startup + Mode_Hidden = -2, // hide the main window at startup + Mode_Ok = 0, // success + Mode_Error = 1 // misc. failure + }; + bool + _confirm, + isTimeArg, + now, + timeArgIsValid; + QString timeArg; + int doExecAction(const Action::Type action); + int doProcessArgs(const KCmdLineArgs *args); +}; + +// public + +int KShutDownApplication::newInstance() +{ + // autostart + if (kapp->isRestored()) { + KConfig *config = kapp->config(); + config->setGroup("KShutDown"); + if (!config->readBoolEntry("Autostart", false)) { + quit(); + + return 0; + } + } + + static bool doShow = false; + bool doRaise = ks_main; + + // create main window (only one) + if (!ks_main) { + (void)new MMainWindow(); + kapp->setMainWidget(ks_main); + connect( + this, SIGNAL(aboutToQuit()), + ks_main, SLOT(deleteLater())); + } + + // check command line args + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + int retval = doProcessArgs(args); + args->clear(); + + if (MSystemTray::mode() != MSystemTray::Always) { + ks_main->show(); + if (doRaise) + ks_main->makeVisible(); + doShow = true; + + return Mode_Ok; + } + + // gui mode + if ((retval == Mode_Visible) || (retval == Mode_Hidden)) { + if ((retval == Mode_Visible) && (!kapp->isRestored() || doShow)) { + ks_main->show(); + if (doRaise) + ks_main->makeVisible(); + } + doShow = true; + + return Mode_Ok; + } + + return retval; // command line exit code +} + +// private + +int KShutDownApplication::doExecAction(const Action::Type action) { + if (!ks_main) + return Mode_Error; + + // use time arg. + if (timeArgIsValid) { + ks_main->cancel(); // cancel action (if any) + if (!now) { + ks_main->setAction(action); + ks_main->start(_confirm); + + return Mode_Ok; + } + } + + if (_confirm) { + if (ks_actions->execConfirm(action)) + return Mode_Ok; + } + else { + if (ks_actions->exec(action, action != Action::LockScreen)) + return Mode_Ok; + } + MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray); + + return Mode_Error; +} + +int KShutDownApplication::doProcessArgs(const KCmdLineArgs *args) { + if (!ks_main) + return Mode_Error; + + _confirm = args->isSet("confirm"); + isTimeArg = false; + now = false; + timeArg = ""; + timeArgIsValid = false; + + // read time arg. + bool absoluteTime = false; + int minutes = 0; + QDateTime dt = QDateTime::currentDateTime(); + if (args->count()) { + timeArg = args->arg(0); // first arg. is a "time" arg. + if (!timeArg.isEmpty()) { + isTimeArg = true; + + if (timeArg.upper() == "NOW") { + now = true; + timeArgIsValid = true; + } + else { + bool ok = false; + minutes = timeArg.toInt(&ok); // MM? + if (ok) { + if (minutes == 0) { + now = true; + timeArgIsValid = true; + } + } + else { + absoluteTime = true; +// FIXME: 2.0: AM/PM + QTime t = QTime::fromString(timeArg); + if (t.isValid() && !t.isNull()) { // HH:MM[:SS]? + ok = true; + dt.setTime(t); + } + } + if (!ok || !dt.isValid() || dt.isNull()) { + KMessageBox::error( + 0, + MiscUtils::HTML(i18n("Invalid time: <b>%1</b>").arg(timeArg)) + ); + } + else { + timeArgIsValid = true; + } + } + } + } + + // test mode + if (args->isSet("test")) + ks_main->setTestMode(true); + + // normal mode + if (args->isSet("default")) + ks_main->setTestMode(false); + + // cancel + if (args->isSet("cancel")) { + ks_main->cancel(); + + return Mode_Ok; + } + + // standard logout dialog + if (args->isSet("standard")) { + kapp->requestShutDown( + KApplication::ShutdownConfirmYes, + KApplication::ShutdownTypeDefault, + KApplication::ShutdownModeDefault + ); + + return Mode_Ok; + } + + // do nothing .. + if (isTimeArg && !timeArgIsValid) + return Mode_Error; + + // setup main window + if (timeArgIsValid) { + if (!now) { + if (MiscUtils::isRestricted("tab_time")) + return Mode_Error; + + ks_main->cancel(); // cancel action before "setDelayType" + if (absoluteTime) + { + ks_main->setDelayType(MMainWindow::DelayType_DateTime); + ks_main->setDate(dt.date()); + ks_main->setTime(dt.time()); + } + else + { + ks_main->setDelayType(MMainWindow::DelayType_TimeFromNow); + ks_main->setTime(QTime().addSecs(minutes * 60)); + } + } + ks_main->makeVisible(); + + // exec action below .. + } + + // extra + if (args->isSet("extra")) { + QString extrasCommand = args->getOption("extra"); + if (!extrasCommand.isEmpty()) { + QFileInfo extra(extrasCommand); + if (extra.exists()) { + ks_extras->setAction(extra.filePath(), extra.baseName()); + + return doExecAction(Action::Extras); + } + else { + qWarning("ERROR: File \"%s\" does not exist", extrasCommand.latin1()); + } + } + + return Mode_Error; + } + + // halt + if (args->isSet("shutdown") || args->isSet("halt")) + return doExecAction(Action::ShutDown); + + // reboot + if (args->isSet("reboot")) + return doExecAction(Action::Reboot); + + // lock + if (args->isSet("lock")) + return doExecAction(Action::LockScreen); + + // logout + if (args->isSet("logout")) + return doExecAction(Action::Logout); + + if (args->isSet("init")) + return Mode_Hidden; // init window, but don't show it + + return Mode_Visible; // gui mode +} + +// main + +int main(int argc, char **argv) +{ +// TODO: 2.0: init on demand? + aboutData.addCredit("Konrad Twardowski", "Author, Maintainer", "kdtonline@poczta.onet.pl", "http://www.kdtonline.prv.pl/"); + aboutData.addCredit("Caryn \"Hellchick\" Law", "Female Quake III Arena Announcer Voice Files", "hellchick ( at ) planetquake.com", "http://www.planetquake.com/voxfeminae/"); + aboutData.addCredit("Arend van Beelen jr.", "Ideas", "", "http://www.liacs.nl/~dvbeelen"); + aboutData.addCredit("Bram Schoenmakers", "Dutch translation", "bram_s ( at ) softhome.net"); + aboutData.addCredit("Charles Barcza", "Hungarian translation, blackPanther-Linux RPM", "kbarcza ( at ) blackpanther.hu", "http://www.blackpanther.hu/"); + aboutData.addCredit("Daniel Nylander", "Swedish translation"); + aboutData.addCredit("Elias Probst", "Gentoo ebuilds, German translation", "elias.probst ( at ) gmx.de"); + aboutData.addCredit("Giovanni Venturi", "Italian translation", "jumpyj ( at ) tiscali.it"); + aboutData.addCredit("Gregorio Guidi", "Patches"); + aboutData.addCredit("Guido Tack", "Ideas", "", "http://www.ps.uni-sb.de/~tack"); + aboutData.addCredit("Jozef Riha", "Slovak translation", "zefo ( at ) seznam.cz"); + aboutData.addCredit("Karol Adamczyk [rampage]", "Gentoo ebuild"); + aboutData.addCredit("Matrix", "SuSE RPM", "matrix ( at ) ehelp.pl"); + aboutData.addCredit("Michael Goettsche", "Bug reports"); + aboutData.addCredit("Paulo Zambon", "Portuguese Brazil translation", "pzambon ( at ) astornet.com.br"); + aboutData.addCredit("Philipp Weissenbacher"); + aboutData.addCredit("Piotr Budny"); + aboutData.addCredit("Quique", "Spanish translation", "quique ( at ) sindominio.net"); + aboutData.addCredit("Robert Kratky", "Czech translation", "kratky ( at ) rob.cz"); + aboutData.addCredit("Romain Beauxis", "Debian Package", "", "http://www.cti.ecp.fr/~beauxir5/debian/"); + aboutData.addCredit("Spider (ALT Linux)", "Russian translation"); + aboutData.addCredit("Stephen Ellwood", "Panel Applet, User Interface"); + aboutData.addCredit("Zdenko Podobny", "Slovak translation, Mandrake RPM", "zdpo ( at ) mailbox.sk"); + aboutData.addCredit("KDE-APPS.org", "", "", "http://www.kde-apps.org/"); + aboutData.addCredit("Lock/Logout Applet Team"); + aboutData.addCredit("SourceForge.net", "", "", "http://www.sourceforge.net/"); + + // init command line + KCmdLineArgs::init(argc, argv, &aboutData); + KCmdLineArgs::addCmdLineOptions(options); + + if (!KUniqueApplication::start()) + return 0; + + // init application + KShutDownApplication software; + + // main loop + return software.exec(); +} diff --git a/kshutdown/miscutils.cpp b/kshutdown/miscutils.cpp new file mode 100644 index 0000000..f16238d --- /dev/null +++ b/kshutdown/miscutils.cpp @@ -0,0 +1,244 @@ +/* + miscutils.cpp - Misc functions + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include <sys/types.h> + +#include "configuration.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "msystemtray.h" + +#include <qlayout.h> +#include <qtooltip.h> +#include <qwhatsthis.h> + +#include <kaction.h> +#include <kdebug.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <knotifyclient.h> +#include <kpassivepopup.h> +#include <kpushbutton.h> +#include <krun.h> +#include <kwindowinfo.h> + +// public + +void MiscUtils::closeCDTray() +{ + if (kshutdownrc->cdTrayClose) + runShellCommand(kshutdownrc->cdTrayCloseCommand, KProcess::Block); +} + +void MiscUtils::customMessage(const QString &text, const QString &testCommand) +{ + QString c; + if (testCommand.isNull()) + c = kshutdownrc->customMessageCommand; + else + c = testCommand; + + if (kshutdownrc->customMessageEnabled) + { + c.replace("%appname", "KShutDown"); + c.replace("%text", text); + c.replace("%title", ks_main->caption()); + runShellCommand(c); + } +} + +QString MiscUtils::formatDateTime(const int secs, const QString &format) +{ + if ((secs >= 86400) || (secs < 0)) // 24h + return ">24"; + + int h = secs / 3600; + int m = (secs / 60) % 60; + int s = secs % 60; + QTime t(h, m, s); + + if (format.isNull()) + return t.toString(); + + return t.toString(format); +} + +QString MiscUtils::formatDateTime(const QDateTime &dt) +{ + QDateTime now = QDateTime::currentDateTime(); + + return + dt.toString( + KGlobal::locale()->use12Clock() + ? "hh:mm ap, dddd" + : "hh:mm, dddd" + ) + + " (+" + formatDateTime(now.secsTo(dt), "hh:mm") + ")"; +} + +bool MiscUtils::isRestricted(const QString &key) +{ + return !kapp->authorize("kshutdown_" + key); +} + +void MiscUtils::notifyUser(const int secs) +{ + if ((secs < 60) && (secs % 3 == 0)) { + KWindowInfo::showMessage(ks_main, i18n("Warning"), SmallIcon("messagebox_warning"), 1000); + } + + switch (secs) + { + case 3600: // 1 hour + customMessage(i18n("1 hour warning")); + break; + case 300: // 5 minutes + notifyUser("kshutdown-5m", i18n("5 minutes warning")); + customMessage(i18n("5 minutes warning")); + break; + case 60: // 1 minute + notifyUser("kshutdown-1m", i18n("1 minute warning")); + customMessage(i18n("1 minute warning")); + break; + case 10: // 10 seconds + customMessage(i18n("10 seconds warning")); + break; + } +} + +void MiscUtils::passiveMessage(const QString &text, QWidget *parent) { + KPassivePopup *popup = KPassivePopup::message( + "KShutDown", + text, + SmallIcon("kshutdown"), + parent + ); + if (parent == 0) + popup->move(0, 0); +} + +void MiscUtils::plug(const KAction *action, KPushButton *pushButton) { + pushButton->disconnect(); // disconnect all + pushButton->connect(pushButton, SIGNAL(clicked()), action, SLOT(activate())); + pushButton->setIconSet(action->iconSet()); + QString text = action->text(); + if (text.contains("%1")) + text = text.arg(action->shortcutText()); + pushButton->setText(text); +} + +bool MiscUtils::runCommand(const QString &command) +{ + pid_t pid = KRun::run(command, KURL::List()); + + if (pid) + return true; // ok + + showRunErrorMessage(command); + + return false; // error +} + +void MiscUtils::runCommandBeforeAction(const QString &configEntry) +{ + KConfig *conf = kshutdownrc->config(); + + if (!conf->hasGroup(configEntry)) + return; + + conf->setGroup(configEntry); + + if (!conf->readBoolEntry("RunCommandBeforeAction", false)) + return; + + QString command = conf->readEntry("CommandBeforeAction", ""); + int pause = conf->readNumEntry("CommandBeforeActionPause", 10); + if ((pause < 0) || (pause > 300)) + pause = 10; + runShellCommand(command, KProcess::DontCare, pause); +} + +bool MiscUtils::runShellCommand(const QString &command, const KProcess::RunMode mode, const int pause) +{ + if (command.isEmpty()) + return false; + + KProcess *p = new KProcess(); + if (!p) + { + showRunErrorMessage(command); + + return false; // error + } + + bool retVal = true; // assume ok + + p->setUseShell(true); + *p << command; + if (!p->start(mode)) + { + showRunErrorMessage(command); + + retVal = false; // error + } + else + { + // pause + if (pause > 0) + p->wait(pause); + } + delete p; + + return retVal; +} + +void MiscUtils::setAutostart(const bool yes) { + KConfig *config = kapp->config(); + config->setGroup("KShutDown"); + config->writeEntry("Autostart", yes); +} + +void MiscUtils::setHint(QWidget *widget, const QString &value) +{ + QToolTip::add(widget, value); + QWhatsThis::add(widget, value); +} + +void MiscUtils::showRunErrorMessage(const QString &command) +{ + notifyUser("kshutdown-runerror", i18n("Could not run \"%1\"!").arg(command)); +} + +void MiscUtils::showTestMessage(const QString &message) +{ + KMessageBox::information(0, message, i18n("Test")); +} + +// private + +void MiscUtils::notifyUser(const QString &name, const QString &text) +{ + WId id; + if (MSystemTray::isInstance()) + id = ks_tray->winId(); + else + id = ks_main->winId(); + KNotifyClient::event(id, name, text); +} diff --git a/kshutdown/miscutils.h b/kshutdown/miscutils.h new file mode 100644 index 0000000..db2eb47 --- /dev/null +++ b/kshutdown/miscutils.h @@ -0,0 +1,135 @@ +/* + miscutils.h - Misc functions + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MISCUTILS_H__ +#define __MISCUTILS_H__ + +#include <qdatetime.h> + +#include <kprocess.h> + +class KAction; +class KPushButton; + +/** @short Misc functions. */ +class MiscUtils +{ +public: + /** + * Closes the CD-ROM tray (if this option is enabled). + */ + static void closeCDTray(); + + /** + * Displays a custom message. + * @param text A text to display + * @param testCommand A command to execute (used internally in settings dialog to test entered command) + */ + static void customMessage(const QString &text, const QString &testCommand = QString::null); + + /** + * Converts seconds to time string. + * @param secs A number of seconds to convert + * @param format A date/time format + * @return Converted seconds or ">24", if @p secs >= 86400 + */ + static QString formatDateTime(const int secs, const QString &format = QString::null); + + /** + * Converts seconds to time string. + * @param dt A date/time to convert + * @return Converted seconds or ">24", if @p secs >= 86400 + */ + static QString formatDateTime(const QDateTime &dt); + + inline static QString HTML(const QString &text) { + return ("<qt>" + text + "</qt>"); + } + + inline static QString HTML(QString &text) { + text.prepend("<qt>"); + text.append("</qt>"); + + return text; + } + + /** + * Returns @c true if function (@p key) is restricted (KDE Kiosk). + * The key value is read from the configuration file + * (usually /usr/share/config/kshutdownrc). + * See Handbook (F1) for details. + */ + static bool isRestricted(const QString &key); + + /** + * Visual and sound notifications. + * @param secs A number of seconds to action + */ + static void notifyUser(const int secs); + + static void passiveMessage(const QString &text, QWidget *parent = 0); + + static void plug(const KAction *action, KPushButton *pushButton); + + /** + * Executes a command. + * @param command A command to execute + * @return @c true if successfull; otherwise @c false + */ + static bool runCommand(const QString &command); + + /** + * Executes a shell command before the specified action. + * @param configEntry A configuration entry (e.g. <i>"Shut Down"</i>) + */ + static void runCommandBeforeAction(const QString &configEntry); + + /** + * Executes a shell command. + * @param command A shell command to execute + * @param mode A run mode (@c KProcess::DontCare by default) + * @param pause A timeout in seconds (no timeout by default) + * @return @c true if successfull; otherwise @c false + */ + static bool runShellCommand(const QString &command, const KProcess::RunMode mode = KProcess::DontCare, const int pause = -1); + + static void setAutostart(const bool yes); + + /** + * Sets "tool tip text" and "what's this text" of @p widget to @p value. + */ + static void setHint(QWidget *widget, const QString &value); + + /** + * Displays a "KRun" error message in a passive message. + * @param command A command that failed + */ + static void showRunErrorMessage(const QString &command); + + /** + * Displays an information if KShutDown is in the <b>Test Mode</b>. + * @param message A message to display + */ + static void showTestMessage(const QString &message); + +private: + static void notifyUser(const QString &name, const QString &text); +}; + +#endif // __MISCUTILS_H__ diff --git a/kshutdown/mmainwindow.cpp b/kshutdown/mmainwindow.cpp new file mode 100644 index 0000000..dea27fc --- /dev/null +++ b/kshutdown/mmainwindow.cpp @@ -0,0 +1,954 @@ +/* + mmainwindow.cpp - The main window + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "appobserver.h" +#include "configuration.h" +#include "confirmation.h" +#include "extras.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "mmessagedialog.h" +#include "msettingsdialog.h" +#include "mstatstab.h" +#include "msystemtray.h" +#include "progressbar.h" +#include "systemconfig.h" + +#include <qdatetimeedit.h> +#include <qfile.h> +#include <qhbox.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qtimer.h> +#include <qtooltip.h> +#include <qvgroupbox.h> +#include <qwhatsthis.h> + +#include <dcopclient.h> +#include <kaction.h> +#include <kdebug.h> +#include <kiconloader.h> +#include <kglobalaccel.h> +#include <kkeydialog.h> +#include <klocale.h> +#include <kmenubar.h> +#include <kmessagebox.h> +#include <knotifydialog.h> +#include <kpopupmenu.h> +#include <kpushbutton.h> +#include <kwin.h> +#include <kdesktopfile.h> +#include <kmimetype.h> + +MMainWindow *MMainWindow::_instance = 0; + +MMainWindow::MMainWindow() + // Iface + : DCOPObject("KShutdownIface"), + KMainWindow(0, "MMainWindow", WStyle_ContextHelp), + _showMinimizeInfo(true), + _oldSec(-1), + _delayType(DelayType_Now) +{ + _instance = this; + connect(kapp, SIGNAL(aboutToQuit()), SLOT(slotAboutToQuit())); + + // init date/time + dt_end = QDateTime(); + dt_start = QDateTime(); + + // action timeout timer + _timer = new QTimer(this); + connect(_timer, SIGNAL(timeout()), SLOT(slotCheckTime())); + + // init widgets + setCentralWidget(initWidgets()); + initActions(); + initMainMenu(); + + // init DCOP + DCOPClient *client = kapp->dcopClient(); + client->registerAs(kapp->name(), false); + client->setDefaultObject(objId()); // KShutdownIface + + KConfig *config = kapp->config(); + config->setGroup("Extras"); + QString extrasCommand = config->readEntry("Command", QString::null); + QString extrasDescription = config->readEntry("Description", QString::null); + if (!extrasCommand.isEmpty() || QFile::exists(extrasCommand)) { + setAction(Action::Extras); + + QIconSet extrasIcon; + QString mimeType; + mimeType = KMimeType::findByPath(extrasCommand)->name(); + if (mimeType != "application/x-desktop") + extrasIcon = QIconSet(KMimeType::pixmapForURL(KURL::fromPathOrURL(extrasCommand))); + else { + // application/x-desktop + KDesktopFile *desktopFile = new KDesktopFile(extrasCommand, true); + if (desktopFile->getConfigState() != KConfigBase::NoAccess) + extrasIcon = QIconSet(SmallIcon(desktopFile->readIcon())); + delete desktopFile; + } + ks_extras->setAction(extrasCommand, extrasDescription, &extrasIcon); + } + else { + setAction((Action::Type)kshutdownrc->generalAction); + } + setDelayType((DelayType)kshutdownrc->generalDelayType); + + MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray); + + setCaptions(); + slotUpdateTimeInfo(); + + setFixedHeight(layout()->minimumSize().height()); +} + +MMainWindow::~MMainWindow() +{ + KConfig *config = kapp->config(); + config->setGroup("Extras"); + config->writeEntry("Command", ks_extras->fileToExecute()); + config->writeEntry("Description", ks_extras->getActionDescription()); + +// TODO: 2.0: remember/restore time + kshutdownrc->generalAction = ks_actions->current(); + kshutdownrc->generalDelayType = cb_delayTypes->currentItem(); + kshutdownrc->writeConfig(); +} + +void MMainWindow::setDelayType(const DelayType value) +{ + // kdDebug() << "MMainWindow::setDelayType: " << value << endl; + + if (MiscUtils::isRestricted("tab_time")) + { + _delayType = DelayType_Now; + cb_delayTypes->setEnabled(false); + } + else + { + _delayType = value; + cb_delayTypes->setEnabled(true); + } + + cb_delayTypes->setCurrentItem(_delayType); + + switch (_delayType) + { + case DelayType_Now: + _dateTimeEdit->dateEdit()->setEnabled(false); + _dateTimeEdit->timeEdit()->setEnabled(false); + _dateTimeEdit->show(); + _appObserver->hide(); + l_statusLine->hide(); + break; + case DelayType_TimeFromNow: + QWhatsThis::add(_dateTimeEdit, i18n("Enter hour and minute.")); + _dateTimeEdit->dateEdit()->setEnabled(false); + _dateTimeEdit->timeEdit()->setEnabled(true); + _dateTimeEdit->timeEdit()->setDisplay(QTimeEdit::Hours | QTimeEdit::Minutes); + _dateTimeEdit->timeEdit()->setTime(QTime()); + _dateTimeEdit->show(); + _appObserver->hide(); + l_statusLine->show(); + break; + case DelayType_DateTime: + QWhatsThis::add(_dateTimeEdit, i18n("Enter date and time.")); + _dateTimeEdit->dateEdit()->setEnabled(true); + _dateTimeEdit->timeEdit()->setEnabled(true); + _dateTimeEdit->timeEdit()->setDisplay( + KGlobal::locale()->use12Clock() + ? (QTimeEdit::Hours | QTimeEdit::Minutes | QTimeEdit::AMPM) + : (QTimeEdit::Hours | QTimeEdit::Minutes) + ); + _dateTimeEdit->dateEdit()->setDate(QDate::currentDate()); + _dateTimeEdit->timeEdit()->setTime(QTime::currentTime()); + _dateTimeEdit->show(); + _appObserver->hide(); + l_statusLine->show(); + break; + case DelayType_OnAppExit: + _dateTimeEdit->hide(); + _appObserver->show(); + _appObserver->refresh(); + l_statusLine->hide(); + break; + } +} + +void MMainWindow::setTime(const QTime &time) +{ + _dateTimeEdit->timeEdit()->setTime(QTime(time.hour(), time.minute(), 0)); +} + +void MMainWindow::setAction(const Action::Type action) +{ + // kdDebug() << "MMainWindow::setAction: " << ks_actions->getName(action) << endl; + + if (!ks_actions->isEnabled(action)) + { +// FIXME: 2.0: "Start" button incorectly disabled/enabled after config change +// FIXME: 2.0: confusing + _startAction->setEnabled(false); + + return; + } + _startAction->setEnabled(true); + + ks_actions->setCurrent(action); + cb_actions->setCurrentItem(action - 1); + switch (action) + { + case Action::Nothing: + case Action::ShutDown: + case Action::Reboot: + case Action::LockScreen: + case Action::Logout: + ks_extras->button()->hide(); + break; + case Action::Extras: + ks_extras->button()->show(); + break; + } +} + +void MMainWindow::setDate(const QDate &date) +{ + _dateTimeEdit->dateEdit()->setDate(date); +} + +void MMainWindow::start(const bool confirmation) { + if (ks_actions->active()) + return; + + // kdDebug() << "MMainWindow::start" << endl; + + // check if selected process still exists + if ((_delayType == DelayType_OnAppExit) && !_appObserver->isValid()) + return; + + // display information if user didn't selected any "extras" command + if ((ks_actions->current() == Action::Extras) && ks_extras->fileToExecute().isNull()) + { + KMessageBox::information( + this, + MiscUtils::HTML(i18n("Click the <b>Select a command...</b> button first.")) + ); + + return; + } + + if (confirmation) + { + if (!Confirmation::confirm(ks_actions->current(), getTimeInfo())) + return; // action not confirmed by user; do nothing + } + + // immediate action + if ( + (_delayType == DelayType_Now) || + ( + (_delayType == DelayType_TimeFromNow) && + (_dateTimeEdit->timeEdit()->time().hour() == 0) && + (_dateTimeEdit->timeEdit()->time().minute() == 0) + ) + ) + { + ks_actions->execCurrent(); + + return; + } + + ks_actions->setActive(true); + + MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray); + + setWidgetsEnabled(false); // disable widgets + + slotUpdateTimeInfo(); + + _oldSec = -1; + + if (MSystemTray::isInstance()) + ks_tray->setActive(true); + + if ((_delayType != DelayType_OnAppExit) && (dt_end < dt_start)) + { + QString selDT = i18n("Selected date/time: %1").arg("<b>" + KGlobal::locale()->formatDateTime(dt_end, false, true)+ "</b>"); + QString curDT = i18n("Current date/time: %1").arg("<b>" + KGlobal::locale()->formatDateTime(dt_start, false, true) + "</b>"); + + cancel(); + KMessageBox::error( + 0, + MiscUtils::HTML( + i18n("Selected date/time is earlier than current date/time!") + + "<br><br>" + + selDT + "<br>" + + curDT + "<br>" \ + "<br>" + + i18n("Action cancelled!") + ) + ); + + return; + } + + int secsTo = dt_start.secsTo(dt_end); + + // setup progress bar + if (kshutdownrc->progressBarEnabled) { + ProgressBar *progressBar = ProgressBar::getInstance(); + progressBar->setValues(0, secsTo); + progressBar->show(); + } + + if (_delayType == DelayType_OnAppExit) + { + _timer->start(2000); + setCaptions(QString::null, _appObserver->getInfo()); + } + else + { + _timer->start(500); // this timer value is good .. + updateTimeInfo(secsTo); + } +} + +void MMainWindow::cancel() +{ + MMessageDialog::cancel(); + + if (!ks_actions->active() && (_delayType != DelayType_OnAppExit)) + return; + + // kdDebug() << "MMainWindow::cancel" << endl; + + ks_actions->setActive(false); + MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray); + + _timer->stop(); + setCaptions(); + if (MSystemTray::isInstance()) + ks_tray->setActive(false); + + ProgressBar::freeInstance(); + + setWidgetsEnabled(true); +// TODO: 2.0: MiscUtils::customMessage(i18n("Action cancelled!")); +} + +bool MMainWindow::shutDown() +{ + return ks_actions->exec(Action::ShutDown); +} + +bool MMainWindow::shutdown() +{ + return shutDown(); + //.........^^ +} + +bool MMainWindow::reboot() +{ + return ks_actions->exec(Action::Reboot); +} + +bool MMainWindow::lockScreen() +{ + return ks_actions->exec(Action::LockScreen, false); +} + +bool MMainWindow::logout() +{ + return ks_actions->exec(Action::Logout); +} + +void MMainWindow::configure() +{ + if (MSettingsDialog::isActive()) + return; + + new MSettingsDialog(this); + MSettingsDialog::freeInstance(); + + _showMinimizeInfo = true; +} + +QString MMainWindow::getStatusInfo() +{ + return caption(); +} + +void MMainWindow::makeInvisible() { + if (MSystemTray::isInstance()) + ks_tray->hide(); + hide(); +} + +void MMainWindow::makeVisible() +{ + MSystemTray::setMode((MSystemTray::Mode)kshutdownrc->systemTray); + show(); + WId id = winId(); + KWin::setOnDesktop(id, KWin::currentDesktop()); + KWin::deIconifyWindow(id); + raise(); +} + +void MMainWindow::setTestMode(bool yes) +{ + if (ks_actions->testMode() == yes) + return; + + ks_actions->setTestMode(yes); + setCaptions(); // add/remove "[ TEST MODE ]" to/from window caption. + MiscUtils::customMessage(ks_actions->testMode() ? i18n("Test mode enabled") : i18n("Test mode disabled")); +} + +QString MMainWindow::getTimeInfo() +{ + // start time = now + dt_start.setDate(QDate::currentDate()); + dt_start.setTime(QTime::currentTime()); + // end time = start time + dt_end.setDate(dt_start.date()); + dt_end.setTime(dt_start.time()); + + // round down msec + int ms = dt_end.time().msec(); + if (ms > 0) + dt_end.setTime(dt_end.time().addMSecs(-ms)); + + switch (_delayType) + { + case DelayType_Now: + case DelayType_OnAppExit: + break; + case DelayType_TimeFromNow: + // end time = start time + delay time + dt_end = dt_end.addSecs( + (_dateTimeEdit->timeEdit()->time().hour() * 3600) + + (_dateTimeEdit->timeEdit()->time().minute() * 60) + ); + break; + case DelayType_DateTime: + // end time = selected date/time + dt_end.setDate(_dateTimeEdit->dateEdit()->date()); + dt_end.setTime(_dateTimeEdit->timeEdit()->time()); + break; + } + + if (_delayType == DelayType_Now) + return i18n("No Delay"); + + if (_delayType == DelayType_OnAppExit) + return QString::null; + + return MiscUtils::formatDateTime(dt_end.addSecs(1)); +} + +void MMainWindow::initMainMenu() +{ + KMenuBar *mainMenu = menuBar(); + + // file + KPopupMenu *pm_file = new KPopupMenu(this); + _statisticsAction->plug(pm_file); + pm_file->insertSeparator(); + if (MiscUtils::isRestricted("tab_stats")) + _statisticsAction->setEnabled(false); + +// TODO: 2.0: improve kiosk support + KStdAction::quit(this, SLOT(slotQuit()), actionCollection())->plug(pm_file); + mainMenu->insertItem(i18n("&File"), pm_file); + + // actions + KPopupMenu *pm_actions = new KPopupMenu(this); + pm_actions->insertTitle(SmallIcon("messagebox_warning"), i18n("No Delay")); + _shutDownAction->plug(pm_actions); + _rebootAction->plug(pm_actions); + _lockScreenAction->plug(pm_actions); + _logoutAction->plug(pm_actions); + pm_actions->insertSeparator(); + _cancelAction->plug(pm_actions); + mainMenu->insertItem(i18n("&Actions"), pm_actions); + + // settings + KPopupMenu *pm_settings = new KPopupMenu(this); + _checkSystemConfigurationAction->plug(pm_settings); + pm_settings->insertSeparator(); + pm_settings->insertItem(SmallIcon("configure_shortcuts"), i18n("Configure Global Shortcuts..."), this, SLOT(slotConfigureGlobalShortcuts())); + KStdAction::keyBindings(this, SLOT(slotConfigureShortcuts()), actionCollection())->plug(pm_settings); + pm_settings->insertSeparator(); + KStdAction::configureNotifications(this, SLOT(slotConfigureNotifications()), actionCollection())->plug(pm_settings); + _configureKShutDownAction->plug(pm_settings); + mainMenu->insertItem(i18n("&Settings"), pm_settings); + + // help + mainMenu->insertItem(SmallIcon("help"), i18n("&Help"), helpMenu()); +} + +void MMainWindow::initActions() +{ + // shut down actions + + ac_shutDown = new KActionCollection(this, this); + + _lockScreenAction = new KAction( + ks_actions->getName(Action::LockScreen), + ks_actions->getIcon(Action::LockScreen), KShortcut(), + ks_actions, SLOT(slotLockScreen()), + ac_shutDown, "kshutdown_lockscreen" + ); + + _logoutAction = new KAction( + ks_actions->getName(Action::Logout), + ks_actions->getIcon(Action::Logout), KShortcut(), + ks_actions, SLOT(slotLogout()), + ac_shutDown, "kshutdown_logout" + ); + + _rebootAction = new KAction( + ks_actions->getName(Action::Reboot), + ks_actions->getIcon(Action::Reboot), KShortcut(), + ks_actions, SLOT(slotReboot()), + ac_shutDown, "kshutdown_reboot" + ); + + _shutDownAction = new KAction( + ks_actions->getName(Action::ShutDown), + ks_actions->getIcon(Action::ShutDown), KShortcut(), + ks_actions, SLOT(slotShutDown()), + ac_shutDown, "kshutdown_shutdown" + ); + + // standard actions + + _cancelAction = new KAction( + i18n("C&ancel"), + "cancel", KShortcut(Key_Escape), + this, SLOT(slotCancel()), + actionCollection(), "kshutdown_cancelaction" + ); + _cancelAction->setEnabled(false); + + _checkSystemConfigurationAction = new KAction( + i18n("Check &System Configuration"), + "button_ok", KShortcut(), + this, SLOT(slotCheckSystemConfig()), + actionCollection(), "kshutdown_checksystemconfiguration" + ); + + _configureKShutDownAction = KStdAction::preferences(this, SLOT(slotConfigureKShutDown()), actionCollection()); + + _startAction = new KAction( + i18n("&Start"), + "button_ok", KShortcut(Key_Return), + this, SLOT(slotStart()), + actionCollection(), "kshutdown_startaction" + ); + MiscUtils::plug(_startAction, b_startStop); + + _statisticsAction = new KAction( + i18n("&Statistics"), + KShortcut(Key_F2), + this, SLOT(slotStats()), + actionCollection(), "kshutdown_statistics" + ); + + actionCollection()->readShortcutSettings(); + ac_shutDown->readShortcutSettings(); + + // init global actions/shortcuts + _globalAccel = new KGlobalAccel(this); + _globalAccel->insert( + "kshutdown_shutdown", + ks_actions->getName(Action::ShutDown), + QString(), + 0, 0, ks_actions, SLOT(slotShutDown()) + ); + _globalAccel->insert( + "kshutdown_reboot", + ks_actions->getName(Action::Reboot), + QString(), + 0, 0, ks_actions, SLOT(slotReboot()) + ); + _globalAccel->insert( + "kshutdown_lockscreen", + ks_actions->getName(Action::LockScreen), + QString(), + 0, 0, ks_actions, SLOT(slotLockScreen()) + ); + _globalAccel->insert( + "kshutdown_logout", + ks_actions->getName(Action::Logout), + QString(), + 0, 0, ks_actions, SLOT(slotLogout()) + ); + _globalAccel->readSettings(); + _globalAccel->updateConnections(); +} + +QWidget *MMainWindow::initWidgets() +{ + QWidget *w = new QWidget(this); + QVBoxLayout *l = new QVBoxLayout(w, 5); + + QVGroupBox *gb_actions = new QVGroupBox(i18n("Select an &action to perform"), w); + gb_actions->setInsideSpacing(0); + // actions combo box + cb_actions = new QComboBox(gb_actions, "QComboBox::cb_actions"); + cb_actions->setFocusPolicy(StrongFocus); + cb_actions->insertItem(ks_actions->getIcon(Action::ShutDown), ks_actions->getName(Action::ShutDown)); + cb_actions->insertItem(ks_actions->getIcon(Action::Reboot), ks_actions->getName(Action::Reboot)); + cb_actions->insertItem(ks_actions->getIcon(Action::LockScreen), ks_actions->getName(Action::LockScreen)); + cb_actions->insertItem(ks_actions->getIcon(Action::Logout), ks_actions->getName(Action::Logout)); + cb_actions->insertItem(ks_actions->getIcon(Action::Extras), i18n("Extras")); + QWhatsThis::add(cb_actions, i18n("Select an action to perform at the selected time.")); + connect(cb_actions, SIGNAL(activated(int)), SLOT(slotActionChange(int))); + + // extras + ks_extras->createButton(gb_actions); + + QVGroupBox *gb_delayValues = new QVGroupBox(i18n("S&elect a time"), w); + gb_delayValues->setInsideSpacing(0); + + // delay type combo box + cb_delayTypes = new QComboBox(gb_delayValues, "QComboBox::cb_delayTypes"); + cb_delayTypes->setFocusPolicy(StrongFocus); + cb_delayTypes->insertItem(SmallIcon("messagebox_warning"), i18n("No Delay")); + cb_delayTypes->insertItem(SmallIcon("clock"), i18n("Time From Now (HH:MM)")); + cb_delayTypes->insertItem(SmallIcon("date"), i18n("At Date/Time")); + cb_delayTypes->insertItem(SmallIcon("misc"), i18n("When selected application exit")); + if (MiscUtils::isRestricted("tab_time")) + QWhatsThis::add(cb_delayTypes, i18n("Disabled by the Administrator.")); + else + QWhatsThis::add(cb_delayTypes, i18n("Select the type of delay.")); + connect(cb_delayTypes, SIGNAL(activated(int)), SLOT(slotDelayTypeChange(int))); + + // date/time edit + _dateTimeEdit = new QDateTimeEdit(gb_delayValues, "QDateTimeEdit::_dateTimeEdit"); + _dateTimeEdit->setAutoAdvance(true); + _dateTimeEdit->dateEdit()->setMinValue(QDate::currentDate()); + setDate(QDate::currentDate()); + connect(_dateTimeEdit, SIGNAL(valueChanged(const QDateTime &)), SLOT(slotUpdateTimeInfo())); + + // app observer/killer + _appObserver = new AppObserver(gb_delayValues); + + // status line + l_statusLine = new QLabel(gb_delayValues); + QWhatsThis::add(l_statusLine, i18n("Selected time.")); + + l->addWidget(gb_actions); + l->addWidget(gb_delayValues); + l->addStretch(5); + + // start/stop action button + b_startStop = new KPushButton(w, "KPushButton::b_startStop"); + b_startStop->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed)); + b_startStop->setDefault(true); // enter key + l->addWidget(b_startStop); + + return w; +} + +void MMainWindow::setCaptions(const QString &remainingTime, const QString &selectedTime) +{ + // window tool tip + QString s; + if (ks_actions->active()) + { + if (remainingTime.isNull()) + s = selectedTime + " > " + ks_actions->getCurrentName(); + else + s = remainingTime + " > " + selectedTime + " - " + ks_actions->getCurrentName(); + } + if (ks_actions->testMode()) + s += " [" + i18n("TEST MODE") + "]"; + setCaption(s); + + // system tray tool tip + if (ks_actions->active()) { + s = "<br>"; + s += i18n("Remaining time: <b>%1</b>").arg(remainingTime.isNull() ? i18n("Unknown") : remainingTime) + "<br>"; + s += i18n("Selected time: <b>%1</b>").arg(selectedTime) + "<br>"; + s += i18n("Selected action: <b>%1</b>").arg(ks_actions->getCurrentName()) + "<br>"; + if (ks_actions->testMode()) + { + s += "<br>" + i18n("<b>Note: </b> The test mode is enabled") + "<br>"; + } + } + else { + s = ""; + } + if (MSystemTray::isInstance()) { + QToolTip::add( + ks_tray, + MiscUtils::HTML("<b>KShutDown</b><br>" + s) + ); + } + if (ProgressBar::isInstance()) { + QToolTip::add( + ProgressBar::getInstance(), + MiscUtils::HTML("<b>KShutDown</b><br>" + s) + ); + } +} + +void MMainWindow::setWidgetsEnabled(const bool yes) +{ + cb_delayTypes->setEnabled(yes); + _dateTimeEdit->setEnabled(yes); + cb_actions->setEnabled(yes); + ks_extras->button()->setEnabled(yes); + _appObserver->setWidgetsEnabled(yes); + + // actions + _cancelAction->setEnabled(!yes); + _startAction->setEnabled(yes); + if (yes) + MiscUtils::plug(_startAction, b_startStop); + else + MiscUtils::plug(_cancelAction, b_startStop); +} + +void MMainWindow::updateTimeInfo(const int secs) +{ + setCaptions( + MiscUtils::formatDateTime(secs), + KGlobal::locale()->formatDateTime(dt_end, true, true) + ); + + // update progress bar + if (ProgressBar::isInstance()) { + ProgressBar *progressBar = ProgressBar::getInstance(); + progressBar->setProgress(secs); + } +} + +void MMainWindow::slotCancel() +{ + cancel(); +} + +void MMainWindow::slotStart() { + start(true); +} + +void MMainWindow::slotQuit() +{ + ks_actions->setTotalExit(true); // do not hide window in the system tray + close(); +} + +void MMainWindow::slotAboutToQuit() +{ + ks_actions->setTotalExit(true); +} + +void MMainWindow::slotCheckTime() +{ + // check process + if (_delayType == DelayType_OnAppExit) + { + if (!_appObserver->isSelectedProcessRunning()) { + // restore window + makeVisible(); + // show warning message + if (kshutdownrc->warningMessageEnabled) + { + cancel(); + if (MMessageDialog::show(30)) + ks_actions->execCurrent(); + } + else + { + ks_actions->totalExec(); + } + } + + return; + } + + // check timeout + + QDateTime now = QDateTime::currentDateTime(); + + int curSec = now.time().second(); + + if (curSec == _oldSec) + return; // time not changed since last check + + _oldSec = curSec; + + // timeout + if (now >= dt_end) + { + // restore window + makeVisible(); + + ks_actions->totalExec(); + + return; + } + + int secsTo = now.secsTo(dt_end); + updateTimeInfo(secsTo); + + // show warning message + if ( + kshutdownrc->warningMessageEnabled && + (secsTo <= (kshutdownrc->warningMessageDelay * 60)) + ) + { + // restore window + makeVisible(); + // show warning message dialog + cancel(); + if (MMessageDialog::show(secsTo)) + ks_actions->execCurrent(); + + return; + } + + MiscUtils::notifyUser(secsTo); +} + +void MMainWindow::slotDelayTypeChange(int index) { + setDelayType((DelayType)index); + slotUpdateTimeInfo(); +} + +void MMainWindow::slotConfigureGlobalShortcuts() { + if (KKeyDialog::configure(_globalAccel, false, this)) { + _globalAccel->writeSettings(0, true); + _globalAccel->updateConnections(); + } +} + +void MMainWindow::slotConfigureKShutDown() { + configure(); +} + +void MMainWindow::slotConfigureNotifications() { + KNotifyDialog::configure(this); +} + +void MMainWindow::slotConfigureShortcuts() +{ + KKeyDialog *dialog = new KKeyDialog(false, this); + dialog->insert(actionCollection()); + dialog->insert(ac_shutDown); + dialog->configure(true); + delete dialog; + + actionCollection()->writeShortcutSettings(); + ac_shutDown->writeShortcutSettings(); +} + +void MMainWindow::slotActionChange(int index) +{ + setAction((Action::Type)(index + 1)); // 0 = What_Nothing + if (ks_actions->current() != Action::Extras) + ks_extras->setAction(QString::null, QString::null); +} + +void MMainWindow::slotCheckSystemConfig() +{ + SystemConfig::check(this); +} + +void MMainWindow::slotStats() +{ + if (!MiscUtils::isRestricted("tab_stats")) + MStatsTab::getInstance()->show(); +} + +void MMainWindow::slotUpdateTimeInfo() +{ + l_statusLine->setText("<b>" + getTimeInfo() + "</b>"); +} + +bool MMainWindow::queryClose() +{ + // exit + if (ks_actions->totalExit() || kapp->sessionSaving()) + return true; + + // MSystemTray::Always + if (kshutdownrc->systemTray == MSystemTray::Always) + { + if (_showMinimizeInfo) { + MiscUtils::passiveMessage( + i18n("KShutDown has been minimized"), + ks_tray + ); + _showMinimizeInfo = false; + } + ks_tray->flashIcon(); + hide(); + + return false; + } + + // MSystemTray::IfActive + if (kshutdownrc->systemTray == MSystemTray::IfActive) + { + if (ks_actions->active()) + { + if (_showMinimizeInfo) { + MiscUtils::passiveMessage( + i18n("KShutDown has been minimized"), + ks_tray + ); + _showMinimizeInfo = false; + } + ks_tray->flashIcon(); + hide(); + + return false; + } + else { +// FIXME: 2.0: quit message + MiscUtils::passiveMessage(i18n("KShutDown has quit")); + + return true; + } + } + + // MSystemTray::Never + if (kshutdownrc->systemTray == MSystemTray::Never) { +// FIXME: 2.0: quit message + MiscUtils::passiveMessage(i18n("KShutDown has quit")); + + return true; + } + + return true; +} + +bool MMainWindow::queryExit() +{ + ks_actions->setTotalExit(true); + + return true; // ok to exit +} diff --git a/kshutdown/mmainwindow.h b/kshutdown/mmainwindow.h new file mode 100644 index 0000000..badbe8e --- /dev/null +++ b/kshutdown/mmainwindow.h @@ -0,0 +1,209 @@ +/* + mmainwindow.h - The main window + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MMAINWINDOW_H__ +#define __MMAINWINDOW_H__ + +#include "actions.h" +#include "kshutdowniface.h" + +#include <qdatetime.h> + +#include <kmainwindow.h> + +class AppObserver; + +class QDateTimeEdit; +class QLabel; + +class KGlobalAccel; +class KPushButton; + +#define ks_main MMainWindow::getInstance() + +/** @short The main window. */ +class MMainWindow: public KMainWindow, virtual public KShutdownIface +{ + Q_OBJECT +public: + /** + * Timeout options. + */ + enum DelayType { + DelayType_Now = 0, /**< Immediate action (no delay). */ + DelayType_TimeFromNow = 1, /**< Time from now in HH:MM format. */ + DelayType_DateTime = 2, /**< Absolute date and time. */ + DelayType_OnAppExit = 3 /**< When desired application exit. */ + }; + + /** Constructor. */ + MMainWindow(); + + /** Destructor. */ + virtual ~MMainWindow(); + + /** Sets current action to @p action. */ + void setAction(const Action::Type action); + + /** Sets delay type to @p value. */ + void setDelayType(const DelayType value); + + /** Sets editor time to @p time. */ + void setTime(const QTime &time); + + /** Returns the main window widget. Accessed via the @c ks_main macro. */ + inline static MMainWindow *getInstance() { return _instance; } + + /** Sets editor date to @p date. */ + void setDate(const QDate &date); + + /** + * Activates the selected action. + * @param confirmation @c false - no confirmation + */ + void start(const bool confirmation = true); + + // actions + inline KAction *cancelAction() const { return _cancelAction; } + inline KAction *checkSystemConfigurationAction() const { return _checkSystemConfigurationAction; } + inline KAction *configureKShutDownAction() const { return _configureKShutDownAction; } + inline KAction *lockScreenAction() const { return _lockScreenAction; } + inline KAction *logoutAction() const { return _logoutAction; } + inline KAction *rebootAction() const { return _rebootAction; } + inline KAction *shutDownAction() const { return _shutDownAction; } + inline KAction *statisticsAction() const { return _statisticsAction; } + + // DCOP: + // general: + virtual void cancel(); + virtual bool shutDown(); + virtual bool shutdown(); + virtual bool reboot(); + virtual bool lockScreen(); + virtual bool logout(); + // misc: + virtual void configure(); + virtual QString getStatusInfo(); + virtual void makeInvisible(); + virtual void makeVisible(); + virtual void setTestMode(bool yes); +private: + bool _showMinimizeInfo; + // actions + KAction + *_cancelAction, + *_checkSystemConfigurationAction, + *_configureKShutDownAction, + *_lockScreenAction, + *_logoutAction, + *_rebootAction, + *_shutDownAction, + *_startAction, + *_statisticsAction; + KActionCollection *ac_shutDown; + KGlobalAccel *_globalAccel; + + int _oldSec; + AppObserver *_appObserver; + QDateTimeEdit *_dateTimeEdit; + KPushButton *b_startStop; + + // points to the main window widget (this) + static MMainWindow *_instance; + QComboBox + *cb_actions, + *cb_delayTypes; + QDateTime + dt_end, // end date/time + dt_start; // start date/time + QLabel *l_statusLine; + QTimer *_timer; // timeout timer + DelayType _delayType; + + QString getTimeInfo(); + + void initMainMenu(); + + void initActions(); + QWidget *initWidgets(); + + /** + * Sets window and system tray captions. + * @param remainingTime A remaining time + * @param selectedTime A selected time + */ + void setCaptions(const QString &remainingTime = QString::null, const QString &selectedTime = QString::null); + + void setWidgetsEnabled(const bool yes); + + /** + * Updates time infos (e.g. window captions). + * Displays time to the final shut down, and the selected action name. + */ + void updateTimeInfo(const int secs); +private slots: + /** + * This signal is emitted when the application is about to quit, or when the + * user shuts down the entire desktop session. + */ + void slotAboutToQuit(); + + /** + * Checks the time, and after timeout executes active action. + */ + void slotCheckTime(); + + /** + * Called when a new item has been selected in the combo box. + * @param index A new item index + */ + void slotDelayTypeChange(int index); + + void slotConfigureGlobalShortcuts(); + void slotConfigureKShutDown(); + void slotConfigureNotifications(); + void slotConfigureShortcuts(); + + void slotActionChange(int index); + void slotCheckSystemConfig(); + void slotStats(); + + /** + * Updates "Selected time:" info. + * @see calcSelectedTime + */ + void slotUpdateTimeInfo(); +public slots: + /** Cancels an active action. */ + void slotCancel(); + /** Activates the selected action. */ + void slotStart(); + /** Quits the application. */ + void slotQuit(); +protected: + /** Closes or minizes the main window. */ + virtual bool queryClose(); + /** + * Invoked at application exit. + * @return @c true + */ + virtual bool queryExit(); +}; + +#endif // __MMAINWINDOW_H__ diff --git a/kshutdown/mmessagedialog.cpp b/kshutdown/mmessagedialog.cpp new file mode 100644 index 0000000..4a02f73 --- /dev/null +++ b/kshutdown/mmessagedialog.cpp @@ -0,0 +1,184 @@ +/* + mmessagedialog.cpp - A warning message dialog + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "miscutils.h" +#include "mmainwindow.h" +#include "mmessagedialog.h" + +#include <qdatetime.h> +#include <qhbox.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qlcdnumber.h> +#include <qtimer.h> + +#include <kdebug.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kpopupmenu.h> +#include <kpushbutton.h> +#include <kwin.h> + +// public + +MMessageDialog *MMessageDialog::_instance = 0; + +MMessageDialog::MMessageDialog(const int delay, const Action::Type actionToExecute, const QString &text) + : KDialog(ks_main, "MMessageDialog", true), + _dialogDelay(delay), + _lastTime(-1), + _action(actionToExecute) +{ + setCaption(i18n("Message")); + setPaletteBackgroundColor(yellow); + setPaletteForegroundColor(black); + + // main layout + QVBoxLayout *l = new QVBoxLayout(this, 5); + + // message text + QLabel *t_message = new QLabel(this); + QFont f = QFont(t_message->font()); + f.setPointSize(16); + t_message->setFont(f); + t_message->setPaletteBackgroundColor(yellow); + t_message->setPaletteForegroundColor(black); + t_message->setAlignment(AlignCenter); + t_message->setFrameShape(QFrame::StyledPanel); + t_message->setFrameShadow(QFrame::Plain); + t_message->setLineWidth(4); + t_message->setMargin(20); + t_message->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding)); + t_message->setText(text); + + // bottom layout + QHBox *bottomBox = new QHBox(this); + bottomBox->setSpacing(5); + + // seconds + l_seconds = new QLCDNumber(bottomBox); + l_seconds->display(_dialogDelay); + l_seconds->setFrameShape(QFrame::NoFrame); + l_seconds->setSegmentStyle(QLCDNumber::Flat); + MiscUtils::setHint(l_seconds, i18n("Remaining time.")); + + // continue button + b_continue = new KPushButton( + ks_actions->getIcon(_action), ks_actions->getName(_action), + bottomBox, "KPushButton::b_continue" + ); +// FIXME: 2.0: no accelerator for "b_continue" + b_continue->setPaletteBackgroundColor(yellow); + b_continue->setPaletteForegroundColor(black); + connect(b_continue, SIGNAL(clicked()), SLOT(slotAccept())); + b_continue->setEnabled(false); + QTimer::singleShot(2000, this, SLOT(slotEnableContinue())); + + // cancel button + KPushButton *b_cancel = new KPushButton(KStdGuiItem::cancel(), bottomBox, "KPushButton::b_cancel"); + b_cancel->setDefault(true); + b_cancel->setPaletteBackgroundColor(yellow); + b_cancel->setPaletteForegroundColor(black); + connect(b_cancel, SIGNAL(clicked()), SLOT(slotReject())); + + l->addWidget(t_message); + l->addWidget(bottomBox); + + // init time checker + _checkTimer = new QTimer(this); + connect(_checkTimer, SIGNAL(timeout()), SLOT(slotCheckTime())); + _checkTimer->start(500); + + setFixedSize(sizeHint()); + + // make sure it is visible + // code from KAlarm + WId id = winId(); + KWin::setState(id, NET::StaysOnTop | NET::Sticky); + KWin::setOnAllDesktops(id, true); +} + +MMessageDialog::~MMessageDialog() +{ + // kdDebug() << "MMessageDialog::~MMessageDialog()" << endl; +} + +void MMessageDialog::cancel() { + if (_instance) { + // kdDebug() << "MMessageDialog::cancel()" << endl; + _instance->slotReject(); + delete _instance; + _instance = 0; + } +} + +bool MMessageDialog::show(const int timeout) { + cancel(); + KWin::setOnDesktop(ks_main->winId(), KWin::currentDesktop()); + // show warning message dialog + _instance = new MMessageDialog( + timeout, + ks_actions->current(), + ks_actions->getCurrentName() + ); + bool result = (_instance->exec() == Accepted); + delete _instance; + _instance = 0; + + // kdDebug() << "result = " << result << endl; + + return result; +} + +// private slots + +void MMessageDialog::slotAccept() { + done(Accepted); +} + +void MMessageDialog::slotEnableContinue() { + b_continue->setEnabled(true); +} + +void MMessageDialog::slotCheckTime() +{ + QTime t = QTime::currentTime(); + + if (t.second() == _lastTime) + return; + + l_seconds->display(_dialogDelay); + + // timeout? + if (_dialogDelay == 0) + { + slotAccept(); + + return; + } + + MiscUtils::notifyUser(_dialogDelay); + + _lastTime = t.second(); + _dialogDelay--; +} + +void MMessageDialog::slotReject() { + done(Rejected); +} diff --git a/kshutdown/mmessagedialog.h b/kshutdown/mmessagedialog.h new file mode 100644 index 0000000..3e74c57 --- /dev/null +++ b/kshutdown/mmessagedialog.h @@ -0,0 +1,68 @@ +/* + mmessagedialog.h - A warning message dialog + Copyright (C) 2004 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MMESSAGEDIALOG_H__ +#define __MMESSAGEDIALOG_H__ + +#include "actions.h" + +#include <kdialog.h> + +class QLCDNumber; + +class KPushButton; + +/** @short A warning message dialog (displayed before action execution). */ +class MMessageDialog: public KDialog +{ + Q_OBJECT +public: + /** + * Constructor. + * @param delay A timeout in seconds + * @param actionToExecute An action to execute after click on the button, + * or after timeout + * @param text A message text + */ + MMessageDialog(const int delay, const Action::Type actionToExecute, const QString &text); + + /** + * Destructor. + */ + virtual ~MMessageDialog(); + + static void cancel(); + static bool show(const int timeout); +private: + int + _dialogDelay, + _lastTime; + Action::Type _action; + KPushButton *b_continue; + static MMessageDialog *_instance; + QLCDNumber *l_seconds; + QTimer *_checkTimer; +private slots: + void slotAccept(); + void slotEnableContinue(); + void slotCheckTime(); + void slotReject(); +}; + +#endif // __MMESSAGEDIALOG_H__ diff --git a/kshutdown/msettingsdialog.cpp b/kshutdown/msettingsdialog.cpp new file mode 100644 index 0000000..eb3b97a --- /dev/null +++ b/kshutdown/msettingsdialog.cpp @@ -0,0 +1,622 @@ +/* + msettingsdialog.cpp - A settings dialog + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "configuration.h" +#include "extras.h" +#include "links.h" +#include "mactioneditdialog.h" +#include "miscutils.h" +#include "mmessagedialog.h" +#include "msettingsdialog.h" +#include "msystemtray.h" +#include "mtip.h" +#include "systemconfig.h" + +#include <qcheckbox.h> +#include <qfile.h> +#include <qhbox.h> +#include <qhbuttongroup.h> +#include <qheader.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qradiobutton.h> +#include <qtooltip.h> +#include <qvgroupbox.h> +#include <qwhatsthis.h> + +#include <kconfigdialogmanager.h> +#include <kiconloader.h> +#include <klineedit.h> +#include <klistview.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kpopupmenu.h> +#include <knuminput.h> +#include <kpushbutton.h> +#include <kstandarddirs.h> +#include <ktabwidget.h> +#include <kurllabel.h> + +int MSettingsDialog::_lastPage = 0; +MSettingsDialog *MSettingsDialog::_instance = 0; + +// public + +MSettingsDialog::MSettingsDialog(QWidget *parent) + : KDialogBase( + IconList, + i18n("Settings"), + Apply | Cancel | Default | Ok, + Ok, // default button + parent, + "MSettingsDialog", + true, // modal + true // separator + ) +{ + _instance = this; + + initGeneralPage(); + initMessagesPage(); + initActionsPage(); + initAdvancedPage(); + + _configDialogManager = new KConfigDialogManager(this, kshutdownrc); + _configDialogManager->updateWidgets(); + connect(_configDialogManager, SIGNAL(widgetModified()), SLOT(slotConfigChanged())); + + connect(this, SIGNAL(applyClicked()), SLOT(slotOKClicked())); + connect(this, SIGNAL(okClicked()), SLOT(slotOKClicked())); + + // lock after login + c_autoLock->setChecked(QFile::exists(KGlobalSettings::autostartPath() + "/kshutdown-autolock.desktop")); + + setInitialSize(configDialogSize("Settings Dialog")); + showPage(_lastPage); // restore last page + + exec(); +} + +MSettingsDialog::~MSettingsDialog() +{ + _lastPage = activePageIndex(); // remember last page +} + +// private + +QFrame *MSettingsDialog::addPage(const QString &itemName, const QString &iconName) +{ + return KDialogBase::addPage(itemName, QString::null, MainBarIcon(iconName, 32)); +} + +bool MSettingsDialog::disabledByAdmin(const QString &key, QFrame *page, + QBoxLayout *pageLayout) const +{ + if (MiscUtils::isRestricted("settings_" + key)) + { + // add tip + if (page) + { + MTip *t_admin = new MTip(MTip::Info, page); + t_admin->setTipText(i18n("Disabled by the Administrator.")); + pageLayout->addWidget(t_admin); + } + + return true; // disabled + } + + return false; // enabled +} + +void MSettingsDialog::initActionsPage() +{ + _actionsPage = addPage(i18n("Actions"), "kshutdown"); + QVBoxLayout *l = new QVBoxLayout(_actionsPage, 5); + + if (disabledByAdmin("actions", _actionsPage, l)) + return; + + QVGroupBox *gb_general = new QVGroupBox(i18n("Actions"), _actionsPage); + + _actions = new KListView(gb_general, "KListView::_actions"); + _actions->setAllColumnsShowFocus(true); + _actions->setItemMargin(5); + _actions->setMaximumHeight(200); + _actions->setSorting(-1); // no sort + _actions->addColumn(i18n("Action")); + _actions->addColumn(i18n("Method")); + _actions->addColumn(i18n("Command before action")); + _actions->header()->setClickEnabled(false); + + _logoutItem = new KListViewItem(_actions, ks_actions->getName(Action::Logout)); + _logoutItem->setPixmap(0, ks_actions->getIcon(Action::Logout)); + + _lockScreenItem = new KListViewItem(_actions, ks_actions->getName(Action::LockScreen)); + _lockScreenItem->setPixmap(0, ks_actions->getIcon(Action::LockScreen)); + + _rebootItem = new KListViewItem(_actions, ks_actions->getName(Action::Reboot)); + _rebootItem->setPixmap(0, ks_actions->getIcon(Action::Reboot)); + + _shutDownItem = new KListViewItem(_actions, ks_actions->getName(Action::ShutDown)); + _shutDownItem->setPixmap(0, ks_actions->getIcon(Action::ShutDown)); + + connect(_actions, SIGNAL(doubleClicked(QListViewItem *, const QPoint &, int)), SLOT(slotEditAction())); + connect(_actions, SIGNAL(spacePressed(QListViewItem *)), SLOT(slotEditAction())); + // edit action + KPushButton *b_editAction = new KPushButton(SmallIcon("edit"), i18n("Edit..."), gb_general, "KPushButton::b_editAction"); + connect(b_editAction, SIGNAL(clicked()), SLOT(slotEditAction())); + // check system configuration + KPushButton *b_checkSystemConfig = new KPushButton(SmallIcon("button_ok"), i18n("Check System Configuration"), gb_general, "KPushButton::b_checkSystemConfig"); + connect(b_checkSystemConfig, SIGNAL(clicked()), SLOT(slotCheckSystemConfig())); + + QVGroupBox *gb_extras = new QVGroupBox(i18n("Extras Menu"), _actionsPage); + KPushButton *b_modifyExtras = new KPushButton(SmallIcon("edit"), i18n("Modify..."), gb_extras, "KPushButton::b_modifyExtras"); + if (!ks_actions->isEnabled(Action::Extras)) + gb_extras->hide(); + connect( + b_modifyExtras, SIGNAL(clicked()), + ks_extras, SLOT(slotModify())); + + l->addWidget(gb_general); + l->addStretch(); + l->addWidget(gb_extras); + + // update items after widgets init + updateActions(); +} + +void MSettingsDialog::initAdvancedPage() +{ + _advancedPage = addPage(i18n("Advanced"), "misc"); + QVBoxLayout *l = new QVBoxLayout(_advancedPage, 5); + + // after login + QVGroupBox *gb_afterLogin = new QVGroupBox(i18n("After Login"), _advancedPage); + c_autoLock = new QCheckBox(i18n("Lock screen"), gb_afterLogin); + connect(c_autoLock, SIGNAL(clicked()), SLOT(slotConfigChanged())); + + // cd tray close + QVGroupBox *gb_cdTrayClose = new QVGroupBox(i18n("Before Logout"), _advancedPage); + QCheckBox *c_cdTrayClose = new QCheckBox(i18n("Close CD-ROM Tray"), gb_cdTrayClose, "kcfg_cd_tray_close"); + QHBox *cdTrayCloseBox = new QHBox(gb_cdTrayClose); + QLabel *l_cdTrayCloseCommand = new QLabel(i18n("Command:"), cdTrayCloseBox); +// FIXME: 2.0: disable "in_cdTrayCloseCommand" if "c_cdTrayClose" is not checked +// TODO: 2.0: "Test" button + KLineEdit *in_cdTrayCloseCommand = new KLineEdit(cdTrayCloseBox, "kcfg_cd_tray_close_command"); + l_cdTrayCloseCommand->setBuddy(in_cdTrayCloseCommand); + connect( + c_cdTrayClose, SIGNAL(toggled(bool)), + in_cdTrayCloseCommand, SLOT(setEnabled(bool))); + + // kde settings + KPushButton *b_kdeSettings = new KPushButton(SmallIcon("misc"), i18n("Related KDE Settings..."), _advancedPage, "KPushButton::b_kdeSettings"); + connect(b_kdeSettings, SIGNAL(clicked()), SLOT(slotKDESettings())); + + l->addWidget(gb_afterLogin); + l->addWidget(gb_cdTrayClose); + l->addStretch(); + l->addWidget(b_kdeSettings); +} + +void MSettingsDialog::initGeneralPage() +{ + _generalPage = addPage(i18n("General"), "misc"); + QVBoxLayout *l = new QVBoxLayout(_generalPage, 5); + + // problems + QVGroupBox *gb_problems = new QVGroupBox(i18n("Common Problems"), _generalPage); + + KURLLabel *ul_shutDownProblem = new KURLLabel(gb_problems); + ul_shutDownProblem->setText(i18n("\"Turn Off Computer\" does not work")); + connect(ul_shutDownProblem, SIGNAL(leftClickedURL()), SLOT(slotShutDownProblem())); + + KURLLabel *ul_trayMessageProblem = new KURLLabel(gb_problems); + ul_trayMessageProblem->setText(i18n("Popup messages are very annoying")); + connect(ul_trayMessageProblem, SIGNAL(leftClickedURL()), SLOT(slotTrayMessageProblem())); + + // links + QVGroupBox *gb_links = new QVGroupBox(i18n("Add/Remove Links"), _generalPage); + new Links(gb_links); + + // system tray + gb_systemTray = new QHButtonGroup(i18n("Show System Tray Icon"), _generalPage, "kcfg_system_tray"); + QRadioButton *rb_systemTray; + rb_systemTray = new QRadioButton(i18n("Always"), gb_systemTray); + MiscUtils::setHint(rb_systemTray, i18n("Tray icon will be always visible.")); + rb_systemTray = new QRadioButton(i18n("If Active"), gb_systemTray); + MiscUtils::setHint(rb_systemTray, i18n("Tray icon will be visible only if KShutDown is active.")); + rb_systemTray = new QRadioButton(i18n("Never"), gb_systemTray); + MiscUtils::setHint(rb_systemTray, i18n("Tray icon will be always hidden.")); + + l->addWidget(gb_problems); + l->addWidget(gb_links); + l->addWidget(gb_systemTray); + + // karamba info + QString karambaThemes = locate("appdata", "karamba/kshutdown-48x48.png"); + if (!karambaThemes.isNull()) + { + int i = karambaThemes.findRev("/"); + if ((i != -1) && (i > 0)) + { + MTip *t_karamba = new MTip(MTip::Info, _generalPage); +/* TODO: 2.0: superkaramba integration + t_karamba->disconnect( + t_karamba, SIGNAL(linkClicked(const QString &)), + t_karamba, SLOT(openLink(const QString &)) + ); + t_karamba->connect( + t_karamba, SIGNAL(linkClicked(const QString &)), + this, SLOT(slotOpenKarambaLink(const QString &)) + ); +*/ + karambaThemes = karambaThemes.left(i); + t_karamba->setTipText( + // title + "<h2>SuperKaramba</h2>" \ + // themes + "<a href=\"" + karambaThemes + "\">" + i18n("Show KShutDown Themes") + "</a><br>" \ + // home page + "<a href=\"http://www.superkaramba.com/index.php\">" + i18n("SuperKaramba Home Page") + "</a>" \ + ); + l->addWidget(t_karamba); + } + } +} + +void MSettingsDialog::initMessagesPage() +{ + _messagesPage = addPage(i18n("Messages"), "messagebox_warning"); + QVBoxLayout *l = new QVBoxLayout(_messagesPage, 5); + + KTabWidget *t_messages = new KTabWidget(_messagesPage); + t_messages->setFocusPolicy(StrongFocus); + + // warning message: + QWidget *w_warning = new QWidget(_messagesPage); + QVBoxLayout *l_warning = new QVBoxLayout(w_warning, 5); + // enabled/info + QCheckBox *c_warningMessageEnabled = new QCheckBox(i18n("Display a warning message before action"), w_warning, "kcfg_warning_message_enabled"); + // slider + in_warningMessageDelay = new KIntNumInput(w_warning, "kcfg_warning_message_delay"); + in_warningMessageDelay->setSuffix(" " + i18n("minute(s)")); + in_warningMessageDelay->setRange(1, 60, 1, true); + KPushButton *b_warningMessageTest = new KPushButton(KStdGuiItem::test(), w_warning, "KPushButton::b_warningMessageTest"); + connect(b_warningMessageTest, SIGNAL(clicked()), SLOT(slotWarningMessageTest())); + + QLabel *l_warningText = new QLabel(i18n("Recommended"), w_warning); + l_warningText->setFont(QFont(l_warningText->font().family(), l_warningText->font().pointSize(), QFont::Bold)); + l_warning->addWidget(l_warningText); + + l_warning->addWidget(c_warningMessageEnabled); + + l_warning->addWidget(in_warningMessageDelay); + l_warning->addStretch(); + l_warning->addWidget(b_warningMessageTest); + t_messages->addTab(w_warning, i18n("Warning Message")); + + // custom message: + QWidget *w_customMessage = new QWidget(_messagesPage); + QVBoxLayout *l_customMessage = new QVBoxLayout(w_customMessage, 5); + QCheckBox *c_customMessageEnabled = new QCheckBox(i18n("Enabled"), w_customMessage, "kcfg_custom_message_enabled"); + QLabel *l_customMessageCommand = new QLabel(i18n("A shell command to execute:"), w_customMessage); + in_customMessageCommand = new KLineEdit(w_customMessage, "kcfg_custom_message_command"); + MiscUtils::setHint( + in_customMessageCommand, + MiscUtils::HTML( + i18n("Enter a command.") + + "<ul>" \ + "<li><b>%appname</b> KShutDown</li>" \ + "<li><b>%text</b> " + i18n("A message text") + "</li>" \ + "<li><b>%title</b> " + i18n("The current main window title") + "</li>" \ + "</ul>" + ) + ); + l_customMessageCommand->setBuddy(in_customMessageCommand); + + KPushButton *b_customMessagePresets = new KPushButton(i18n("Presets"), w_customMessage, "KPushButton::b_customMessagePresets"); + KPopupMenu *pm_customMessagePresets = new KPopupMenu(b_customMessagePresets); + pm_customMessagePresets->insertItem("KDialog", this, SLOT(slotSetKDialogCustomMessage())); + pm_customMessagePresets->insertItem("Amor", this, SLOT(slotSetAmorCustomMessage())); + b_customMessagePresets->setPopup(pm_customMessagePresets); + + KPushButton *b_testCustomMessage = new KPushButton(KStdGuiItem::test(), w_customMessage, "KPushButton::b_testCustomMessage"); + connect(b_testCustomMessage, SIGNAL(clicked()), SLOT(slotCustomMessageTest())); + l_customMessage->addWidget(c_customMessageEnabled); + l_customMessage->addWidget(l_customMessageCommand); + l_customMessage->addWidget(in_customMessageCommand); + l_customMessage->addWidget(b_customMessagePresets); + l_customMessage->addStretch(); + l_customMessage->addWidget(b_testCustomMessage); + t_messages->addTab(w_customMessage, i18n("Custom Message")); + + // progress bar + QVGroupBox *w_progressBar = new QVGroupBox(i18n("Progress Bar"), _messagesPage); + new QCheckBox(i18n("Enabled"), w_progressBar, "kcfg_progress_bar_enabled"); + + // re-enable messages + b_enableAllMessages = new KPushButton(i18n("Re-enable All Message Boxes"), _messagesPage, "KPushButton::b_enableAllMessages"); + MiscUtils::setHint( + b_enableAllMessages, + MiscUtils::HTML(i18n( + "Enable all messages which have been turned off with the " \ + "<b>Do not show this message again</b> feature." + )) + ); + connect(b_enableAllMessages, SIGNAL(clicked()), SLOT(slotEnableAllMessages())); + + l->addWidget(t_messages); + l->addWidget(w_progressBar); + l->addStretch(); + l->addWidget(b_enableAllMessages); + + connect( + c_warningMessageEnabled, SIGNAL(toggled(bool)), + in_warningMessageDelay, SLOT(setEnabled(bool))); + connect( + c_warningMessageEnabled, SIGNAL(toggled(bool)), + b_warningMessageTest, SLOT(setEnabled(bool))); + connect( + c_customMessageEnabled, SIGNAL(toggled(bool)), + in_customMessageCommand, SLOT(setEnabled(bool))); + connect( + c_customMessageEnabled, SIGNAL(toggled(bool)), + b_customMessagePresets, SLOT(setEnabled(bool))); + connect( + c_customMessageEnabled, SIGNAL(toggled(bool)), + b_testCustomMessage, SLOT(setEnabled(bool))); +} + +Action::Type MSettingsDialog::itemToActionType(const KListViewItem *item) const +{ + if (!item) + return Action::Nothing; + + if (item == _lockScreenItem) + return Action::LockScreen; + + if (item == _logoutItem) + return Action::Logout; + + if (item == _rebootItem) + return Action::Reboot; + + if (item == _shutDownItem) + return Action::ShutDown; + + return Action::Nothing; +} + +void MSettingsDialog::updateActions() +{ + updateItem(_shutDownItem); + updateItem(_rebootItem); + updateItem(_lockScreenItem); + updateItem(_logoutItem); + _actions->setCurrentItem(_shutDownItem); +} + +void MSettingsDialog::updateItem(KListViewItem *item) +{ + Action::Type action = itemToActionType(item); + + if (action == Action::Nothing) + return; + + Action::Method method = Action::Method_KDE; + QString + command, + group = ks_actions->actionToConfigGroup(action); + + ks_actions->getMethod(action, method, command); + + // method + if (method == Action::Method_KDE) + item->setText(1, i18n("KDE (default)")); + else + item->setText(1, command); + + // command before action + if (!group.isNull()) + { + KConfig *conf = kshutdownrc->config(); + conf->setGroup(group); + if (conf->readBoolEntry("RunCommandBeforeAction", false)) + { + QString cmd = conf->readEntry("CommandBeforeAction", ""); + int pause = conf->readNumEntry("CommandBeforeActionPause", 10); + if (pause == 0) + cmd += " [" + i18n("No pause") + "]"; + else + cmd += " [" + i18n("Pause: %1").arg(QString::number(pause) + "s") + "]"; + item->setText(2, cmd); + } + else + { + item->setText(2, ""); + } + } +} + +// private slots + +void MSettingsDialog::slotCheckSystemConfig() +{ + SystemConfig::check(this); +} + +void MSettingsDialog::slotConfigChanged() +{ + actionButton(Apply)->setEnabled(_configDialogManager->hasChanged()); +} + +void MSettingsDialog::slotCustomMessageTest() +{ + MiscUtils::customMessage(i18n("Test"), in_customMessageCommand->text()); +} + +void MSettingsDialog::slotEditAction() +{ + KListViewItem *item = static_cast<KListViewItem *>(_actions->currentItem()); + + if (!item) + return; + + MActionEditDialog *dialog = new MActionEditDialog(this, itemToActionType(item)); + if (dialog->exec() == QDialog::Accepted) + { + updateItem(item); + slotConfigChanged(); + } + delete dialog; +} + +void MSettingsDialog::slotEnableAllMessages() +{ + KMessageBox::enableAllMessages(); + b_enableAllMessages->setEnabled(false); +} + +void MSettingsDialog::slotKDESettings() +{ + MiscUtils::runCommand("kcmshell screensaver kcmsmserver kdm"); +} + +void MSettingsDialog::slotOKClicked() +{ + saveDialogSize("Settings Dialog"); + _configDialogManager->updateSettings(); + +// FIXME: 2.0: apply button + + // lock after login + if (c_autoLock->isChecked()) + { + Links::createLink( + KGlobalSettings::autostartPath() + "/kshutdown-autolock.desktop", + "kshutdown --init --lock", + "kshutdown", + "KShutDown", + i18n("This file is used to lock session at KDE startup") + ); + } + else + { + Links::removeLink(KGlobalSettings::autostartPath() + "/kshutdown-autolock.desktop"); + } + + int id = gb_systemTray->selectedId(); + if (id != -1) + MSystemTray::setMode((MSystemTray::Mode)id); + + kshutdownrc->writeConfig(); + + slotConfigChanged(); +} + +// TODO: 2.0: remember last page + +void MSettingsDialog::slotSetAmorCustomMessage() { + in_customMessageCommand->setText(KS_CONFIG_AMOR_MESSAGE); +} + +void MSettingsDialog::slotSetKDialogCustomMessage() { + in_customMessageCommand->setText(KS_CONFIG_KDIALOG_MESSAGE); +} + +void MSettingsDialog::slotShutDownProblem() +{ + showPage(pageIndex(_actionsPage)); +} + +void MSettingsDialog::slotTrayMessageProblem() +{ + showPage(pageIndex(_messagesPage)); +} + +void MSettingsDialog::slotWarningMessageTest() +{ + MMessageDialog *messageDialog = new MMessageDialog( + in_warningMessageDelay->value() * 60, + Action::Nothing, + i18n("Test") + ); + messageDialog->exec(); + delete messageDialog; +} + +// protected slots + +void MSettingsDialog::slotDefault() +{ + int index = activePageIndex(); + + if (index == -1) + return; + + _configDialogManager->updateSettings(); + + // general + if (index == pageIndex(_generalPage)) + { + kshutdownrc->i_systemTray->setDefault(); + } + // messages + else if (index == pageIndex(_messagesPage)) + { + kshutdownrc->i_warningMessageEnabled->setDefault(); + kshutdownrc->i_warningMessageDelay->setDefault(); + kshutdownrc->i_customMessageEnabled->setDefault(); + kshutdownrc->i_customMessageCommand->setDefault(); + } + // actions + else if (index == pageIndex(_actionsPage)) + { + if (disabledByAdmin("actions")) + return; + + if (KMessageBox::warningYesNo( + 0, + i18n("Restore default settings for this page?"), + caption()) != KMessageBox::Yes + ) + return; + + KConfig *conf = kshutdownrc->config(); + conf->deleteGroup("Shut Down"); + conf->deleteGroup("Reboot"); + conf->deleteGroup("Lock Screen"); + conf->deleteGroup("Logout"); + updateActions(); + slotConfigChanged(); + } + // advanced + else if (index == pageIndex(_advancedPage)) + { + c_autoLock->setChecked(false); + kshutdownrc->i_cdTrayClose->setDefault(); + kshutdownrc->i_cdTrayCloseCommand->setDefault(); + slotConfigChanged(); + } + else + { + return; + } + _configDialogManager->updateWidgets(); +} diff --git a/kshutdown/msettingsdialog.h b/kshutdown/msettingsdialog.h new file mode 100644 index 0000000..6f3fec3 --- /dev/null +++ b/kshutdown/msettingsdialog.h @@ -0,0 +1,127 @@ +/* + msettingsdialog.h - A settings dialog + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MSETTINGSDIALOG_H__ +#define __MSETTINGSDIALOG_H__ + +#include "actions.h" + +#include <kdialogbase.h> + +class QCheckBox; +class QHButtonGroup; + +class KConfigDialogManager; +class KIntNumInput; +class KLineEdit; +class KListView; +class KListViewItem; +class KPushButton; + +/** @short A settings dialog. */ +class MSettingsDialog: public KDialogBase +{ + Q_OBJECT +public: + /** + * Constructor. Creates a new modal settings dialog. + * @param parent A parent widget + */ + MSettingsDialog(QWidget *parent); + + /** + * Destructor. + */ + virtual ~MSettingsDialog(); + + inline static void freeInstance() { + if (_instance) { + delete _instance; + _instance = 0; + } + } + + inline static bool isActive() { + if (_instance) { + _instance->raise(); + + return true; + } + + return false; + } +private: + static int _lastPage; + static MSettingsDialog *_instance; + KConfigDialogManager *_configDialogManager; + KIntNumInput *in_warningMessageDelay; + KLineEdit *in_customMessageCommand; + KListView *_actions; + KListViewItem + *_lockScreenItem, + *_logoutItem, + *_rebootItem, + *_shutDownItem; + KPushButton *b_enableAllMessages; + QCheckBox *c_autoLock; + QFrame + *_actionsPage, + *_advancedPage, + *_generalPage, + *_messagesPage; + QHButtonGroup *gb_systemTray; + + QFrame *addPage(const QString &itemName, const QString &iconName); + + /** + * Returns @c true if page has been disabled by the administrator (Kiosk mode). + * @param key A configuration entry (in the @c kshutdownrc file) + * @param page A dialog page + * @param pageLayout A dialog page layout + */ + bool disabledByAdmin(const QString &key, QFrame *page = 0, QBoxLayout *pageLayout = 0) const; + + void initActionsPage(); + void initAdvancedPage(); + void initGeneralPage(); + void initMessagesPage(); + Action::Type itemToActionType(const KListViewItem *item) const; + void updateActions(); + void updateItem(KListViewItem *item); +private slots: + void slotCheckSystemConfig(); + void slotConfigChanged(); + void slotCustomMessageTest(); + void slotEditAction(); + void slotEnableAllMessages(); + void slotKDESettings(); + void slotOKClicked(); + void slotSetAmorCustomMessage(); + void slotSetKDialogCustomMessage(); + void slotShutDownProblem(); + void slotTrayMessageProblem(); + void slotWarningMessageTest(); +protected slots: + /** + * Sets default values in a current page. + */ + virtual void slotDefault(); +}; + +#endif // __MSETTINGSDIALOG_H__ diff --git a/kshutdown/mstatstab.cpp b/kshutdown/mstatstab.cpp new file mode 100644 index 0000000..8062798 --- /dev/null +++ b/kshutdown/mstatstab.cpp @@ -0,0 +1,196 @@ +/* + mstatstab.cpp - A statistics dialog + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "configuration.h" +#include "mmainwindow.h" +#include "miscutils.h" +#include "mstatstab.h" + +#include <qcheckbox.h> +#include <qprocess.h> +#include <qregexp.h> +#include <qtextedit.h> +#include <qvbox.h> +#include <qvgroupbox.h> +#include <qwhatsthis.h> + +#include <kiconloader.h> +#include <klocale.h> +#include <kpushbutton.h> + +// public + +MStatsTab *MStatsTab::_instance = 0; + +MStatsTab::MStatsTab() + : KDialogBase( + ks_main, + "MStatsTab", + false, // modeless + i18n("Statistics"), + Close | Details, + Close // default button + ), + _buf(QString::null) +{ + _process = new QProcess(this); + connect(_process, SIGNAL(processExited()), SLOT(slotProcessExit())); + connect(_process, SIGNAL(readyReadStdout()), SLOT(slotReadStdout())); + + QVBox *main = new QVBox(this); + setMainWidget(main); + + // output + te_output = new QTextEdit(main, "QTextEdit::te_output"); + te_output->setMinimumSize(640, 320); + te_output->setPaletteBackgroundColor(white); + te_output->setPaletteForegroundColor(black); + te_output->setReadOnly(true); + te_output->setTextFormat(RichText); // allow HTML tags + te_output->setWordWrap(QTextEdit::NoWrap); + // based on the "Linux User's Manual" (man w) + QWhatsThis::add( + te_output, + MiscUtils::HTML(i18n( + "This view displays information about the users currently on the " \ + "machine, and their processes.<br>" \ + "The header shows how long the system has been running." + )) + ); + + QHBox *buttons = new QHBox(main); + // refresh + b_refresh = new KPushButton(SmallIcon("reload"), i18n("Refresh"), buttons, "KPushButton::b_refresh"); + connect(b_refresh, SIGNAL(clicked()), SLOT(slotRefresh())); + + // options + QVGroupBox *options = new QVGroupBox(i18n("Options"), main); + // long format + c_longFormat = new QCheckBox(i18n("More information"), options); + c_longFormat->setChecked(kshutdownrc->statsLongFormat); + connect(c_longFormat, SIGNAL(clicked()), SLOT(slotRefresh())); + MiscUtils::setHint(c_longFormat, i18n("Show login time, JCPU and PCPU times.")); + // toggle from field + c_toggleFromField = new QCheckBox(i18n("Toggle \"FROM\""), options); + c_toggleFromField->setChecked(kshutdownrc->statsToggleFromField); + MiscUtils::setHint(c_toggleFromField, i18n("Toggle the \"FROM\" (remote hostname) field.")); + connect(c_toggleFromField, SIGNAL(clicked()), SLOT(slotRefresh())); + + setButtonGuiItem(Details, KStdGuiItem::configure()); + setDetailsWidget(options); + adjustSize(); +} + +MStatsTab::~MStatsTab() +{ + killProcess(); +} + +// protected + +void MStatsTab::keyPressEvent(QKeyEvent *e) { + // Ctrl+R, F5 = Refresh + if ( + b_refresh->isEnabled() && + ( + ((e->key() == Key_F5) && (e->state() == 0)) || + ((e->key() == Key_R) && (e->state() == ControlButton)) + ) + ) { + slotRefresh(); + e->accept(); + } + else { + KDialogBase::keyPressEvent(e); + } +} + +// private + +void MStatsTab::killProcess() const +{ + // kill previous process (if any) + if (_process && _process->isRunning()) + _process->kill(); +} + +// private slots + +void MStatsTab::slotProcessExit() { + _buf.replace("\n", "<br>"); + _buf.replace(" ", " "); + + #define KS_HEADER(text) \ + _buf.replace(text, "<font color=\"#a0a0a0\">" text "</font>"); + + #define KS_WARNING(text) \ + _buf.replace(QRegExp("\\b" text "\\b"), "<font color=\"#ff0000\">" text "</font>"); + + // underline header + KS_HEADER("USER") + KS_HEADER("TTY") + KS_HEADER("FROM") + KS_HEADER("LOGIN@") + KS_HEADER("JCPU") + KS_HEADER("PCPU") + KS_HEADER("IDLE") + KS_HEADER("WHAT") + // highlight some important words +// TODO: 2.0: add more keywords (e.g. backup) + KS_WARNING("root") + KS_WARNING("ssh") + KS_WARNING("su") + KS_WARNING("sudo") + KS_WARNING("telnet") + + _buf.prepend("<pre style=\"font-family: " + KGlobalSettings::fixedFont().family() + "\"><b>"); + _buf.append("</b></pre>"); + + te_output->setText(MiscUtils::HTML(_buf)); + b_refresh->setEnabled(true); +} + +void MStatsTab::slotReadStdout() { + _buf.append(_process->readStdout()); +} + +void MStatsTab::slotRefresh() +{ + b_refresh->setEnabled(false); + + // update config + kshutdownrc->statsLongFormat = c_longFormat->isChecked(); + kshutdownrc->statsToggleFromField = c_toggleFromField->isChecked(); + + _buf = ""; + killProcess(); + _process->clearArguments(); + _process->addArgument("w"); + if (!kshutdownrc->statsLongFormat) + _process->addArgument("-s"); // -s - short format + if (kshutdownrc->statsToggleFromField) + _process->addArgument("-f"); // -f - toggle "from" field + if (!_process->start()) { + _buf = "<b><font color=\"#ff0000\">" + i18n("Error") + "</font><br><br>"; + _buf.append(i18n("Command: %1").arg(_process->arguments().join(" "))); + _buf.append("</b>"); + te_output->setText(_buf); + b_refresh->setEnabled(true); + } +} diff --git a/kshutdown/mstatstab.h b/kshutdown/mstatstab.h new file mode 100644 index 0000000..94ca43f --- /dev/null +++ b/kshutdown/mstatstab.h @@ -0,0 +1,74 @@ +/* + mstatstab.h - A statistics dialog + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MSTATSTAB_H__ +#define __MSTATSTAB_H__ + +#include <kdialogbase.h> + +class QCheckBox; +class QProcess; +class QTextEdit; + +class KPushButton; + +/** @short A statistics dialog (output from the `w' command). */ +class MStatsTab: public KDialogBase +{ + Q_OBJECT +public: + /** + * Constructor. + */ + MStatsTab(); + + /** + * Destructor. + */ + virtual ~MStatsTab(); + + inline static MStatsTab *getInstance() { + if (!_instance) + _instance = new MStatsTab(); + + _instance->slotRefresh(); + _instance->show(); + _instance->raise(); + + return _instance; + } +protected: + void keyPressEvent(QKeyEvent *e); +private: + KPushButton *b_refresh; + static MStatsTab *_instance; + QCheckBox + *c_longFormat, + *c_toggleFromField; + QProcess *_process; + QString _buf; + QTextEdit *te_output; + void killProcess() const; +private slots: + void slotProcessExit(); + void slotReadStdout(); + void slotRefresh(); +}; + +#endif // __MSTATSTAB_H__ diff --git a/kshutdown/msystemtray.cpp b/kshutdown/msystemtray.cpp new file mode 100644 index 0000000..f1a9a6e --- /dev/null +++ b/kshutdown/msystemtray.cpp @@ -0,0 +1,212 @@ +/* + msystemtray.cpp - A system tray icon + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "configuration.h" +#include "miscutils.h" +#include "mmainwindow.h" +#include "msystemtray.h" + +#include <qtimer.h> + +#include <kaction.h> +#include <kdebug.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kpixmap.h> +#include <kpixmapeffect.h> +#include <kpopupmenu.h> +#include <kwin.h> + +const double + KS_TRAY_FADE_CHANGE = 0.05f, + KS_TRAY_FADE_MAX = 0.7f; +const int KS_TRAY_FADE_TIMEOUT = 50; +const QColor KS_TRAY_FADE_COLOR = Qt::yellow; + +MSystemTray::Mode MSystemTray::_mode = Always; +MSystemTray *MSystemTray::_instance = 0; + +// public + +MSystemTray::~MSystemTray() +{ + if (_flashIcon) + delete _flashIcon; + if (_saveIcon) + delete _saveIcon; +} + +void MSystemTray::flashIcon() +{ + if (_saveIcon) + delete _saveIcon; + _saveIcon = new QPixmap(); + *_saveIcon = *pixmap(); + _flashCount = 0; + setPixmap(*_flashIcon); + _flashTimer->start(200); +} + +void MSystemTray::setActive(const bool yes) +{ + // kdDebug() << "MSystemTray::setActive: " << yes << endl; + + if (_active == yes) + return; + + _active = yes; + _incFade = _active; + _fadeTimer->start(KS_TRAY_FADE_TIMEOUT); +} + +void MSystemTray::setMode(const Mode mode) +{ + // kdDebug() << "MSystemTray::setMode: " << mode << endl; + + _mode = mode; + switch (_mode) + { + case Always: + ks_tray; // init instance + if (ks_actions->active()) + _instance->setActive(true); + _instance->show(); + MiscUtils::setAutostart(true); + break; + case IfActive: + if (ks_actions->active()) + { + ks_tray; // init instance + _instance->setActive(true); + _instance->show(); + MiscUtils::setAutostart(true); + } + else + { + delete _instance; + _instance = 0; + MiscUtils::setAutostart(false); + } + break; + case Never: + delete _instance; + _instance = 0; + MiscUtils::setAutostart(false); + break; + } +} + +// protected + +void MSystemTray::mousePressEvent(QMouseEvent *e) +{ + // middle mouse button - display actions menu +// TODO: 2.0: configure middle button action + if (e->button() == MidButton) + contextMenu()->popup(e->globalPos()); + else + KSystemTray::mousePressEvent(e); +} + +// private + +MSystemTray::MSystemTray() + : KSystemTray(ks_main, "MSystemTray"), + _active(false), + _incFade(true), + _fadeValue(0.0f), + _flashCount(0), + _saveIcon(0) +{ + setPixmap(SmallIcon("exit", KIcon::SizeSmallMedium)); // 22x22 + +// TODO: 2.0: mouse wheel: decrease/increase end time by 5min. (?) + + // init fade timer + _fadeTimer = new QTimer(this); + connect(_fadeTimer, SIGNAL(timeout()), SLOT(slotFade())); + + // init flash timer + _flashTimer = new QTimer(this); + connect(_flashTimer, SIGNAL(timeout()), SLOT(slotFlashTimeout())); + + // init icons + KPixmap pm(SmallIcon("exit", KIcon::SizeSmallMedium)); + _flashIcon = new KPixmap(KPixmapEffect::fade(pm, 0.7f, white)); + + show(); + + // add some items to the context menu + KPopupMenu *pm_systemTrayMenu = contextMenu(); + pm_systemTrayMenu->setCaption("KShutDown"); + // id 0 = title + ks_main->shutDownAction()->plug(pm_systemTrayMenu, 1); + ks_main->rebootAction()->plug(pm_systemTrayMenu, 2); + ks_main->lockScreenAction()->plug(pm_systemTrayMenu, 3); + ks_main->logoutAction()->plug(pm_systemTrayMenu, 4); + pm_systemTrayMenu->insertSeparator(5); + ks_main->cancelAction()->plug(pm_systemTrayMenu, 6); + pm_systemTrayMenu->insertSeparator(7); + ks_main->configureKShutDownAction()->plug(pm_systemTrayMenu, 8); + pm_systemTrayMenu->insertTearOffHandle(); + + // quit signal + connect( + this, SIGNAL(quitSelected()), + ks_main, SLOT(slotQuit())); +} + +// private slots + +void MSystemTray::slotFade() +{ + if (_incFade) + { + _fadeValue += KS_TRAY_FADE_CHANGE; + if (_fadeValue > KS_TRAY_FADE_MAX) + { + _fadeTimer->stop(); + _fadeValue = KS_TRAY_FADE_MAX; + } + } + else + { + _fadeValue -= KS_TRAY_FADE_CHANGE; + if (_fadeValue < 0.0f) + { + _fadeTimer->stop(); + _fadeValue = 0.0f; + } + } + KPixmap p(SmallIcon("exit", KIcon::SizeSmallMedium)); + setPixmap(KPixmapEffect::fade(p, _fadeValue, KS_TRAY_FADE_COLOR)); +} + +void MSystemTray::slotFlashTimeout() +{ + _flashCount++; + + if ((_flashCount % 2) == 0) + setPixmap(*_saveIcon); + else + setPixmap(*_flashIcon); + + if (_flashCount == 6) + _flashTimer->stop(); +} diff --git a/kshutdown/msystemtray.h b/kshutdown/msystemtray.h new file mode 100644 index 0000000..6424639 --- /dev/null +++ b/kshutdown/msystemtray.h @@ -0,0 +1,113 @@ +/* + msystemtray.h - A system tray icon + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MSYSTEMTRAY_H__ +#define __MSYSTEMTRAY_H__ + +#include <ksystemtray.h> + +class KPixmap; + +#define ks_tray MSystemTray::getInstance() + +/** @short A system tray icon. */ +class MSystemTray: public KSystemTray +{ + Q_OBJECT +public: + /** + * System tray icon modes. + */ + enum Mode { + Always = 0, /**< Always visible. */ + IfActive = 1, /**< Visible if action is active. */ + Never = 2 /**< Always hidden. */ + }; + + /** + * Destructor. + */ + virtual ~MSystemTray(); + + /** + * Flashes the icon. + */ + void flashIcon(); + + /** + * Constructs and returns a singleton instance + * of the system tray icon. + */ + inline static MSystemTray *getInstance() + { + if (!_instance) + _instance = new MSystemTray(); + + return _instance; + } + + /** + * Returns @c true if the instance of + * the system tray was created. + */ + inline static bool isInstance() { return _instance; } + + /** + * Switches icon between idle and active states. + * @param yes If @c true the state is "idle" (normal icon); + * otherwise the state is "active" (highlighted icon) + */ + void setActive(const bool yes); + + /** + * Returns the system tray icon mode. + */ + static inline Mode mode() { return _mode; } + + /** + * Sets system tray icon mode to @p mode. + */ + static void setMode(const Mode mode); +protected: + /** + * Overriden to handle middle button click; displays the actions menu. + * @param e A mouse event + */ + virtual void mousePressEvent(QMouseEvent *e); +private: + // icon stuff + bool + _active, + _incFade; + double _fadeValue; + int _flashCount; + KPixmap *_flashIcon; + static Mode _mode; + QPixmap *_saveIcon; + QTimer + *_fadeTimer, + *_flashTimer; + static MSystemTray *_instance; + MSystemTray(); +private slots: + void slotFade(); + void slotFlashTimeout(); +}; + +#endif // __MSYSTEMTRAY_H__ diff --git a/kshutdown/mtip.cpp b/kshutdown/mtip.cpp new file mode 100644 index 0000000..e571b42 --- /dev/null +++ b/kshutdown/mtip.cpp @@ -0,0 +1,90 @@ +/* + mtip.cpp - A tip widget + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include "miscutils.h" +#include "mtip.h" + +#include <qtooltip.h> + +#include <kiconloader.h> + +// public + +MTip::MTip(const TipType tipType, QWidget *parent) + : KActiveLabel(parent, "MTip") +{ + setFrameStyle(StyledPanel | Sunken); + setTipType(tipType); + setTipText(""); +} + +MTip::~MTip() +{ +} + +void MTip::setTipText(const QString &value) +{ + // valign and "center" ? + QString leftCell; + if (_iconPath.isEmpty()) { + leftCell = ""; + } + else { + leftCell = "<td align=\"center\" valign=\"center\">"; + leftCell += "<img src=\"" + _iconPath + "\">"; + leftCell += "</td>"; + } + setText(MiscUtils::HTML( + "<table border=\"0\" cellpadding=\"0\" cellspacing=\"2\">" \ + "<tr>" + leftCell + "<td>" + value + "</td></tr>" \ + "</table>" + )); +} + +void MTip::setTipType(const TipType value) +{ + _type = value; + switch (_type) + { + case Info: + _iconPath = getIconPath("messagebox_info"); + setPaletteBackgroundColor(white); + setPaletteForegroundColor(blue); + break; + case Normal: + _iconPath = getIconPath("messagebox_info"); + setPaletteBackgroundColor(QToolTip::palette().active().background()); + setPaletteForegroundColor(black); + break; + case Warning: + _iconPath = getIconPath("messagebox_warning"); + setPaletteBackgroundColor(yellow); + setPaletteForegroundColor(black); + break; + default: + _iconPath = ""; + } +} + +// private + +QString MTip::getIconPath(const QString &name) const +{ + return KGlobal::iconLoader()->iconPath(name, KIcon::NoGroup, KIcon::SizeLarge); +} diff --git a/kshutdown/mtip.h b/kshutdown/mtip.h new file mode 100644 index 0000000..4de2fb3 --- /dev/null +++ b/kshutdown/mtip.h @@ -0,0 +1,65 @@ +/* + mtip.h - A tip widget + Copyright (C) 2003 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __MTIP_H__ +#define __MTIP_H__ + +#include <kactivelabel.h> + +/** @short A tip widget based on the @c KActiveLabel widget. */ +class MTip: public KActiveLabel +{ +public: + /** + * Tip types. + */ + enum TipType { + Info, /**< Info tip. */ + Normal, /**< Normal tip. */ + Warning /**< Warning tip. */ + }; + + /** + * Constructor. + * @param tipType A tip type + * @param parent A parent widget + */ + MTip(const TipType tipType, QWidget *parent); + + /** + * Destructor. + */ + virtual ~MTip(); + + /** + * Sets tip text to @p value. + */ + void setTipText(const QString &value); + + /** + * Sets tip type to @p value. + */ + void setTipType(const TipType value); +private: + QString _iconPath; + TipType _type; + QString getIconPath(const QString &name) const; +}; + +#endif // __MTIP_H__ diff --git a/kshutdown/progressbar.cpp b/kshutdown/progressbar.cpp new file mode 100644 index 0000000..96a9136 --- /dev/null +++ b/kshutdown/progressbar.cpp @@ -0,0 +1,153 @@ +/* + progressbar.cpp - Progress Bar + Copyright (C) 2006 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include <qapplication.h> +#include <qdesktopwidget.h> +#include <qpainter.h> + +#include <kapplication.h> +#include <kdebug.h> +#include <klocale.h> +#include <kpopupmenu.h> + +#include "configuration.h" +#include "progressbar.h" + +// static + +ProgressBar *ProgressBar::_instance = 0; + +// public + +ProgressBar::~ProgressBar() { } + +void ProgressBar::setPosition(const Position value) { + // kdDebug() << "ProgressBar::setPosition: " << value << endl; + kshutdownrc->progressBarPosition = value; + + _position = value; + QDesktopWidget *desktop = QApplication::desktop(); + resize(desktop->width() - 4, height()); + switch (_position) { + case TOP: + move(2, 0); + break; + case BOTTOM: + move(2, desktop->height() - height()); + break; + default: + move(2, 0); + break; + } +} + +void ProgressBar::setHeight(const int value) { + int newHeight = (value < 2) ? 2 : value; + resize(width(), newHeight); +} + +void ProgressBar::setProgress(const int value) { + // kdDebug() << "ProgressBar::setProgress: " << value << endl; + + int complete = _total - value; + + if (_complete == complete) + return; + + _complete = complete; + + repaint(); +} + +void ProgressBar::setValues(const int complete, const int total) { + // kdDebug() << "ProgressBar::setValues: " << complete << ", " << total << endl; + + if ((_complete == complete) && (_total == total)) + return; + + _complete = complete; + _total = total; + repaint(); +} + +// protected + +void ProgressBar::mousePressEvent(QMouseEvent *e) { + // kdDebug() << "ProgressBar::mousePressEvent" << endl; + if (e->button() == RightButton) { +// TODO: 2.0: color configuration +// TODO: 2.0: size configuration + // show popup menu + KPopupMenu *popup = new KPopupMenu(this); + popup->insertTitle(kapp->miniIcon(), "KShutDown"); + popup->insertItem(i18n("Hide"), this, SLOT(hide())); + popup->insertTitle("Position"); + int topPositionItem = popup->insertItem(i18n("Top"), this, SLOT(slotSetTopPosition())); + popup->setItemChecked(topPositionItem, _position == TOP); + int bottomPositionItem = popup->insertItem(i18n("Bottom"), this, SLOT(slotSetBottomPosition())); + popup->setItemChecked(bottomPositionItem, _position == BOTTOM); + popup->popup(e->globalPos()); + e->accept(); + } + QWidget::mousePressEvent(e); +} + +void ProgressBar::paintEvent(QPaintEvent *) { + // kdDebug() << "ProgressBar::paintEvent" << endl; + + QPainter g(this); + int w = width(); + int h = height(); + g.fillRect(0, 0, w, h, QBrush(backgroundColor())); + + if ((_complete <= 0) || (_total <= 0)) + return; + + w = (int)((float)w * ((float)_complete * 100.0f / (float)_total) / 100.0f); + g.fillRect(0, 0, w, h, QBrush(foregroundColor())); +} + +// private + +ProgressBar::ProgressBar() + : QWidget( + 0, + "ProgressBar", + WStyle_NoBorder | WStyle_StaysOnTop | WType_TopLevel | WX11BypassWM + ), + _complete(0), + _total(0) { + + // kdDebug() << "ProgressBar::ProgressBar()" << endl; + + setBackgroundColor(black); + setPaletteForegroundColor(yellow); + setHeight(3); + setPosition((Position)kshutdownrc->progressBarPosition); +} + +// private slots + +void ProgressBar::slotSetBottomPosition() { + setPosition(BOTTOM); +} + +void ProgressBar::slotSetTopPosition() { + setPosition(TOP); +} diff --git a/kshutdown/progressbar.h b/kshutdown/progressbar.h new file mode 100644 index 0000000..8a040d0 --- /dev/null +++ b/kshutdown/progressbar.h @@ -0,0 +1,66 @@ +/* + progressbar.h - Progress Bar + Copyright (C) 2006 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __PROGRESSBAR_H__ +#define __PROGRESSBAR_H__ + +#include <qwidget.h> + +#include "progressbar.h" + +class ProgressBar: public QWidget { + Q_OBJECT +public: + enum Position { TOP, BOTTOM }; + virtual ~ProgressBar(); + inline static void freeInstance() { + if (_instance) { + delete _instance; + _instance = 0; + } + } + inline static ProgressBar *getInstance() { + if (!_instance) + _instance = new ProgressBar(); + + return _instance; + } + inline static bool isInstance() { + return _instance; + } + inline Position position() const { return _position; } + void setPosition(const Position value); + void setHeight(const int value); + void setProgress(const int complete); + void setValues(const int complete, const int total); +protected: + void mousePressEvent(QMouseEvent *e); + void paintEvent(QPaintEvent *); +private: + int _complete; + int _total; + Position _position; + static ProgressBar *_instance; + ProgressBar(); +private slots: + void slotSetBottomPosition(); + void slotSetTopPosition(); +}; + +#endif // __PROGRESSBAR_H__ diff --git a/kshutdown/systemconfig.cpp b/kshutdown/systemconfig.cpp new file mode 100644 index 0000000..6b919e0 --- /dev/null +++ b/kshutdown/systemconfig.cpp @@ -0,0 +1,189 @@ +/* + systemconfig.cpp - A system configuration manager + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include <stdlib.h> + +#include "miscutils.h" +#include "systemconfig.h" + +#include <qfileinfo.h> +#include <qheader.h> + +#include <kapplication.h> +#include <kiconloader.h> +#include <klistview.h> +#include <klocale.h> + +// http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=417301 +#include <cstdlib> + +// private + +int SystemConfig::_canShutDown = -1; + +// public + +bool SystemConfig::canShutDown() +{ +/* + if (_canShutDown == -1) + { + QCString XDM_MANAGED = ::getenv("XDM_MANAGED"); + + if (XDM_MANAGED.contains("maysd") || XDM_MANAGED.contains("classic")) + _canShutDown = 1; + else + _canShutDown = 0; + } +*/ + _canShutDown = 1; + + return _canShutDown == 1; +} + +void SystemConfig::check(QWidget *parent) +{ + SystemConfig *systemConfig = new SystemConfig(parent); + systemConfig->exec(); + delete systemConfig; +} + +// private + +SystemConfig::SystemConfig(QWidget *parent) + : KDialogBase( + parent, + "SystemConfig", // name + true, // modal + i18n("System Configuration"), + Close, + Close // default button + ), + _problems(0) +{ + _messages = new KListView(this, "KListView::_messages"); + _messages->setAllColumnsShowFocus(true); + _messages->setItemMargin(5); + _messages->setSorting(-1); // no sort + _messages->addColumn(""); + _messages->addColumn(i18n("Message")); + _messages->header()->setClickEnabled(false); + connect(_messages, SIGNAL(executed(QListViewItem *)), SLOT(slotExecuted(QListViewItem *))); + connect(_messages, SIGNAL(spacePressed(QListViewItem *)), SLOT(slotExecuted(QListViewItem *))); + setMainWidget(_messages); + + _shutdownAllowItem = add(Info, i18n("Tip: Click here if you have problem with the \"/sbin/shutdown\" command.")); + + checkFile("/sbin/poweroff"); + checkFile("/sbin/reboot"); + checkFile("/sbin/shutdown"); + checkKDM(); + checkKDE(); + + if (_problems == 0) + add(OK, i18n("No problems were found.")); +} + +KListViewItem *SystemConfig::add(const Type type, const QString &message) +{ + KListViewItem *item = new KListViewItem(_messages); + item->setMultiLinesEnabled(true); + switch (type) + { + case Info: + item->setPixmap(0, SmallIcon("messagebox_info")); + break; + case OK: + item->setPixmap(0, SmallIcon("button_ok")); + break; + case Warning: + _problems++; + item->setPixmap(0, SmallIcon("messagebox_warning")); + break; + } + item->setText(1, message); + + return item; +} + +void SystemConfig::checkFile(const QString &file) +{ + QFileInfo program(file); + + if (!program.exists()) + { + add(Warning, i18n("Program \"%1\" was not found!").arg(file)); + + return; + } + + if (!program.isExecutable()) + { + add(Warning, i18n("No permissions to execute \"%1\".").arg(file)); + } +} + +void SystemConfig::checkKDE() +{ + QCString KDE_FULL_SESSION = ::getenv("KDE_FULL_SESSION"); + if (KDE_FULL_SESSION != "true") + { + add(Warning, i18n("It seems that this is not a KDE full session.\nKShutDown was designed to work with KDE.\nHowever, you can customize Actions in the KShutDown settings dialog\n(Settings -> Configure KShutDown... -> Actions).")); + } +} + +/* TODO: 2.0: KDM configurator +From old FAQ: +- Do it as root! +- Make sure you first create backup of the "/etc/sysconfig/desktop" file +- Remove all "GNOME" and "GDM" lines from "/etc/sysconfig/desktop" file +- Add new line: DISPLAYMANAGER="KDE" +- Reboot system and login again +*/ +void SystemConfig::checkKDM() +{ + if (!canShutDown()) + { +// TODO: 2.0: auto configuration + add(Info, i18n("Tip: You can customize Actions to work with GDM.\n(Settings -> Configure KShutDown... -> Actions)")); + _kdmNotDetected = add(Warning, i18n("KDE Display Manager is not running,\nor the shut down/reboot function is disabled.\n\nClick here to configure KDM.")); + } +} + +// private slots + +void SystemConfig::slotExecuted(QListViewItem *item) +{ + if (!item) + return; + + if (item == _kdmNotDetected) + { + MiscUtils::runShellCommand("kdesu -c \"kcmshell kdm\" -i \"exit\""); + + return; + } + + if (item == _shutdownAllowItem) + { + kapp->invokeBrowser("http://doc.gwos.org/index.php/NonRootShutdown"); + + return; + } +} diff --git a/kshutdown/systemconfig.h b/kshutdown/systemconfig.h new file mode 100644 index 0000000..6fd3729 --- /dev/null +++ b/kshutdown/systemconfig.h @@ -0,0 +1,60 @@ +/* + systemconfig.h - A system configuration manager + Copyright (C) 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __SYSTEMCONFIG_H__ +#define __SYSTEMCONFIG_H__ + +#include <kdialogbase.h> + +class KListView; +class KListViewItem; + +/** @short A system configuration manager. */ +class SystemConfig: KDialogBase +{ + Q_OBJECT +public: + /** + * Returns @c true if the <b>shut down</b> and @b reboot functions are available. + */ + static bool canShutDown(); + + /** + * Shows a modal dialog, and checks the system configuration. + * @param parent A parent widget + */ + static void check(QWidget *parent); +private: + enum Type { Info, OK, Warning }; + static int _canShutDown; + int _problems; + KListView *_messages; + KListViewItem + *_kdmNotDetected, + *_shutdownAllowItem; + SystemConfig(QWidget *parent); + KListViewItem *add(const Type type, const QString &message); + void checkFile(const QString &file); + void checkKDE(); + void checkKDM(); +private slots: + void slotExecuted(QListViewItem *item); +}; + +#endif // __SYSTEMCONFIG_H__ diff --git a/kshutdownlockout/Makefile.am b/kshutdownlockout/Makefile.am new file mode 100644 index 0000000..7fd6b25 --- /dev/null +++ b/kshutdownlockout/Makefile.am @@ -0,0 +1,15 @@ +INCLUDES = $(all_includes) +METASOURCES = AUTO + +kde_module_LTLIBRARIES = kshutdownlockout_panelapplet.la + +kshutdownlockout_panelapplet_la_SOURCES = lockout.cpp +kshutdownlockout_panelapplet_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries) +kshutdownlockout_panelapplet_la_LIBADD = $(LIB_KSYCOCA) + +noinst_HEADERS = lockout.h + +lnkdir = $(kde_datadir)/kicker/applets +lnk_DATA = kshutdownlockout.desktop + +EXTRA_DIST = $(lnk_DATA) diff --git a/kshutdownlockout/kshutdownlockout.desktop b/kshutdownlockout/kshutdownlockout.desktop new file mode 100644 index 0000000..7cdc247 --- /dev/null +++ b/kshutdownlockout/kshutdownlockout.desktop @@ -0,0 +1,71 @@ +[Desktop Entry] +Type=Plugin +# Encoding: UTF-8 +Name=KShutDown +Comment=Lock/Logout buttons for the panel +Comment[af]=Sluit/Teken af knoppies vir die paneel +Comment[ar]=أزرار اقفال/خروج للوحة المهام +Comment[az]=Panel appletlərini bağla/ayır +Comment[bg]=Системен аплет за заключване на екрана и изход от системата +Comment[bn]=প্যানেল-এর জন্য লক এবং লগ-আউট বাটন +Comment[bs]=Dugmad za zaključavanje i odjavu za panel +Comment[ca]=Botons al plafó per a bloquejar/sortir +Comment[cs]=Umožňuje snadné odhlášení/uzamčení z panelu +Comment[cy]=Botymau cloi/allgofnodi i'r panel +Comment[da]=Lås/Logaf-knapper til panelet +Comment[de]=Bildschirmsperr- und Abmeldeknöpfe für die Kontrollleiste +Comment[el]=Κουμπιά Κλειδώματος/Αποσύνδεσης για τον πίνακα +Comment[eo]=Butonoj por ekranŝloso kaj adiaŭo en Panelo +Comment[es]=Botones de bloqueo y salida del panel +Comment[et]=Lukustamise ja väljalogimise nupud paneelil +Comment[eu]=Lock/Logout botoiak panelerako +Comment[fa]=دکمهی خروج/قفل صفحهی کنترل +Comment[fi]=Lukitse/Kirjaudu ulos napit paneeliin +Comment[fr]=Des boutons sur le tableau de bord pour verrouiller le bureau ou se déconnecter +Comment[gl]=Botóns de Bloqueo/Saída no panel +Comment[he]=כפתורי נעילה\יציאה ללוח +Comment[hi]=फलक के लिए ताला/लॉगआउट बटन +Comment[hr]=Tipke za zaključavanje/odjavu na ploči +Comment[hu]=A panelba illeszkedő nyomógomok az asztal zárolásához és a kijelentkezéshez +Comment[is]=Stimpla út/Læsa skjáborði hnappar fyrir spjaldið +Comment[it]=Pulsanti sul pannello per il blocco dello schermo o il termine della sessione +Comment[ja]=パネルからロック/ログアウトができます +Comment[lo]=ປຸ່ມລອກ/ລອກອິນສຳລັບຖາດພາເນລ +Comment[lt]=Užrakinimo/išsiregistravimo mygtukai pultui +Comment[lv]=Slēgt/Atteikties pogas panelim +Comment[mk]=Копчиња Заклучи/Одјави се за панелот +Comment[mn]=Удирдах цонхон дээрх дэлгэц түгжих- ба гарах товч +Comment[mt]=Applet għall-pannell biex ittemm is-sessjoni jew issakkar l-iskrin +Comment[nb]=Lås/Loggut-knapp for panelet +Comment[nds]=Paneelknööp för't Schirm afsluten / Afmellen +Comment[nl]=Paneelknoppen om af te melden of het scherm te vergrendelen +Comment[nn]=Panelknappar for skjermlås/utlogging +Comment[nso]=Ditobetswa tsa Notlelo/Etswa tsa panel +Comment[pa]=ਪੈਨਲ ਲਈ ਤਾਲਾ/ਬਾਹਰੀ ਦਰ ਐਪਲਿਟ +Comment[pl]=Przyciski blokowania i wylogowania dla panelu +Comment[pt]=Os botões para trancar o ecrã e sair do KDE para o painel +Comment[pt_BR]=Botões de Travar/Sair para o Painel +Comment[ro]=Butoane de ieşire şi de blocare ecran, pentru panou +Comment[ru]=Кнопки выхода/запирания экрана на панели +Comment[se]=Lohkadan-/olggosčálihanboalut panela várás +Comment[sk]=Tlačidlá panelu pre odhlásenie alebo uzamknutie obrazovky +Comment[sl]=Gumba za zaklenitev in odjavo na pultu +Comment[sr]=Дугмад за закључавање/одјављивање за панел +Comment[sr@Latn]=Dugmad za zaključavanje/odjavljivanje za panel +Comment[sv]=Lås/Logga ut-knappar för panelen +Comment[ta]=பூட்டு/பலகத்திற்கான வெளிச்செல் பட்டன்கள் +Comment[tg]=Кнопкаҳои баромад/қуфли экран дар панел +Comment[th]=ปุ่มล็อค/ล็อกอินสำหรับถาดพาเนล +Comment[tr]=Panel için Kilitle/Çık düğmeleri +Comment[uk]=Кнопки "Замкнути" та "Завершити" для панелі +Comment[uz]=Панел учун қулфлаш/чиқиш тугмалари +Comment[ven]=Khiela/bathene dzau litsha dza phanele +Comment[vi]=Nút Lock/Logout cho khung +Comment[xh]=Tshixa/Amaqhosa ophumo ngaphandle lwe window eneenkcukacha +Comment[xx]=xxLock/Logout buttons for the panelxx +Comment[zh_CN]=面板的锁定/注销按钮 +Comment[zh_TW]=在面板上顯示「螢幕鎖定/登出」按鈕 +Comment[zu]=Izinkinobho Zokukhiya/Ukuphumela ngaphandle zewindi lemininingwane +# DUPLICATE: Comment[el]=Κουμπιά κλειδώματος/αποσύνδεσης για τον πίνακα +Icon=kshutdown +X-KDE-Library=kshutdownlockout_panelapplet diff --git a/kshutdownlockout/lockout.cpp b/kshutdownlockout/lockout.cpp new file mode 100644 index 0000000..6fd7085 --- /dev/null +++ b/kshutdownlockout/lockout.cpp @@ -0,0 +1,236 @@ +/***************************************************************** + +Copyright (c) 2001 Carsten Pfeiffer <pfeiffer@kde.org> + 2001 Matthias Elter <elter@kde.org> + 2001 Martijn Klingens <mklingens@yahoo.com> + + KShutDown Branch: + 2005 Stephen Ellwood + 2005 Konrad Twardowski <kdtonline@poczta.onet.pl> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ + +// TODO: 2.0: update handbook + +#include <sys/types.h> + +#include "lockout.h" + +#include <qlayout.h> +#include <qtoolbutton.h> +#include <qtooltip.h> + +#include <dcopclient.h> +#include <kaction.h> +#include <kapplication.h> +#include <kglobal.h> +#include <kiconloader.h> +#include <klocale.h> +#include <kmessagebox.h> +#include <kpopupmenu.h> +#include <kprocess.h> +#include <krun.h> + +// plugin + +#if !KDE_IS_VERSION(3,3,2) +#undef KDE_EXPORT +#define KDE_EXPORT +#endif + +extern "C" +{ + KDE_EXPORT KPanelApplet *init(QWidget *parent, const QString& configFile) + { + // share i18n with KShutDown + KGlobal::locale()->insertCatalogue("kshutdown"); + + return new Lockout(configFile, parent); + } +} + +// public + +Lockout::Lockout(const QString& configFile, QWidget *parent) + : KPanelApplet( + configFile, + KPanelApplet::Normal, + 0, // no standard actions + parent, + "kshutdownlockout" + ) +{ + setBackgroundOrigin(AncestorOrigin); + setFrameStyle(Panel | Sunken); + + initActions(); + + KPopupMenu *pm_actions = new KPopupMenu(this); + pm_actions->insertTitle(SmallIcon("messagebox_warning"), i18n("No Delay")); + _shutDownAction->plug(pm_actions); + _rebootAction->plug(pm_actions); + _lockScreenAction->plug(pm_actions); + _logoutAction->plug(pm_actions); + pm_actions->insertSeparator(); + _configureKShutDownAction->plug(pm_actions); + + QVBoxLayout *layout = new QVBoxLayout(this); + QToolButton *button = new QToolButton(this); + button->setAutoRaise(true); + button->setBackgroundMode(X11ParentRelative); + button->setPixmap(SmallIcon("exit")); + button->setPopupDelay(100); + button->setMinimumSize(button->pixmap()->size()); + button->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); + connect(button, SIGNAL(clicked()), this, SLOT(slotShowKShutDown())); + + button->setPopup(pm_actions); + layout->addWidget(button); + +/* // read configuration + KConfig *config = this->config(); + config->setGroup("kshutdownlockout"); + _transparent = config->readBoolEntry("Transparent", true); +*/ + if (!kapp->dcopClient()->isAttached()) + kapp->dcopClient()->attach(); + connect(kapp, SIGNAL(iconChanged(int)), SLOT(slotIconChanged())); + + QToolTip::add( + this, + "<qt>" \ + "<b>KShutDown</b><br><br>" + + i18n("Click for KShutDown main window<br>Click and hold for menu") + + "</qt>" + ); +} + +Lockout::~Lockout() +{ + KGlobal::locale()->removeCatalogue("kshutdown"); +} + +int Lockout::heightForWidth(int/* width*/) const +{ + return sizeHint().height(); +} + +int Lockout::widthForHeight(int/* height*/) const +{ + return sizeHint().width(); +} + +// private + +void Lockout::callKShutDown(const QCString &function) { + DCOPClient *client = kapp->dcopClient(); + if (!client->isApplicationRegistered("kshutdown")) { + // run KShutDown + KProcess *p = new KProcess(); + if (!p) { + KMessageBox::error(0, i18n("Could not run KShutDown!")); + + return; + } + *p << "kshutdown"; + *p << "--init"; + if (!p->start(KProcess::Block)) + KMessageBox::error(0, i18n("Could not run KShutDown!")); + delete p; + } + client->send("kshutdown", "KShutdownIface", function, ""); +} + +void Lockout::initActions() { + KActionCollection *ac_shutDown = new KActionCollection(this, this); + + _lockScreenAction = new KAction( + i18n("Lock Screen"), "lock", KShortcut(), + this, SLOT(slotLockScreen()), + ac_shutDown, "kshutdown_lockscreen" + ); + + _logoutAction = new KAction( + i18n("End Current Session"), "undo", KShortcut(), + this, SLOT(slotLogout()), + ac_shutDown, "kshutdown_logout" + ); + + _rebootAction = new KAction( + i18n("Restart Computer"), "reload", KShortcut(), + this, SLOT(slotReboot()), + ac_shutDown, "kshutdown_reboot" + ); + + _shutDownAction = new KAction( + i18n("Turn Off Computer"), "exit", KShortcut(), + this, SLOT(slotShutDown()), + ac_shutDown, "kshutdown_shutdown" + ); + + // standard actions + + _configureKShutDownAction = new KAction( + i18n("&Configure KShutDown..."), "configure", KShortcut(), + this, SLOT(slotConfigureKShutDown()), + ac_shutDown, "options_configure" + ); +} + +void Lockout::runCommand(const QString &command) { + pid_t pid = KRun::run(command, KURL::List()); + if (!pid) + KMessageBox::error(0, i18n("Could not run KShutDown!")); +} + +// private slots + +void Lockout::slotCancel() { + callKShutDown("cancel()"); +} + +void Lockout::slotConfigureKShutDown() { + callKShutDown("configure()"); +} + +void Lockout::slotIconChanged() { +// FIXME: 2.0: update action icons + setIcon(SmallIcon("exit")); +} + +void Lockout::slotLockScreen() { + callKShutDown("lockScreen()"); +} + +void Lockout::slotLogout() { + runCommand("kshutdown --init --confirm --logout"); +} + +void Lockout::slotReboot() { + runCommand("kshutdown --init --confirm --reboot"); +} + +void Lockout::slotShowKShutDown() { + callKShutDown("makeVisible()"); +} + +void Lockout::slotShutDown() { + runCommand("kshutdown --init --confirm --shutdown"); +} diff --git a/kshutdownlockout/lockout.h b/kshutdownlockout/lockout.h new file mode 100644 index 0000000..faecd58 --- /dev/null +++ b/kshutdownlockout/lockout.h @@ -0,0 +1,59 @@ +#ifndef __LOCKOUT_H__ +#define __LOCKOUT_H__ + +#include <kpanelapplet.h> + +class KAction; + +/** + * @short A KShutDown panel applet. + * Based on the Lockout applet. + */ +class Lockout: public KPanelApplet +{ + Q_OBJECT +public: + /** + * Constructs a new applet. + * @param configFile A configuration file (provided by the Kicker) + * @param parent A parent widget + */ + Lockout(const QString& configFile, QWidget *parent = 0); + + /** + * Destructor. + */ + ~Lockout(); + + /** + * Returns a suggested height for a given @p width. + */ + int heightForWidth(int width) const; + + /** + * Returns a suggested width for a given @p height. + */ + int widthForHeight(int height) const; +private: + bool _transparent; + KAction + *_configureKShutDownAction, + *_lockScreenAction, + *_logoutAction, + *_rebootAction, + *_shutDownAction; + void callKShutDown(const QCString &function); + void initActions(); + void runCommand(const QString &command); +private slots: + void slotCancel(); + void slotConfigureKShutDown(); + void slotIconChanged(); + void slotLockScreen(); + void slotLogout(); + void slotReboot(); + void slotShowKShutDown(); + void slotShutDown(); +}; + +#endif // __LOCKOUT_H__ diff --git a/pics/Makefile.am b/pics/Makefile.am new file mode 100644 index 0000000..a316682 --- /dev/null +++ b/pics/Makefile.am @@ -0,0 +1,15 @@ +EXTRA_DIST = \ + hi32-app-kshutdown.png \ + hi48-app-kshutdown.png \ + kshutdown.svg + +install-data-local: + $(mkinstalldirs) $(kde_icondir)/hicolor/32x32/apps/ + $(INSTALL_DATA) $(srcdir)/hi32-app-kshutdown.png $(kde_icondir)/hicolor/32x32/apps/kshutdown.png + + $(mkinstalldirs) $(kde_icondir)/hicolor/48x48/apps/ + $(INSTALL_DATA) $(srcdir)/hi48-app-kshutdown.png $(kde_icondir)/hicolor/48x48/apps/kshutdown.png + +uninstall-local: + -rm -f $(kde_icondir)/hicolor/32x32/apps/kshutdown.png + -rm -f $(kde_icondir)/hicolor/48x48/apps/kshutdown.png diff --git a/pics/hi32-app-kshutdown.png b/pics/hi32-app-kshutdown.png Binary files differnew file mode 100644 index 0000000..b03dddb --- /dev/null +++ b/pics/hi32-app-kshutdown.png diff --git a/pics/hi48-app-kshutdown.png b/pics/hi48-app-kshutdown.png Binary files differnew file mode 100644 index 0000000..a71ed47 --- /dev/null +++ b/pics/hi48-app-kshutdown.png diff --git a/pics/kshutdown.svg b/pics/kshutdown.svg new file mode 100644 index 0000000..8a34449 --- /dev/null +++ b/pics/kshutdown.svg @@ -0,0 +1,153 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" +"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + id="svg1" + sodipodi:version="0.32" + inkscape:version="0.39" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://web.resource.org/cc/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + width="210mm" + height="297mm" + sodipodi:docbase="/home/kdt/Desktop" + sodipodi:docname="kshutdown.svg"> + <defs + id="defs3"> + <linearGradient + id="linearGradient10097"> + <stop + style="stop-color:#ff0000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop10098" /> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop10099" /> + </linearGradient> + <linearGradient + id="linearGradient1530"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1531" /> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop1532" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1530" + id="linearGradient1533" + x1="0.95620435" + y1="0.91176468" + x2="-0.065693431" + y2="0.029411765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1530" + id="linearGradient2780" + x1="0.0072992700" + y1="0.066176474" + x2="1.1459854" + y2="0.91176468" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1530" + id="linearGradient6509" + x1="0.035087720" + y1="0.029411765" + x2="1.2456141" + y2="0.80882353" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient1530" + id="linearGradient7131" + x1="0.92700732" + y1="0.91911763" + x2="-0.021897810" + y2="0.036764707" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient10097" + id="linearGradient10101" + x1="-0.14728682" + y1="0.054687500" + x2="1.7054263" + y2="0.98437500" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.61399264" + inkscape:cx="544.02209" + inkscape:cy="521.17103" + inkscape:window-width="1016" + inkscape:window-height="689" + inkscape:window-x="0" + inkscape:window-y="24" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + rdf:about="" + id="Work6"> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + id="type9" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <path + sodipodi:type="arc" + style="fill:#ff0000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient7131);stroke-width:6.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;" + id="path908" + sodipodi:cx="430.43051" + sodipodi:cy="538.43683" + sodipodi:rx="292.23209" + sodipodi:ry="292.23209" + d="M 722.66260 538.43683 A 292.23209 292.23209 0 1 0 138.19843,538.43683 A 292.23209 292.23209 0 1 0 722.66260 538.43683 z" + transform="translate(-71.97835,22.31325)" /> + <path + sodipodi:type="arc" + style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2780);stroke-width:7.7245750;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;" + id="path2158" + sodipodi:cx="430.43051" + sodipodi:cy="538.43683" + sodipodi:rx="292.23209" + sodipodi:ry="292.23209" + d="M 722.66260 538.43683 A 292.23209 292.23209 0 1 0 138.19843,538.43683 A 292.23209 292.23209 0 1 0 722.66260 538.43683 z" + transform="matrix(0.809106,0.000000,0.000000,0.809106,10.18825,125.0976)" /> + <path + sodipodi:type="arc" + style="fill:url(#linearGradient10101);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#linearGradient1533);stroke-width:10.440436;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;" + id="path3402" + sodipodi:cx="430.43051" + sodipodi:cy="538.43683" + sodipodi:rx="292.23209" + sodipodi:ry="292.23209" + d="M 722.66260 538.43683 A 292.23209 292.23209 0 1 0 138.19843,538.43683 A 292.23209 292.23209 0 1 0 722.66260 538.43683 z" + transform="matrix(0.598634,0.000000,0.000000,0.598634,100.7818,238.4235)" /> + <rect + style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient6509);stroke-width:6.5800757;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;" + id="rect5887" + width="80.615746" + height="228.17581" + x="318.14429" + y="446.66217" + ry="40.307873" + rx="40.307873" /> +</svg> diff --git a/po/Makefile.am b/po/Makefile.am new file mode 100644 index 0000000..7146abe --- /dev/null +++ b/po/Makefile.am @@ -0,0 +1,2 @@ +POFILES = AUTO +EXTRA_DIST = README diff --git a/po/README b/po/README new file mode 100644 index 0000000..fc3fbad --- /dev/null +++ b/po/README @@ -0,0 +1,32 @@ + + Please read the following information + before you start a new translation. Thank you :) + +IMPORTANT: Please see i18n status first at + http://kshutdown.sourceforge.net + +Use UTF-8 encoding. +Make sure that KBabel or KWrite is configured properly. + +More stuff to translate: +- *.desktop files +- hidden ".directory" files ("extras" directory) +- "eventsrc" file ("sounds" directory) + +HTML tags used in some strings: +<b>text</b> - bold text +<i>text</i> - italic text +<br> - new line (similar to \n) + +Do not put "&" (keyboard shortcut) +if you don't see this in an original message. +KDE 3.4 will automatically insert missing "&" into all widgets. + +Don't translate messages from "*.moc.cpp" files (e.g. "MStatsTab"). +These messages are generated by the Qt Meta Object Compiler, +and are not visible in KShutDown. + +To extract and merge messages run +the following command from the top source directory: +$ WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" make package-messages +This will update *.pot template and all *.po translation files. diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..e66b0e6 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,841 @@ +# translation of kshutdown.po to +# This file is put in the public domain. +# +# Youssef Chahibi <chahibi@gmail.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kshutdown\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2007-07-07 17:44+0000\n" +"Last-Translator: Youssef Chahibi <chahibi@gmail.com>\n" +"Language-Team: <doc@arabeyes.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Arabic\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "إحصائيات" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "This view displays information about the users currently on the machine, and their processes.<br>The header shows how long the system has been running." +msgstr "هذا العرض يظهر معلومات المستخدمين على الجهاز, وعملياتهم.<br>التروسية تظهر كم مدة من الزمن بقي النظام قيد التشغيل." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "إنعاش" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "خيارات" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "معلومات أكثر" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "أظهر لحظة الولوج وJCPU وPCPU" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "بدّل \"من\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "بدّل \"من\" (اسم مضيف عن بعد) خانة." + +#: ../kshutdown/mstatstab.cpp:190 +#: ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "خطأ" + +#: ../kshutdown/mstatstab.cpp:191 +#: ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "الأمر: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "إجراءات أكثر..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "اختر أمر..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "استخدم قائمة السياق لإضافة/تحرير/إزالة وصلات" + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "استخدم <b>قائمة السياق</b> لإنشاء وصلة جديدة للتطبيق" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "استخدم <b>إنشئ مجلد|جديد...</b> لإنشاء قائمة فرعية جديدة" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "استخدم <b>خصائص</b> لتغيير أيقونة, اسم, أو تعليق" + +#: ../kshutdown/extras.cpp:252 +#: ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "الإضافيات" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"خطأ داخلي!\n" +"بند القائمة المختار تالف." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "1 تحذير ساعة" + +#: ../kshutdown/miscutils.cpp:107 +#: ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 تحذير دقائق" + +#: ../kshutdown/miscutils.cpp:111 +#: ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 تحذير دقيقة" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 تحذير ثواني" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "ثلاث ثواني قبل الإجراء" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "ثانيتين قبل الإجراء" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "ثانية قبل الإجراء" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "لا يمكن تشغيل \"%1\"!" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Progress Bar" +msgstr "شريط العملية" + +#: ../kshutdown/miscutils.cpp:228 +#: ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "اختبر" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "الموقع المراد لإنشاء الوصلة:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "سطح المكتب" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "قائمة K" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "نوع الوصلة:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "مربع حوار الخروج المعياري" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "وحدة إغلاق النظام" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "لا يمكن إنشاء ملف <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "لا يمكن إزالة ملف <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "إزل وصلة" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "إضف وصلة" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "تسجيل خروج" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "وحدة إغلاق لـ KDE" + +#: ../kshutdown/main.cpp:51 +#: ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "إغلاق الحاسوب" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "إعادة إقلاع الحاسوب" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "اقفل الجلسة" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "إنهاء الجلسة الحالية" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "تأكيد إجراء خط الأمر" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "أعرض مربع تسجيل الخروج المعياري" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "إلغي الإجراء النشط" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "لا تظهر النافذة عند بدء التشغيل" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "تمكين وضع الاختبار" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "تعطيل وضع الاختبار" + +#: ../kshutdown/main.cpp:67 +msgid "Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now" +msgstr "الوقت; أمثلة: 01:30 - الوقت الفاصل (HH:MM); 10 - عدد الدقائق للانتظار من الآن" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "وقت غير صالح: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "تعيينات" + +#: ../kshutdown/msettingsdialog.cpp:117 +#: ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "معطل بواسطة المدير." + +#: ../kshutdown/msettingsdialog.cpp:129 +#: ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "إجراءات" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "إجراء" + +#: ../kshutdown/msettingsdialog.cpp:143 +#: ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "طريقة" + +#: ../kshutdown/msettingsdialog.cpp:144 +#: ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "الأمر قبل الإجراء" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "حرر..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "افحص إعدادات النظام" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "قائمة إضافية" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "عدل..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "متقدم" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "بعد الدخول" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "اقفل الشاشة" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "قبل الخروج" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "إغلق أيقونة القرص المدمج" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "الأمر:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "تعيينات كيدي المرتبطة..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "عام" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "مشاكل عامة" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"إغلاق الحاسوب\" لا يعمل" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "الرسائل المنبثقة مزعجة" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "أضف/أزل وصلات" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "أظهر أيقونة صينية النظام" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "دائماً" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "أيقونة صينية النظام ستكون مرئية دائماً" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "إذا كان منشط" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "أيقونة صينية النظام ستكون مرئية فقط إذا كان KShutdown منشط" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "أبداً" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "أيقونة صينية النظام ستكون مخفية دائماً" + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "أعرض سمات KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "الصفحة الرئيسية لسوبر كارامبا" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "الرسائل" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "أعرض رسالة تحذيرية قبل الإجراء" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "دقائق" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "رسالة تحذيرية" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "مفعل" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "أمر القوقعة لكي ينفذ:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "ادخل أمر" + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "نص رسالة" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "عنوان النافذة الرئيسية الحالية" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "التجهيزات المسبقة" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "رسالة معتادة" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "أعد تمكين صناديق كلّ الرسائل" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "Enable all messages which have been turned off with the <b>Do not show this message again</b> feature." +msgstr "لا تظهر الرسائلة الموقوفة مرة أخرى." + +#: ../kshutdown/msettingsdialog.cpp:417 +#: ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (الافتراضي)" + +#: ../kshutdown/msettingsdialog.cpp:431 +#: ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "بدون إيقاف مؤقت" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "إيقاف مؤقت: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "هذا الملف يستخدم لاقفال الجلسة عند بدء تشغيل KDE" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "استعادة التعيينات الافتراضية لهذه الصفحة؟" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "ادخل الساعة والدقيقة." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "ادخل التاريخ والوقت." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "إنقر <b>اختر أمر...</b> زر أولاً." + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "التاريخ/الوقت المختار: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "التاريخ/الوقت الحالي: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "التاريخ/الوقت المختار أسبق من التاريخ/الوقت الحالي!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "الإجراء إلغي!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "وضع الاختبار ممكن" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "وضع الاختبار معطل" + +#: ../kshutdown/mmainwindow.cpp:417 +#: ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 +#: ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "بدون تأخير" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&ملف" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "&إجراءات" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "إعداد الاختصارات العالمية..." + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "&تعيينات" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "&مساعدة" + +#: ../kshutdown/mmainwindow.cpp:503 +#: ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "إ&لغي" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "افحص إعدادات النظام" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "&بدء [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "&إحصائيات" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "اختر الإجراء لكي ينجز" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "اختر عملية لكي تنجز بالوقت المحدد." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "ا&ختر وقت" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "الوقت من الآن (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "عند الوقت/التاريخ" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "عند خروج التطبيق المختار" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "اختر نوع التأخير" + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "الوقت المختار." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "وضع الاختبار" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "الوقت المتبقي: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 +#: ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "مجهول" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "الوقت المختار: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "الإجراء المختار: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>ملاحظة: </b> نمط الاختبار ممكن" + +#: ../kshutdown/mmainwindow.cpp:849 +#: ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "KShutDown تم تصغيره" + +#: ../kshutdown/mmainwindow.cpp:879 +#: ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "KShutDown قد أنهي" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "من فضلك انتظر..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"لا يمكن الخروج بشكل صحيح.\n" +"مسيير الجلسة لا يمكنه الاتصال." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "لا شيء" + +#: ../kshutdown/actions.cpp:317 +#: ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "إغلاق الحاسوب" + +#: ../kshutdown/actions.cpp:318 +#: ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "إعادة إقلاع الحاسوب" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "قفل الجلسة" + +#: ../kshutdown/actions.cpp:320 +#: ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "إنهاء الجلسة الحالية" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "الإجراء فشل! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "فشلت مناداة kdesktop: DCOP!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "إعدادات النظام" + +#: ../kshutdown/systemconfig.cpp:76 +#: ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "رسالة" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"إفادة: إذا كان لديك مشكل مع الأمر \"/sbin/shutdown\"،\n" +"ما عليك إلا أن تعدل الملف \"/etc/shutdown.allow\"،\n" +"ثم أن تنفذ الأمر ذاته بزيادة \"-a\" في آخره.\n" +"\n" +"انقر هنا لمزيد من المعلومات." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "لا توجد مشاكل." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "برنامج \"%1\" غير موجود!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "لا توجد أذون لتنفيذ \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"يبدو أن هذه ليست جلسة كاملة لكيدي.\n" +"صمم KShutDown للعمل على كيدي.\n" +"لكن، يمكنك أن تعدل «الإجراءات» في حوار تعيينات KShutDown\n" +"(تعيينات -> إعداد ...KShutDown -> إجراءات)." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"إفادة: يمكنك تعديل الإجراءات للعمل مع GDM.\n" +"(تعيينات -> إعداد ...KShutDown -> إجراءات)." + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"KDM غير مشتغل،\n" +"أو وظيفة الإيقاف وإعادة التشغيل معطلة.\n" +"\n" +"انقر هنا لإعداد KDM." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "اختر طريقة:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "ادخل أمر مخصص:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "نفّذ أمر" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "إيقاف مؤقت بعد تشغيل الأمر:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "ثواني" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "In most cases you need privileges to shut down system (e.g. run /sbin/shutdown)" +msgstr "تتطلب في أغلب الحالات صلاحيات خاصة استعمال أمر /sbin/shutdown قصد إيقافه." + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set all methods to <i>KDE</i>" +msgstr "إذا كنت تستعمل <b>KDE</b> و<b>KDM</b>، استعمل <i>KDE</i> قي كل الوظائف." + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "If you are using <b>KDE</b> and display manager different than <b>KDM</b>, then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/sbin/...</i>" +msgstr "إذا كنت تستعمل <b>KDE</b> ومدير جلسات غير <b>KDM</b>، اكتب <i>/sbin</i> في خانات <i>إغلاق الحاسوب</i> و<أعد تشغيل الحاسوب</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "يدوي:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "أمر المستخدم" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "الوقت المتبقي." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "انعش قائمة العمليات" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "قائمة العمليات قيد التشغيل" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "اقتل" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "اقتل العملية المختارة" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "انتظار لـ \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "العملية المختارة غير موجود مسبقاً!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "لا يمكن تنفيذ الأمر<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be lost!" +msgstr "هل تريد حقا إنهاء باستعمال KILL البرنامج<br><b>%1</b>?<br><br>شتضيع بذلك كل البيانات غير المحفوظة!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "العملية غير موجودة<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "لا توجد أذون لقتل<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "أنهي: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "تاكيد" + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "&إلغي" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "هل أنت متأكد؟<br><br>الإجراء المختار: <b>%1</b><br>الوقت المختار: <b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 +#: _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "عبدالعزيز الشريف" + +#: ../kshutdown/_translatorinfo.cpp:3 +#: _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "a.a-a.s@hotmail.com" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" +"انقر للوصول إلى النافذة اﻷساسية لKShutDown<br> " +"انقر واضغط من أجل قائمة الخيارات." + +#: ../kshutdownlockout/lockout.cpp:150 +#: ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "استحال تنفيذ KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "قفل الجلسة" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "&إعداد KShutDown..." + diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..b7bf233 --- /dev/null +++ b/po/bg.po @@ -0,0 +1,830 @@ +# translation of kshutdown.po to Bulgarian +# This file is put in the public domain. +# +# Zlatko Popov <zlatkopopov@fsa-bg.org>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: kshutdown\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2007-05-05 11:15+0000\n" +"Last-Translator: Zlatko Popov <zlatkopopov@fsa-bg.org>\n" +"Language-Team: Bulgarian <dict@linux.zonebg.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Статистика" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "Този изглед показва информацията за текущите потребители на компютъра и процесите.<br>Най-отгоре се показва колко време е работил компютъра." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Презареждане" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "Опции" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Повече информация" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Показване на времето за влизане, JCPU и PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Вкл/изкл на \"FROM\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Превключване на полето \"FROM\" " + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "Грешка" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Команда: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Още действия..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Избор на команда..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Използване на контекстното меню за добавяне/редактиране/премахване на връзки." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Използвайте <b>контекстното меню</b> за създаване на нова връзка към програма" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Използвайте <b>Създаване на нова|директория...</b> за създаване на подменю" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Използвайте <b>Настройки</b> за смяна на иконата, името или коментара" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Други" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Вътрешна грешка!\n" +"Този елемент от менюто е повреден." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "Предупреждение - 1 ч." + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "Предупреждение - 5 мин." + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "Предупреждение - 1 мин." + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "Предупреждение - 10 сек." + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 секунди преди действието" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 секунди преди действието" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 секунди преди действието" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "Невъзможно изпълнение на \"%1\"!" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Progress Bar" +msgstr "Лента за състоянието" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Проба" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Местоположение на връзката:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Работен плот" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "Меню К" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Тип връзка:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Изход" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "Инструмент за спиране на компютъра" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Файлът <b>%1</b> не беше създаден!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Файлът <b>%1</b> не беше премахнат!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Премахване на връзка" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "Добавяне на връзка" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Изход" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Инструмент за спиране (KDE)" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Изключване на компютъра" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Рестартиране на компютъра" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Заключване на сесията" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Завършване на сесията" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Потвърждение на действие" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Показване на стандартен прозорец за изход" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Отмяна на действие" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Без показване на прозореца при стартиране" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Включване на режим \"Проба\"" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Изключване на режим \"Проба\"" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "Време; Например: 01:30 - абсолютно време (ЧЧ:ММ); 10 - минути за изчакване от сега" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Невалидно време: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Настройки" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Изключено от администратора." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Действия" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Действие" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Метод" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Команда преди действие" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Редактиране..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Проверка на системните настройки" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Други" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Редактиране..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Разширени" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "След влизане" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Заключване на екрана" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Преди изход" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Затваряне на CD-ROM устройството" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Команда:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Други настройки на KDE..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Основни" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Обичайни проблеми" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Изключване на компютъра\" не работи" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Изскачащите съобщения ме дразнят" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Добавяне/Премахване на връзки" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Показване на икона в системния панел" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Винаги" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Иконата в системния панел винаги ще се вижда." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Действие" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "Иконата в системния панел винаги ще се вижда само ако програмата има задача." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Никога" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Иконата в системния панел винаги ще бъде скрита." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Теми за KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Домашна страница на SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Съобщения" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Показване на предупреждение преди действие" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "минута(и)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Предупреждение" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Вкл." + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Команда за изпълнение:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Въведете команда." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "Текст на съобщението" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "Заглавие на прозореца" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "Фиксирани" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Потребителско съобщение" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Включване на всички съобщения отново" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "Включване на всички съобщния които са били изключени с опцията <b>Изключване на съобщението</b>." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (по подразбиране)" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Без пауза" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "Пауза: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "Този файл се използва за заключване на сесията при стартиране на KDE" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Възстановяване на настройките по подразбиране на тази страница?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Въведете час и минута." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Въведете дата." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Първо натиснете бутона <b>Избор на команда...</b>" + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Избрана дата/време: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Текуща дата/време: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Избрана дата/време е по-рано от текущото!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Действието е отменено!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Тестов режим - вкл." + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Тестов режим - изкл." + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Без забавяне" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&Файл" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "&Действия" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "Настройване на глобалните бързи клавиши..." + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "&Настройки" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "&Помощ" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "&Отмяна" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "Проверка на с&истемните настройки" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "&Старт [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "С&татистика" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "Избор на действие за изпълнение" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Изберете действие за изпълнение в определеното време." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "И&збор на време" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Време от сега (ЧЧ:ММ)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "На дата/време" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "При изход от програма" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Изберете тип забавяне." + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Изберете време." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "ТЕСТОВ РЕЖИМ" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Оставащо време: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Неизвестно" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Време: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "Действие: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Забележка: </b> Включен е тестов режим" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "KShutDown е минимизирана" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "KShutDown - изход" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Моля, изчакайте..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Излизането не беше нормално.\n" +"Няма връзка с мениджъра на сесията." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Нищо" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Изключване на компютъра" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Рестартиране на компютъра" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Заключване на сесията" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Завършване на сесията" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Действието беше неуспешно! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: неуспешна комуникация с DCOP!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Системни настройки" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Съобщение" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Съвет: Ако имате проблем с командата \"/sbin/shutdown\",\n" +"опитайте да редактирате файла \"/etc/shutdown.allow\"\n" +"и после изпълнете \"/sbin/shutdown\" с параметър \"-a\".\n" +"\n" +"Повече тук." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Не са намерени проблеми." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "Програмата \"%1\" не беше намерена!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "Нямате права за изпълнение на \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Изглежда това не е цяла сесия на KDE.\n" +"KShutDown е направена да работи с KDE.\n" +"Можете да променяте действията от прозореца\n" +"Настройки -> Настройване на KShutDown... -> Действия." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Съвет: Можете да настройвате действията да работят с GDM.\n" +"(Настройки -> Настройване на KShutDown... -> Действия)" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"KDM не работи\n" +"или опцията \"изключване/рестартиране\" е изключена.\n" +"\n" +"Конфигуриране на KDM." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Изберете метод:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Въведете команда:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Изпълнение на команда" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "Пауза след изпълнението на командата:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "секунда(и)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"В повечето случи трябва да имате права за спиране на системата (/sbin/" +"shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "Ако използвате <b>KDE</b> и <b>KDM</b> (KDE Display Manager), тогава настройте всички методи на <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Ако използвате <b>KDE</b> и мениджърът не е <b>KDM</b>, тогава настройте методите за <i>Изключване на компютъра</i> и <i>Рестартиране на компютъра</i> на <i>/" +"sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Ръководства:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Потребителска команда" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Оставащо време." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Презареждане на списъка с процеси" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Списък с активни процеси" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Убиване" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Убиване на процеса" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Изчакване за \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Процесът не съществува!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Невъзможно изпълнение на команда<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "Сигурни ли сте, че искате да убиете<br><b>%1</b>?<br><br>Незаписаните данни ще бъдат загубени!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Не е намерен процес<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Нямате праза за убиване на<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "УБИТ: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Потвърждение" + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "&Отмяна" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Сигурни ли сте?<br><br>Действие: <b>%1</b><br>Време: <b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Златко Попов" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "zlatkopopov@fsa-bg.org" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "Щракнете да се покаже главният прозорец на KShutDown<br>За менюто натиснете и задръжте" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "KShutDown не може да бъде стартирана!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "Заключване на екрана" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "&Настройване на KShutDown..." + diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..7e95afe --- /dev/null +++ b/po/cs.po @@ -0,0 +1,796 @@ +# translation of cs.po to čeština +# translation of cs.po to +# translation of kshutdown.po to +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Robert Kratky <kratky@rob.cz>, 2004, 2008. +# Robert Kratky <kratky@abclinuxu.cz>, 2005. +msgid "" +msgstr "" +"Project-Id-Version: cs\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-08-27 19:36+0200\n" +"PO-Revision-Date: 2008-01-12 11:39+0100\n" +"Last-Translator: Robert Kratky <kratky@rob.cz>\n" +"Language-Team: čeština <cs@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Počkejte prosím..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Nebylo možné se korektně odhlásit.\n" +"Nepodařilo se kontaktovat správce sezení." + +#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419 +#: ../kshutdown/mstatstab.cpp:191 +msgid "Command: %1" +msgstr "Příkaz: %1" + +#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445 +#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Žádná prodleva" + +#: ../kshutdown/actions.cpp:319 +msgid "Nothing" +msgstr "Nic" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183 +msgid "Turn Off Computer" +msgstr "Vypnout počítač" + +#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177 +msgid "Restart Computer" +msgstr "Restartovat počítač" + +#: ../kshutdown/actions.cpp:322 +msgid "Lock Session" +msgstr "Uzamknout sezení" + +#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171 +msgid "End Current Session" +msgstr "Ukončit aktuální sezení" + +#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76 +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Unknown" +msgstr "Neznámé" + +#: ../kshutdown/actions.cpp:362 +msgid "Action failed! (%1)" +msgstr "Akce selhala! (%1)" + +#: ../kshutdown/actions.cpp:406 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP volání selhalo!" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Obnovit seznam procesů" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Seznam spuštěných procesů" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Zabít" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Zabít zvolený proces" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Čekám na \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Zvolený proces neexistuje!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Nelze provést příkaz<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Opravdu chete ZABÍT<br><b>%1</b>?<br><br>Všechna neuložená data budou " +"ztracena!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Proces nebyl nalezen<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Nemám oprávnění k ukončení<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "MRTVÝ: %1" + +#: ../kshutdown/confirmation.cpp:64 +msgid "Confirm" +msgstr "Potvrdit" + +#: ../kshutdown/confirmation.cpp:78 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Jste si jistí?<br><br>Zvolená akce: <b>%1</b><br>Zvolený čas: <b>%2</b>" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Další akce..." + +#: ../kshutdown/extras.cpp:91 +msgid "Select a command..." +msgstr "Vybrat příkaz..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Použijte kontextové menu pro přidání/úpravu/odstranění odkazů." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Použijte <b>kontextové menu</b> k vytvoření nového odkazu na aplikaci" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Použijte <b>Vytvořit nový|Složka...</b> k vytvoření nového podmenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Použijte <b>Vlastnosti</b> pro změnu ikony, názvu nebo komentáře" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:609 +msgid "Extras" +msgstr "Další" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Vyberte místo, kde se má odkaz vytvořit:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Pracovní plocha" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K Menu" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Vyberte druh odkazu:" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Standardní odhlašovací okno" + +#: ../kshutdown/links.cpp:95 +msgid "System Shut Down Utility" +msgstr "Nástroj pro vypnutí systému" + +#: ../kshutdown/links.cpp:106 +msgid "Could not create file <b>%1</b>!" +msgstr "Soubor <b>%1</b> nelze vytvořit!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file <b>%1</b>!" +msgstr "Soubor <b>%1</b> nelze odstranit!" + +#: ../kshutdown/links.cpp:182 +msgid "Remove Link" +msgstr "Odstranit odkaz" + +#: ../kshutdown/links.cpp:186 +msgid "Add Link" +msgstr "Přidat odkaz" + +#: ../kshutdown/links.cpp:205 +msgid "Logout" +msgstr "Odhlásit se" + +#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143 +msgid "Method" +msgstr "Způsob" + +#: ../kshutdown/mactioneditdialog.cpp:70 +msgid "Select a method:" +msgstr "Zvolte způsob:" + +#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431 +msgid "KDE (default)" +msgstr "KDE (výchozí)" + +#: ../kshutdown/mactioneditdialog.cpp:80 +msgid "Enter a custom command:" +msgstr "Zadejte vlastní příkaz:" + +#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144 +msgid "Command before action" +msgstr "Provést před akcí" + +#: ../kshutdown/mactioneditdialog.cpp:87 +msgid "Run command" +msgstr "Spustit příkaz" + +#: ../kshutdown/mactioneditdialog.cpp:90 +msgid "Pause after run command:" +msgstr "Po spuštění příkazu počkat:" + +#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445 +msgid "No pause" +msgstr "Bez prodlevy" + +#: ../kshutdown/mactioneditdialog.cpp:93 +msgid "second(s)" +msgstr "vteřin(u)" + +#: ../kshutdown/mactioneditdialog.cpp:109 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Ve většině případů potřebujete k vypnutí systému práva (např. ke spuštění /" +"sbin/reboot nebo /sbin/shutdown)." + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Používáte-li <b>KDE</b> a <b>KDM</b> (správce sezení KDE), nastavte všechny " +"metody na <i>KDE</i>." + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Používáte-li <b>KDE</b> a jiného správce sezení než <b>KDM</b>, nastavte " +"metody <i>Vypnout počítač</i> a <i>Restartovat počítač</i> na <i>/sbin/...</" +"i>." + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "Manuals:" +msgstr "Návody:" + +#: ../kshutdown/mactioneditdialog.cpp:135 +msgid "User Command" +msgstr "Uživatelský příkaz" + +#: ../kshutdown/main.cpp:43 +msgid "A Shut Down Utility for KDE" +msgstr "Vypínací utilita pro KDE" + +#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56 +msgid "Turn off computer" +msgstr "Vypnout počítač" + +#: ../kshutdown/main.cpp:58 +msgid "Restart computer" +msgstr "Restartovat počítač" + +#: ../kshutdown/main.cpp:60 +msgid "Lock session" +msgstr "Uzamknout obrazovku" + +#: ../kshutdown/main.cpp:62 +msgid "End current session" +msgstr "Ukončit sezení" + +#: ../kshutdown/main.cpp:64 +msgid "Execute \"Extras\" command (.desktop file)" +msgstr "Provést příkaz z nabídky \"Další\" (soubor .desktop)" + +#: ../kshutdown/main.cpp:65 +msgid "Confirm command line action" +msgstr "Potvrdit akci příkazové řádky" + +#: ../kshutdown/main.cpp:66 +msgid "Show standard logout dialog" +msgstr "Zobrazit standardní odhlašovací dialog" + +#: ../kshutdown/main.cpp:68 +msgid "Cancel an active action" +msgstr "Zrušit běžící akci" + +#: ../kshutdown/main.cpp:69 +msgid "Don't show window at startup" +msgstr "Nezobrazovat okno při spuštění" + +#: ../kshutdown/main.cpp:70 +msgid "Enable test mode" +msgstr "Povolit testovací režim" + +#: ../kshutdown/main.cpp:71 +msgid "Disable test mode" +msgstr "Vypnout testovací režim" + +#: ../kshutdown/main.cpp:72 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Čas; Příklady: 01:30 - absolutní čas (HH:MM); 10 - kolik minut počkat od " +"této chvíle" + +#: ../kshutdown/main.cpp:245 +msgid "Invalid time: <b>%1</b>" +msgstr "Neplatný čas: <b>%1</b>" + +#: ../kshutdown/miscutils.cpp:110 +msgid "1 hour warning" +msgstr "Upozornění 1 hodinu před" + +#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114 +msgid "5 minutes warning" +msgstr "Upozornění 5 minut před" + +#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118 +msgid "1 minute warning" +msgstr "Upozornění 1 minutu před" + +#: ../kshutdown/miscutils.cpp:121 +msgid "10 seconds warning" +msgstr "Upozornění 10 vteřin před" + +#: ../kshutdown/miscutils.cpp:226 +msgid "Could not run \"%1\"!" +msgstr "<b>%1</b> nešel spustit!" + +#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471 +#: ../kshutdown/msettingsdialog.cpp:558 +msgid "Test" +msgstr "Test" + +#: ../kshutdown/mmainwindow.cpp:149 +msgid "Enter hour and minute." +msgstr "Zadejte hodinu a minutu." + +#: ../kshutdown/mmainwindow.cpp:159 +msgid "Enter date and time." +msgstr "Zadejte datum a čas." + +#: ../kshutdown/mmainwindow.cpp:238 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Nejprve klikněte na tlačítko <b>Zvolit příkaz...</b>" + +#: ../kshutdown/mmainwindow.cpp:280 +msgid "Selected date/time: %1" +msgstr "Zvolený datum/čas: %1" + +#: ../kshutdown/mmainwindow.cpp:281 +msgid "Current date/time: %1" +msgstr "Aktuální datum/čas: %1" + +#: ../kshutdown/mmainwindow.cpp:287 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Zvolené datum/čas je dřívější než aktuální datum/čas!" + +#: ../kshutdown/mmainwindow.cpp:292 +msgid "Action cancelled!" +msgstr "Akce zrušena!" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode enabled" +msgstr "Testovací režim zapnut" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode disabled" +msgstr "Testovací režim vypnut" + +#: ../kshutdown/mmainwindow.cpp:477 +msgid "&Actions" +msgstr "&Akce" + +#: ../kshutdown/mmainwindow.cpp:483 +msgid "Configure Global Shortcuts..." +msgstr "Nastavit globální klávesové zkratky..." + +#: ../kshutdown/mmainwindow.cpp:531 +msgid "C&ancel" +msgstr "&Zrušit" + +#: ../kshutdown/mmainwindow.cpp:539 +msgid "Check &System Configuration" +msgstr "Zkontrolovat konfiguraci &systému" + +#: ../kshutdown/mmainwindow.cpp:556 +msgid "&Statistics" +msgstr "&Statistiky" + +#: ../kshutdown/mmainwindow.cpp:600 +msgid "Select an &action to perform" +msgstr "Zvolte &akci" + +#: ../kshutdown/mmainwindow.cpp:610 +msgid "Select an action to perform at the selected time." +msgstr "Vyberte, která akce bude ve zvolený čas provedena." + +#: ../kshutdown/mmainwindow.cpp:616 +msgid "S&elect a time" +msgstr "Z&volte čas" + +#: ../kshutdown/mmainwindow.cpp:623 +msgid "Time From Now (HH:MM)" +msgstr "Od této chvíle (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:624 +msgid "At Date/Time" +msgstr "Datum/čas" + +#: ../kshutdown/mmainwindow.cpp:625 +msgid "When selected application exit" +msgstr "Po ukončení vybraného programu" + +#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117 +msgid "Disabled by the Administrator." +msgstr "Zablokováno administrátorem." + +#: ../kshutdown/mmainwindow.cpp:629 +msgid "Select the type of delay." +msgstr "Vyberte druh prodlevy." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "Selected time." +msgstr "Zvolený čas." + +#: ../kshutdown/mmainwindow.cpp:671 +msgid "TEST MODE" +msgstr "TESTOVACÍ REŽIM" + +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Remaining time: <b>%1</b>" +msgstr "Zbývá: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: <b>%1</b>" +msgstr "Zvolený čas: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: <b>%1</b>" +msgstr "Zvolená akce: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Poznámka: </b> Je zapnutý testovací režim." + +#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905 +msgid "KShutDown has been minimized" +msgstr "KShutDown byl minimalizován" + +#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926 +msgid "KShutDown has quit" +msgstr "KShutDown byl ukončen" + +#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82 +msgid "Message" +msgstr "Zpráva" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Zbývající čas." + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Nastavení" + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Akce" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Akce" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Upravit..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Zkontrolovat nastavení systému" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Menu \"Další\"" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Upravit..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Pokročilé" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Po přihlášení" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Uzamknout obrazovku" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Před odhlášením" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Zavřít šuplík CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Příkaz:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Příbuzná nastavení KDE..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Obecné" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Časté problémy" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "Nefunguje akce \"Vypnout počítač\"" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Vyskakující zprávy jsou velmi otravné" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Přidat/odstranit odkazy" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Zobraz ikonu v systémové části panelu" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Vždy" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Ikona bude v systémové části panelu neustále." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Je-li aktivní" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" +"Ikona bude v systémové části panelu viditelná, pouze pokud bude KShutDown " +"aktivován." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Nikdy" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Ikona se v systémové části panelu nebude zobrazovat vůbec." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Zobrazit témata vzhledu KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Domovská stránka SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Zprávy" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Zobrazit upozornění před akcí" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minut(u/y)" + +#: ../kshutdown/msettingsdialog.cpp:303 +msgid "Recommended" +msgstr "Doporučené" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "Warning Message" +msgstr "Upozornění" + +#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351 +msgid "Enabled" +msgstr "Povolený" + +#: ../kshutdown/msettingsdialog.cpp:318 +msgid "A shell command to execute:" +msgstr "Provést příkaz:" + +#: ../kshutdown/msettingsdialog.cpp:323 +msgid "Enter a command." +msgstr "Zadejte příkaz." + +#: ../kshutdown/msettingsdialog.cpp:326 +msgid "A message text" +msgstr "Text zprávy" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "The current main window title" +msgstr "Titulek hlavního okna" + +#: ../kshutdown/msettingsdialog.cpp:333 +msgid "Presets" +msgstr "Přednastavené" + +#: ../kshutdown/msettingsdialog.cpp:347 +msgid "Custom Message" +msgstr "Vlastní zpráva" + +#: ../kshutdown/msettingsdialog.cpp:350 +msgid "Progress Bar" +msgstr "Ukazatel průběhu" + +#: ../kshutdown/msettingsdialog.cpp:354 +msgid "Re-enable All Message Boxes" +msgstr "Opět povolit všechna okna s upozorněním" + +#: ../kshutdown/msettingsdialog.cpp:358 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Povolit všechna upozornění, která byla vypnuta pomocí <b>Tuto zprávu již " +"nezobrazuj</b>." + +#: ../kshutdown/msettingsdialog.cpp:447 +msgid "Pause: %1" +msgstr "Prodleva: %1" + +#: ../kshutdown/msettingsdialog.cpp:516 +msgid "This file is used to lock session at KDE startup" +msgstr "Tento soubor se používá k uzamykání sezení při startu KDE" + +#: ../kshutdown/msettingsdialog.cpp:596 +msgid "Restore default settings for this page?" +msgstr "Obnovit výchozí nastavení pro tuto záložku?" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statistiky" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Toto okno zobrazuje informace o uživatelích, kteří systém právě používají, a " +"jejich procesech.<br>Hlavička ukazuje, jak dlouho již systém běží." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Obnovit" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Více informací" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Zobrazit čas přihlášení, časy JCPU a PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Skrýt \"FROM\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Skrýt nebo zobrazit položku \"FROM\" (název vzdáleného počítače)." + +#: ../kshutdown/progressbar.cpp:99 +msgid "Hide" +msgstr "Skrýt" + +#: ../kshutdown/systemconfig.cpp:71 +msgid "System Configuration" +msgstr "Nastavení systému" + +#: ../kshutdown/systemconfig.cpp:88 +msgid "Tip: Click here if you have problem with the \"/sbin/shutdown\" command." +msgstr "Tip: Máte-li potíže s příkazem \"/sbin/shutdown\", klikněte sem." + +#: ../kshutdown/systemconfig.cpp:97 +msgid "No problems were found." +msgstr "Žádné problémy nebyly zjištěny." + +#: ../kshutdown/systemconfig.cpp:128 +msgid "Program \"%1\" was not found!" +msgstr "Program \"%1\" nebyl nalezen!" + +#: ../kshutdown/systemconfig.cpp:135 +msgid "No permissions to execute \"%1\"." +msgstr "Nemám oprávnění ke spuštění \"%1\"." + +#: ../kshutdown/systemconfig.cpp:144 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Vypadá to, že nejsme v plnohodnotném sezení KDE.\n" +"KShutDown bylo navrženo tak, aby fungovalo s KDE.\n" +"Přesto však můžete upravit Akce v konfiguračním dialogu\n" +"(Nastavení -> Nastavit: KShutDown... -> Akce)." + +#: ../kshutdown/systemconfig.cpp:161 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Tip: Akce můžete upravit tak, aby fungovaly s GDM.\n" +"(Nastavení -> Nastavit: KShutDown... -> Akce)." + +#: ../kshutdown/systemconfig.cpp:162 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"Není spuštěn Správce přihlášení KDE (KDM)\n" +"nebo není povolena funkce vypnout/restartovat.\n" +"\n" +"Kliknutím sem můžete KDM nastavit." + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Robert Krátký" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "kratky@rob.cz" + +#: ../kshutdownlockout/lockout.cpp:120 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "Kliknutím zobrazíte hlavní okno KShutDown<br>Klikněte a držte pro zobrazení menu" + +#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155 +#: ../kshutdownlockout/lockout.cpp:200 +msgid "Could not run KShutDown!" +msgstr "KShutDown nešlo spustit!" + +#: ../kshutdownlockout/lockout.cpp:165 +msgid "Lock Screen" +msgstr "Uzamknout obrazovku" + +#: ../kshutdownlockout/lockout.cpp:191 +msgid "&Configure KShutDown..." +msgstr "&Nastavit KShutDown..." + diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..971a84b --- /dev/null +++ b/po/de.po @@ -0,0 +1,850 @@ +# translation of de.po to Deutsch +# This file is distributed under the same license as the kshutdown package. +# Copyright (C) Konrad Twardowski, Elias Probst +# Elias Probst <elias.probst@gmx.de>, 2004, 2005, 2006. +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2006-07-02 09:13+0200\n" +"Last-Translator: Elias Probst <elias.probst@gmx.de>\n" +"Language-Team: Deutsch <de@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statistiken" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Diese Ansicht zeigt Informationen über die momentan angemeldeten Benutzer " +"und deren laufende Prozesse.<br>Die Titelzeile zeigt, wie lange das System " +"bereits läuft" + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Aktualisieren" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "Optionen" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Mehr Informationen" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Anmeldezeit, JCPU- und PCPU-Werte anzeigen" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "\"FROM\" (de-)aktivieren" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Das \"FROM\" (Entfernter Rechnername) Feld verändern" + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "Fehler" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Befehl: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Mehr Aktionen..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Befehl auswählen..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Benutze das Kontextmenü um Verweise hinzuzufügen/editieren/entfernen" + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "" +"Benutze das <b>Kontextmenü</b> um einen neuen Verweis zu einem Programm " +"anzulegen." + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Benutze <b>Neu | Verzeichnis...</b> um ein Untermenü zu erstellen" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "" +"Benutze <b>Eigenschaften</b> um das Symbol, den Namen oder Kommentar zu " +"ändern" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Extras" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Interner Fehler!\n" +"Ausgewählter Menüeintrag ist fehlerhaft." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "1 Stunde verbleibend" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 Minuten verbleiben" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 Minute verbleibend" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 Sekunden verbleibend" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 Sekunden vor Aktion" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 Sekunden vor Aktion" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 Sekunde vor Aktion" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "\"%1\" konnte nicht ausgeführt werden!" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Progress Bar" +msgstr "Fortschrittsbalken" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Test" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Ort für die zu erstellende Verknüpfung auswählen:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Arbeitsfläche" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K-Menü" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Typ der Verknüpfung auswählen:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Standard Abmeldedialog" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "Ein Hilfsprogramm zum Herunterfahren des Systems" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Konnte Datei <b>%1</b> nicht erstellen!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Konnte Datei <b>%1</b> nicht entfernen!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Verknüpfung entfernen" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "Verknüpfung hinzufügen" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Abmelden" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Ein Hilfsprogramm zum Herunterfahren für KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Rechner ausschalten" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Rechner neustarten" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Sitzung sperren" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Aktuelle Sitzung beenden und abmelden" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Befehlszeilenaktion bestätigen" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Standard Abmeldedialog anzeigen" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Eine laufende Aktion stoppen" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Fenster beim Start nicht anzeigen" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Testmodus aktivieren" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Testmodus deaktivieren" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Zeit; Beispiele: 01:30 absolute Zeit im Format (SS:MM); 10 - Anzahl der " +"Minuten die ab jetzt vergehen sollen bis eine Aktion ausgeführt wird" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Ungültige Zeitangabe: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Einstellungen" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Diese Seite wurde vom Administrator gesperrt." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Aktionen" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Aktion" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Methode" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Befehl vor Aktion" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Bearbeiten..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Systemkonfiguration prüfen" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Extras Menü" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Bearbeiten..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Erweitert" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Nach der Anmeldung" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Bildschirm sperren" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Vor dem Abmelden" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "CD-ROM Lade schließen" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Kommando:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "KDE-Einstellungen" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Allgemein" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Häufige Probleme" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Rechner abschalten\" funktioniert nicht" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Popup-Nachrichten sind störend" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Verknüpfung Hinzufügen/Entfernen" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Symbol in Systembereich anzeigen" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Immer" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Symbol im Systembereich ist immer sichtbar" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Wenn Aktiv" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "Symbol im Systembereich ist nur sichtbar, wenn KShutDown aktiv ist." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Niemals" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Symbol im Systembereich ist immer ausgeblendet" + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Zeige KShutDown-Themes an" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "SuperKaramba Homepage" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Nachrichten" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Warnung anzeigen, bevor die Aktion ausgeführt wird" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "Minute(n)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Warnmeldung" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Aktiviert" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Befehl der ausgeführt werden soll:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Befehl eingeben" + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "Einen Nachrichtentext" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "Titlel des aktuellen Hauptfensters" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "Voreinstellungen" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Benutzerdefinierte Nachricht" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Alle Meldungen wieder aktivieren" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Alle Nachrichten die mit der Funktion <b>Diese Nachricht nicht mehr " +"anzeigen</b> deaktiviert wurden, wieder anzeigen." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (Standard)" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Keine Pause" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "Pause: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "Diese Datei wird benutzt um die KDE-Sitzung beim Start zu sperren" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Standardeinstellungen für diese Seite wiederherstellen?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Stunden und Minuten eingeben:" + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Datum und Zeit eingeben:" + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Bitte zuerst die \"Befehl auswählen\"-Schaltfläche anklicken." + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Ausgewählte(s) Datum/Zeit: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Momentane(s) Datum/Zeit: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Ausgewählte(s) Datum/Zeit liegt vor dem aktuellen Datum/Zeit!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Aktion abgebrochen!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Testmodus aktiviert" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Testmodus deaktiviert" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Keine Verzögerung" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&Date" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "&Aktionen" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "Globale Tastenkürzel einrichten" + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "Ein&stellungen" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "&Hilfe" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "&Abbrechen" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "&Systemkonfiguration prüfen" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "&Start [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "&Statistiken" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "&Aktion, die ausgeführt werden soll:" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Aktion, die zur ausgewählten Zeit ausgeführt werden soll." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "Zeit auswähl&en" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Zeit ab jetzt (SS:MM):" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Datum/Zeit" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "Wenn die ausgewählte Anwendung beendet ist" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Art und Weise der Verzögerung wählen." + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Ausgewählte Zeit:" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "TESTMODUS" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Verbleibende Zeit: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Unbekannt" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Ausgewählte Zeit: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "Ausgewählte Aktion:<b>%1</b> " + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Hinweis:</b> Der Testmodus ist aktiv" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "KShutDown wurde minimiert" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "KShutDown-wurde beendet" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Bitte warten..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Abmeldevorgang konnte nicht korrekt ausgeführt werden.\n" +"Es konnte keine Verbindung zur Sitzungsverwaltung hergestellt werden." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Nichts" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Rechner ausschalten" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Rechner neustarten" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Sitzung sperren" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Aktuelle Sitzung beenden und abmelden" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Aktion fehlgeschlagen (%1)!" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP-Aufruf fehlgeschlagen!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Systemkonfiguration" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Nachricht" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Tipp: Sollten Sie Probleme mit dem \"/sbin/shutdown\"-Befehl haben,\n" +"probieren Sie doch einmal, die Datei \"/etc/shutdown.allow\" zu\n" +"modifizieren und dann den \"/sbin/shutdown\"-Befehl mit dem zusätzlichen\n" +"\"-a\"-Parameter auszuführen.\n" +"\n" +"Hier für mehr Informationen klicken." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Es wurden keine Probleme festgestellt." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "Programm \"%1\" wurde nicht gefunden!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "Keine Berechtigungen zum Ausführen von \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Es scheint, dass dies keine volle KDE-Sitzung ist.\n" +"KShutDown wurde dafür ausgelegt mit KDE zusammenzuarbeiten.\n" +"Allerdings können Sie die Aktionen im KShutDown-Einstellungsdialog\n" +"(Einstellungen -> KShutDown einrichten... -> Aktionen) nach Ihrem\n" +"Wunsch definieren." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Tipp: Sie können die Aktionen so einstellen, dass diese mit GDM " +"zusammenarbeiten.\n" +"(Einstellungen -> KShutDown einrichten... -> Aktionen)" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"KDM läuft nicht oder die Herunterfahren/Neustarten-\n" +"Funktion ist deaktiviert.\n" +"\n" +"Hier klicken um KDM einzurichten." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Methode auswählen:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Benutzerdefinierten Befehl eingeben" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Befehl ausführen" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "Pause nach dem Ausführen des Kommandos:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "Sekunde(n)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"In den meisten Fällen wird eine Berechtigung zum Herunterfahren des Systems " +"benötigt. (z.B. für /sbin/reboot oder /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Falls Sie <b>KDE</b> und <b>KDM</b> (KDE Display Manager) benutzen, stellen " +"Sie alle Methoden auf <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Falls Sie <b>KDE</b> und einen anderen Displaymanager als <b>KDM</b> " +"verwenden, dann setzen sie die Methoden für<i>Herunterfahren</i> und " +"<i>Neustarten</i> auf <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Handbücher:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Benutzerdefiniertes Kommando" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Verbleibenden Zeit." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Prozessliste aktualisieren" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Liste der laufenden Prozesse" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Beenden (Kill)" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Den ausgewählten Prozess mit 'kill' beenden" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Warte auf \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Der ausgewählte Prozess existiert nicht!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Konnte Befehl nicht ausführen:<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Sind Sie sicher, dass sie <br><b>%1</b> beenden wollen? Alle ungespeicherten " +"Daten dieses Programms würden verloren gehen!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Prozess nicht gefunden:<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Keine Berechtigungen um den Prozess zu beenden:<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "TOT: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Bestätigen" + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "Abbre&chen" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Sind Sie sicher?<br><br>Ausgewählte Aktion: <b>%1</b><br>Ausgewählte Zeit: <b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Elias Probst" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "elias.probst@gmx.de" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "Klicken um das KShutDown-Hauptfenster anzuzeigen.<br> Klicken und halten um das Menü anzuzeigen" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "Konnte KShutDown nicht ausführen!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "Bildschirm sperren" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "KShutDown k&onfigurieren..." + diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..c37b1cc --- /dev/null +++ b/po/el.po @@ -0,0 +1,859 @@ +# translation of el.new.po to Greek +# This file is put in the public domain. +# +# Spiros Georgaras <sngeorgaras@otenet.gr>, 2006. +msgid "" +msgstr "" +"Project-Id-Version: el.new\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2006-08-03 11:55+0300\n" +"Last-Translator: Spiros Georgaras <sngeorgaras@otenet.gr>\n" +"Language-Team: Greek <i18ngr@lists.hellug.gr>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Στατιστικά" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Εδώ εμφανίζονται πληροφορίες σχετικά με τους χρήστες που είναι συνδεδεμένοι " +"στο μηχάνημα, και τις διεργασίες τους.<br>Η επικεφαλίδα δείχνει την ώρα " +"λειτουργίας του συστήματος." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Ανανέωση" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "Επιλογές" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Περισσότερες πληροφορίες" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Εμφάνιση ώρας σύνδεσης, JCPU και PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Εναλλαγή του \"FROM\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Εναλλαγή του πεδίου \"FROM\" (όνομα απομακρυσμένου υπολογιστή)." + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "Σφάλμα" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Εντολή: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Περισσότερες ενέργειες..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Επιλογή εντολής..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "" +"Χρησιμοποιήστε το σχετικό μενού για να προσθέσετε/επεξεργαστείτε/αφαιρέσετε " +"δεσμούς." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "" +"Χρησιμοποιήστε το <b>σχετικό μενού</b> για να δημιουργήσετε ένα νέο δεσμό σε " +"εφαρμογή" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "" +"Χρησιμοποιήστε το <b>Δημιουργία νέου/Φάκελος...</b> για να δημιουργήσετε ένα " +"νέο υπομενού" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "" +"Χρησιμοποιήστε τις <b>Ιδιότητες</b> για να αλλάξετε το εικονίδιο, το όνομα ή " +"το σχόλιο" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Επιπρόσθετα" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Εσωτερικό σφάλμα!\n" +"Το επιλεγμένο αντικείμενο του μενού είναι κατεστραμμένο." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "Προειδοποίηση της μίας ώρας" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "Προειδοποίηση των 5 λεπτών" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "Προειδοποίηση του 1 λεπτού" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "Προειδοποίηση των 10 λεπτών" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 δευτερόλεπτα πριν την ενέργεια" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 δευτερόλεπτα πριν την ενέργεια" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 δευτερόλεπτο πριν την ενέργεια" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "Αδύνατη η εκτέλεση του \"%1\"!" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Progress Bar" +msgstr "Γραμμή προόδου" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Δοκιμή" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Τοποθεσία όπου θα δημιουργηθεί ο δεσμός:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Επιφάνεια εργασίας" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K μενού" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Τύπος δεσμού:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Τυπικός διάλογος Αποσύνδεσης" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "Ένα εργαλείο για τον τερματισμό του Συστήματος" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Αδύνατη η δημιουργία του αρχείου <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Αδύνατη η αφαίρεση του αρχείου <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Αφαίρεση δεσμού" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "Προσθήκη δεσμού" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Αποσύνδεση" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Ένα εργαλείο για τον τερματισμό του KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Κλείσιμο υπολογιστή" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Επανεκκίνηση υπολογιστή" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Κλείδωμα συνεδρίας" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Τερματισμός τρέχουσας συνεδρίας" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Επιβεβαίωση της ενέργειας" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Εμφάνιση του τυπικού διαλόγου αποσύνδεσης" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Ακύρωση μίας ενεργής ενέργειας" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Να μην εμφανίζεται το παράθυρο στην εκκίνηση" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Ενεργοποίηση δοκιμαστικής λειτουργίας" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Απενεργοποίηση δοκιμαστικής λειτουργίας" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Ώρα. Παραδείγματα: 01:30 - απολυτή5η ώρα (ΩΩ:ΛΛ)· 10 - ο αριθμός των λεπτών " +"καθυστέρησης από τώρα" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Μη έγκυρος χρόνος: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Ρυθμίσεις" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Απενεργοποιήθηκε από το Διαχειριστή." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Ενέργειες" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Ενέργεια" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Μέθοδος" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Εντολή προ της ενέργειας" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Επεξεργασία..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Έλεγχος των ρυθμίσεων του Συστήματος" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Μενού επιπρόσθετων" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Τροποποίηση..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Προχωρημένα" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Μετά τη σύνδεση" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Κλείδωμα οθόνης" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Πριν την αποσύνδεση" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Κλείσιμο του CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Εντολή:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Σχετικές ρυθμίσεις του KDE..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Γενικά" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Συχνά προβλήματα" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "Το \"Κλείσιμο υπολογιστή\" δε λειτουργεί" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Τα αναδυόμενα μηνύματα είναι πολύ ενοχλητικά" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Προσθήκη/Αφαίρεση δεσμών" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Εμφάνιση του εικονιδίου πλαισίου συστήματος" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Πάντα" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Το εικονίδιο πλαισίου συστήματος θα είναι πάντα ορατό." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Αν είναι ενεργό" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" +"Το εικονίδιο πλαισίου συστήματος θα είναι ορατό μόνο αν το KShutDown είναι " +"ορατό." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Ποτέ" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Το εικονίδιο πλαισίου συστήματος δε θα είναι ποτέ ορατό." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Εμφάνιση θεμάτων του KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Αρχική σελίδα του SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Μηνύματα" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Εμφάνιση προειδοποιητικού μηνύματος πριν την εκτέλεση μιας ενέργειας" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "λεπτό(ά)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Προειδοποιητικό μήνυμα" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Ενεργοποιημένο" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Εντολή κελύφους για εκτέλεση:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Δώστε μία εντολή." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "Ένα κείμενο μηνύματος" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "Ο τίτλος του τρέχοντος κύριου παραθύρου" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "Προεπιλογές" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Προσαρμοσμένο μήνυμα" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Επανενεργοποίηση όλων των Πλαισίων μηνυμάτων" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Ενεργοποιεί όλα τα μηνύματα που έχουν απενεργοποιηθεί με την επιλογή <b>Να " +"μην εμφανιστεί αυτό το μήνυμα ξανά</b>." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (προκαθορισμένο)" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Χωρίς παύση" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "Παύση: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "Το αρχείο χρησιμοποιείται για το κλείδωμα της συνεδρίας στην έναρξη του KDE" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Επαναφορά των προκαθορισμένων τιμών για αυτήν τη σελίδα;" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Δώστε ώρα και λεπτά." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Δώστε ημερομηνία και ώρα." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Κάντε πρώτα κλικ στο κουμπί <b>επιλογή εντολής...</b>" + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Επιλεγμένη ημερομηνία/ώρα: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Τρέχουσα ημερομηνία/ώρα: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Η επιλεγμένη ημερομηνία/ώρα είναι πριν από την τρέχουσα ημερομηνία/ώρα!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Η ενέργεια ακυρώθηκε!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Η δοκιμαστική λειτουργία ενεργοποιήθηκε" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Η δοκιμαστική λειτουργία απενεργοποιήθηκε" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Χωρίς καθυστέρηση" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&Αρχείο" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "&Ενέργειες" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "Ρύθμιση καθολικών συντομεύσεων..." + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "Ρ&υθμίσεις" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "&Βοήθεια" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "&Ακύρωση" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "Έλεγχος των ρυθμίσεων του &Συστήματος" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "Έναρ&ξη [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "&Στατιστικά" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "Επιλογή &ενέργειας για εκτέλεση" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Επιλέξτε την ενέργεια που θα εκτελεστεί την επιλεγμένη ώρα." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "Επιλογή &χρόνου" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Ώρα από τώρα (ΩΩ:ΛΛ)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Την ημερομηνία/ώρα" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "Όταν τερματίσει η επιλεγμένη εφαρμογή" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Επιλογή τύπου της καθυστέρησης" + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Επιλεγμένος χρόνος." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "ΔΟΚΙΜΑΣΤΙΚΗ ΛΕΙΤΟΥΡΓΙΑ" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Υπολειπόμενος χρόνος: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Άγνωστο" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Επιλεγμένος χρόνος: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "Επιλεγμένη ενέργεια: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Σημείωση: </b> Η δοκιμαστική λειτουργία είναι ενεργοποιημένη" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "Το KShutDown ελαχιστοποιήθηκε" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "Το KShutDown τερματίστηκε" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Παρακαλώ περιμένετε..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Δεν ήταν δυνατό να γίνει κανονική αποσύνδεση.\n" +"Αδύνατη η επικοινωνία με το διαχειριστή συνεδρίας." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Τίποτα" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Κλείσιμο υπολογιστή" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Επανεκκίνηση υπολογιστή" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Κλείδωμα συνεδρίας" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Τερματισμός τρέχουσας συνεδρίας" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Η ενέργεια απέτυχε! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: Η κλίση DCOP απέτυχε!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Ρυθμίσεις συστήματος" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Μήνυμα" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Υπόδειξη: αν έχετε πρόβλημα με την εντολή\"/sbin/shutdown\",\n" +"δοκιμάστε να τροποποιήσετε το αρχείο \"/etc/shutdown.allow\",\n" +"και στη συνέχεια εκτελέστε την εντολή \"/sbin/shutdown\" με παράμετρο \"-a" +"\".\n" +"\n" +"Κάντε κλικ εδώ για περισσότερες πληροφορίες." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Δε βρέθηκαν προβλήματα." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "Το πρόγραμμα \"%1\" δε βρέθηκε!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "Δεν έχετε άδεια για να εκτελέσετε το \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Απ' ότι φαίνεται αυτή δεν είναι μία κανονική συνεδρία του KDE.\n" +"Το KShutDown είναι σχεδιασμένο να λειτουργεί με το KDE.\n" +"Παρόλα αυτά, μπορείτε να προσαρμόσετε τις Ενέργειες στο διάλογο ρυθμίσεων " +"του KShutDown (Ρυθμίσεις -> Ρύθμιση του KShutDown... -> Ενέργειες)." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Υπόδειξη: Μπορείτε να προσαρμόσετε τις Ενέργειες για να λειτουργούν με το " +"GDM.\n" +"(Ρυθμίσεις -> Ρύθμιση του KShutDown... -> Ενέργειες)." + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"Ο διαχειριστής συνεδρίας του KDE δεν εκτελείται,\n" +"ή η ενέργεια κλείσιμο/επανεκκίνηση είναι απενεργοποιημένη.\n" +"\n" +"Κάντε κλικ εδώ για να ρυθμίσετε το KDM." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Επιλογή μεθόδου:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Δώστε μια προσαρμοσμένη εντολή:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Εκτέλεση εντολής" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "Παύση μετά την εκτέλεση της εντολής:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "δευτερόλεπτο(α)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Στις περισσότερες των περιπτώσεων απαιτούνται προνόμια υπερχρήστη για να " +"τερματίσετε τη λειτουργία του συστήματος (π.χ. για την εκτέλεση του /sbin/" +"shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Αν χρησιμοποιείτε το <b>KDE</b> και το <b>KDM</b> (Διαχειριστής συνεδρίας " +"του KDE), ορίστε όλες τις μεθόδους σε <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Αν χρησιμοποιείτε το <b>KDE</b> και διαχειριστή συνεδρίας διαφορετικό του " +"<b>KDM</b>, ορίστε τις μεθόδους <i>Κλείσιμο υπολογιστή</i> και " +"<i>Επανεκκίνηση υπολογιστή</i> σε <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Εγχειρίδια:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Εντολή χρήστη" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Υπολειπόμενος χρόνος" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Ανανέωση της λίστας διεργασιών" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Λίστα εκτελούμενων διεργασιών" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Σκότωμα" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Σκότωμα της επιλεγμένης διεργασίας" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Αναμονή για το \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Η επιλεγμένη διεργασία δεν υπάρχει!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Αδύνατη η εκτέλεση της εντολής<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Είστε σίγουροι ότι θέλετε να ΣΚΟΤΩΣΕΤΕ το <br><b>%1</b>; <br><br>Όλα τα μη " +"αποθηκευμένα δεδομένα θα χαθούν!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Δε βρέθηκε η διεργασία<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Δεν έχετε άδεια να σκοτώσετε το <br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "ΝΕΚΡΟ: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Επιβεβαίωση" + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "&Ακύρωση" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" +"Είστε σίγουροι;<br><br>Επιλεγμένη ενέργεια: <b>%1</b><br>Επιλεγμένος χρόνος: " +"<b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Σπύρος Γεωργαράς" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "sngeorgaras@otenet.gr" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" +"Κάντε κλικ για να εμφανιστεί το κύριο παράθυρο του KShutDown<br> Κάντε κλικ " +"και κρατήστε το για να εμφανιστεί το μενού" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "Αδύνατη η εκτέλεση του KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "Κλείδωμα οθόνης" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "&Ρύθμιση του KShutDown..." + diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..4e6614c --- /dev/null +++ b/po/es.po @@ -0,0 +1,878 @@ +# Translation of kshutdown to Castilian aka Spanish +# This file is distributed under the same license as the Kshutdown package. +# +# Enrique Matias Sanchez (aka Quique) <cronopios@gmail.com>, 2004, 2006. +msgid "" +msgstr "" +"Project-Id-Version: kshutdown_0.8-1_es\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-11-17 18:12+0100\n" +"PO-Revision-Date: 2006-09-17 19:46+0200\n" +"Last-Translator: Enrique Matias Sanchez (aka Quique) <cronopios@gmail.com>\n" +"Language-Team: Spanish <es@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../kshutdown/extras.cpp:55 +msgid "More actions..." +msgstr "Más acciones..." + +#: ../kshutdown/extras.cpp:225 +msgid "Select a command..." +msgstr "Seleccione una orden..." + +#: ../kshutdown/extras.cpp:243 +msgid "Use context menu to add/edit/remove links." +msgstr "Use el menú contextual para añadir/editar/eliminar enlaces." + +#: ../kshutdown/extras.cpp:245 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Use el <b>menú contextual</b> para crear un nuevo enlace a una aplicación" + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Use <b>Crear nuevo|Carpeta...</b> para crear un nuevo submenú" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Use <b>Propiedades</b> para cambiar el icono, nombre, o comentario" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:489 ../kshutdown/extras.moc.cpp:34 +#: ../kshutdown/extras.moc.cpp:42 +msgid "Extras" +msgstr "Extras" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Error interno.\n" +"El elemento de menú seleccionado está roto." + +#: ../kshutdown/appobserver.moc.cpp:34 ../kshutdown/appobserver.moc.cpp:42 +msgid "AppObserver" +msgstr "AppObserver" + +#: ../kshutdown/msettingsdialog.moc.cpp:34 +#: ../kshutdown/msettingsdialog.moc.cpp:42 +msgid "MSettingsDialog" +msgstr "MSettingsDialog" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Una utilidad de apagado para KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Apagar el equipo" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Reiniciar el equipo" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Bloquear la sesión" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Finalizar la sesión actual" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Confirmar la acción de la línea de órdenes" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Mostrar la ventana de salida estándar" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Cancelar una acción activa" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "No mostrar la ventana en el inicio" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Habilitar el modo de prueba" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Deshabilitar el modo de prueba" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Hora; Ejemplos: 01:30 - hora absoluta (HH:MM); 10 - número de minutos a " +"esperar a partir de ahora" + +#: ../kshutdown/main.cpp:247 +msgid "Invalid time: <b>%1</b>" +msgstr "Hora no válida: <b>%1</b>" + +#: ../kshutdown/msystemtray.moc.cpp:34 ../kshutdown/msystemtray.moc.cpp:42 +msgid "MSystemTray" +msgstr "MSystemTray" + +#: ../kshutdown/mmessagedialog.moc.cpp:34 +#: ../kshutdown/mmessagedialog.moc.cpp:42 +msgid "MMessageDialog" +msgstr "MMessageDialog" + +#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:138 +msgid "Method" +msgstr "Método" + +#: ../kshutdown/mactioneditdialog.cpp:70 +msgid "Select a method:" +msgstr "Seleccione un método:" + +#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:396 +msgid "KDE (default)" +msgstr "KDE (predefinido)" + +#: ../kshutdown/mactioneditdialog.cpp:80 +msgid "Enter a custom command:" +msgstr "Introduzca una orden personalizada:" + +#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:139 +msgid "Command before action" +msgstr "Orden antes de la acción" + +#: ../kshutdown/mactioneditdialog.cpp:87 +msgid "Run command" +msgstr "Ejecutar la orden" + +#: ../kshutdown/mactioneditdialog.cpp:90 +msgid "Pause after run command:" +msgstr "Pausa tras ejecutar la orden:" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "second(s)" +msgstr "segundo(s)" + +#: ../kshutdown/mactioneditdialog.cpp:93 ../kshutdown/msettingsdialog.cpp:285 +#: ../kshutdown/msettingsdialog.cpp:311 ../kshutdown/msettingsdialog.cpp:436 +#: ../kshutdown/msettingsdialog.cpp:509 ../kshutdown/miscutils.cpp:223 +msgid "Test" +msgstr "Probar" + +#: ../kshutdown/mactioneditdialog.cpp:108 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"En la mayoría de los casos necesita permisos para apagar el sistema (es " +"decir, ejecutar /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:110 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Si está usando <b>KDE</b> y <b>KDM</b> (Gestor de Sesiones de KDE), " +"establezca todos los métodos a <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Si está usando <b>KDE</b> y un gestor de sesiones diferente a <b>KDM</b>, " +"establezca los métodos <i>Apagar el equipo</i> y <i>Reiniciar el equipo</i> " +"a <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "Manuals:" +msgstr "Manuales:" + +#: ../kshutdown/mactioneditdialog.cpp:134 +msgid "User Command" +msgstr "Orden del usuario" + +#: ../kshutdown/confirmation.cpp:62 +msgid "Confirm" +msgstr "Confirmar" + +#: ../kshutdown/confirmation.cpp:77 +msgid "Are you sure?" +msgstr "¿Está seguro?" + +#: ../kshutdown/appobserver.cpp:50 ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Actualizar" + +#: ../kshutdown/appobserver.cpp:58 +msgid "Kill" +msgstr "Matar" + +#: ../kshutdown/appobserver.cpp:71 +msgid "Waiting for \"%1\"" +msgstr "Esperando a «%1»" + +#: ../kshutdown/appobserver.cpp:102 +msgid "The selected process does not exist!" +msgstr "El proceso seleccionado no existe." + +#: ../kshutdown/appobserver.cpp:156 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "No se ha podido ejecutar la orden<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:184 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"¿Seguro que desea MATAR<br><b>%1</b>?<br><br>Se perderán todos los datos no " +"guardados." + +#: ../kshutdown/appobserver.cpp:199 +msgid "Process not found<br><b>%1</b>" +msgstr "Proceso no encontrado<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:205 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "No tiene permisos para matar <br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:214 +msgid "DEAD: %1" +msgstr "MUERTO: %1" + +#: ../kshutdown/msettingsdialog.cpp:63 +msgid "Settings" +msgstr "Opciones" + +#: ../kshutdown/msettingsdialog.cpp:112 ../kshutdown/mmainwindow.cpp:507 +msgid "Disabled by the Administrator." +msgstr "Deshabilitado por el administrador." + +#: ../kshutdown/msettingsdialog.cpp:124 ../kshutdown/msettingsdialog.cpp:130 +msgid "Actions" +msgstr "Acciones" + +#: ../kshutdown/msettingsdialog.cpp:137 +msgid "Action" +msgstr "Acción" + +#: ../kshutdown/msettingsdialog.cpp:157 +msgid "Edit..." +msgstr "Editar..." + +#: ../kshutdown/msettingsdialog.cpp:160 +msgid "Check System Configuration" +msgstr "Comprobar la configuración del sistema" + +#: ../kshutdown/msettingsdialog.cpp:163 +msgid "Extras Menu" +msgstr "Menú Extras" + +#: ../kshutdown/msettingsdialog.cpp:164 +msgid "Modify..." +msgstr "Modificar..." + +#: ../kshutdown/msettingsdialog.cpp:181 +msgid "Advanced" +msgstr "Avanzado" + +#: ../kshutdown/msettingsdialog.cpp:185 +msgid "After Login" +msgstr "Tras el ingreso" + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Lock screen" +msgstr "Bloquear la pantalla" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "Before Logout" +msgstr "Antes de salir" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Close CD-ROM Tray" +msgstr "Cerrar la bandeja del CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:193 ../kshutdown/mstatstab.cpp:139 +msgid "Command:" +msgstr "Orden:" + +#: ../kshutdown/msettingsdialog.cpp:203 +msgid "Related KDE Settings..." +msgstr "Opciones de KDE relacionadas..." + +#: ../kshutdown/msettingsdialog.cpp:214 +msgid "General" +msgstr "General" + +#: ../kshutdown/msettingsdialog.cpp:218 +msgid "Common Problems" +msgstr "Problemas comunes" + +#: ../kshutdown/msettingsdialog.cpp:221 +msgid "\"Turn Off Computer\" does not work" +msgstr "«Apagar el equipo» no funciona" + +#: ../kshutdown/msettingsdialog.cpp:225 +msgid "Popup messages are very annoying" +msgstr "Los mensajes emergentes son muy molestos" + +#: ../kshutdown/msettingsdialog.cpp:229 +msgid "Add/Remove Links" +msgstr "Añadir/eliminar enlaces" + +#: ../kshutdown/msettingsdialog.cpp:233 +msgid "Show System Tray Icon" +msgstr "Mostrar el icono de la bandeja del sistema" + +#: ../kshutdown/msettingsdialog.cpp:235 +msgid "Always" +msgstr "Siempre" + +#: ../kshutdown/msettingsdialog.cpp:236 +msgid "Tray icon will be always visible." +msgstr "El icono de la bandeja del sistema siempre estará visible." + +#: ../kshutdown/msettingsdialog.cpp:237 +msgid "If Active" +msgstr "Si activo" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" +"El icono de la bandeja del sistema está visible sólo si KShutDown está " +"activo." + +#: ../kshutdown/msettingsdialog.cpp:239 +msgid "Never" +msgstr "Nunca" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Tray icon will be always hidden." +msgstr "El icono de la bandeja del sistema siempre estará oculto." + +#: ../kshutdown/msettingsdialog.cpp:259 +msgid "KShutDown Themes" +msgstr "Temas de KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:261 +msgid "SuperKaramba Home Page" +msgstr "Página de SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:270 +msgid "Messages" +msgstr "Mensajes" + +#: ../kshutdown/msettingsdialog.cpp:280 +msgid "Display a warning message before action" +msgstr "Mostrar un mensaje de advertencia antes de la acción" + +#: ../kshutdown/msettingsdialog.cpp:283 +msgid "minute(s)" +msgstr "minuto(s)" + +#: ../kshutdown/msettingsdialog.cpp:291 +msgid "Warning Message" +msgstr "Mensaje de advertencia" + +#: ../kshutdown/msettingsdialog.cpp:296 +msgid "Enabled" +msgstr "Habilitado" + +#: ../kshutdown/msettingsdialog.cpp:297 +msgid "A shell command to execute:" +msgstr "Una orden de shell a ejecutar:" + +#: ../kshutdown/msettingsdialog.cpp:301 +msgid "Enter a command." +msgstr "Introduzca una orden." + +#: ../kshutdown/msettingsdialog.cpp:304 +msgid "A message text" +msgstr "Un texto de mensaje" + +#: ../kshutdown/msettingsdialog.cpp:305 +msgid "The current main window title" +msgstr "El título de la ventana principal actual" + +#: ../kshutdown/msettingsdialog.cpp:318 +msgid "Custom Message" +msgstr "Mensaje personalizado" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "Re-enable All Message Boxes" +msgstr "Rehabilitar todas las cajas de mensaje" + +#: ../kshutdown/msettingsdialog.cpp:326 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Habilitar todos los mensajes que hayan sido desactivados con la función " +"<b>No mostrar este mensaje de nuevo</b>." + +#: ../kshutdown/msettingsdialog.cpp:410 +msgid "No pause" +msgstr "Sin pausa" + +#: ../kshutdown/msettingsdialog.cpp:412 +msgid "Pause:" +msgstr "Pausa:" + +#: ../kshutdown/msettingsdialog.cpp:547 +msgid "Restore default settings for this page?" +msgstr "¿Restaurar las opciones predefinidas de esta página?" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Enrique Matías Sánchez (Quique)" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "cronopios@gmail.com" + +#: ../kshutdown/mstatstab.moc.cpp:34 ../kshutdown/mstatstab.moc.cpp:42 +msgid "MStatsTab" +msgstr "MStatsTab" + +#: ../kshutdown/mactioneditdialog.moc.cpp:34 +#: ../kshutdown/mactioneditdialog.moc.cpp:42 +msgid "MActionEditDialog" +msgstr "MActionEditDialog" + +#: ../kshutdown/mmainwindow.cpp:130 +msgid "Enter hour and minute." +msgstr "Introduzca la hora y minutos." + +#: ../kshutdown/mmainwindow.cpp:140 +msgid "Enter date and time." +msgstr "Introduzca la fecha y hora." + +#: ../kshutdown/mmainwindow.cpp:240 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Pulse antes el botón <b>Seleccionar una orden...</b>." + +#: ../kshutdown/mmainwindow.cpp:279 +msgid "Stop [Esc]" +msgstr "Detener [Esc]" + +#: ../kshutdown/mmainwindow.cpp:286 +msgid "Selected date/time: %1" +msgstr "Fecha/hora seleccionada: %1" + +#: ../kshutdown/mmainwindow.cpp:287 +msgid "Current date/time: %1" +msgstr "Fecha/hora actual: %1" + +#: ../kshutdown/mmainwindow.cpp:294 +msgid "Selected date/time is earlier than current date/time!" +msgstr "La fecha/hora seleccionada es anterior a la fecha/hora actual." + +#: ../kshutdown/mmainwindow.cpp:301 +msgid "Action cancelled!" +msgstr "Acción cancelada." + +#: ../kshutdown/mmainwindow.cpp:336 ../kshutdown/mmainwindow.cpp:535 +msgid "Start [Enter]" +msgstr "Iniciar [Intro]" + +#: ../kshutdown/mmainwindow.cpp:393 +msgid "Test mode enabled" +msgstr "Habilitado el modo de prueba" + +#: ../kshutdown/mmainwindow.cpp:393 +msgid "Test mode disabled" +msgstr "Modo de prueba deshabilitado" + +#: ../kshutdown/mmainwindow.cpp:439 +msgid "&Statistics" +msgstr "Estadí&sticas" + +#: ../kshutdown/mmainwindow.cpp:452 +msgid "Check &System Configuration" +msgstr "Comprobar la configuración del &sistema" + +#: ../kshutdown/mmainwindow.cpp:480 +msgid "Select an &action to perform" +msgstr "Seleccione una &acción a realizar" + +#: ../kshutdown/mmainwindow.cpp:490 +msgid "Select an action to perform at the selected time." +msgstr "Seleccione una acción a efectuar a la hora seleccionada." + +#: ../kshutdown/mmainwindow.cpp:496 +msgid "S&elect a time" +msgstr "S&eleccione una hora" + +#: ../kshutdown/mmainwindow.cpp:502 +msgid "No Delay" +msgstr "Sin retardo" + +#: ../kshutdown/mmainwindow.cpp:503 +msgid "Time From Now (HH:MM)" +msgstr "Tiempo a partir de ahora (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:504 +msgid "At Date/Time" +msgstr "A la fecha/hora" + +#: ../kshutdown/mmainwindow.cpp:505 +msgid "When selected application exit" +msgstr "Cuando se cierre la aplicación seleccionada" + +#: ../kshutdown/mmainwindow.cpp:509 +msgid "Select the type of delay." +msgstr "Seleccionar el tipo de retardo." + +#: ../kshutdown/mmainwindow.cpp:524 +msgid "Selected time." +msgstr "Hora seleccionada." + +#: ../kshutdown/mmainwindow.cpp:554 +msgid "TEST MODE" +msgstr "MODO DE PRUEBA" + +#: ../kshutdown/mmainwindow.cpp:561 +msgid "Remaining time: <b>%1</b>" +msgstr "Tiempo restante: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:561 ../kshutdown/actions.cpp:355 +msgid "Unknown" +msgstr "Desconocido" + +#: ../kshutdown/mmainwindow.cpp:562 +msgid "Selected time: <b>%1</b>" +msgstr "Hora seleccionada: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:563 +msgid "Selected action: <b>%1</b>" +msgstr "Acción seleccionada: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:566 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Nota: </b> El modo de prueba está habilitado" + +#: ../kshutdown/mmainwindow.cpp:581 +msgid "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu" +msgstr "<b>Truco:</b> Use el <b>botón central del ratón</b> para mostrar el menú de acciones" + +#: ../kshutdown/mmainwindow.cpp:737 +msgid "No delay" +msgstr "Sin retardo" + +#: ../kshutdown/systemconfig.moc.cpp:34 ../kshutdown/systemconfig.moc.cpp:42 +msgid "SystemConfig" +msgstr "SystemConfig" + +#: ../kshutdown/links.cpp:46 +msgid "Select a location where to create the link:" +msgstr "Seleccione una ubicación donde crear el enlace:" + +#: ../kshutdown/links.cpp:50 +msgid "Desktop" +msgstr "Escritorio" + +#: ../kshutdown/links.cpp:51 +msgid "K Menu" +msgstr "Menú K" + +#: ../kshutdown/links.cpp:55 +msgid "Select a type of the link:" +msgstr "Seleccione un tipo del enlace:" + +#: ../kshutdown/links.cpp:59 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:60 +msgid "Standard Logout Dialog" +msgstr "Ventana de salida estándar" + +#: ../kshutdown/links.cpp:68 +msgid "Create Link" +msgstr "Crear un enlace" + +#: ../kshutdown/links.cpp:73 +msgid "Remove Link" +msgstr "Eliminar un enlace" + +#: ../kshutdown/links.cpp:98 +msgid "Could not create file <b>%1</b>!" +msgstr "No se ha podido crear el fichero <b>%1</b>." + +#: ../kshutdown/links.cpp:109 +msgid "Could not remove file <b>%1</b>!" +msgstr "No se ha podido eliminar el fichero <b>%1</b>." + +#: ../kshutdown/links.cpp:179 +msgid "Logout" +msgstr "Salir" + +#: ../kshutdown/mmessagedialog.cpp:45 ../kshutdown/systemconfig.cpp:76 +msgid "Message" +msgstr "Mensaje" + +#: ../kshutdown/mmessagedialog.cpp:76 +msgid "Remaining time." +msgstr "Tiempo restante." + +#: ../kshutdown/mmessagedialog.cpp:89 +msgid "&I'm Sure" +msgstr "&Estoy seguro" + +#: ../kshutdown/mmainwindow.moc.cpp:34 ../kshutdown/mmainwindow.moc.cpp:42 +msgid "MMainWindow" +msgstr "MMainWindow" + +#: ../kshutdown/links.moc.cpp:34 ../kshutdown/links.moc.cpp:42 +msgid "Links" +msgstr "Enlaces" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Configuración del sistema" + +#: ../kshutdown/systemconfig.cpp:83 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Truco: Si tiene problemas con la orden «/sbin/shutdown»,\n" +"intente modificar el fichero «/etc/shutdown.allow»,\n" +"y después ejecute la orden «/sbin/shutdown» con el\n" +"parámetro adcional «-a».\n" +"\n" +"Pulse aquí para más información." + +#: ../kshutdown/systemconfig.cpp:92 +msgid "No problems were found." +msgstr "No se ha encontrado ningún problema." + +#: ../kshutdown/systemconfig.cpp:123 +msgid "Program \"%1\" was not found!" +msgstr "El programa «%1» no ha sido encontrado." + +#: ../kshutdown/systemconfig.cpp:130 +msgid "No permissions to execute \"%1\"." +msgstr "No tiene permisos para ejecutar «%1»." + +#: ../kshutdown/systemconfig.cpp:139 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Parece que ésta no es una sesión completa de KDE.\n" +"KShutDown ha sido diseñado para funcionar con KDE.\n" +"No obstante, puede personalizar las Acciones en la ventana\n" +"de opciones de KShutDown\n" +"(Opciones -> Configurar KShutdown... -> Acciones)." + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Truco: Puede personalizar las acciones para que funcionen con GDM.\n" +"(Opciones -> Configurar KShutdown... -> Acciones)" + +#: ../kshutdown/systemconfig.cpp:157 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"El gestor de sesiones de KDE no está en funcionamiento,\n" +"o la función de apagar/reiniciar está deshabilitada.\n" +"\n" +"Pulse aquí para configurar KDM." + +#: ../kshutdown/actions.cpp:66 +msgid "Please wait..." +msgstr "Por favor, espere..." + +#: ../kshutdown/actions.cpp:80 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"No se ha podido salir debidamente.\n" +"No se ha podido contactar con el gestor de sesiones." + +#: ../kshutdown/actions.cpp:167 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: la llamada DCOP ha fallado." + +#: ../kshutdown/actions.cpp:209 +msgid "Command: %1" +msgstr "Orden: %1" + +#: ../kshutdown/actions.cpp:347 +msgid "Nothing" +msgstr "Nada" + +#: ../kshutdown/actions.cpp:348 +msgid "Turn Off Computer" +msgstr "Apagar el equipo" + +#: ../kshutdown/actions.cpp:349 +msgid "Restart Computer" +msgstr "Reiniciar el equipo" + +#: ../kshutdown/actions.cpp:350 ../kshutdownlockout/lockout.cpp:97 +msgid "Lock Session" +msgstr "Bloquear la sesión" + +#: ../kshutdown/actions.cpp:351 +msgid "End Current Session" +msgstr "Finalizar la sesión actual" + +#: ../kshutdown/actions.cpp:390 +msgid "Action failed! (%1)" +msgstr "La acción ha fallado (%1)" + +#: ../kshutdown/mstatstab.cpp:43 +msgid "Statistics" +msgstr "Estadísticas" + +#: ../kshutdown/mstatstab.cpp:69 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Esta vista muestra información sobre los usuarios que hay actualmente en el " +"sistema, y sus procesos.<br>La cabecera muestra cuanto tiempo lleva en " +"funcionamiento el sistema." + +#: ../kshutdown/mstatstab.cpp:92 +msgid "More information" +msgstr "Más información" + +#: ../kshutdown/mstatstab.cpp:95 +msgid "Show login time, JCPU and PCPU times." +msgstr "Mostrar la hora de ingreso, tiempos JCPU y PCPU." + +#: ../kshutdown/mstatstab.cpp:97 +msgid "Toggle \"FROM\"" +msgstr "Conmutar «DESDE»" + +#: ../kshutdown/mstatstab.cpp:99 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Conmutar la cabecera «DESDE» (nombre de máquina remota)." + +#: ../kshutdown/msystemtray.cpp:168 +msgid "KShutDown Menu" +msgstr "Menú de KShutDown" + +#: ../kshutdown/msystemtray.cpp:170 +msgid "KShutDown Actions (no delay!)" +msgstr "Acciones de KShutDown (sin demora)" + +#: ../kshutdown/msystemtray.cpp:171 +msgid "Actions (no delay!)" +msgstr "Acciones (sin demora)" + +#: ../kshutdown/msystemtray.cpp:176 +msgid "&Turn Off Computer" +msgstr "&Apagar el equipo" + +#: ../kshutdown/msystemtray.cpp:181 +msgid "&Restart Computer" +msgstr "&Reiniciar el equipo" + +#: ../kshutdown/msystemtray.cpp:186 ../kshutdownlockout/lockout.cpp:157 +msgid "&Lock Session" +msgstr "B&loquear la sesión" + +#: ../kshutdown/msystemtray.cpp:191 +msgid "&End Current Session" +msgstr "&Finalizar la sesión actual" + +#: ../kshutdown/msystemtray.cpp:196 +msgid "&Immediate Action" +msgstr "Acción &inmediata" + +#: ../kshutdown/msystemtray.cpp:199 +msgid "&Stop" +msgstr "&Detener" + +#: ../kshutdown/msystemtray.cpp:206 +msgid "Configure &KShutDown..." +msgstr "Configurar &KShutDown..." + +#: ../kshutdown/miscutils.cpp:98 +msgid "1 hour warning" +msgstr "Advertencia de una hora" + +#: ../kshutdown/miscutils.cpp:101 ../kshutdown/miscutils.cpp:102 +msgid "5 minutes warning" +msgstr "Advertencia de cinco minutos" + +#: ../kshutdown/miscutils.cpp:105 ../kshutdown/miscutils.cpp:106 +msgid "1 minute warning" +msgstr "Advertencia de un minuto" + +#: ../kshutdown/miscutils.cpp:109 +msgid "10 seconds warning" +msgstr "Advertencia de 10 segundos" + +#: ../kshutdown/miscutils.cpp:112 +msgid "3 seconds before action" +msgstr "Tres segundos antes de la acción" + +#: ../kshutdown/miscutils.cpp:115 +msgid "2 seconds before action" +msgstr "Dos segundos antes de la acción" + +#: ../kshutdown/miscutils.cpp:118 +msgid "1 second before action" +msgstr "Un segundo antes de la acción" + +#: ../kshutdown/miscutils.cpp:218 +msgid "Could not run \"%1\"!" +msgstr "No se ha podido ejecutar «%1»." + +#: ../kshutdownlockout/lockout.moc.cpp:34 +#: ../kshutdownlockout/lockout.moc.cpp:42 +msgid "Lockout" +msgstr "Bloquear" + +#: ../kshutdownlockout/lockout.cpp:95 +msgid "Run KShutDown" +msgstr "Ejecutar KShutDown" + +#: ../kshutdownlockout/lockout.cpp:152 +msgid "&Run KShutDown" +msgstr "Ejecuta&r KShutDown" + +#: ../kshutdownlockout/lockout.cpp:163 +msgid "&Transparent" +msgstr "&Transparente" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "&Show Lock Button" +msgstr "Mo&strar el botón de bloqueo" + +#: ../kshutdownlockout/lockout.cpp:172 +msgid "&Configure: KShutDown..." +msgstr "&Configurar: KShutDown..." + +#: ../kshutdownlockout/lockout.cpp:267 ../kshutdownlockout/lockout.cpp:274 +msgid "Could not run KShutDown!" +msgstr "No se ha podido ejecutar KShutDown." + diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..b3bc503 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,823 @@ +msgid "" +msgstr "" +"Project-Id-Version: Kshutdown\n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2006-08-23 18:28+0100\n" +"Last-Translator: Chéramy Maxime\n" +"Language-Team: Maxime Chéramy <maxime81@gmail.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: FRANCE\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statistiques" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "This view displays information about the users currently on the machine, and their processes.<br>The header shows how long the system has been running." +msgstr "Cette vue affiche les informations concernant les utilisateurs actuellement sur la machine, et leurs processus.<br>L'entête montre depuis combien de temps le système est en marche." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Actualiser" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "Options" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Plus d'information" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:190 +#: ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "Erreur" + +#: ../kshutdown/mstatstab.cpp:191 +#: ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Commande: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Plus d'actions..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Sélectionner une commande..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Utiliser le menu contextuel pour ajouter/éditer/supprimer liens." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Utiliser le <b>Menu Contextuel</b> pour créer un nouveau lien vers une application" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "" + +#: ../kshutdown/extras.cpp:252 +#: ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Suppléments" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Erreur interne!\n" +"L'élément du menu sélectionné est cassé." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "1 heure attention" + +#: ../kshutdown/miscutils.cpp:107 +#: ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 minutes attention" + +#: ../kshutdown/miscutils.cpp:111 +#: ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 minute attention" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 secondes attention" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 secondes avant l'action" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 secondes avant l'action" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 seconde avant l'action" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "Ne peut exécuter \"%1\"!" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Progress Bar" +msgstr "Barre de progression" + +#: ../kshutdown/miscutils.cpp:228 +#: ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Tester" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Adresse où créer le lien:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Bureau" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "Menu K" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Type du lien:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Fenêtre standard de déconnexion" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "Utilitaire d'arrêt du système" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Ne peut pas créer le fichier <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Ne peut pas supprimer le fichier <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Supprimer un lien" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "Ajouter un lien" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Déconnexion" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Un utilitaire d'arrêt pour KDE" + +#: ../kshutdown/main.cpp:51 +#: ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Éteindre l'ordinateur" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Redémarrer l'ordinateur" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Verrouiller la session" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Fermer la session en cours" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Afficher la fenêtre standard de déconnexion" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Annuler une action active" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Ne pas afficher la fenêtre au démarrage" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Activer le mode test" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Désactiver le mode test" + +#: ../kshutdown/main.cpp:67 +msgid "Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to wait from now" +msgstr "" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Heure invalide: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Paramètres" + +#: ../kshutdown/msettingsdialog.cpp:117 +#: ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Désactivé par l'administrateur." + +#: ../kshutdown/msettingsdialog.cpp:129 +#: ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Actions" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Action" + +#: ../kshutdown/msettingsdialog.cpp:143 +#: ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Méthode" + +#: ../kshutdown/msettingsdialog.cpp:144 +#: ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Commande avant l'action" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Éditer..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Vérifier la configuration système" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Menu Suppléments" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Modifier..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Avancé" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Verrouiller l'écran" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Avant la déconnexion" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Fermer le lecteur CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Commande:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Général" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Problèmes courants" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Éteindre l'ordinateur\" ne marche pas" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Les notifications sont vraiment agaçantes" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Ajouter/Supprimer liens" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Afficher l'icône de notification" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Toujours" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "L'icône de notification sera toujours visible." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Si Actif" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "L'icône de notification sera visible seulement si KShutDown est actif" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Jamais" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "L'icône de notification sera toujours cachée." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Montrer les thèmes de KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Page d'accueil de SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Messages" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Afficher un message d'avertissement avant l'action" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minute(s)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Message d'avertissement" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Activé" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Une commande shell à exécuter:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Entrer une commande." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "Un message texte" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "Le titre actuel de la fenêtre principale" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Message personnalisé" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Réactiver toutes les boites de message" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "Enable all messages which have been turned off with the <b>Do not show this message again</b> feature." +msgstr "Activer tous les messages qui avaient été désactivés par la fonction <b>Ne pas montrer ce message à nouveau</b>." + +#: ../kshutdown/msettingsdialog.cpp:417 +#: ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (défaut)" + +#: ../kshutdown/msettingsdialog.cpp:431 +#: ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Pas de pause" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "Pause: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "Ce fichier est utilisé pour verrouiller la session au démarrage de KDE" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Restaurer la configuration par défaut pour cette page ?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Entrer heure et minute." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Entrer date et heure" + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Cliquez sur le bouton <b>Sélectionner une commande...</b> en premier." + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Date/heure sélectionnée: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Date/heure actuelle: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Action annulée!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Mode test activé" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Mode test desactivé" + +#: ../kshutdown/mmainwindow.cpp:417 +#: ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 +#: ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Sans delai" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&Fichier" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "&Actions" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "Configurer les raccourcis globaux..." + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "&Paramètres" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "&Aide" + +#: ../kshutdown/mmainwindow.cpp:503 +#: ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "Annuler" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "Vérifier la configuration du système" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "&Démarrer [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "&Statistiques" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "Sélectionner une &action à effecter" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Sélectionner une action à effectuer à l'heure sélectionnée." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "Sélectionner une heure" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Temps à partir de maintenant (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "À Date/Heure" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "Lorsque l'application sélectionnée est fermée" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Sélectionner un type de délai" + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Heure sélectionnée" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "MODE TEST" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Temps restant: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 +#: ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Inconnu" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Note: </b> Le mode test est activé" + +#: ../kshutdown/mmainwindow.cpp:849 +#: ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "KShutDown a été minimisé" + +#: ../kshutdown/mmainwindow.cpp:879 +#: ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "KShutDown a quitté" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Patientez..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Ne peut pas se déconnecter proprement.\n" +"Le gestionnaire de session n'a pas pu être contacté." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Rien" + +#: ../kshutdown/actions.cpp:317 +#: ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Éteindre l'ordinateur" + +#: ../kshutdown/actions.cpp:318 +#: ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Redémarrer l'ordinateur" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Verrouiller la session" + +#: ../kshutdown/actions.cpp:320 +#: ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Fermer la session en cours" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "L'action a échoué! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Configuration système" + +#: ../kshutdown/systemconfig.cpp:76 +#: ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Message" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Astuce: Si vous avez un problème avec la commande \"/sbin/shutdown\",\n" +"essayez de modifier le fichier \"/etc/shutdown.allow\",\n" +"alors exécutez la commande \"/sbin/shutdown\" avec le paramètre additionnel \"-a\".\n" +"\n" +"Cliquez ici pour plus d'information." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Aucun problèmes n'ont été trouvé." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "Le programme \"%1\" n'a pas été trouvé!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "N'a pas les permissions pour exécuter \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Sélectionner une méthode:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Entrer une commande personnaliser:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Exécuter la commande" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "seconde(s)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "In most cases you need privileges to shut down system (e.g. run /sbin/shutdown)" +msgstr "Dans la plupart des cas vous devez avoir des privilèges pour pouvoir éteindre le système (e.g. exécuter /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set all methods to <i>KDE</i>" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "If you are using <b>KDE</b> and display manager different than <b>KDM</b>, then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/sbin/...</i>" +msgstr "Si vous utilisez <b>KDE</b> et un gestionnaire d'affichage différent de <b>KDM</b>, alors configurez <i>Éteindre l'ordinateur</i> et <i>Redémarrer l'ordinateur</i> pour utiliser <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Commande utilisateur" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Temps restant." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Actualiser la liste des processus" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Liste des processus en cours d'exécution" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Tuer" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Tuer le processus sélectionné" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Le processus sélectionné n'existe pas !" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:191 +msgid "Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be lost!" +msgstr "Êtes-vous certain de vouloir tuer<br><b>%1</b>?<br><br>Toutes les données non enregistrées seront perdues !" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Processus non trouvé<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Pas la permission de tuer <br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "MORT: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Confirmer" + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "Annuler" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Êtes-vous sûr ?<br><br>Action sélectionnée: <b>%1</b><br>Temps sélectionné: <b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 +#: _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Maxime Chéramy" + +#: ../kshutdown/_translatorinfo.cpp:3 +#: _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "maxime81@gmail.com" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:150 +#: ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "Ne peut lancer KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "Verrouiller l'écran" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "&Paramétrer KShutDown..." + diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..1bda21a --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1301 @@ +# translation of hu.po to Hungarian +# Translation of kshutdown to Castilian aka Spanish +# This file is distributed under the same license as the Kshutdown package. +# Károly Barcza <kbarcza@blackpanther.hu>, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2004-10-25 16:23+0100\n" +"Last-Translator: Kroly Barcza (VectoR) <kbarcza@blackpanther.hu>\n" +"Language-Team: Hungarian <translator@vgroup.hu>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statisztika" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." + +#: ../kshutdown/mstatstab.cpp:79 +#, fuzzy +msgid "Refresh" +msgstr "Fris&sítés" + +#: ../kshutdown/mstatstab.cpp:83 +#, fuzzy +msgid "Options" +msgstr "Mű&veletek" + +#: ../kshutdown/mstatstab.cpp:85 +#, fuzzy +msgid "More information" +msgstr "B&eállítás..." + +#: ../kshutdown/mstatstab.cpp:88 +#, fuzzy +msgid "Show login time, JCPU and PCPU times." +msgstr "Bejelentkezési idő megjelenítése JCPU és PCPU idők" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Parancs: %1" + +#: ../kshutdown/extras.cpp:57 +#, fuzzy +msgid "More actions..." +msgstr "B&eállítás..." + +#: ../kshutdown/extras.cpp:227 +#, fuzzy +msgid "Select a command..." +msgstr "Késleltetés megadása másodpercben" + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Kontext menü használta a linkek hozzáadás/szerkesztés/eltávolításához" + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Alkalmazás link létrehozásához használjon <b>Kontext Menüt</b>" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "" +"Új főmenü létrehozásához használjad az <b>Új létrehozása|Könyvtár...</b>-at" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "" +"Ikon, név vagy megjegyzés változtatásához használja a <b>Beállításokat</b>" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Extrák" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Belső hiba!\n" +"A választott menü elem hibás" + +#: ../kshutdown/miscutils.cpp:104 +#, fuzzy +msgid "1 hour warning" +msgstr "1 perces figyelmeztetés" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 perces figyelmeztetés" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 perces figyelmeztetés" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 mperces figyelmeztetés" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "" + +#: ../kshutdown/miscutils.cpp:124 +#, fuzzy +msgid "1 second before action" +msgstr "10 mperces figyelmeztetés" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "<b>%1</b>! nem futtatható" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Próba" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Munkaasztal" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K menü" + +#: ../kshutdown/links.cpp:62 +#, fuzzy +msgid "Type of the link:" +msgstr "Válassz késleltési típust" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Kilépés üzenetablak megjelenítése" + +#: ../kshutdown/links.cpp:96 +#, fuzzy +msgid "System Shut Down Utility" +msgstr "Rendszer leállító KDE segédprogram" + +#: ../kshutdown/links.cpp:107 +#, fuzzy +msgid "Could not create file <b>%1</b>!" +msgstr "<b>%1</b> fájl eltávolítása sikertelen!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "<b>%1</b> fájl eltávolítása sikertelen!" + +#: ../kshutdown/links.cpp:183 +#, fuzzy +msgid "Remove Link" +msgstr "Link e<á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: <b>%1</b>" +msgstr "Érvénytelen idő: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Beállítások" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Kikapcsolva az adminisztrátor által." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +#, fuzzy +msgid "Actions" +msgstr "Mű&veletek" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Művelet" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +#, fuzzy +msgid "Method" +msgstr "&Mód:" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:162 +#, fuzzy +msgid "Edit..." +msgstr "Sz&erkesztés..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:168 +#, fuzzy +msgid "Extras Menu" +msgstr "Extrák menü" + +#: ../kshutdown/msettingsdialog.cpp:169 +#, fuzzy +msgid "Modify..." +msgstr "Sz&erkesztés..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:190 +#, fuzzy +msgid "After Login" +msgstr "&Bejelentkezéskor" + +#: ../kshutdown/msettingsdialog.cpp:191 +#, fuzzy +msgid "Lock screen" +msgstr "Képernyő&zár" + +#: ../kshutdown/msettingsdialog.cpp:195 +#, fuzzy +msgid "Before Logout" +msgstr "Kijelentkezés" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Parancs:" + +#: ../kshutdown/msettingsdialog.cpp:208 +#, fuzzy +msgid "Related KDE Settings..." +msgstr "KDE beállítások" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Általános" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:226 +#, fuzzy +msgid "\"Turn Off Computer\" does not work" +msgstr "A számítógép &kikapcsolása" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:234 +#, fuzzy +msgid "Add/Remove Links" +msgstr "Link e<ávolítása" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:274 +#, fuzzy +msgid "Show KShutDown Themes" +msgstr "KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Üzenetek" + +#: ../kshutdown/msettingsdialog.cpp:295 +#, fuzzy +msgid "Display a warning message before action" +msgstr "%1 mp után a gép leállítása üzenet megjelenítése." + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "Perc(ek)" + +#: ../kshutdown/msettingsdialog.cpp:306 +#, fuzzy +msgid "Warning Message" +msgstr "Figyelmeztető üzenet (ajánlott)" + +#: ../kshutdown/msettingsdialog.cpp:311 +#, fuzzy +msgid "Enabled" +msgstr "Engedélye&zve" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:317 +#, fuzzy +msgid "Enter a command." +msgstr "Késleltetés megadása másodpercben" + +#: ../kshutdown/msettingsdialog.cpp:320 +#, fuzzy +msgid "A message text" +msgstr "Üzenet elrejtése után:" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +#, fuzzy +msgid "Custom Message" +msgstr "Üzenet" + +#: ../kshutdown/msettingsdialog.cpp:344 +#, fuzzy +msgid "Re-enable All Message Boxes" +msgstr "Az összes figyelmeztetés és hibaüzenet engedélyezése" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Alaphelyzetbe állítod a beállításokat ezen az oldalon?" + +#: ../kshutdown/mmainwindow.cpp:132 +#, fuzzy +msgid "Enter hour and minute." +msgstr "Óra és perc megadása:" + +#: ../kshutdown/mmainwindow.cpp:142 +#, fuzzy +msgid "Enter date and time." +msgstr "Dátum és idő megadása:" + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Kiválasztott Dátum/idő: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Jelnlegi Dátum/idő: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "A választott dátum/idő korábbi, mint a mostani idő/dátum!" + +#: ../kshutdown/mmainwindow.cpp:275 +#, fuzzy +msgid "Action cancelled!" +msgstr "Sikertelen Művelet! ( %1)" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:380 +#, fuzzy +msgid "Test mode disabled" +msgstr "Az ütemező ki van kapcsolva!" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +#, fuzzy +msgid "No Delay" +msgstr "Nincs késleltetés" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:449 +#, fuzzy +msgid "&Actions" +msgstr "Mű&veletek" + +#: ../kshutdown/mmainwindow.cpp:455 +#, fuzzy +msgid "Configure Global Shortcuts..." +msgstr "B&eállítás..." + +#: ../kshutdown/mmainwindow.cpp:460 +#, fuzzy +msgid "&Settings" +msgstr "Beállítások" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +#, fuzzy +msgid "C&ancel" +msgstr "Parancs: %1" + +#: ../kshutdown/mmainwindow.cpp:511 +#, fuzzy +msgid "Check &System Configuration" +msgstr "&megerősítés" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:528 +#, fuzzy +msgid "&Statistics" +msgstr "Statisztika" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:589 +#, fuzzy +msgid "S&elect a time" +msgstr "Kiválasztott Dátum/idő: %1" + +#: ../kshutdown/mmainwindow.cpp:596 +#, fuzzy +msgid "Time From Now (HH:MM)" +msgstr "Ettől az időponttól kezdve [ÓÓ:PP]" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Dátum/idő" + +#: ../kshutdown/mmainwindow.cpp:598 +#, fuzzy +msgid "When selected application exit" +msgstr "Végre akarod hajtani a kiválasztott feladatot?" + +#: ../kshutdown/mmainwindow.cpp:602 +#, fuzzy +msgid "Select the type of delay." +msgstr "Válassz k&ésleltési típust" + +#: ../kshutdown/mmainwindow.cpp:617 +#, fuzzy +msgid "Selected time." +msgstr "Kiválasztott Dátum/idő: %1" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "A tesztmód bekapcsolása" + +#: ../kshutdown/mmainwindow.cpp:651 +#, fuzzy +msgid "Remaining time: <b>%1</b>" +msgstr "Érvénytelen idő: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Ismeretlen" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "kiválasztott idő: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +#, fuzzy +msgid "Selected action: <b>%1</b>" +msgstr "kiválasztott idő: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +#, fuzzy +msgid "<b>Note: </b> The test mode is enabled" +msgstr "Az ütemező ki van kapcsolva!" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +#, fuzzy +msgid "KShutDown has quit" +msgstr "KShutDown" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "" + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Nem lehet szabályosan kilépni.\n" +"Az ablakkezelővel nincs kapcsolat." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Semmi" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "A számítógép &kikapcsolása" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "A számítógép ú&jraindítása" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Munkafolyamat lezárása" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Jelenlegi folyamat befejezése" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Sikertelen Művelet! ( %1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP rendszerhívás sikertelen!" + +#: ../kshutdown/systemconfig.cpp:65 +#, fuzzy +msgid "System Configuration" +msgstr "&megerősítés" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Üzenet" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:82 +#, fuzzy +msgid "Enter a custom command:" +msgstr "Késleltetés megadása másodpercben" + +#: ../kshutdown/mactioneditdialog.cpp:89 +#, fuzzy +msgid "Run command" +msgstr "Parancs f&uttatása:" + +#: ../kshutdown/mactioneditdialog.cpp:92 +#, fuzzy +msgid "Pause after run command:" +msgstr "Megállítás után futtassa ezt a parancsot:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "másodperc(ek)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +#, fuzzy +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Szükséged van megfelelő jogosultságokra a rendszer leállításához vagy " +"újraindításához (pl:run /sbin/reboot vagy /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Ha te <b>KDE</b> és <b>KDM</b>-et (KDE Display Manager) használsz akkor " +"állitsad be az összes módot a <i>KDE</i>-hez" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Ha KDE vagy KDM-től különböző ablakkezelőt használsz be kell állítanod a " +"<i>Shut Down</i> és <i>Reboot</i> módot <i>/sbin/...</i>-ben" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Kézikönyvek:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Felhasználói parancs:" + +#: ../kshutdown/mmessagedialog.cpp:79 +#, fuzzy +msgid "Remaining time." +msgstr "Érvénytelen idő: <b>%1</b>" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "" + +#: ../kshutdown/appobserver.cpp:68 +#, fuzzy +msgid "Kill the selected process" +msgstr "Végre akarod hajtani a kiválasztott feladatot?" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "" + +#: ../kshutdown/appobserver.cpp:111 +#, fuzzy +msgid "The selected process does not exist!" +msgstr "Végre akarod hajtani a kiválasztott feladatot?" + +#: ../kshutdown/appobserver.cpp:164 +#, fuzzy +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "<b>%1</b> fájl eltávolítása sikertelen!" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "" + +#: ../kshutdown/confirmation.cpp:65 +#, fuzzy +msgid "Confirm" +msgstr "&megerősítés" + +#: ../kshutdown/confirmation.cpp:74 +#, fuzzy +msgid "&Cancel" +msgstr "Parancs: %1" + +#: ../kshutdown/confirmation.cpp:79 +msgid "" +"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Charles Barcza" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "kbarcza@blackpanther.hu" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +#, fuzzy +msgid "Could not run KShutDown!" +msgstr "<b>%1</b>! nem futtatható" + +#: ../kshutdownlockout/lockout.cpp:167 +#, fuzzy +msgid "Lock Screen" +msgstr "Képernyő&zár" + +#: ../kshutdownlockout/lockout.cpp:199 +#, fuzzy +msgid "&Configure KShutDown..." +msgstr "B&eállítás..." + +#~ msgid "Are you sure?" +#~ msgstr "Biztosan ezt szeretnéd?" + +#, fuzzy +#~ msgid "" +#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu" +#~ msgstr "<b>Középső gomb</b> a műveletek menü megjelenítése" + +#~ msgid "No delay" +#~ msgstr "Nincs késleltetés" + +#, fuzzy +#~ msgid "Create Link" +#~ msgstr "&Link létrehozása" + +#, fuzzy +#~ msgid "&Cancel: %1" +#~ msgstr "Parancs: %1" + +#, fuzzy +#~ msgid "KShutDown Actions (no delay!)" +#~ msgstr "Művelet (nincs késleltés)" + +#~ msgid "Actions (no delay!)" +#~ msgstr "Művelet (nincs késleltés)" + +#~ msgid "&Turn Off Computer" +#~ msgstr "A számítógép &kikapcsolása" + +#~ msgid "&Restart Computer" +#~ msgstr "A számítógép ú&jraindítása" + +#~ msgid "&Lock Session" +#~ msgstr "Munkafolyamat lezárása" + +#~ msgid "&End Current Session" +#~ msgstr "A munkafolyamat befejezése" + +#~ msgid "&Immediate Action" +#~ msgstr "Azonnali Művelet" + +#, fuzzy +#~ msgid "Run KShutDown" +#~ msgstr "KShutDown" + +#, fuzzy +#~ msgid "&Run KShutDown" +#~ msgstr "KShutDown" + +#, fuzzy +#~ msgid "MSettingsDialog" +#~ msgstr "Beállítások" + +#, fuzzy +#~ msgid "MMessageDialog" +#~ msgstr "Üzenet" + +#, fuzzy +#~ msgid "MActionEditDialog" +#~ msgstr "Beállítások" + +#, fuzzy +#~ msgid "SystemConfig" +#~ msgstr "&megerősítés" + +#, fuzzy +#~ msgid "Links" +#~ msgstr "&Linkek" + +#, fuzzy +#~ msgid "Lockout" +#~ msgstr "Kijelentkezés" + +#~ msgid "Maintainer" +#~ msgstr "Karbantartó" + +#~ msgid "Ideas" +#~ msgstr "Ötletek" + +#~ msgid "Bug reports" +#~ msgstr "Javaslatok, hibajelentések" + +#, fuzzy +#~ msgid "Cancel an active action." +#~ msgstr "Egy aktív feladat megszakítása" + +#, fuzzy +#~ msgid "Hide message after:" +#~ msgstr "Üzenet elrejtése után:" + +#, fuzzy +#~ msgid "Enter time. (HH:MM)" +#~ msgstr "Id&ő (ÓÓ:PP)" + +#, fuzzy +#~ msgid "Enter date." +#~ msgstr "Dátum megadása" + +#, fuzzy +#~ msgid "&Time (HH:MM):" +#~ msgstr "Id&ő (ÓÓ:PP)" + +#, fuzzy +#~ msgid "Stop the active action" +#~ msgstr "kiválasztott idő: <b>%1</b>" + +#, fuzzy +#~ msgid "Start the selected action" +#~ msgstr "kiválasztott idő: <b>%1</b>" + +#, fuzzy +#~ msgid "Time From Now" +#~ msgstr "Mostantól számítva:" + +#~ msgid "HH:MM" +#~ msgstr "ÓÓ:PP" + +#~ msgid "&Date:" +#~ msgstr "&Dátum" + +#~ msgid "This page has been disabled by the Administator." +#~ msgstr "Ezt az oldalt kikapcsolta az Adminisztrátor." + +#, fuzzy +#~ msgid "&Action" +#~ msgstr "Művelet" + +#~ msgid "Click to close" +#~ msgstr "Kattints a <b>Bezár</b> gombra a kilépéshez." + +#, fuzzy +#~ msgid "Configure &Notifications..." +#~ msgstr "Értesítések beállítása" + +#, fuzzy +#~ msgid "Scheduler" +#~ msgstr "Üteme&zés" + +#, fuzzy +#~ msgid "Registered tasks:" +#~ msgstr "Rögzített feladatok" + +#~ msgid "Name" +#~ msgstr "Név" + +#~ msgid "Description" +#~ msgstr "Leírás" + +#, fuzzy +#~ msgid "Remove All" +#~ msgstr "Az összes eltávolítása" + +#, fuzzy +#~ msgid "MSchedulerTab" +#~ msgstr "Időzítő" + +#, fuzzy +#~ msgid "AppScheduler" +#~ msgstr "Időzítő" + +#~ msgid "The task is not registered!" +#~ msgstr "A feladat nincs regisztrálva!" + +#~ msgid "Invalid action: %1" +#~ msgstr "Érvénytelen művelet: %1" + +#~ msgid "The scheduler is disabled!" +#~ msgstr "Az ütemező ki van kapcsolva!" + +#, fuzzy +#~ msgid "S&cheduler" +#~ msgstr "Üteme&zés" + +#, fuzzy +#~ msgid "" +#~ "Actions\n" +#~ "and Extras Menu" +#~ msgstr "Műveletek és Extra menük" + +#, fuzzy +#~ msgid "" +#~ "Confirmations\n" +#~ "and Messages" +#~ msgstr "Megrősítés & Üzenetek" + +#, fuzzy +#~ msgid "Confirm action (recommended)" +#~ msgstr "Műveletek megerősítése (ajánlott)" + +#, fuzzy +#~ msgid "&Scheduler" +#~ msgstr "Üteme&zés" + +#, fuzzy +#~ msgid "&Download KShutDown" +#~ msgstr "KShutDown" + +#~ msgid "" +#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. " +#~ "<b>GNOME</b>), then change all methods..." +#~ msgstr "" +#~ "Ha te használod a <b>KShutDown</b>-t a nem-KDE felülethez (pl. <b>GNOME</" +#~ "b>)akkor választanod kell a módozatok közül" + +#~ msgid "" +#~ "Any external application can register a KShutDown task through the DCOP " +#~ "mechanism. For example, a movie player optionally can use the KShutDown " +#~ "task to shut down the system after playing a movie.<br><br>All the " +#~ "registered tasks are listed here. Click <b>Remove</b> or <b>Remove All</" +#~ "b> to cancel the selected task. Click <b>Configure</b> to disable the " +#~ "<b>Scheduler</b>." +#~ msgstr "" +#~ "Any external application can register a KShutDown task through the DCOP " +#~ "mechanism. For example, a movie player optionally can use the KShutDown " +#~ "task to shut down the system after playing a movie.<br><br>All the " +#~ "registered tasks are listed here. Click <b>Remove</b> or <b>Remove All</" +#~ "b> to cancel the selected task. Click <b>Configure</b> to disable the " +#~ "<b>Scheduler</b>." + +#, fuzzy +#~ msgid "Time" +#~ msgstr "I&dő" + +#~ msgid "Disabled" +#~ msgstr "Kikapcsolva" + +#, fuzzy +#~ msgid "Extras..." +#~ msgstr "E&xtrák...." + +#~ msgid "More commands...<br>Click <b>Modify...</b> to add/edit/remove items." +#~ msgstr "" +#~ "Felhasználói parancsok: <br>Klikk<b>Változtat...</b> hozzáad/szerkeszt/" +#~ "eltávolít elemekhez." + +#, fuzzy +#~ msgid "Configure..." +#~ msgstr "B&eállítás..." + +#~ msgid "Re&move" +#~ msgstr "Eltá&volítás" + +#~ msgid "Locatio&n:" +#~ msgstr "Hely:" + +#~ msgid "&Type:" +#~ msgstr "&Típus:" + +#~ msgid "KShutDown Wizard" +#~ msgstr "Beállításvarázsló" + +#~ msgid "See FAQ for more details" +#~ msgstr "Nézd meg a FAQ-t a további részletekért" + +#~ msgid "Automation" +#~ msgstr "Automatizálás" + +#, fuzzy +#~ msgid "Co&mmand:" +#~ msgstr "Parancs:" + +#~ msgid "Remember time &settings" +#~ msgstr "Megjegyzi az idő beállításokat" + +#, fuzzy +#~ msgid "Enable &Scheduler" +#~ msgstr "Időzítő" + +#~ msgid "Screen Sa&ver..." +#~ msgstr "Képernyő&védő.." + +#~ msgid "Session &Manager..." +#~ msgstr "Munkafolyamat-kezelő" + +#~ msgid "&Links" +#~ msgstr "&Linkek" + +#, fuzzy +#~ msgid "Themes" +#~ msgstr "Próba" + +#~ msgid "&Popup Messages (Passive)" +#~ msgstr "Előugró üzenet (Passzív)" + +#, fuzzy +#~ msgid "Notifications" +#~ msgstr "&megerősítés" + +#~ msgid "Wizard" +#~ msgstr "Varázsló" + +#~ msgid "&End current session" +#~ msgstr "A munkafolyamat befejezése és kilépés." + +#~ msgid "&Turn off computer" +#~ msgstr "A számítógép kikap&csolása" + +#~ msgid "&Restart computer" +#~ msgstr "A szá&mítógép újraindítása" + +#, fuzzy +#~ msgid "What do you want to do?" +#~ msgstr "Mit szeretne tenni azután?" + +#~ msgid "&Now (no delay)" +#~ msgstr "&Most (nincs késleltés)" + +#~ msgid "At &date/time" +#~ msgstr "Dát&um/idő:" + +#~ msgid "&Time from now" +#~ msgstr "&Mostantól számítva" + +#, fuzzy +#~ msgid "MWizard" +#~ msgstr "Varázsló" + +#~ msgid "St&atistics" +#~ msgstr "S&tatisztika" + +#~ msgid "Enter delay:" +#~ msgstr "Késleltetés megadása:" + +#~ msgid "Set delay to 0 seconds" +#~ msgstr "Várakozási másodpercek:" + +#~ msgid "Set delay to 00:00" +#~ msgstr "Frissítési idő 00:00:00.-hoz" + +#~ msgid "Set date/time to the current date/time" +#~ msgstr "A pontos időt és dátum beállítása" + +#~ msgid "Quit the application" +#~ msgstr "Kilépés az alkalmazásból" + +#~ msgid "Enter delay in seconds." +#~ msgstr "Késleltetés megadása másodpercben" + +#~ msgid "Enter delay in minutes." +#~ msgstr "Késleltetés megadása percekben." + +#~ msgid "Enter delay in hours." +#~ msgstr "Késleltetés megadása órákban." + +#~ msgid "Lock the screen using a screen saver" +#~ msgstr "A képernyőkímélő lezárja a képernyőt" + +#~ msgid "&Wizard..." +#~ msgstr "&Varázsló..." + +#~ msgid "Run the Wizard" +#~ msgstr "Beállításvarázsló" + +#~ msgid "Now!" +#~ msgstr "Most!" + +#~ msgid "Time from &now:" +#~ msgstr "&Mostantól számítva" + +#~ msgid "Second(s)" +#~ msgstr "Másodperc" + +#~ msgid "Minute(s)" +#~ msgstr "Perc" + +#~ msgid "Hour(s)" +#~ msgstr "Óra" + +#~ msgid "Co&lors" +#~ msgstr "Szín&ek:" + +#~ msgid "Text color:" +#~ msgstr "Szövegszín:" + +#~ msgid "Background color:" +#~ msgstr "Háttérszín:" + +#~ msgid "Header color:" +#~ msgstr "A fejléc szövegének színe" + +#~ msgid "Warning color:" +#~ msgstr "Figyelmeztetés színe" + +#~ msgid "Preview" +#~ msgstr "Előnézet" + +#~ msgid "Info" +#~ msgstr "Infó" + +#~ msgid "Tip" +#~ msgstr "Tipp" + +#~ msgid "Comm&and:" +#~ msgstr "&Parancs:" + +#~ msgid "Method / Command" +#~ msgstr "Mód / Parancs" + +#~ msgid "&Before System Shut Down" +#~ msgstr "A rendsze leállítása és a gép újraindítása." + +#~ msgid "<b>Karamba</b> Themes" +#~ msgstr "<b>Karamba</b> Témák" + +#~ msgid "Preview:" +#~ msgstr "Előnézet:" + +#~ msgid "Step %1 of %2" +#~ msgstr "1% lépés 2% -ból/ből" + +#~ msgid "Create/Remove Link" +#~ msgstr "Link Létrehozása/Eltávolítása" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..1dc66e3 --- /dev/null +++ b/po/it.po @@ -0,0 +1,801 @@ +# translation of it.po to italiano +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Giovanni Venturi <jumpyj@tiscali.it>, 2004, 2005. +# Giovanni Venturi <jumpyj@libero.it>, 2004. +# Andrea <andreafl@libero.it>, 2007. +# Andrea Florio <andrea@links2linux.de>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: it\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-08-27 19:36+0200\n" +"PO-Revision-Date: 2007-12-11 10:23+0100\n" +"Last-Translator: Andrea Florio <andrea@links2linux.de>\n" +"Language-Team: italiano <it@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Attendi..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Non posso terminare la sessione correttamente.\n" +"Il gestore della sessione non può essere contattato." + +#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419 +#: ../kshutdown/mstatstab.cpp:191 +msgid "Command: %1" +msgstr "Comando: %1" + +#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445 +#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Nessun Ritardo" + +#: ../kshutdown/actions.cpp:319 +msgid "Nothing" +msgstr "Niente" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183 +msgid "Turn Off Computer" +msgstr "Spegni computer" + +#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177 +msgid "Restart Computer" +msgstr "Riavvia computer" + +#: ../kshutdown/actions.cpp:322 +msgid "Lock Session" +msgstr "Blocca sessione" + +#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171 +msgid "End Current Session" +msgstr "Termina sessione corrente" + +#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76 +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Unknown" +msgstr "Sconosciuto" + +#: ../kshutdown/actions.cpp:362 +msgid "Action failed! (%1)" +msgstr "Azione non riuscita! (%1)" + +#: ../kshutdown/actions.cpp:406 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: chiamata DCOP non riuscita!" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Aggiorna la lista dei processi" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Mostra la lista dei processi" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Uccidi" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Uccidi il processo selezionato" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Aspetta per \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Il processo selezionato non esiste" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Impossibile eseguire il comando<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Sei sicuro di voler UCCIDERE<br><b>%1</b>?<br><br> Tutti i dati non salvati " +"saranno persi!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Processo non trovato<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Nessun permesso per uccidere<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "MORTO: %1" + +#: ../kshutdown/confirmation.cpp:64 +msgid "Confirm" +msgstr "Conferma" + +#: ../kshutdown/confirmation.cpp:78 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Sei sicuro?<br><br>Azione Selezionata<b>%1</><br>Tempo Selezionato: <b>%2</b>" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Ulteriori azioni..." + +#: ../kshutdown/extras.cpp:91 +msgid "Select a command..." +msgstr "Seleziona un comando..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Usa il menu contestuale per aggiungere/modificare/eliminare collegamenti." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "" +"Usa il <b>Menu contestuale</b> per creare un nuovo collegamento " +"all'applicazione" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Usa <b>Crea Nuovo|Cartella...</b> per creare un nuovo sottomenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Usa <b>Proprietà</b> per cambiare icona, nome, o commento" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:609 +msgid "Extras" +msgstr "Extra" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Posizione dove creare il link" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Desktop" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "Menu K" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Tipo di collegamento:" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Finestra standard di termine sessione" + +#: ../kshutdown/links.cpp:95 +msgid "System Shut Down Utility" +msgstr "Utilita di Spegnimento del Sistema" + +#: ../kshutdown/links.cpp:106 +msgid "Could not create file <b>%1</b>!" +msgstr "Impossibile creare il file <b>%1</b>!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file <b>%1</b>!" +msgstr "Impossibile cancellare il file <b>%1</b>!" + +#: ../kshutdown/links.cpp:182 +msgid "Remove Link" +msgstr "Rimuovi collegamento" + +#: ../kshutdown/links.cpp:186 +msgid "Add Link" +msgstr "Aggiungi collegamento" + +#: ../kshutdown/links.cpp:205 +msgid "Logout" +msgstr "Termina sessione" + +#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143 +msgid "Method" +msgstr "Metodo" + +#: ../kshutdown/mactioneditdialog.cpp:70 +msgid "Select a method:" +msgstr "Seleziona un metodo:" + +#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431 +msgid "KDE (default)" +msgstr "KDE (default)" + +#: ../kshutdown/mactioneditdialog.cpp:80 +msgid "Enter a custom command:" +msgstr "Immetti un comando:" + +#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144 +msgid "Command before action" +msgstr "Comando prima dell'azione" + +#: ../kshutdown/mactioneditdialog.cpp:87 +msgid "Run command" +msgstr "Esegui comando" + +#: ../kshutdown/mactioneditdialog.cpp:90 +msgid "Pause after run command:" +msgstr "Pausa dopo aver eseguito il comando:" + +#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445 +msgid "No pause" +msgstr "Nessuna pausa" + +#: ../kshutdown/mactioneditdialog.cpp:93 +msgid "second(s)" +msgstr "secondo/i" + +#: ../kshutdown/mactioneditdialog.cpp:109 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"In molti casi ti servono i privilegi per spegere il sistema (per esempio per eseguire " +"/sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Se stai usando <b>KDE</b> e <b>KDM</b> (Gestore Display di KDE), " +"allora imposta tutti i metodi a <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Se stai usando <b>KDE</b> e gestori di visulizzazione diversi da <b>KDM</b>, " +"allora imposta i metodi <i>Spegni computer</i> e <i>Riavvia computer</i> a " +"<i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "Manuals:" +msgstr "Manuali:" + +#: ../kshutdown/mactioneditdialog.cpp:135 +msgid "User Command" +msgstr "Comando utente" + +#: ../kshutdown/main.cpp:43 +msgid "A Shut Down Utility for KDE" +msgstr "Una utility di spegnimento per KDE" + +#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56 +msgid "Turn off computer" +msgstr "Spegni computer" + +#: ../kshutdown/main.cpp:58 +msgid "Restart computer" +msgstr "Riavvia computer" + +#: ../kshutdown/main.cpp:60 +msgid "Lock session" +msgstr "Blocca sessione" + +#: ../kshutdown/main.cpp:62 +msgid "End current session" +msgstr "Termina sessione corrente" + +#: ../kshutdown/main.cpp:64 +msgid "Execute \"Extras\" command (.desktop file)" +msgstr "Esegui comandi \"Extra\" (file .desktop)" + +#: ../kshutdown/main.cpp:65 +msgid "Confirm command line action" +msgstr "Conferma il comando" + +#: ../kshutdown/main.cpp:66 +msgid "Show standard logout dialog" +msgstr "Mostra finestra standard di termine sessione" + +#: ../kshutdown/main.cpp:68 +msgid "Cancel an active action" +msgstr "Annulla un'azione attiva" + +#: ../kshutdown/main.cpp:69 +msgid "Don't show window at startup" +msgstr "Non mostrare la finestra all'avvio" + +#: ../kshutdown/main.cpp:70 +msgid "Enable test mode" +msgstr "Abilita modalità di prova" + +#: ../kshutdown/main.cpp:71 +msgid "Disable test mode" +msgstr "Disabilita modalità di prova" + +#: ../kshutdown/main.cpp:72 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Orario. Esempi: 01:30 - orario assoluto (HH:MM); 10 - numero di minuti da " +"aspettare da adesso" + +#: ../kshutdown/main.cpp:245 +msgid "Invalid time: <b>%1</b>" +msgstr "Orario non valido: <b>%1</b>" + +#: ../kshutdown/miscutils.cpp:110 +msgid "1 hour warning" +msgstr "un ora di avvertimento" + +#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114 +msgid "5 minutes warning" +msgstr "5 minuti di avvertimento" + +#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118 +msgid "1 minute warning" +msgstr "1 minuto di avvertimento" + +#: ../kshutdown/miscutils.cpp:121 +msgid "10 seconds warning" +msgstr "10 secondi di avvertimento" + +#: ../kshutdown/miscutils.cpp:226 +msgid "Could not run \"%1\"!" +msgstr "Non posso eseguire \"%1\"!" + +#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471 +#: ../kshutdown/msettingsdialog.cpp:558 +msgid "Test" +msgstr "Prova" + +#: ../kshutdown/mmainwindow.cpp:149 +msgid "Enter hour and minute." +msgstr "Indica ora e minuti." + +#: ../kshutdown/mmainwindow.cpp:159 +msgid "Enter date and time." +msgstr "Indica orario e data." + +#: ../kshutdown/mmainwindow.cpp:238 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Clicca prima sul pulsante <b>Seleziona un comando</b>" + +#: ../kshutdown/mmainwindow.cpp:280 +msgid "Selected date/time: %1" +msgstr "Data/orario selezionato: %1" + +#: ../kshutdown/mmainwindow.cpp:281 +msgid "Current date/time: %1" +msgstr "Data/orario corrente: %1" + +#: ../kshutdown/mmainwindow.cpp:287 +msgid "Selected date/time is earlier than current date/time!" +msgstr "La data/orario selezionata è precedente alla data/ora corrente!" + +#: ../kshutdown/mmainwindow.cpp:292 +msgid "Action cancelled!" +msgstr "Azione annullata!" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode enabled" +msgstr "Modalità test abilitata" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode disabled" +msgstr "Modalità test disabilitata" + +#: ../kshutdown/mmainwindow.cpp:477 +msgid "&Actions" +msgstr "Azioni" + +#: ../kshutdown/mmainwindow.cpp:483 +msgid "Configure Global Shortcuts..." +msgstr "Configura Scorciatoie Globali" + +#: ../kshutdown/mmainwindow.cpp:531 +msgid "C&ancel" +msgstr "Annulla" + +#: ../kshutdown/mmainwindow.cpp:539 +msgid "Check &System Configuration" +msgstr "Controllo Configurazione Sistema" + +#: ../kshutdown/mmainwindow.cpp:556 +msgid "&Statistics" +msgstr "Statistiche" + +#: ../kshutdown/mmainwindow.cpp:600 +msgid "Select an &action to perform" +msgstr "Seleziona un'azione da effetuare" + +#: ../kshutdown/mmainwindow.cpp:610 +msgid "Select an action to perform at the selected time." +msgstr "Seleziona un'azione da effettuare all'ora selzionata" + +#: ../kshutdown/mmainwindow.cpp:616 +msgid "S&elect a time" +msgstr "Seleziona un'orario" + +#: ../kshutdown/mmainwindow.cpp:623 +msgid "Time From Now (HH:MM)" +msgstr "Tempo apartire da ora (HH:MM):" + +#: ../kshutdown/mmainwindow.cpp:624 +msgid "At Date/Time" +msgstr "In Data/Orario" + +#: ../kshutdown/mmainwindow.cpp:625 +msgid "When selected application exit" +msgstr "Quando uscire dall'applicazione selezionata" + +#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117 +msgid "Disabled by the Administrator." +msgstr "Disabilitato dall'amministratore." + +#: ../kshutdown/mmainwindow.cpp:629 +msgid "Select the type of delay." +msgstr "Seleziona il tipo di ritardo" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "Selected time." +msgstr "Seleziona orario" + +#: ../kshutdown/mmainwindow.cpp:671 +msgid "TEST MODE" +msgstr "MODALITÀ DI PROVA" + +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Remaining time: <b>%1</b>" +msgstr "Tempo restante: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: <b>%1</b>" +msgstr "Orario selezionato: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: <b>%1</b>" +msgstr "Azione selezionata: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Nota: </b> la modalità test è abilitata" + +#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905 +msgid "KShutDown has been minimized" +msgstr "KShutDown è stato minimizzato" + +#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926 +msgid "KShutDown has quit" +msgstr "KShutDown è stato chiuso" + +#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82 +msgid "Message" +msgstr "Messaggio" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Tempo restante" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Impostazioni" + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Azioni" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Azione" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Modifica..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Controlla la configurazione del sistema" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Menu aggiuntivi" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Modifica..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Avanzate" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Dopo l'accesso" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Blocca schermo" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Dopo il Logout" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Chiudi vassoio CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Comando:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Impostazioni di KDE" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Generale" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Problemi Comuni" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Spegni computer\" non funziona" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Messaggi popup sono molto fastidiosi" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Aggiungi/Rimuovi collegamento" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Mostra icona nel vassoio" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Sempre" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "L'icona nel vassoio sarà sempre visibile" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Se attivo" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "L'icona nel vassoio sarà visibile solo se KShutDown è attivo" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Mai" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "L'icona nel vassoio sarà sempre nascosta" + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Mostra i temi di KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Home Page di SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Messaggi" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Mostra il messaggio di avvertimento prima dell'azione" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minuto/i" + +#: ../kshutdown/msettingsdialog.cpp:303 +msgid "Recommended" +msgstr "Raccomandati" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "Warning Message" +msgstr "Messaggio di avvertimento (raccomandato)" + +#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351 +msgid "Enabled" +msgstr "Abilitato" + +#: ../kshutdown/msettingsdialog.cpp:318 +msgid "A shell command to execute:" +msgstr "Comando shell da eseguire" + +#: ../kshutdown/msettingsdialog.cpp:323 +msgid "Enter a command." +msgstr "Immetti un comando." + +#: ../kshutdown/msettingsdialog.cpp:326 +msgid "A message text" +msgstr "Un messaggio di testo" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "The current main window title" +msgstr "Il titolo della finestra principale attuale" + +#: ../kshutdown/msettingsdialog.cpp:333 +msgid "Presets" +msgstr "Settaggi precedenti" + +#: ../kshutdown/msettingsdialog.cpp:347 +msgid "Custom Message" +msgstr "Messaggio personalizzato" + +#: ../kshutdown/msettingsdialog.cpp:350 +msgid "Progress Bar" +msgstr "Barra di progresso" + +#: ../kshutdown/msettingsdialog.cpp:354 +msgid "Re-enable All Message Boxes" +msgstr "Ri-abilita tutti i messaggi" + +#: ../kshutdown/msettingsdialog.cpp:358 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Abilita tutti i messaggi che sono stati disattivati con la funzionalità " +"<b>Non mostrare questo messaggio di nuovo</b>." + +#: ../kshutdown/msettingsdialog.cpp:447 +msgid "Pause: %1" +msgstr "Pausa:%1" + +#: ../kshutdown/msettingsdialog.cpp:516 +msgid "This file is used to lock session at KDE startup" +msgstr "Questo file è usato per bloccare la sessione KDE all'avvio" + +#: ../kshutdown/msettingsdialog.cpp:596 +msgid "Restore default settings for this page?" +msgstr "Ripristinare le impostazioni predefinite per questa pagina?" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statistiche" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Questa vista mostra informazioni sugli utenti presenti attualmente sulla " +"macchina, e i loro processi.<br>L'intestazione mostra da quanto tempo il " +"sistema è in esecuzione." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Aggiorna" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Ulteriori informazioni" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Mostra orario di accesso, tempo di JCPU e PCPU" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Sostituisce \"da\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Sostituisci il campo \"DA\" (nome host remoto)" + +#: ../kshutdown/progressbar.cpp:99 +msgid "Hide" +msgstr "Nascondi" + +#: ../kshutdown/systemconfig.cpp:71 +msgid "System Configuration" +msgstr "Configurazionne sistema" + +#: ../kshutdown/systemconfig.cpp:88 +msgid "Tip: Click here if you have problem with the \"/sbin/shutdown\" command." +msgstr "Trucco: Clicca qui se hai problemi con il comando \"/sbin/shutdown|\"" + +#: ../kshutdown/systemconfig.cpp:97 +msgid "No problems were found." +msgstr "Nessun problema trovato" + +#: ../kshutdown/systemconfig.cpp:128 +msgid "Program \"%1\" was not found!" +msgstr "Il programma \"%1\" non è stato trovato" + +#: ../kshutdown/systemconfig.cpp:135 +msgid "No permissions to execute \"%1\"." +msgstr "Nessun permesso per eseguire \"%1\"." + +#: ../kshutdown/systemconfig.cpp:144 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Sembra che questa non sia una sessione KDE completa.\n" +"KShutDown è stato pensato per lavorare con KDE.\n" +"Tuttaviar, puoi personalizzare le Azione nella finesta impostazioni " +"KShutDown\n" +"(Impostazioni -> Configura KShutDown... -> Azioni)" + +#: ../kshutdown/systemconfig.cpp:161 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Trucco: Puoi personalizzare le azione per far funzionare anche GDM.\n" +"(Impostazioni -> Configura KShutDown... -> Azioni)" + +#: ../kshutdown/systemconfig.cpp:162 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"Il Display Manager KDE no è avviato,\n" +"oppure la funzione arresto/riavvia è stata disabilitata,\n" +"\n" +"Clicca qui per configurare KDM" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Andrea Florio" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "andreafl@libero.it" + +#: ../kshutdownlockout/lockout.cpp:120 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" +"Clicca per la finestra proncipale di KShutDown<br>Clicca e tieni premuto per " +"il menù" + +#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155 +#: ../kshutdownlockout/lockout.cpp:200 +msgid "Could not run KShutDown!" +msgstr "Non posso eseguire KSutDown!" + +#: ../kshutdownlockout/lockout.cpp:165 +msgid "Lock Screen" +msgstr "Blocca schermo" + +#: ../kshutdownlockout/lockout.cpp:191 +msgid "&Configure KShutDown..." +msgstr "Configura KShutDown..." + diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..fce2308 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,1303 @@ +# translation of nl.po to Nederlands +# translation of kshutdown.po to Nederlands +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Bram Schoenmakers <bram_s@softhome.net>, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: nl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2004-04-21 22:47+0000\n" +"Last-Translator: Bram Schoenmakers <bram_s@softhome.net>\n" +"Language-Team: Nederlands <kde-i18n-nl@kde.nl>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ../kshutdown/mstatstab.cpp:46 +#, fuzzy +msgid "Statistics" +msgstr "&Statistieken" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:79 +#, fuzzy +msgid "Refresh" +msgstr "&Vernieuwen" + +#: ../kshutdown/mstatstab.cpp:83 +#, fuzzy +msgid "Options" +msgstr "Acties" + +#: ../kshutdown/mstatstab.cpp:85 +#, fuzzy +msgid "More information" +msgstr "&Instellen..." + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +#, fuzzy +msgid "Command: %1" +msgstr "Commando:" + +#: ../kshutdown/extras.cpp:57 +#, fuzzy +msgid "More actions..." +msgstr "&Instellen..." + +#: ../kshutdown/extras.cpp:227 +#, fuzzy +msgid "Select a command..." +msgstr "Geef vertraging op in seconden." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "" + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +#, fuzzy +msgid "Extras" +msgstr "E&xtra's..." + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" + +#: ../kshutdown/miscutils.cpp:104 +#, fuzzy +msgid "1 hour warning" +msgstr "1 minuut van tevoren waarschuwen" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 minuten van tevoren waarschuwen" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 minuut van tevoren waarschuwen" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 seconden van tevoren waarschuwen" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "" + +#: ../kshutdown/miscutils.cpp:124 +#, fuzzy +msgid "1 second before action" +msgstr "10 seconden van tevoren waarschuwen" + +#: ../kshutdown/miscutils.cpp:223 +#, fuzzy +msgid "Could not run \"%1\"!" +msgstr "Kon <b>%1</b> niet starten!" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Test" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "" + +#: ../kshutdown/links.cpp:62 +#, fuzzy +msgid "Type of the link:" +msgstr "Kies het vertragingstype." + +#: ../kshutdown/links.cpp:66 +#, fuzzy +msgid "KShutDown" +msgstr "Uitschakelen" + +#: ../kshutdown/links.cpp:69 +#, fuzzy +msgid "Standard Logout Dialog" +msgstr "Toon standaard afmeldvenster" + +#: ../kshutdown/links.cpp:96 +#, fuzzy +msgid "System Shut Down Utility" +msgstr "Een hulpmiddel om uw systeem uit te schakelen voor KDE" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "" + +#: ../kshutdown/links.cpp:183 +#, fuzzy +msgid "Remove Link" +msgstr "&Verwijderen" + +#: ../kshutdown/links.cpp:187 +#, fuzzy +msgid "Add Link" +msgstr "&Verwijderen" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Afmelden" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Een hulpmiddel om uw systeem uit te schakelen voor KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "" + +#: ../kshutdown/main.cpp:57 +#, fuzzy +msgid "Lock session" +msgstr "Scherm vergrendelen" + +#: ../kshutdown/main.cpp:59 +#, fuzzy +msgid "End current session" +msgstr "Huidige sessie beëindigen en afmelden." + +#: ../kshutdown/main.cpp:60 +#, fuzzy +msgid "Confirm command line action" +msgstr "Gestarte actie annuleren" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Toon standaard afmeldvenster" + +#: ../kshutdown/main.cpp:63 +#, fuzzy +msgid "Cancel an active action" +msgstr "Gestarte actie annuleren" + +#: ../kshutdown/main.cpp:64 +#, fuzzy +msgid "Don't show window at startup" +msgstr "Venster bij opstarten verbergen (wordt gebruikt door DCOP-clients)" + +#: ../kshutdown/main.cpp:65 +#, fuzzy +msgid "Enable test mode" +msgstr "Geluid &testen" + +#: ../kshutdown/main.cpp:66 +#, fuzzy +msgid "Disable test mode" +msgstr "&Ingeschakeld" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Instellingen" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +#, fuzzy +msgid "Disabled by the Administrator." +msgstr "Deze pagina is uitgeschakeld door de beheerder." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +#, fuzzy +msgid "Actions" +msgstr "Acties" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Actie" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +#, fuzzy +msgid "Method" +msgstr "&Methode" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:162 +#, fuzzy +msgid "Edit..." +msgstr "&Bewerken..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:168 +#, fuzzy +msgid "Extras Menu" +msgstr "E&xtra's..." + +#: ../kshutdown/msettingsdialog.cpp:169 +#, fuzzy +msgid "Modify..." +msgstr "&Bewerken..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:191 +#, fuzzy +msgid "Lock screen" +msgstr "Scherm vergrendelen" + +#: ../kshutdown/msettingsdialog.cpp:195 +#, fuzzy +msgid "Before Logout" +msgstr "&Uitloggen" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Commando:" + +#: ../kshutdown/msettingsdialog.cpp:208 +#, fuzzy +msgid "Related KDE Settings..." +msgstr "Instellingen" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Algemeen" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:234 +#, fuzzy +msgid "Add/Remove Links" +msgstr "&Verwijderen" + +#: ../kshutdown/msettingsdialog.cpp:238 +#, fuzzy +msgid "Show System Tray Icon" +msgstr "MSystemTray" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:274 +#, fuzzy +msgid "Show KShutDown Themes" +msgstr "Schakelt het systeem uit." + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:285 +#, fuzzy +msgid "Messages" +msgstr "Bericht" + +#: ../kshutdown/msettingsdialog.cpp:295 +#, fuzzy +msgid "Display a warning message before action" +msgstr "%1 minu(u)t(en) van te voren een &waarschuwing tonen" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minu(u)t(en)" + +#: ../kshutdown/msettingsdialog.cpp:306 +#, fuzzy +msgid "Warning Message" +msgstr "&Waarschuwing" + +#: ../kshutdown/msettingsdialog.cpp:311 +#, fuzzy +msgid "Enabled" +msgstr "&Ingeschakeld" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:317 +#, fuzzy +msgid "Enter a command." +msgstr "Geef vertraging op in seconden." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +#, fuzzy +msgid "Custom Message" +msgstr "Bericht" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Standaardwaarden op deze pagina herstellen?" + +#: ../kshutdown/mmainwindow.cpp:132 +#, fuzzy +msgid "Enter hour and minute." +msgstr "Geef vertraging op in minuten." + +#: ../kshutdown/mmainwindow.cpp:142 +#, fuzzy +msgid "Enter date and time." +msgstr "Voer datum in." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Geselecteerde datum/tijd is eerder dan de huidige datum/tijd!" + +#: ../kshutdown/mmainwindow.cpp:275 +#, fuzzy +msgid "Action cancelled!" +msgstr "Actie mislukt! (%1)" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +#, fuzzy +msgid "No Delay" +msgstr "&Onmiddelijke actie" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:449 +#, fuzzy +msgid "&Actions" +msgstr "Acties" + +#: ../kshutdown/mmainwindow.cpp:455 +#, fuzzy +msgid "Configure Global Shortcuts..." +msgstr "&Instellen..." + +#: ../kshutdown/mmainwindow.cpp:460 +#, fuzzy +msgid "&Settings" +msgstr "Instellingen" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +#, fuzzy +msgid "C&ancel" +msgstr "Commando:" + +#: ../kshutdown/mmainwindow.cpp:511 +#, fuzzy +msgid "Check &System Configuration" +msgstr "Actie &bevestigen" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:528 +#, fuzzy +msgid "&Statistics" +msgstr "&Statistieken" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:589 +#, fuzzy +msgid "S&elect a time" +msgstr "Kies het vertragingstype." + +#: ../kshutdown/mmainwindow.cpp:596 +#, fuzzy +msgid "Time From Now (HH:MM)" +msgstr "Vanaf dit tijdstip (UU:MM):" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Op datum/tijd" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Kies het vertragingstype." + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "TEST MODUS" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Onbekend" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:653 +#, fuzzy +msgid "Selected action: <b>%1</b>" +msgstr "Kon <b>%1</b> niet starten!" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +#, fuzzy +msgid "KShutDown has quit" +msgstr "Uitschakelen" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "" + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Kon niet goed uitloggen.\n" +"Kon geen verbinding maken met de sessiebeheerder." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Niets" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "" + +#: ../kshutdown/actions.cpp:319 +#, fuzzy +msgid "Lock Session" +msgstr "Scherm vergrendelen" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "" + +#: ../kshutdown/actions.cpp:359 +#, fuzzy +msgid "Action failed! (%1)" +msgstr "Actie mislukt! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP-aanroep mislukt!" + +#: ../kshutdown/systemconfig.cpp:65 +#, fuzzy +msgid "System Configuration" +msgstr "Actie &bevestigen" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Bericht" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:72 +#, fuzzy +msgid "Select a method:" +msgstr "Kies het vertragingstype." + +#: ../kshutdown/mactioneditdialog.cpp:82 +#, fuzzy +msgid "Enter a custom command:" +msgstr "Geef vertraging op in seconden." + +#: ../kshutdown/mactioneditdialog.cpp:89 +#, fuzzy +msgid "Run command" +msgstr "Commando:" + +#: ../kshutdown/mactioneditdialog.cpp:92 +#, fuzzy +msgid "Pause after run command:" +msgstr "Geef vertraging op in seconden." + +#: ../kshutdown/mactioneditdialog.cpp:95 +#, fuzzy +msgid "second(s)" +msgstr "Seconde(n)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +#, fuzzy +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"In de meeste gevallen heeft u toegangsrechten nodig om het systeem uit te " +"schakelen (bijv. bij /sbin/reboot of bij /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +#, fuzzy +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Wanneer u gebruik maakt van <b>KDE</b> en <b>KDM</b> (KDE Display Manager), " +"zet dan alle methoden op <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +#, fuzzy +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Wanneer u gebruik maakt van <b>KDE</b> en een andere display beheerder dan " +"<b>KDM</b>, zet dan de methoden voor <i>Uitschakelen</i> en <i>Herstarten " +"op</i> op <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Handleidingen:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Gebruikerscommando" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "" + +#: ../kshutdown/appobserver.cpp:68 +#, fuzzy +msgid "Kill the selected process" +msgstr "Kon <b>%1</b> niet starten!" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "" + +#: ../kshutdown/confirmation.cpp:65 +#, fuzzy +msgid "Confirm" +msgstr "Actie &bevestigen" + +#: ../kshutdown/confirmation.cpp:74 +#, fuzzy +msgid "&Cancel" +msgstr "Commando:" + +#: ../kshutdown/confirmation.cpp:79 +msgid "" +"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Bram Schoenmakers" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "bram_s@softhome.net" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +#, fuzzy +msgid "Could not run KShutDown!" +msgstr "Kon <b>%1</b> niet starten!" + +#: ../kshutdownlockout/lockout.cpp:167 +#, fuzzy +msgid "Lock Screen" +msgstr "Scherm &vergrendelen" + +#: ../kshutdownlockout/lockout.cpp:199 +#, fuzzy +msgid "&Configure KShutDown..." +msgstr "&Instellen..." + +#~ msgid "Are you sure?" +#~ msgstr "Weet u het zeker?" + +#, fuzzy +#~ msgid "Create Link" +#~ msgstr "&Verwijderen" + +#, fuzzy +#~ msgid "&Cancel: %1" +#~ msgstr "Commando:" + +#, fuzzy +#~ msgid "KShutDown Actions (no delay!)" +#~ msgstr "&Onmiddelijke actie" + +#, fuzzy +#~ msgid "Actions (no delay!)" +#~ msgstr "&Onmiddelijke actie" + +#, fuzzy +#~ msgid "&Lock Session" +#~ msgstr "Scherm vergrendelen" + +#~ msgid "&Immediate Action" +#~ msgstr "&Onmiddelijke actie" + +#, fuzzy +#~ msgid "Run KShutDown" +#~ msgstr "Uitschakelen" + +#, fuzzy +#~ msgid "&Run KShutDown" +#~ msgstr "Uitschakelen" + +#~ msgid "MSettingsDialog" +#~ msgstr "MSettingsDialog" + +#~ msgid "MSystemTray" +#~ msgstr "MSystemTray" + +#~ msgid "MMessageDialog" +#~ msgstr "MMessageDialog" + +#~ msgid "MStatsTab" +#~ msgstr "MStatsTab" + +#~ msgid "MActionEditDialog" +#~ msgstr "MActionEditDialog" + +#, fuzzy +#~ msgid "SystemConfig" +#~ msgstr "Actie &bevestigen" + +#~ msgid "MMainWindow" +#~ msgstr "MMainWindow" + +#, fuzzy +#~ msgid "Lockout" +#~ msgstr "Afmelden" + +#~ msgid "Maintainer" +#~ msgstr "Onderhouder" + +#~ msgid "Ideas" +#~ msgstr "Ideeën" + +#~ msgid "Bug reports" +#~ msgstr "Bugrapporten" + +#, fuzzy +#~ msgid "Cancel an active action." +#~ msgstr "Gestarte actie annuleren" + +#, fuzzy +#~ msgid "Enter time. (HH:MM)" +#~ msgstr "&Tijd (UU:MM):" + +#, fuzzy +#~ msgid "Enter date." +#~ msgstr "Voer datum in." + +#, fuzzy +#~ msgid "&Time (HH:MM):" +#~ msgstr "&Tijd (UU:MM):" + +#, fuzzy +#~ msgid "Stop the active action" +#~ msgstr "Kon <b>%1</b> niet starten!" + +#~ msgid "Time From Now" +#~ msgstr "Vanaf dit tijdstip" + +#~ msgid "HH:MM" +#~ msgstr "UU:MM" + +#~ msgid "&Date:" +#~ msgstr "&Datum:" + +#~ msgid "This page has been disabled by the Administator." +#~ msgstr "Deze pagina is uitgeschakeld door de beheerder." + +#, fuzzy +#~ msgid "Select the type of delay" +#~ msgstr "Kies het vertragingstype." + +#, fuzzy +#~ msgid "&Action" +#~ msgstr "Actie" + +#, fuzzy +#~ msgid "Configure &Notifications..." +#~ msgstr "&Instellen..." + +#, fuzzy +#~ msgid "Scheduler" +#~ msgstr "&Planner" + +#, fuzzy +#~ msgid "Registered tasks:" +#~ msgstr "Ge®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 <b>KShutDown</b> from the non-KDE session (e.g. " +#~ "<b>GNOME</b>), then change all methods..." +#~ msgstr "" +#~ "Wanneer u <b>Shut-Down-O-Matik</b> uitgevoerd heeft vanuit een niet-KDE-" +#~ "sessie (bijv. <b>GNOME</b>) dient u alle methoden te veranderen..." + +#, fuzzy +#~ msgid "Time" +#~ msgstr "&Tijd" + +#, fuzzy +#~ msgid "&Time From Now:" +#~ msgstr "Vanaf &dit tijdstip:" + +#, fuzzy +#~ msgid "Disabled" +#~ msgstr "&Ingeschakeld" + +#, fuzzy +#~ msgid "Extras..." +#~ msgstr "E&xtra's..." + +#, fuzzy +#~ msgid "Configure..." +#~ msgstr "&Instellen..." + +#~ msgid "Re&move" +#~ msgstr "&Verwijderen" + +#, fuzzy +#~ msgid "Locatio&n:" +#~ msgstr "Actie" + +#, fuzzy +#~ msgid "KShutDown Wizard" +#~ msgstr "Uitschakelen" + +#~ msgid "See FAQ for more details" +#~ msgstr "Zie de FAQ voor meer informatie" + +#, fuzzy +#~ msgid "Automation" +#~ msgstr "Actie" + +#, fuzzy +#~ msgid "Co&mmand:" +#~ msgstr "Commando:" + +#, fuzzy +#~ msgid "Remember time &settings" +#~ msgstr "Bovenstaande instellingen &onthouden" + +#, fuzzy +#~ msgid "Enable &Scheduler" +#~ msgstr "Planner" + +#, fuzzy +#~ msgid "Screen Sa&ver..." +#~ msgstr "&Schermbeveiligingsinstellingen..." + +#, fuzzy +#~ msgid "Themes" +#~ msgstr "Test" + +#~ msgid "&Popup Messages (Passive)" +#~ msgstr "&Berichtvenster openen (passief)" + +#, fuzzy +#~ msgid "Notifications" +#~ msgstr "Actie &bevestigen" + +#, fuzzy +#~ msgid "At &date/time" +#~ msgstr "Op datum/tijd" + +#, fuzzy +#~ msgid "&Time from now" +#~ msgstr "Vanaf &dit tijdstip:" + +#, fuzzy +#~ msgid "St&atistics" +#~ msgstr "&Statistieken" + +#, fuzzy +#~ msgid "Enter delay:" +#~ msgstr "Voer datum in." + +#, fuzzy +#~ msgid "Set delay to 0 seconds" +#~ msgstr "Stel vertraging in op 0 seconden." + +#, fuzzy +#~ msgid "Set delay to 00:00" +#~ msgstr "Stel vertraging in naar 00:00." + +#, fuzzy +#~ msgid "Set date/time to the current date/time" +#~ msgstr "Stel datum/tijd naar huidige datum/tijd in." + +#~ msgid "Enter delay in seconds." +#~ msgstr "Geef vertraging op in seconden." + +#~ msgid "Enter delay in minutes." +#~ msgstr "Geef vertraging op in minuten." + +#~ msgid "Enter delay in hours." +#~ msgstr "Geef vertraging op in uren." + +#, fuzzy +#~ msgid "Lock the screen using a screen saver" +#~ msgstr "Vergrendelt scherm met schermbeveiliging." + +#~ msgid "Now!" +#~ msgstr "Nu!" + +#, fuzzy +#~ msgid "Time from &now:" +#~ msgstr "Vanaf &dit tijdstip:" + +#~ msgid "Second(s)" +#~ msgstr "Seconde(n)" + +#~ msgid "Minute(s)" +#~ msgstr "Minu(u)t(en)" + +#~ msgid "Hour(s)" +#~ msgstr "Uur" + +#, fuzzy +#~ msgid "Warning color:" +#~ msgstr "Waarschuwing:" + +#, fuzzy +#~ msgid "Info" +#~ msgstr "Informatie:" + +#, fuzzy +#~ msgid "Tip" +#~ msgstr "Tip:" + +#, fuzzy +#~ msgid "Comm&and:" +#~ msgstr "Commando:" + +#~ msgid "Method / Command" +#~ msgstr "Methode / Commando" + +#, fuzzy +#~ msgid "&Before System Shut Down" +#~ msgstr "&Uitschakelen" + +#~ msgid "Sound" +#~ msgstr "Geluid" + +#, fuzzy +#~ msgid "So&und directory:" +#~ msgstr "Gel&uidsmap" + +#~ msgid "" +#~ "Select a sound directory.<br><br>Press <b>Defaults</b> button to restore " +#~ "the default sound directory." +#~ msgstr "" +#~ "Kies een geluidsmap.<br><br>Druk op de knop <b>Standaardwaarden</b> om de " +#~ "standaard geluidsmap in te stellen." + +#~ msgid "File <b>%1</b> not found." +#~ msgstr "Bestand <b>%1</b> niet gevonden." + +#, fuzzy +#~ msgid "Re&set Time" +#~ msgstr "&Tijd resetten" + +#, fuzzy +#~ msgid "Enter delay in seconds, minutes, or hours:" +#~ msgstr "Geef vertraging op in seconden." + +#~ msgid "Logo&ut Settings..." +#~ msgstr "Afmeldinstellingen..." + +#~ msgid "Stat&istics" +#~ msgstr "&Statistieken" + +#~ msgid "Shut Down" +#~ msgstr "Uitschakelen" + +#~ msgid "Reboot" +#~ msgstr "Herstarten" + +#~ msgid "&Shut Down" +#~ msgstr "&Uitschakelen" + +#~ msgid "&Reboot" +#~ msgstr "&Herstarten" + +#~ msgid "Halt system" +#~ msgstr "Systeem uitschakelen" + +#~ msgid "Reboot system" +#~ msgstr "Systeem herstarten" + +#~ msgid "Cancel a running action" +#~ msgstr "Gestarte actie annuleren" + +#, fuzzy +#~ msgid "Default mode" +#~ msgstr "Geluid &testen" + +#~ msgid "Warning:" +#~ msgstr "Waarschuwing:" + +#, fuzzy +#~ msgid "Select the type of &delay" +#~ msgstr "Kies het vertragingstype." + +#, fuzzy +#~ msgid "Text" +#~ msgstr "Test" + +#~ msgid "Comm&and" +#~ msgstr "&Commando" + +#~ msgid "See also: <i>Actions</i>." +#~ msgstr "Zie ook: <i>Acties</i>." + +#~ msgid "Shut down system and reboot computer." +#~ msgstr "Sluit het systeem af en herstart uw computer." + +#, fuzzy +#~ msgid "Cancel active action, or quit the application." +#~ msgstr "Uitschakelen annuleren, of sluit de toepassing af." + +#~ msgid "&When?" +#~ msgstr "&Wanneer?" + +#~ msgid "No description" +#~ msgstr "Geen omschrijving" + +#~ msgid "&Test Sound" +#~ msgstr "Geluid &testen" + +#~ msgid "Shut Down-O-Matik" +#~ msgstr "Shut Down-O-Matik" + +#~ msgid "Don't really shut down" +#~ msgstr "Niet echt afsluiten" diff --git a/po/pl.po b/po/pl.po new file mode 100644 index 0000000..d276360 --- /dev/null +++ b/po/pl.po @@ -0,0 +1,799 @@ +# translation of pl.po to +# translation of pl.po to Polish +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Konrad Twardowski <kdtonline@poczta.onet.pl>, 2003, 2004, 2005, 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: pl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-08-27 19:36+0200\n" +"PO-Revision-Date: 2007-08-27 19:49+0200\n" +"Last-Translator: Konrad Twardowski <kdtonline@poczta.onet.pl>\n" +"Language-Team: Polish <pl@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Proszę czekać..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Nie było możliwe poprawne wylogowanie.\n" +"Nie można połączyć się z menedżerem sesji." + +#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419 +#: ../kshutdown/mstatstab.cpp:191 +msgid "Command: %1" +msgstr "Polecenie: %1" + +#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445 +#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Brak opóźnienia" + +#: ../kshutdown/actions.cpp:319 +msgid "Nothing" +msgstr "Nic" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183 +msgid "Turn Off Computer" +msgstr "Wyłącz komputer" + +#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177 +msgid "Restart Computer" +msgstr "Uruchom ponownie" + +#: ../kshutdown/actions.cpp:322 +msgid "Lock Session" +msgstr "Zablokuj ekran" + +#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171 +msgid "End Current Session" +msgstr "Zakończ bieżącą sesję" + +#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76 +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Unknown" +msgstr "Nieznane" + +#: ../kshutdown/actions.cpp:362 +msgid "Action failed! (%1)" +msgstr "Akcja nie powiodła się! (%1)" + +#: ../kshutdown/actions.cpp:406 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: wywołanie DCOP nie powiodło się!" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Odśwież listę procesów" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Lista działających procesów" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Zabij" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Zabij wybrany proces" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Czekanie na \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Wybrany proces nie istnieje!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Nie można wykonać polecenia<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Jesteś pewien, że chcesz ZABIĆ<br><b>%1</b>?<br><br>Wszystkie niezapisane " +"dane zostaną utracone!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Nie znaleziono procesu<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Brak uprawnień do zabicia<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "MARTWY: %1" + +#: ../kshutdown/confirmation.cpp:64 +msgid "Confirm" +msgstr "Potwierdź" + +#: ../kshutdown/confirmation.cpp:78 +msgid "" +"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" +"Jesteś pewna/pewien?<br><br>Wybrana akcja: <b>%1</b><br>Wybrany czas: <b>%2</" +"b>" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Więcej akcji..." + +#: ../kshutdown/extras.cpp:91 +msgid "Select a command..." +msgstr "Wybierz polecenie..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Użyj menu kontekstowego, aby dodawać/edytować/usuwać skróty." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Użyj <b>Menu Kontekstowego</b>, aby utworzyć nowy skrót do aplikacji" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Użyj <b>Utwórz nowe|Katalog...</b>, aby utworzyć nowe podmenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Użyj <b>Właściwości...</b>, aby zmienić ikonę, nazwę lub komentarz" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:609 +msgid "Extras" +msgstr "Ekstra" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Położenie, w którym utworzyć skrót:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Pulpit" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "Menu \"K\"" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Rodzaj skrótu:" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Standardowe okno wylogowywania" + +#: ../kshutdown/links.cpp:95 +msgid "System Shut Down Utility" +msgstr "Narzędzie do zamykania systemu" + +#: ../kshutdown/links.cpp:106 +msgid "Could not create file <b>%1</b>!" +msgstr "Nie można utworzyć pliku <b>%1</b>!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file <b>%1</b>!" +msgstr "Nie można usunąć pliku <b>%1</b>!" + +#: ../kshutdown/links.cpp:182 +msgid "Remove Link" +msgstr "Usuń skrót" + +#: ../kshutdown/links.cpp:186 +msgid "Add Link" +msgstr "Dodaj skrót" + +#: ../kshutdown/links.cpp:205 +msgid "Logout" +msgstr "Wyloguj" + +#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143 +msgid "Method" +msgstr "Metoda" + +#: ../kshutdown/mactioneditdialog.cpp:70 +msgid "Select a method:" +msgstr "Wybierz metodę:" + +#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431 +msgid "KDE (default)" +msgstr "KDE (domyślne)" + +#: ../kshutdown/mactioneditdialog.cpp:80 +msgid "Enter a custom command:" +msgstr "Wprowadź własne polecenie:" + +#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144 +msgid "Command before action" +msgstr "Polecenie przed akcją" + +#: ../kshutdown/mactioneditdialog.cpp:87 +msgid "Run command" +msgstr "Uruchom polecenie" + +#: ../kshutdown/mactioneditdialog.cpp:90 +msgid "Pause after run command:" +msgstr "Pauza po uruchomieniu polecenia:" + +#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445 +msgid "No pause" +msgstr "Bez pauzy" + +#: ../kshutdown/mactioneditdialog.cpp:93 +msgid "second(s)" +msgstr "sekunda(y)" + +#: ../kshutdown/mactioneditdialog.cpp:109 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"W większości przypadków potrzebne są uprawnienia do zamknięcia systemu (np. " +"uruchomienia /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Jeśli używasz <b>KDE</b> i <b>KDM</b> (KDE Display Manager), ustaw wszystkie " +"metody na <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Jeśli używasz <b>KDE</b> i menedżera logowania innego niż <b>KDM</b>, ustaw " +"metody poleceń <i>Wyłącz komputer</i> i <i>Uruchom ponownie</i> na <i>/" +"sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "Manuals:" +msgstr "Podręczniki:" + +#: ../kshutdown/mactioneditdialog.cpp:135 +msgid "User Command" +msgstr "Polecenie użytkownika" + +#: ../kshutdown/main.cpp:43 +msgid "A Shut Down Utility for KDE" +msgstr "Narzędzie do zamykania systemu dla KDE" + +#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56 +msgid "Turn off computer" +msgstr "Wyłącz komputer" + +#: ../kshutdown/main.cpp:58 +msgid "Restart computer" +msgstr "Uruchom ponownie" + +#: ../kshutdown/main.cpp:60 +msgid "Lock session" +msgstr "Zablokuj ekran" + +#: ../kshutdown/main.cpp:62 +msgid "End current session" +msgstr "Zakończ bieżącą sesję" + +#: ../kshutdown/main.cpp:64 +msgid "Execute \"Extras\" command (.desktop file)" +msgstr "Uruchom polecenie \"Extra\" (plik .desktop)" + +#: ../kshutdown/main.cpp:65 +msgid "Confirm command line action" +msgstr "Potwierdź akcję linii poleceń" + +#: ../kshutdown/main.cpp:66 +msgid "Show standard logout dialog" +msgstr "Pokaż standardowe okno wylogowywania" + +#: ../kshutdown/main.cpp:68 +msgid "Cancel an active action" +msgstr "Anuluj aktywną akcję" + +#: ../kshutdown/main.cpp:69 +msgid "Don't show window at startup" +msgstr "Nie pokazuj okna przy starcie" + +#: ../kshutdown/main.cpp:70 +msgid "Enable test mode" +msgstr "Włącz tryb testowy" + +#: ../kshutdown/main.cpp:71 +msgid "Disable test mode" +msgstr "Wyłącz tryb testowy" + +#: ../kshutdown/main.cpp:72 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Czas; Przykłady: 01:30 - czas bezwzględny (GG:MM); 10 - liczba minut do " +"odczekania od teraz" + +#: ../kshutdown/main.cpp:245 +msgid "Invalid time: <b>%1</b>" +msgstr "Nieprawidłowy czas: <b>%1</b>" + +#: ../kshutdown/miscutils.cpp:110 +msgid "1 hour warning" +msgstr "Ostrzeżenie: 1 godzina" + +#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114 +msgid "5 minutes warning" +msgstr "Ostrzeżenie: 5 minut" + +#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118 +msgid "1 minute warning" +msgstr "Ostrzeżenie: 1 minuta" + +#: ../kshutdown/miscutils.cpp:121 +msgid "10 seconds warning" +msgstr "Ostrzeżenie: 10 sekund" + +#: ../kshutdown/miscutils.cpp:226 +msgid "Could not run \"%1\"!" +msgstr "Nie można uruchomić \"%1\"!" + +#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471 +#: ../kshutdown/msettingsdialog.cpp:558 +msgid "Test" +msgstr "Test" + +#: ../kshutdown/mmainwindow.cpp:149 +msgid "Enter hour and minute." +msgstr "Podaj godzinę i minutę." + +#: ../kshutdown/mmainwindow.cpp:159 +msgid "Enter date and time." +msgstr "Podaj datę i godzinę." + +#: ../kshutdown/mmainwindow.cpp:238 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Najpierw kliknij na przycisk <b>Wybierz polecenie...</b>." + +#: ../kshutdown/mmainwindow.cpp:280 +msgid "Selected date/time: %1" +msgstr "Wybrana data/godzina: %1" + +#: ../kshutdown/mmainwindow.cpp:281 +msgid "Current date/time: %1" +msgstr "Bieżąca data/godzina: %1" + +#: ../kshutdown/mmainwindow.cpp:287 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Wybrana data/godzina jest wcześniejsza niż bieżąca data/godzina!" + +#: ../kshutdown/mmainwindow.cpp:292 +msgid "Action cancelled!" +msgstr "Akcja anulowana!" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode enabled" +msgstr "Tryb testowy włączony" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode disabled" +msgstr "Tryb testowy wyłączony" + +#: ../kshutdown/mmainwindow.cpp:477 +msgid "&Actions" +msgstr "&Akcje" + +#: ../kshutdown/mmainwindow.cpp:483 +msgid "Configure Global Shortcuts..." +msgstr "Konfiguracja skrótów globalnych..." + +#: ../kshutdown/mmainwindow.cpp:531 +msgid "C&ancel" +msgstr "&Anuluj" + +#: ../kshutdown/mmainwindow.cpp:539 +msgid "Check &System Configuration" +msgstr "&Sprawdź konfigurację systemu" + +#: ../kshutdown/mmainwindow.cpp:556 +msgid "&Statistics" +msgstr "&Statystyka" + +#: ../kshutdown/mmainwindow.cpp:600 +msgid "Select an &action to perform" +msgstr "Wybierz &akcję do wykonania" + +#: ../kshutdown/mmainwindow.cpp:610 +msgid "Select an action to perform at the selected time." +msgstr "Wybierz akcję do wykonania o wybranym czasie." + +#: ../kshutdown/mmainwindow.cpp:616 +msgid "S&elect a time" +msgstr "&Wybierz czas" + +#: ../kshutdown/mmainwindow.cpp:623 +msgid "Time From Now (HH:MM)" +msgstr "Czas od teraz (GG:MM)" + +#: ../kshutdown/mmainwindow.cpp:624 +msgid "At Date/Time" +msgstr "O dacie/godzinie" + +#: ../kshutdown/mmainwindow.cpp:625 +msgid "When selected application exit" +msgstr "Gdy wybrana aplikacja zakończy się" + +#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117 +msgid "Disabled by the Administrator." +msgstr "Wyłączone przez Administratora." + +#: ../kshutdown/mmainwindow.cpp:629 +msgid "Select the type of delay." +msgstr "Wybierz rodzaj opóźnienia." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "Selected time." +msgstr "Wybrany czas." + +#: ../kshutdown/mmainwindow.cpp:671 +msgid "TEST MODE" +msgstr "TRYB TESTOWY" + +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Remaining time: <b>%1</b>" +msgstr "Pozostały czas: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: <b>%1</b>" +msgstr "Wybrany czas: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: <b>%1</b>" +msgstr "Wybrana akcja: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Uwaga: </b> Tryb testowy jest włączony" + +#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905 +msgid "KShutDown has been minimized" +msgstr "KShutDown został zminimalizowany" + +#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926 +msgid "KShutDown has quit" +msgstr "KShutDown zakończył działanie" + +#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82 +msgid "Message" +msgstr "Komunikat" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Pozostały czas." + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Ustawienia" + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Akcje" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Akcja" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Edytuj..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Sprawdź konfigurację systemu" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Menu Extra" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Modyfikuj..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Zaawansowane" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Po zalogowaniu" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Zablokuj ekran" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Przed wylogowaniem" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Zamknij tackę CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Polecenie:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Powiązane ustawienia KDE..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Ogólne" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Powszechne problemy" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Wyłącz komputer\" nie działa" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Wyskakujące komunikaty są bardzo irytujące" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Dodaj/usuń skróty" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Pokazuj ikonę tacki systemowej" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Zawsze" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Ikona tacki systemowej będzie zawsze widoczna." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Jeśli aktywny" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" +"Ikona tacki systemowej będzie widoczna tylko, jeśli KShutDown jest aktywny." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Nigdy" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Ikona tacki systemowej będzie zawsze ukryta." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Pokaż tematy KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Strona domowa SuperKaramby" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Komunikaty" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Wyświetl komunikat ostrzegawczy przed akcją" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minuta(y)" + +#: ../kshutdown/msettingsdialog.cpp:303 +msgid "Recommended" +msgstr "Zalecany" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "Warning Message" +msgstr "Komunikat ostrzegawczy" + +#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351 +msgid "Enabled" +msgstr "Włączony" + +#: ../kshutdown/msettingsdialog.cpp:318 +msgid "A shell command to execute:" +msgstr "Polecenie powłoki do wykonania:" + +#: ../kshutdown/msettingsdialog.cpp:323 +msgid "Enter a command." +msgstr "Wprowadź polecenie." + +#: ../kshutdown/msettingsdialog.cpp:326 +msgid "A message text" +msgstr "Tekst komunikatu" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "The current main window title" +msgstr "Bieżący tytuł okna głównego" + +#: ../kshutdown/msettingsdialog.cpp:333 +msgid "Presets" +msgstr "Wybrane ustawienia" + +#: ../kshutdown/msettingsdialog.cpp:347 +msgid "Custom Message" +msgstr "Własny komunikat" + +#: ../kshutdown/msettingsdialog.cpp:350 +msgid "Progress Bar" +msgstr "Pasek postępu" + +#: ../kshutdown/msettingsdialog.cpp:354 +msgid "Re-enable All Message Boxes" +msgstr "Włącz ponownie wszystkie komunikaty" + +#: ../kshutdown/msettingsdialog.cpp:358 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Włącz wszystkie komunikaty, które zostały wyłączone przez opcję <b>Nie " +"wyświetlaj więcej tego komunikatu</b>." + +#: ../kshutdown/msettingsdialog.cpp:447 +msgid "Pause: %1" +msgstr "Pauza: %1" + +#: ../kshutdown/msettingsdialog.cpp:516 +msgid "This file is used to lock session at KDE startup" +msgstr "Ten plik jest używany do blokowania sesji przy starcie KDE" + +#: ../kshutdown/msettingsdialog.cpp:596 +msgid "Restore default settings for this page?" +msgstr "Przywrócić domyślne ustawienia dla tej karty?" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statystyka" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Ten widok wyświetla informacje o bieżących użytkownikach komputera, i ich " +"procesy.<br>Nagłówek pokazuje jak długo system jest uruchomiony." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Odśwież" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Więcej informacji" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Pokaż czas zalogowania, oraz czas JCPU i PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Przełącz \"FROM\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Przełącz pole \"FROM\" (zdalnego hosta)." + +#: ../kshutdown/progressbar.cpp:99 +msgid "Hide" +msgstr "Ukryj" + +#: ../kshutdown/systemconfig.cpp:71 +msgid "System Configuration" +msgstr "Konfiguracja systemu" + +#: ../kshutdown/systemconfig.cpp:88 +msgid "" +"Tip: Click here if you have problem with the \"/sbin/shutdown\" command." +msgstr "" +"Wskazówka: Kliknij tutaj, jeśli masz problem z poleceniem \"/sbin/shutdown\"." + +#: ../kshutdown/systemconfig.cpp:97 +msgid "No problems were found." +msgstr "Nie znaleziono problemów." + +#: ../kshutdown/systemconfig.cpp:128 +msgid "Program \"%1\" was not found!" +msgstr "Nie znaleziono programu \"%1\"!" + +#: ../kshutdown/systemconfig.cpp:135 +msgid "No permissions to execute \"%1\"." +msgstr "Brak uprawnień do wykonania \"%1\"." + +#: ../kshutdown/systemconfig.cpp:144 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Wygląda na to, że to nie jest pełna sesja KDE.\n" +"KShutDown został zaprojektowany do pracy z KDE.\n" +"Niemniej jednak, możesz skonfigurować Akcje w oknie ustawień KShutDown\n" +"(Ustawienia -> Konfiguracja: KShutDown... -> Akcje)." + +#: ../kshutdown/systemconfig.cpp:161 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Wskazówka: Możesz skonfigurować Akcje, aby działały z GDM.\n" +"(Ustawienia -> Konfiguracja: KShutDown... -> Akcje)" + +#: ../kshutdown/systemconfig.cpp:162 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"Menedżer logowania KDE nie jest uruchomiony,\n" +"lub funkcja zamykania/restartu jest wyłączona.\n" +"\n" +"Kliknij tutaj, aby skonfigurować KDM." + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Konrad Twardowski" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "kdtonline@poczta.onet.pl" + +#: ../kshutdownlockout/lockout.cpp:120 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" +"Kliknij, aby wyświetlić główne okno KShutDown<br>Kliknij i przytrzymaj, aby " +"wyświetlić menu" + +#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155 +#: ../kshutdownlockout/lockout.cpp:200 +msgid "Could not run KShutDown!" +msgstr "Nie można uruchomić KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:165 +msgid "Lock Screen" +msgstr "Zablokuj ekran" + +#: ../kshutdownlockout/lockout.cpp:191 +msgid "&Configure KShutDown..." +msgstr "&Konfiguracja: KShutDown..." diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..19ee13b --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,846 @@ +# translation of pt_BR.po to Português do Brasil +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Paulo Zambon <pzambon@astornet.com.br>, 2005. +# Phantom X <megaphantomx@bol.com.br>, 2006. +msgid "" +msgstr "" +"Project-Id-Version: pt_BR\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2006-07-04 23:30-0300\n" +"Last-Translator: Phantom X <megaphantomx@bol.com.br>\n" +"Language-Team: Português do Brasil <pt@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Projeto-Versăo: 0.6\n" +"Data de criaçăo do POT: 09-06-2005 14:00+0100\n" +"Data de revisăo do PO: 2005-06-09 \n" +"X-Generator: KBabel 1.11.2\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Estatísticas" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Esta tela apresenta uma informaçăo sobre o usuário ativo na máquina e os " +"processos dele.<br>O cabeçalho mostra quanto tempo o sistema está ativo." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Atualizar" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "Opções" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Mais informações" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Exibir tempo de login, JCPU e PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Mudar \"FROM\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Mudar o campo \"FROM\" (nome de host remoto)." + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "Erro" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Comando: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Mais ações..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Selecione um comando..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Use o menu contexto para adicionar/editar/remover atalhes." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Use <b>Menu Contexto</b> para criar um novo link para aplicaçăo" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Use <b>Criar Nova|Pasta...</b> para criar um novo submenu" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Use <b>Propriedades</b> para trocar o ícone, nome ou comentário" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Extras" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Erro interno!\n" +"Item do menu selecionado está com problemas." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "1 hora aguardando" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 minutos aguardando" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 minuto aguardando" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 segundos aguardando" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 segundos antes da ação" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 segundos antes da ação" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 segundos antes da ação" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "Năo foi possível executar \"%1\"!" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Teste" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Local para criar o atalho:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Desktop" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "Menu K" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Tipo do atalho:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Diálogo Padrăo de Logout" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "Um utilitário de desligamento para o KDE" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Năofoi possível criar arquivo <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Năo foi possível remover arquivo <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Remover Atalho" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "Adicionar Atalho" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Logout" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Um utilitário de desligamento para o KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Desligar o Computador" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Reiniciar o Computador" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Fechar Sessăo" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Finalizar Sessăo Atual" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Confirmar ação de linha de comando" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Mostrar diálogo padrăo do logout" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Cancelar um açăo ativa" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Năo mostrar janela para iniciar" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Habilitar modo de teste" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Desabilitar modo de teste" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Tempo; Exemplos: 01:30 - tempo absoluto (HH:MM); 10 - número de minutos para " +"aguardar para agora" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Tempo inválido: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Preferências" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Desabilitado pelo Administrador." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Açőes" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Ação" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Método" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Comando antes da açăo" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Editar..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Verificar a configuração do sistema" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Menu Extras" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Modificar..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Avançado" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Após o Login" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Bloquear tela" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Antes do Logout" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Fechar a bandeja do CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Comando:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Preferências do &KDE" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Geral" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Problemas comuns" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Desligar o Computador\" não funciona" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Mensagens popup são muito irritantes" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Adicionar/Remover Atalhos" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Exibir Ícone na Área de Notificação" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Sempre" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Ícone na Área de Notificação será sempre visível." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Se Ativo" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "Ícone na Área de Notificação será visível.apenas se KShutDown estiver ativo" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Nunca" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Ícone na Área de Notificação será sempre escondido" + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Mostrar Temas para o KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Página do SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Mensagens" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Exibir uma mensagem antes da açăo" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minutos(s)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Mensagem de Aviso" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Habilitado" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Um comando shell para executar:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Entre com um comando." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "Uma mensagem de texto" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "O título atual da janela" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Mensagem Modificada" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Reabilitar todas a caixas de mensagem" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Habilitar todas as mensagens que tenham reiniciado com o <b>Năo mostrar " +"estamensagem novamente</b> no futuro." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Sem pausa" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "Pausa: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "Este arquivo é usado para bloquear a sessão no início do KDE" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Restaurar preferências padrăo para esta página?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Entre com hora e minuto." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Entre com hora e data." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Clique no botão <b>Selecione um comando...</b> primeiro." + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Data/Hora selecionada: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Data/Hora atual: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Data/Hora selecionada estão mais cedo do que a data/hora atual!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Açăo cancelada!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Modo de teste habilitado" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Modo de teste desabilitado" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Năo Atrasar" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&Arquivo" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "Aç&őes" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "&Configurar..." + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "&Preferências" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "A&juda" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "Cancelar: %1" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "Verificar a Configuração do &Sistema" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "&Iniciar [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "&Estatísticas" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "Selecione um ação para realizar" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Selecione um ação para realizar em um tempo determinado." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "&Selecione um tempo:" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Tempo a partir de agora (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Para Data/Hora" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "Quando a açăo selecionada terminar" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Selecione o tipo de atraso" + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Tempo selecionado." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "MODO DE TESTE" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Tempo restante: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Desconhecido" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Tempo selecionado: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "Açăo selecionada: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Nota: </b> O modo de teste está habilitado" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "O KShutdown está minimizado" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "KShutDown saiu" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Por favor, aguarde..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Năo pôde sair corretamente.\n" +"O gerenciador de sessăo năo pôde ser contactado." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Nada" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Desligar o Computador" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Reiniciar o Computador" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Fechar Sessăo" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Finalizar Sessăo Atual" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Açăo falhou!(%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "Kdesktop: chamada do DCOP falhou!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Configuração do Sistema" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Mensagem" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Dica: Se você tiver problemas com o comando \"/sbin/shutdown\",\n" +"tente modificar o arquivo \"/etc/shutdown.allow\",\n" +"então execute o comando \"/sbin/shutdown\" com o parâmentro \"-a\".\n" +"\n" +"Clique aqui para mais informação." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Nenhum problema foi encontrado." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "O programa \"%1\" não foi encontrado!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "Sem permissões para executar \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Parece que esta não é um sessão completa do KDE.\n" +"KShutDown foi criado para funcionar com o KDE.\n" +"Entretanto, você pode modificar Ações no diálogo de configurações do KShutDown\n" +"(Preferências -> Configurar KShutDown... -> Ações)." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Dica: Você pode modificar Ações para funcionar com o GDM.\n" +"(Preferências -> Configurar KShutDown... -> Ações)." + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"O KDE Display Manager não está executando,\n" +"ou oa função de desligar/reiniciar está desabilitada.\n" +"\n" +"Clique aqui para configurar o KDM." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Selecione um método:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Digite um comando:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Executar comando" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "Pausar depois executar comando:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "segundo(s)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Na maioria dos casos você precisa de privilégios para desligar o sistema (ex.: executar " +"/sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Se você estiver usando o<b>KDE</b> e o <b>KDM</b> (KDE Display Manager), entăo " +"coloque todos os métodos para <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Se vocę estiver usando <b>KDE</b> e um display manager diferente que o " +"<b>KDM</b>, entăo coloque <i>Desligar Computador</i> e <i>Reiniciar o " +"Computador</i> métodos para <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Manuais:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Comando de usuário" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Tempo restante." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Atualizar a lista de processos" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Lista de processos executando" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Matar" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Matar o processo selecionado" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Esperando por \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "O processo selecionado não exixte!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Năo foi possível executar o comando<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Você tem certeza que quer MATAR<br><b>%1</b>?<br><br>Todos os dados não " +"salvos serão perdidos!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Processo não encontrado<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Sem permissões para matar <br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "MORTO: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Confirmar..." + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "&Cancelar" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Você tem certeza?<br><br>Ação selecionada: <b>%1</b><br>STempo selecionado: <b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "" +"Paulo Zambon\n" +"Phantom X" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "" +"pzambon@astornet.com.br\n" +"megaphantomx@bol.com.br" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "Clique para a janela principal do KShutDown<br>Clique e segure para o menu" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "Năo foi possível executar o KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "Bloquear Tela" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "&Configurar KShutDown..." + diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..5911e49 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,1299 @@ +# translation of ru.po to +# translation of ru1.po to +# translation of ru.po to +# translation of kshutdown.po to +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# spider <spider@malta.altlinux.ru>, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: ru\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2004-09-02 21:48+0400\n" +"Last-Translator: spider <spider@malta.altlinux.ru>\n" +"Language-Team: <ru@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Статистика" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Дисплей просмотра показывает информацию о пользователях находящихся на " +"компьютере, и их процессах.<br>Заголовок показывает как долго работает " +"компьютер." + +#: ../kshutdown/mstatstab.cpp:79 +#, fuzzy +msgid "Refresh" +msgstr "Обновить" + +#: ../kshutdown/mstatstab.cpp:83 +#, fuzzy +msgid "Options" +msgstr "Действия" + +#: ../kshutdown/mstatstab.cpp:85 +#, fuzzy +msgid "More information" +msgstr " Настройка" + +#: ../kshutdown/mstatstab.cpp:88 +#, fuzzy +msgid "Show login time, JCPU and PCPU times." +msgstr "Показывать время захода, время JCPU и PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Команда: %1" + +#: ../kshutdown/extras.cpp:57 +#, fuzzy +msgid "More actions..." +msgstr " Настройка" + +#: ../kshutdown/extras.cpp:227 +#, fuzzy +msgid "Select a command..." +msgstr "Задержка в секундах." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "" +"Используйте контекстное меню для добавления/редактирования и удаления ссылок." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Используйте <b>Контекстное меню</b> для создания ссылок на приложения" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Используйте <b>Создать Новый|Каталог</b> для создания субменю" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Используйте<b>Настройки</b> для смены иконки, имени, или комментария" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Дополнительно" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Внутренняя ошибка!\n" +"Выбранное меню потеряно." + +#: ../kshutdown/miscutils.cpp:104 +#, fuzzy +msgid "1 hour warning" +msgstr "ожидание в 1 минуту" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "ожидание 5 минут" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "ожидание в 1 минуту" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "ожидание 10 секунд" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "" + +#: ../kshutdown/miscutils.cpp:124 +#, fuzzy +msgid "1 second before action" +msgstr "ожидание 10 секунд" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "Не могу запустить \"%1\"!" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Тест" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Десктоп" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "" + +#: ../kshutdown/links.cpp:62 +#, fuzzy +msgid "Type of the link:" +msgstr "Выберите тип задержки:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Стандартный диалог выхода" + +#: ../kshutdown/links.cpp:96 +#, fuzzy +msgid "System Shut Down Utility" +msgstr "Утилита выключения компьютера для KDE" + +#: ../kshutdown/links.cpp:107 +#, fuzzy +msgid "Could not create file <b>%1</b>!" +msgstr "Не могу удалить файл <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Не могу удалить файл <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +#, fuzzy +msgid "Remove Link" +msgstr "Удалить Ссылку" + +#: ../kshutdown/links.cpp:187 +#, fuzzy +msgid "Add Link" +msgstr "Удалить Ссылку" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Завершить сеанс" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Утилита выключения компьютера для KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Выключить компьютер" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Перезагрузить компьютер" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Запереть экран" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Завершить сеанс" + +#: ../kshutdown/main.cpp:60 +#, fuzzy +msgid "Confirm command line action" +msgstr "Отменить активное задание" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Показать стандартный диалог выхода" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Отменить активное задание" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Не показывать окно при зауске" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Включить тестовый режим" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Отключить тестовый режим" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Время; Примеры: 01:30 - абсолютное время (HH:MM); 10 - количество минут." + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "неверное время: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Настройки" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Запрещено Администратором." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +#, fuzzy +msgid "Actions" +msgstr "Действия" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Действие" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +#, fuzzy +msgid "Method" +msgstr "Метод:" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:162 +#, fuzzy +msgid "Edit..." +msgstr "Правка" + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:168 +#, fuzzy +msgid "Extras Menu" +msgstr "Меню дополнений" + +#: ../kshutdown/msettingsdialog.cpp:169 +#, fuzzy +msgid "Modify..." +msgstr "Изменить..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:190 +#, fuzzy +msgid "After Login" +msgstr "После регистрации" + +#: ../kshutdown/msettingsdialog.cpp:191 +#, fuzzy +msgid "Lock screen" +msgstr "Запереть экран" + +#: ../kshutdown/msettingsdialog.cpp:195 +#, fuzzy +msgid "Before Logout" +msgstr "Завершить сеанс" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Команда:" + +#: ../kshutdown/msettingsdialog.cpp:208 +#, fuzzy +msgid "Related KDE Settings..." +msgstr "Настройки KDE" + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Общие" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:226 +#, fuzzy +msgid "\"Turn Off Computer\" does not work" +msgstr "Выключить компьютер" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:234 +#, fuzzy +msgid "Add/Remove Links" +msgstr "Удалить Ссылку" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:274 +#, fuzzy +msgid "Show KShutDown Themes" +msgstr "KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:285 +#, fuzzy +msgid "Messages" +msgstr "Сообщение" + +#: ../kshutdown/msettingsdialog.cpp:295 +#, fuzzy +msgid "Display a warning message before action" +msgstr "Показывать предупреждение за %1 минут." + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "минут" + +#: ../kshutdown/msettingsdialog.cpp:306 +#, fuzzy +msgid "Warning Message" +msgstr "Предупреждающие сообщения (рекомендуется)" + +#: ../kshutdown/msettingsdialog.cpp:311 +#, fuzzy +msgid "Enabled" +msgstr "Включено" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:317 +#, fuzzy +msgid "Enter a command." +msgstr "Задержка в секундах." + +#: ../kshutdown/msettingsdialog.cpp:320 +#, fuzzy +msgid "A message text" +msgstr "Скрывать сообщения после:" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +#, fuzzy +msgid "Custom Message" +msgstr "Сообщение" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Восстановить первоначальные значения для этой страницы ?" + +#: ../kshutdown/mmainwindow.cpp:132 +#, fuzzy +msgid "Enter hour and minute." +msgstr " Час и минута:" + +#: ../kshutdown/mmainwindow.cpp:142 +#, fuzzy +msgid "Enter date and time." +msgstr "Время и дата:" + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Выбранная дата/время: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Текущяя дата/время: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Выбранная дата/время более ранняя чем текущее время." + +#: ../kshutdown/mmainwindow.cpp:275 +#, fuzzy +msgid "Action cancelled!" +msgstr "Действие неудачно! (%1)" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:380 +#, fuzzy +msgid "Test mode disabled" +msgstr "Планировщик отключен!" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +#, fuzzy +msgid "No Delay" +msgstr "Без задержки" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:449 +#, fuzzy +msgid "&Actions" +msgstr "Действия" + +#: ../kshutdown/mmainwindow.cpp:455 +#, fuzzy +msgid "Configure Global Shortcuts..." +msgstr " Настройка" + +#: ../kshutdown/mmainwindow.cpp:460 +#, fuzzy +msgid "&Settings" +msgstr "Настройки" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +#, fuzzy +msgid "C&ancel" +msgstr "Команда: %1" + +#: ../kshutdown/mmainwindow.cpp:511 +#, fuzzy +msgid "Check &System Configuration" +msgstr "Подтверждения" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:528 +#, fuzzy +msgid "&Statistics" +msgstr "Статистика" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:589 +#, fuzzy +msgid "S&elect a time" +msgstr "Выбранная дата/время: %1" + +#: ../kshutdown/mmainwindow.cpp:596 +#, fuzzy +msgid "Time From Now (HH:MM)" +msgstr "Время с текущего момента (HH:MM):" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "В Дату/Время" + +#: ../kshutdown/mmainwindow.cpp:598 +#, fuzzy +msgid "When selected application exit" +msgstr "Когда вы хотите выполнить это действие ?" + +#: ../kshutdown/mmainwindow.cpp:602 +#, fuzzy +msgid "Select the type of delay." +msgstr "Выберите тип задержки" + +#: ../kshutdown/mmainwindow.cpp:617 +#, fuzzy +msgid "Selected time." +msgstr "Выбранная дата/время: %1" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "ТЕСТОВЫЙ РЕЖИМ" + +#: ../kshutdown/mmainwindow.cpp:651 +#, fuzzy +msgid "Remaining time: <b>%1</b>" +msgstr "неверное время: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Неизвестный" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Выбранное время :<b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +#, fuzzy +msgid "Selected action: <b>%1</b>" +msgstr "Выбранное время :<b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +#, fuzzy +msgid "<b>Note: </b> The test mode is enabled" +msgstr "Планировщик отключен!" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +#, fuzzy +msgid "KShutDown has quit" +msgstr "KShutDown" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "" + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "Невозможно корректно завершить сеанс." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Ничего" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Выключить компьютер" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Перезагрузить компьютер" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Запереть экран" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Завершить сеанс" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Действие неудачно! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:65 +#, fuzzy +msgid "System Configuration" +msgstr "Подтверждения" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Сообщение" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:82 +#, fuzzy +msgid "Enter a custom command:" +msgstr "Задержка в секундах." + +#: ../kshutdown/mactioneditdialog.cpp:89 +#, fuzzy +msgid "Run command" +msgstr "Выполнить команду" + +#: ../kshutdown/mactioneditdialog.cpp:92 +#, fuzzy +msgid "Pause after run command:" +msgstr "Пауза после выполнения команды:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "секунд" + +#: ../kshutdown/mactioneditdialog.cpp:111 +#, fuzzy +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Может случиться, что вам потребуются некоторые привилегии для выключения " +"компьютера (для запуска /sbin/reboot или /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Если вы используете <b>KDE</b> и <b>KDM</b> (KDE Display Manager), то " +"используйте все методы для <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Документация:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Команды пользователя" + +#: ../kshutdown/mmessagedialog.cpp:79 +#, fuzzy +msgid "Remaining time." +msgstr "неверное время: <b>%1</b>" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "" + +#: ../kshutdown/appobserver.cpp:68 +#, fuzzy +msgid "Kill the selected process" +msgstr "Когда вы хотите выполнить это действие ?" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "" + +#: ../kshutdown/appobserver.cpp:111 +#, fuzzy +msgid "The selected process does not exist!" +msgstr "Когда вы хотите выполнить это действие ?" + +#: ../kshutdown/appobserver.cpp:164 +#, fuzzy +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Не могу удалить файл <b>%1</b>!" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "" + +#: ../kshutdown/confirmation.cpp:65 +#, fuzzy +msgid "Confirm" +msgstr "Подтверждения" + +#: ../kshutdown/confirmation.cpp:74 +#, fuzzy +msgid "&Cancel" +msgstr "Команда: %1" + +#: ../kshutdown/confirmation.cpp:79 +msgid "" +"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +#, fuzzy +msgid "Could not run KShutDown!" +msgstr "Не могу запустить \"%1\"!" + +#: ../kshutdownlockout/lockout.cpp:167 +#, fuzzy +msgid "Lock Screen" +msgstr "Запереть экран" + +#: ../kshutdownlockout/lockout.cpp:199 +#, fuzzy +msgid "&Configure KShutDown..." +msgstr " Настройка" + +#~ msgid "Are you sure?" +#~ msgstr "Вы уверены ?" + +#, fuzzy +#~ msgid "" +#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu" +#~ msgstr "<b>Средняя кнопка</b>показывает меню действий" + +#~ msgid "No delay" +#~ msgstr "Без задержки" + +#, fuzzy +#~ msgid "Create Link" +#~ msgstr "Создать Ссылку" + +#, fuzzy +#~ msgid "&Cancel: %1" +#~ msgstr "Команда: %1" + +#, fuzzy +#~ msgid "KShutDown Actions (no delay!)" +#~ msgstr "Сейчас (без задержки)" + +#, fuzzy +#~ msgid "Actions (no delay!)" +#~ msgstr "Сейчас (без задержки)" + +#~ msgid "&Turn Off Computer" +#~ msgstr "Выключить компьютер" + +#~ msgid "&Restart Computer" +#~ msgstr "Перезагрузить компьютер" + +#~ msgid "&Lock Session" +#~ msgstr "Запереть зкран" + +#~ msgid "&End Current Session" +#~ msgstr "Завершить сеанс" + +#~ msgid "&Immediate Action" +#~ msgstr "Немедленнное действие" + +#, fuzzy +#~ msgid "Run KShutDown" +#~ msgstr "KShutDown" + +#, fuzzy +#~ msgid "&Run KShutDown" +#~ msgstr "KShutDown" + +#, fuzzy +#~ msgid "MSettingsDialog" +#~ msgstr "Настройки" + +#, fuzzy +#~ msgid "MMessageDialog" +#~ msgstr "Сообщение" + +#, fuzzy +#~ msgid "MActionEditDialog" +#~ msgstr "Настройки" + +#, fuzzy +#~ msgid "SystemConfig" +#~ msgstr "Подтверждения" + +#~ msgid "Links" +#~ msgstr "Ссылки" + +#, fuzzy +#~ msgid "Lockout" +#~ msgstr "Завершить сеанс" + +#~ msgid "Maintainer" +#~ msgstr "Мантейнер" + +#~ msgid "Ideas" +#~ msgstr "Идеи" + +#~ msgid "Bug reports" +#~ msgstr "Отчеты об ошибках" + +#, fuzzy +#~ msgid "Cancel an active action." +#~ msgstr "Отменить активное задание" + +#, fuzzy +#~ msgid "Hide message after:" +#~ msgstr "Скрывать сообщения после:" + +#, fuzzy +#~ msgid "Enter time. (HH:MM)" +#~ msgstr "Время (HH:MM):" + +#, fuzzy +#~ msgid "Enter date." +#~ msgstr "Дата" + +#, fuzzy +#~ msgid "&Time (HH:MM):" +#~ msgstr "Время (HH:MM):" + +#, fuzzy +#~ msgid "Stop the active action" +#~ msgstr "Выбранное время :<b>%1</b>" + +#, fuzzy +#~ msgid "Start the selected action" +#~ msgstr "Выбранное время :<b>%1</b>" + +#, fuzzy +#~ msgid "Time From Now" +#~ msgstr "Время с текущего момента" + +#~ msgid "HH:MM" +#~ msgstr "HH:MM" + +#~ msgid "&Date:" +#~ msgstr "Дата:" + +#~ msgid "This page has been disabled by the Administator." +#~ msgstr "Эта страница была закрыта Администратором." + +#, fuzzy +#~ msgid "&Action" +#~ msgstr "Действие" + +#~ msgid "Click to close" +#~ msgstr "Кликни для закрытия" + +#, fuzzy +#~ msgid "Configure &Notifications..." +#~ msgstr " Настройка" + +#, fuzzy +#~ msgid "Scheduler" +#~ msgstr "Планировщик" + +#, fuzzy +#~ msgid "Registered tasks:" +#~ msgstr "Текущие задания:" + +#~ msgid "Name" +#~ msgstr "Имя" + +#~ msgid "Description" +#~ msgstr "Описание" + +#, fuzzy +#~ msgid "Remove All" +#~ msgstr "Удалить все" + +#, fuzzy +#~ msgid "MSchedulerTab" +#~ msgstr "Планировщик" + +#, fuzzy +#~ msgid "AppScheduler" +#~ msgstr "Планировщик" + +#~ msgid "The task is not registered!" +#~ msgstr "Задача не задана!" + +#~ msgid "Invalid action: %1" +#~ msgstr "Неправильное действие:%1" + +#~ msgid "The scheduler is disabled!" +#~ msgstr "Планировщик отключен!" + +#, fuzzy +#~ msgid "S&cheduler" +#~ msgstr "Планировщик" + +#, fuzzy +#~ msgid "" +#~ "Actions\n" +#~ "and Extras Menu" +#~ msgstr "Меню действий и дополнений" + +#, fuzzy +#~ msgid "" +#~ "Confirmations\n" +#~ "and Messages" +#~ msgstr "Сообщения и подтверждения" + +#, fuzzy +#~ msgid "Confirm action (recommended)" +#~ msgstr "Подтверждения (рекомендуется)" + +#, fuzzy +#~ msgid "&Scheduler" +#~ msgstr "Планировщик" + +#, fuzzy +#~ msgid "&Download KShutDown" +#~ msgstr "KShutDown" + +#~ msgid "" +#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. " +#~ "<b>GNOME</b>), then change all methods..." +#~ msgstr "" +#~ "Если вы запускаете <b>KShutDown</b> не из под KDE (Gnome), то поменяйте " +#~ "методы..." + +#, fuzzy +#~ msgid "Time" +#~ msgstr "Время" + +#~ msgid "Disabled" +#~ msgstr "Выключено" + +#, fuzzy +#~ msgid "Extras..." +#~ msgstr "Дополнительно..." + +#~ msgid "More commands...<br>Click <b>Modify...</b> to add/edit/remove items." +#~ msgstr "" +#~ "Больше команд...<br>Кликните <b>Изменить...</b> для добавления/" +#~ "редактирования/удаления пунктов." + +#, fuzzy +#~ msgid "Configure..." +#~ msgstr " Настройка" + +#~ msgid "Re&move" +#~ msgstr "Удалить" + +#~ msgid "Locatio&n:" +#~ msgstr "Местонахождение:" + +#~ msgid "&Type:" +#~ msgstr "Тип" + +#~ msgid "See FAQ for more details" +#~ msgstr "Вопросы ? - cмотрите FAQ " + +#~ msgid "Automation" +#~ msgstr "Автоматизация" + +#, fuzzy +#~ msgid "Co&mmand:" +#~ msgstr "Команда:" + +#, fuzzy +#~ msgid "Remember time &settings" +#~ msgstr "Запомнить настройки времени" + +#, fuzzy +#~ msgid "Enable &Scheduler" +#~ msgstr "Планировщик" + +#, fuzzy +#~ msgid "Screen Sa&ver..." +#~ msgstr "Хранитель экрана..." + +#~ msgid "Session &Manager..." +#~ msgstr "Менеджер сессий..." + +#, fuzzy +#~ msgid "&Links" +#~ msgstr "Ссылки" + +#, fuzzy +#~ msgid "Themes" +#~ msgstr "Тест" + +#~ msgid "&Popup Messages (Passive)" +#~ msgstr "Всплывающие сообщения (Пассивные)" + +#, fuzzy +#~ msgid "Notifications" +#~ msgstr "Подтверждения" + +#~ msgid "Wizard" +#~ msgstr "Помощник" + +#~ msgid "&End current session" +#~ msgstr "Завершить сеанс" + +#~ msgid "&Turn off computer" +#~ msgstr "Выключить компьютер" + +#~ msgid "&Restart computer" +#~ msgstr "Перезагрузить компьютер" + +#, fuzzy +#~ msgid "What do you want to do?" +#~ msgstr "Что вы хотите сделать ?" + +#~ msgid "&Now (no delay)" +#~ msgstr "Сейчас (без задержки)" + +#~ msgid "At &date/time" +#~ msgstr "Дата/Время " + +#~ msgid "&Time from now" +#~ msgstr "Время начиная от текущего момента" + +#, fuzzy +#~ msgid "MWizard" +#~ msgstr "Помощник" + +#~ msgid "St&atistics" +#~ msgstr "Статистика" + +#~ msgid "Enter delay:" +#~ msgstr "Задержка:" + +#~ msgid "Set delay to 0 seconds" +#~ msgstr "Установить задержку в 0 секунд" + +#~ msgid "Set delay to 00:00" +#~ msgstr "Задержка к 00:00" + +#~ msgid "Set date/time to the current date/time" +#~ msgstr "Установить дату/время к текущей дате/время" + +#~ msgid "Quit the application" +#~ msgstr "Выйти из приложения" + +#~ msgid "Enter delay in seconds." +#~ msgstr "Задержка в секундах." + +#~ msgid "Enter delay in minutes." +#~ msgstr "Задержка в минутах." + +#~ msgid "Enter delay in hours." +#~ msgstr "Задержка в часах." + +#~ msgid "Lock the screen using a screen saver" +#~ msgstr "Запереть зкран" + +#~ msgid "&Wizard..." +#~ msgstr "Помощник..." + +#~ msgid "Run the Wizard" +#~ msgstr "Запуск помощника" + +#~ msgid "Now!" +#~ msgstr "Сейчас !" + +#~ msgid "Time from &now:" +#~ msgstr "Время с текущего момента:" + +#~ msgid "Second(s)" +#~ msgstr "Секунд" + +#~ msgid "Minute(s)" +#~ msgstr "Минут" + +#~ msgid "Hour(s)" +#~ msgstr "Час(ов)" + +#~ msgid "Co&lors" +#~ msgstr "Цвета" + +#~ msgid "Text color:" +#~ msgstr "Цвет текста:" + +#~ msgid "Background color:" +#~ msgstr "Цвет фона:" + +#~ msgid "Header color:" +#~ msgstr "Цвет заголовков:" + +#~ msgid "Warning color:" +#~ msgstr "Цвет предупреждений:" + +#~ msgid "Preview" +#~ msgstr "Просмотр" + +#~ msgid "Info" +#~ msgstr "Информация" + +#~ msgid "Tip" +#~ msgstr "Подсказка" + +#~ msgid "Comm&and:" +#~ msgstr "Команда:" + +#~ msgid "Method / Command" +#~ msgstr "Метод/Команда" + +#~ msgid "&Before System Shut Down" +#~ msgstr "До выключения компьютера" + +#~ msgid "Preview:" +#~ msgstr "Просмотр:" + +#~ msgid "Step %1 of %2" +#~ msgstr "Шаг %1 из %2" + +#~ msgid "Create/Remove Link" +#~ msgstr "Создать/Удалить Ссылку" + +#~ msgid "Sound" +#~ msgstr "Звук" + +#~ msgid "So&und directory:" +#~ msgstr "Кталог со звуками:" + +#~ msgid "" +#~ "Select a sound directory.<br><br>Press <b>Defaults</b> button to restore " +#~ "the default sound directory." +#~ msgstr "" +#~ "Выберите каталог со звуковыми файлами.<br><br>Нажмите кнопку<b>По " +#~ "умолчанию</b> для восстановления первоначальных настроек." + +#~ msgid "File <b>%1</b> not found." +#~ msgstr "Файл <b>%1</b> не найден." + +#~ msgid "Re&set Time" +#~ msgstr "Сбросить время" diff --git a/po/sk.po b/po/sk.po new file mode 100644 index 0000000..7d1323f --- /dev/null +++ b/po/sk.po @@ -0,0 +1,837 @@ +# translation of sk.po to +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Jozef Riha <zefo@seznam.cz>, 2004, 2005, 2008. +# Zdenko Podobný <zdpo@mailbox.sk>, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: sk\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2008-05-17 00:41+0200\n" +"Last-Translator: Jozef Riha <jose1711@gmail.com>\n" +"Language-Team: <sk@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Štatistika" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Tento pohľad zobrazí informácie o aktuálnych používateľoch v systéme a o ich " +"procesoch.<br> Hlavička zobrazí ako dlho je systém spustený." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Obnoviť" + +#: ../kshutdown/mstatstab.cpp:83 +msgid "Options" +msgstr "Voľby" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Viac informácií" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Zobraziť čas prihlásenia, časy JPCU a PCPU." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Prepnúť \"FROM\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Prepnúť políčko \"FROM\" (názov vzdialeného počítača)." + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "Chyba" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Príkaz: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Viac akcií..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Vyberte príkaz..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Použite kontextovú ponuku na pridanie/úpravu/odstránenie odkazov." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Použite <b>Kontextovú ponuku</b> na vytvorenie nového odkazu k aplikácií" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Použite <b>Vytvoriť Nový|Priečinok...</b> na vytvorenie novej ponuky" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Použite <b>Vlastnosti</b> na zmenu ikony, názvu, alebo komentára" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Extra" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Interná chyba!\n" +"Zvolená položka v ponuke nie je funkčná." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "Upozornenie 1 minútu vopred" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "Upozornenie 5 minút vopred" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "Upozornenie 1 minútu vopred" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "Upozornenie 10 vopred" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 sekundy pred akciou" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 sekundy pred akciou" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 sekunda pred akciou" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "\"%1\" nemohol byť spustený!" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Test" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Umiestnenie kde vytvoriť odkaz:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Plocha" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K Menu" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Typ odkazu:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Zobraziť štandardný dialóg odhlásenia" + +#: ../kshutdown/links.cpp:96 +msgid "System Shut Down Utility" +msgstr "Utilita pre vypínanie systému" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Nemohol byť vytvorený súbor <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Nemohol byť odstránený súbor <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Odstrániť odkaz" + +#: ../kshutdown/links.cpp:187 +msgid "Add Link" +msgstr "Pridať odkaz" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Odhlásiť sa" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Vypínacia utilita pre KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Vypnúť počítač" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Reštartovať počítač" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Uzamknúť obrazovku" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Ukončiť aktuálne sedenie" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Potvrdiť akciu na príkazovom riadku" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Zobraziť štandardný dialóg odhlásenia" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Zrušiť bežiacu akciu" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Nezobrazovať okno pri spustení" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Zapnúť testovací režim" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Vypnúť testovací režim" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "Čas; Príklad: 01:30 - absolútny čas (HH:MM); 10 - počet minút čakania" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Neplatný čas: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Nastavenia" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Zablokované správcom." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Akcie" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Akcia" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Metóda" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Príkaz pred akciou" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Upraviť..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Skontrolovať nastavenie systému" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Menu Extra" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Zmeniť..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Pokročilé" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Po prihlásení" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Uzamknúť obrazovku" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Pred odhlásením" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Zavrieť dvierka CD-ROM" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Príkaz:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Zodpovedajúce nastavenia KDE..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Všeobecné" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Všeobecné problémy" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Vypnutie počítača\" nefunguje" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Vyskakovacie správy veľmi otravujú" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Pridať/Odstrániť odkazy" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Zobrazovať ikonu v oznamovacej oblasti" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Vždy" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Ikona v oznamovacej oblasti bude vždy zobrazená." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Ak aktívny" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "Ikona v oznamovacej oblasti bude zobrazená, ak je KShutDown aktívny." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Nikdy" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Ikona v oznamovacej oblasti bude vždy skrytá." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "Zobraziť témy KShutDown" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "Home Page programu SuperKaramba" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Správy" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Zobraziť správu s varovaním pred akciou" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minúta(y)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Varovná správa" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Povolený" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Príkaz shellu, ktorý sa má spustiť:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Zadajte príkaz." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "Text správy" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "Súčasný nadpis hlavného okna" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "Predvoľby" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Vlastná správa" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Opätovne povoliť všetky správy" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Zapnúť všetky správy, ktoré boli vypnuté pomocou funkcie <b>Nezobrazovať " +"túto správu v budúcnosti</b>." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (východzie)" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Bez čakania" + +#: ../kshutdown/msettingsdialog.cpp:433 +msgid "Pause: %1" +msgstr "Pauza: %1" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "Tento súbor je použitý na uzamknutie sedenia pri štarte KDE" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Obnoviť východzie nastavenia pre túto záložku?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Zadajte hodinu a minútu." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Zadajte dátum a čas." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Najprv kliknite na tlačidlo <b>Vyberte príkaz...</b>." + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Zvolený dátum/čas: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Aktuálny dátum/čas: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Zvolený dátum/čas už vypršal!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Akcia zrušená!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Spustený testovací režim" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Testovací režim je vypnutý" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Bez čakania" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "&Súbor" + +#: ../kshutdown/mmainwindow.cpp:449 +msgid "&Actions" +msgstr "&Akcie" + +#: ../kshutdown/mmainwindow.cpp:455 +msgid "Configure Global Shortcuts..." +msgstr "Nastaviť globálne skratky..." + +#: ../kshutdown/mmainwindow.cpp:460 +msgid "&Settings" +msgstr "&Nastavenia" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "&Pomocník" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +msgid "C&ancel" +msgstr "&Zrušiť" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "S&kontrolovať nastavenie systému" + +#: ../kshutdown/mmainwindow.cpp:520 +msgid "&Start [%1]" +msgstr "Š&tart [%1]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "Št&atistika" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "Vyberte &akciu, ktorá sa má uskutočniť" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Vyberte akciu, ktorá sa má v daný čas uskutočniť" + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "&Vyberte čas" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Od teraz za (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Dátum/čas" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "Keď vybraná aplikácia skončí" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Vyberte druh oneskorenia." + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Zvolený čas." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "TESTOVACÍ REŽIM" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Zostávajúci čas <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Neznáme" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Vybraný čas: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "Zvolená akcia: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Poznámka: </b>Je aktivovaný testovací režim" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "KShutDown bol minimalizovaný" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +msgid "KShutDown has quit" +msgstr "KShutDown skončil" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Prosím čakajte..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Nebolo možné sa korektne odhlásiť.\n" +"Nepodarilo sa kontaktovať správcu sedenia." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Nič" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Vypnúť počítač" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Reštartovať počítač" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Uzamknúť obrazovku" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Ukončiť aktuálne sedenie" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Akcia zlyhala! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP volanie zlyhalo!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Nastavenie systému" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Správa" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Tip: Ak máte problém s príkazom \"/sbin/shutdown\",\n" +"skúste zmeniť súbor \"/etc/shutdown.allow\",\n" +"potom spustite príkaz \"/sbin/shutdown\" s dodatočným parametrom \"-a\".\n" +"Kliknite sem pre viac informácií." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Neboli nájdené žiadne problémy." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "Program \"%1\" nebol nájdený!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "Nemáte oprávnenie pre spustenie \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Podľa všetkého nemáte spustené plné KDE sedenie.\n" +"KShutDown bol navrhnutý pracovať v KDE.\n" +"Môžete však upraviť Akcie v dialógu nastavení KShutDown\n" +"(Nastavenia -> Nastaviť KShutDown... -> Akcie)." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Tip: Môžete upraviť Akcie tak, aby pracovali s GDM.\n" +"(Nastavenia -> Nastaviť KShutDown... -> Akcie)." + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"KDE Display Manager nie je spustený,\n" +"alebo je vypnutá funkcia vypnutia/reštartu.\n" +"\n" +"Kliknite sem pre nastavenie KDM." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Vyberte metódu:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Zadajte vlastný príkaz:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Spustiť príkaz" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "Pozastaviť po spustení príkazu:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "sekunda(y)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Vo väčšine prípadov potrebujete na vypnutie systému práva (napr. na " +"spustenie /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Ak používate <b>KDE</b> a <b>KDM</b> (správca sedení KDE), nastavte všetky " +"metódy na <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Ak používate <b>KDE</b> a správcu sedení iný než <b>KDM</b>, nastavte metódy " +"<i>Vypnúť</i> a <i>Reštartovať</i> na <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Ručne:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Používateľov príkaz" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Zostávajúci čas." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Obnoviť zoznam procesov" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Zoznam bežiacich procesov" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Zabiť" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Zabiť vybraný proces" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Čakám na \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Vybraný proces neexistuje!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Nepodarilo sa spustiť príkaz<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "Určite chcete ZABIŤ<br><b>%1</b>?<br><br>Všetky neuložené dáta budu stratené!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Proces nebol nájdený<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Nemáte práva na zabitie<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "MŔTVY: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Potvrdiť" + +#: ../kshutdown/confirmation.cpp:74 +msgid "&Cancel" +msgstr "&Zrušiť" + +#: ../kshutdown/confirmation.cpp:79 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Ste si istý?<br><br>Vybraná akcia: <b>%1</b><br>Vybraný čas: <b>%2</b>" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "" +"Jozef Říha\n" +"Zdenko Podobný" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "" +"jose1711@gmail.com\n" +"zdpo@mailbox.sk" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "Kliknite pre hlavné okno KShutDown<b>Kliknite a držte pre zobrazenie ponuky" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "Nepodarilo sa spustiť KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:167 +msgid "Lock Screen" +msgstr "Uzamknúť obrazovku" + +#: ../kshutdownlockout/lockout.cpp:199 +msgid "&Configure KShutDown..." +msgstr "&Nastaviť KShutDown..." + diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..6756a96 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,1182 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kshutdown 0.6.0-4 kshutdown\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2005-11-17 21:26+0100\n" +"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" +"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: sv\n" +"X-Poedit-Country: sv\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "Statistik" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Denna vy visar information om användarna för närvarande i systemet och deras " +"processer.<br>Huvudet visar hur länge systemet har körts." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Uppdatera" + +#: ../kshutdown/mstatstab.cpp:83 +#, fuzzy +msgid "Options" +msgstr "Åtgärder" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Mer information" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Vi&sa inloggningstid, JCPU och PCPU-tider." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "Växla \"FRÅN\"" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "Växla \"&FRÅN\"-fältet (fjärrvärdnamnet)." + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "Kommando: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Fler åtgärder..." + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "Välj ett kommando..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Använd kontextmenyn för att lägga till/redigera/ta bort länkar." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Använd <b>Kontextmenyn</b> för att skapa nya länkar till applikationen" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Använd <b>Skapa Ny|Mapp...</b> för att skapa en ny undermeny" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "Använd <b>Egenskaper</b> för att ändra ikon, namn eller kommentar" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "Extra" + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"Internt fel!\n" +"Vald menypost är trasig." + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "1 timmas varning" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5 minuters varning" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "1 minuts varning" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "10 sekunders varning" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3 sekunder före åtgärd" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2 sekunder före åtgärd" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "1 sekund före åtgärd" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "Kunde inte köra \"%1\"!" + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "Test" + +#: ../kshutdown/links.cpp:50 +#, fuzzy +msgid "Location where to create the link:" +msgstr "Välj en plats där länken kommer att skapas:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Skrivbord" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K Meny" + +#: ../kshutdown/links.cpp:62 +#, fuzzy +msgid "Type of the link:" +msgstr "Välj typ av länk:" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Standard utloggningsruta" + +#: ../kshutdown/links.cpp:96 +#, fuzzy +msgid "System Shut Down Utility" +msgstr "Ett verktyg för nedstängning för KDE" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "Kunde inte skapa filen <b>%1</b>!" + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "Kunde inte ta bort filen <b>%1</b>!" + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "Ta bort länk" + +#: ../kshutdown/links.cpp:187 +#, fuzzy +msgid "Add Link" +msgstr "Lägg till/Ta bort länkar" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "Logga ut" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "Ett verktyg för nedstängning för KDE" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "Stäng av datorn" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "Starta om datorn" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "Lås session" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "Avsluta nuvarande session" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "Bekräfta kommandoradsåtgärd" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "Visa standard utloggningsruta" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "Avbryt en aktiv åtgärd" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "Visa inte fönster vid uppstart" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "Aktivera testläge" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "Stäng av testläge" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Tid; Exempel: 01:30 - absolut tid (TT:MM); 10 - antal minuter att vänta från " +"och med nu" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "Ogiltig tid: <b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Inställningar" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "Avstängd av administratören." + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Åtgärder" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Åtgärd" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "Metod" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "Kommando före åtgärd" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Redigera..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Kontrollera Systemkonfigurationen" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Extrameny" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Modifiera..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Advancerad" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Efter inloggning" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Lås skärmen" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Före utloggning" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "Stäng cd-rom-lucka" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Kommando:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "Relaterade KDE-inställningar..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Allmänt" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Vanliga problem" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Stäng av datorn\" fungerar inte" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Popup-meddelanden är väldigt störande" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Lägg till/Ta bort länkar" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Visa systempanelsikonen" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Alltid" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Panelikonen kommer alltid vara synlig." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Om aktiv" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "Panelikonen kommer att vara synlig bara om KShutDown är aktiv." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Aldrig" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Panelikonen kommer alltid vara gömd." + +#: ../kshutdown/msettingsdialog.cpp:274 +#, fuzzy +msgid "Show KShutDown Themes" +msgstr "KShutDown-teman" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "SuperKarambas webbplats" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "Meddelanden" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Visa varningsmeddelande före åtgärd" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "minut(er)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "Varningsmeddelande" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "Aktiverad" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Ett skalkommando att starta:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "Ange ett kommando." + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "En meddelandetext" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "Nuvarande huvudfönstrets titel" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "Anpassat meddelande" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "Återaktivera alla meddelanden" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"Aktivera alla meddelanden som har stängts av med <b>Visa inte detta " +"meddelande igen</b> funktionen." + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE (förvald)" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "Ingen paus" + +#: ../kshutdown/msettingsdialog.cpp:433 +#, fuzzy +msgid "Pause: %1" +msgstr "Paus:" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "Återställ standardinställningarna för denna sida?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "Ange timme och minut." + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "Ange tid och datum." + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Klicka på knappen <b>Välj ett kommando...</b> först." + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "Valt datum/tid: %1" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "Nuvarande datum/tid: %1" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Valt datum/tid är tidigare än nuvarande datum/tid!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "Åtgärd avbröts!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "Testläge aktiverad" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "Testläge avstängd" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Ingen fördröjning" + +#: ../kshutdown/mmainwindow.cpp:438 +#, fuzzy +msgid "&File" +msgstr "T&id" + +#: ../kshutdown/mmainwindow.cpp:449 +#, fuzzy +msgid "&Actions" +msgstr "Åtgärder" + +#: ../kshutdown/mmainwindow.cpp:455 +#, fuzzy +msgid "Configure Global Shortcuts..." +msgstr "&Konfigurera KShutDown..." + +#: ../kshutdown/mmainwindow.cpp:460 +#, fuzzy +msgid "&Settings" +msgstr "Inställningar" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +#, fuzzy +msgid "C&ancel" +msgstr "Kommando: %1" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "Kontrollera &systemkonfiguration" + +#: ../kshutdown/mmainwindow.cpp:520 +#, fuzzy +msgid "&Start [%1]" +msgstr "Start [Enter]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "&Statistik" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "Välj en åtgärd att genomför&a" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "Välj en åtgård att genomföra vid den valda tiden." + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "Välj &en tid" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "Tid från och med nu (HH:MM)" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "Den datum/tid" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "När valda applikationen avslutas" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "Välj typ av fördröjning." + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "Vald tid." + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "TESTLÄGE" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "Återstående tid: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "Okänd" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "Vald tid: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "Vald åtgärd: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Notera: </b> Testläget är aktiverat" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +#, fuzzy +msgid "KShutDown has quit" +msgstr "KShutDown-menyn" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Var god vänta..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Kunde inte logga ut korrekt.\n" +"Sessionshanteraren kan inte kontaktas." + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Inget" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "Stäng av datorn" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "Starta om datorn" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "Lås sessionen" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "Avsluta nuvarande session" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "Åtgärd misslyckades! (%1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP-anrop misslyckades!" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "Systemkonfiguration" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "Meddelande" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"Tips: Om du har problem med kommandot \"/sbin/shutdown\"\n" +"så försök att modifiera filen \"/etc/shutdown.allow\" och kör\n" +"sedan kommandot \"/sbin/shutdown\" med extra parametern \"-a\".\n" +"\n" +"Klicka här för mer information." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "Inga problem hittades." + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "Programmet \"%1\" hittades inte!" + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "Inga rättigheter för att starta \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Det verkar som detta inte är en full KDE-session.\n" +"KShutDown blev designad att fungera med KDE.\n" +"Dock kan du anpassa Åtgärder i KShutDown-inställningarna\n" +"(Inställningar -> Konfigurera KShutDown... -> Åtgärder)." + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"Tipa: Du kan anpassa Åtgärder för att fungera med GDM.\n" +"(Inställningar -> Konfigurera KShutDown... -> Åtgärder)" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"Fönsterhanteraren KDE körs inte eller\n" +"så är avstängning/omstartsfunktionen avstängd.\n" +"\n" +"Klicka här för att konfigurera KDM." + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "Välj en metod:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "Ange ett anpassat kommando:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "Kör kommando" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "Paus efter kört kommando:" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "sekund(er)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"I de flesta fall behöver du rättigheter att stänga ned systemet (till " +"exempel att köra /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Om du använder <b>KDE</b> och <b>KDM</b> (KDE Skärmhanterare) så sätt alla " +"metoder till <i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Om du kör <b>KDE</b> och skärmhanteraren är en annan än <b>KDM</b> så sätt " +"metoderna för <i>Stäng av datorn</i> och <i>Starta om datorn</i> till <i>/" +"sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "Manualer:" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "Användarkommando" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Återstående tid." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Döda" + +#: ../kshutdown/appobserver.cpp:68 +#, fuzzy +msgid "Kill the selected process" +msgstr "Den valda processen existerar inte!" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "Väntar på \"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Den valda processen existerar inte!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Kunde inte starta kommando<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"Är du säker att du vill DÖDA<br><b>%1</b>?<br><br>All osparad data kommer " +"att förloras!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Process inte hittad<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "Inga rättigheter att döda<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "DÖD: %1" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "Bekräfta" + +#: ../kshutdown/confirmation.cpp:74 +#, fuzzy +msgid "&Cancel" +msgstr "Kommando: %1" + +#: ../kshutdown/confirmation.cpp:79 +msgid "" +"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Daniel Nylander" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "po@danielnylander.se" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "Kunde inte köra KShutDown!" + +#: ../kshutdownlockout/lockout.cpp:167 +#, fuzzy +msgid "Lock Screen" +msgstr "Lås skärmen" + +#: ../kshutdownlockout/lockout.cpp:199 +#, fuzzy +msgid "&Configure KShutDown..." +msgstr "&Konfigurera: KShutDown..." + +#~ msgid "Are you sure?" +#~ msgstr "Är du säker?" + +#~ msgid "Stop [Esc]" +#~ msgstr "Stopp [Esc]" + +#~ msgid "" +#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu" +#~ msgstr "" +#~ "<b>Tips:</b> Använd <b>mittenknappen på musen</b> för att visa " +#~ "åtgärdsmenyn" + +#~ msgid "No delay" +#~ msgstr "Ingen fördröjning" + +#~ msgid "Create Link" +#~ msgstr "Skapa länk" + +#~ msgid "&I'm Sure" +#~ msgstr "Jag är säker" + +#, fuzzy +#~ msgid "&Cancel: %1" +#~ msgstr "Kommando: %1" + +#~ msgid "KShutDown Actions (no delay!)" +#~ msgstr "KShutDown-åtgärder (ingen fördröjning!)" + +#~ msgid "Actions (no delay!)" +#~ msgstr "Atgärder (ingen fördröjning!)" + +#~ msgid "&Turn Off Computer" +#~ msgstr "S&täng av datorn" + +#~ msgid "&Restart Computer" +#~ msgstr "Sta&rta om datorn" + +#~ msgid "&Lock Session" +#~ msgstr "&Lås session" + +#~ msgid "&End Current Session" +#~ msgstr "Avsluta nuvarand&e session" + +#~ msgid "&Immediate Action" +#~ msgstr "Omedelbar åtgärd" + +#~ msgid "&Stop" +#~ msgstr "&Stopp" + +#~ msgid "Run KShutDown" +#~ msgstr "Kör KShutDown" + +#~ msgid "&Run KShutDown" +#~ msgstr "Kö&r KShutDown" + +#~ msgid "&Transparent" +#~ msgstr "Genomskinnlig" + +#~ msgid "&Show Lock Button" +#~ msgstr "Vi&sa låsknapp" + +#~ msgid "AppObserver" +#~ msgstr "AppObserver" + +#~ msgid "MSettingsDialog" +#~ msgstr "MSettingsDialog" + +#~ msgid "MSystemTray" +#~ msgstr "MSystemTray" + +#~ msgid "MMessageDialog" +#~ msgstr "MMessageDialog" + +#~ msgid "MStatsTab" +#~ msgstr "MStatsTab" + +#~ msgid "MActionEditDialog" +#~ msgstr "MActionEditDialog" + +#~ msgid "SystemConfig" +#~ msgstr "SystemKonfig" + +#~ msgid "MMainWindow" +#~ msgstr "MMainWindow" + +#~ msgid "Links" +#~ msgstr "Länkar" + +#~ msgid "Lockout" +#~ msgstr "Lås ute" + +#~ msgid "Registere&d tasks:" +#~ msgstr "Registrera&de uppgifter:" + +#~ msgid "Name" +#~ msgstr "Namn" + +#~ msgid "Description" +#~ msgstr "Beskrivning" + +#~ msgid "" +#~ "Any external application can register a KShutDown task through the DCOP " +#~ "mechanism. For example, a movie player optionally can use the KShutDown " +#~ "task to shut down the system after playing a movie.<br><br>All the " +#~ "registered tasks are listed here. Click <b>Remove</b> or <b>Remove All</" +#~ "b> to cancel the selected task. Click <b>Configure</b> to disable the " +#~ "<b>Scheduler</b>." +#~ msgstr "" +#~ "Alla externa applikationer kan registrera en uppgift i KShutDown genom " +#~ "DCOP-mekanismen. Till exempel kan en mediaspelare valfritt använda en " +#~ "uppgift i KShutDown för att stänga av systemet efter att ha spelat en " +#~ "film.<br><br>Alla registrerade uppgifter listas här. Klicka <b>Ta bort</" +#~ "b> eller <b>Ta bort alla</b> för att avbryta de valda uppgifterna. Klicka " +#~ "<b>Konfigurera</b> för att stänga av <b>Schemaläggaren</b>." + +#~ msgid "Re&move" +#~ msgstr "Ta bort" + +#~ msgid "Remo&ve All" +#~ msgstr "Ta bort alla" + +#~ msgid "MSchedulerTab" +#~ msgstr "MSchedulerTab" + +#~ msgid "AppScheduler" +#~ msgstr "AppScheduler" + +#~ msgid "Locatio&n:" +#~ msgstr "Plats:" + +#~ msgid "&Type:" +#~ msgstr "&Typ:" + +#~ msgid "KShutDown Wizard" +#~ msgstr "KShutDown vägvisare" + +#~ msgid "This page has been disabled by the Administator." +#~ msgstr "Denna sida har stängts av administratören." + +#~ msgid "Actions & Extras Menu" +#~ msgstr "Åtgärder & Extrameny" + +#~ msgid "" +#~ "If you are running <b>KShutDown</b> from the non-KDE session (e.g. " +#~ "<b>GNOME</b>), then change all methods..." +#~ msgstr "" +#~ "Om du kör <b>KShutDown</b> från en icke-KDE session (exempelvis <b>GNOME</" +#~ "b>) så ändra alla metoder..." + +#~ msgid "See FAQ for more details" +#~ msgstr "Se FAQ för mer detaljer" + +#~ msgid "Automation" +#~ msgstr "Automation" + +#~ msgid "Co&mmand:" +#~ msgstr "Ko&mmando:" + +#~ msgid "Remember time &settings" +#~ msgstr "Kom i håg in&ställningar" + +#~ msgid "Enable &Scheduler" +#~ msgstr "Aktivera &schemaläggaren" + +#~ msgid "Screen Sa&ver..." +#~ msgstr "Skärmsparare..." + +#~ msgid "Session &Manager..." +#~ msgstr "Sessionshanterare..." + +#~ msgid "&Links" +#~ msgstr "&Länkar" + +#~ msgid "Themes" +#~ msgstr "Teman" + +#~ msgid "Home Page" +#~ msgstr "Webbplats" + +#~ msgid "Confirmations & Messages" +#~ msgstr "Bekräftelser & Meddelanden" + +#~ msgid "Confirm action (&recommended)" +#~ msgstr "Bekräfta åtgärd (&rekommenderat)" + +#~ msgid "&Popup Messages (Passive)" +#~ msgstr "&Popup-meddelanden (Passiva)" + +#~ msgid "Hide &message after:" +#~ msgstr "Göm &meddelande efter:" + +#~ msgid "Notifications" +#~ msgstr "Notifieringar" + +#~ msgid "Wizard" +#~ msgstr "Vägvisare" + +#~ msgid "&End current session" +#~ msgstr "Avsluta nuvarand&e session" + +#~ msgid "&Turn off computer" +#~ msgstr "S&täng av dator" + +#~ msgid "&Restart computer" +#~ msgstr "Sta&rta om dator" + +#~ msgid "What do you want to do?" +#~ msgstr "Vad vill du göra nu?" + +#~ msgid "&Now (no delay)" +#~ msgstr "&Nu (utan fördröjning)" + +#~ msgid "At &date/time" +#~ msgstr "Den &datum/tid" + +#~ msgid "&Time from now" +#~ msgstr "&Tid från och med nu" + +#~ msgid "HH:MM" +#~ msgstr "TT:MM" + +#~ msgid "The task is not registered!" +#~ msgstr "Uppgiften är inte registrerad!" + +#~ msgid "Invalid action: %1" +#~ msgstr "Ogiltig åtgärd: %1" + +#~ msgid "The scheduler is disabled!" +#~ msgstr "Schemaläggaren är avstängd!" + +#~ msgid "MRadioButton" +#~ msgstr "MRadioButton" + +#~ msgid "MWizard" +#~ msgstr "MWizard" + +#~ msgid "St&atistics" +#~ msgstr "St&atistik" + +#~ msgid "Enter delay:" +#~ msgstr "Ange fördröjning:" + +#~ msgid "Set delay to 0 seconds" +#~ msgstr "Sätt fördröjning till 0 sekunder" + +#~ msgid "Set delay to 00:00" +#~ msgstr "Sätt fördröjning till 00:00" + +#~ msgid "Set date/time to the current date/time" +#~ msgstr "Sätt datum/tid till nuvarande datum/tid" + +#~ msgid "Ti&me (HH:MM):" +#~ msgstr "Ti&d (TT:MM):" + +#~ msgid "Quit the application" +#~ msgstr "Avsluta applikationen" + +#~ msgid "Enter delay in seconds." +#~ msgstr "Ange fördröjning i sekunder." + +#~ msgid "Enter delay in minutes." +#~ msgstr "Ange fördröjning i minuter." + +#~ msgid "Enter delay in hours." +#~ msgstr "Ange fördröjning i timmar." + +#~ msgid "Sched&uler" +#~ msgstr "Schemaläggare" + +#~ msgid "Disabled" +#~ msgstr "Avstängd" + +#~ msgid "Lock the screen using a screen saver" +#~ msgstr "Lås skärmen med en skärmsläckare" + +#~ msgid "&Wizard..." +#~ msgstr "Vägvisare..." + +#~ msgid "Run the Wizard" +#~ msgstr "Kör vägvisaren" + +#~ msgid "E&xtras..." +#~ msgstr "E&xtra..." + +#~ msgid "More commands...<br>Click <b>Modify...</b> to add/edit/remove items." +#~ msgstr "" +#~ "Fler kommandon...<br>Klicka <b>Modifiera...</b> för att lägga till/" +#~ "redigera/ta bort poster." + +#~ msgid "Now!" +#~ msgstr "Nu!" + +#~ msgid "Time From Now" +#~ msgstr "Tid från och med nu" + +#~ msgid "Time from &now:" +#~ msgstr "Tid från och med &nu:" + +#~ msgid "Second(s)" +#~ msgstr "Sekund(er)" + +#~ msgid "Minute(s)" +#~ msgstr "Minut(er)" + +#~ msgid "Hour(s)" +#~ msgstr "Timme(ar)" + +#~ msgid "&Date:" +#~ msgstr "&Datum:" + +#~ msgid "Enter date" +#~ msgstr "Ange datum" + +#~ msgid "Click to close" +#~ msgstr "Klicka för att stänga" + +#~ msgid "Maintainer" +#~ msgstr "Ansvarig" + +#~ msgid "Ideas" +#~ msgstr "Idéer" + +#~ msgid "Bug reports" +#~ msgstr "Buggrapporter" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..46f4e7c --- /dev/null +++ b/po/tr.po @@ -0,0 +1,794 @@ +# translation of tr.po to +# Copyright (C) 2006 Konrad Twardowski +# This file is distributed under the same license as the KShutDown package. +# +# Ahmet AYGÜN <ahmet@pardusman.org>, 2006. +# Ahmet AYGÜN <ahmet@pardusman.org>, 2007. +# Eren Türkay <turkay.eren@gmail.com>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: tr\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-08-27 19:36+0200\n" +"PO-Revision-Date: 2007-08-27 21:57+0300\n" +"Last-Translator: Eren Türkay <turkay.eren@gmail.com>\n" +"Language-Team: <turkce@pardus.org.tr>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "Lütfen bekleyin..." + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "" +"Oturum sonlandırılamadı.\n" +"Oturum yöneticisiyle bağlantı kurulamadı." + +#: ../kshutdown/actions.cpp:176 ../kshutdown/actions.cpp:419 +#: ../kshutdown/mstatstab.cpp:191 +msgid "Command: %1" +msgstr "Komut: %1" + +#: ../kshutdown/actions.cpp:202 ../kshutdown/mmainwindow.cpp:445 +#: ../kshutdown/mmainwindow.cpp:470 ../kshutdown/mmainwindow.cpp:622 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "Bekleme Yok" + +#: ../kshutdown/actions.cpp:319 +msgid "Nothing" +msgstr "Hiçbiri" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:183 +msgid "Turn Off Computer" +msgstr "Bilgisayarı Kapat" + +#: ../kshutdown/actions.cpp:321 ../kshutdownlockout/lockout.cpp:177 +msgid "Restart Computer" +msgstr "Bilgisayarı Yeniden Başlat" + +#: ../kshutdown/actions.cpp:322 +msgid "Lock Session" +msgstr "Oturumu Kilitle" + +#: ../kshutdown/actions.cpp:323 ../kshutdownlockout/lockout.cpp:171 +msgid "End Current Session" +msgstr "Oturumu Sonlandır" + +#: ../kshutdown/actions.cpp:327 ../kshutdown/confirmation.cpp:76 +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Unknown" +msgstr "Bilinmeyen" + +#: ../kshutdown/actions.cpp:362 +msgid "Action failed! (%1)" +msgstr "Eylem başarısız! (%1)" + +#: ../kshutdown/actions.cpp:406 +msgid "kdesktop: DCOP call failed!" +msgstr "kdesktop: DCOP çağrısı başarısız!" + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "Süreçler listesini yenile" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "Çalışan süreçler listesi" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "Öldür" + +#: ../kshutdown/appobserver.cpp:68 +msgid "Kill the selected process" +msgstr "Seçili süreçleri öldür" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "\"%1\" bekleniyor" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "Seçtiğiniz süreç mevcut değil!" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "Komut çalıştırılamıyor<br><br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "" +"<b>%1</b><br>sürecini ÖLDÜRMEK istediğinizden emin misiniz?" +"<br><br>Kaydedilmemiş tüm veriler silinecek!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "Süreç bulunamadı<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "<b>%1</b>sürecini öldürmek için yeterli yetki yok" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "ÖLÜ: %1" + +#: ../kshutdown/confirmation.cpp:64 +msgid "Confirm" +msgstr "Onayla" + +#: ../kshutdown/confirmation.cpp:78 +msgid "Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "Emin misiniz?<br><br>Seçilen eylem: <b>%1</b><br>Seçilen zaman: <b>%2</b>" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "Daha fazla eylem..." + +#: ../kshutdown/extras.cpp:91 +msgid "Select a command..." +msgstr "Komut seçin..." + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "Kısayol ekle/çıkar için sağ tık menüsünü kullanın." + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "Yeni kısayol oluşturmak için <b>Sağ tık menüsü</b>nü kullanın." + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "Yeni alt menü oluşturmak için <b>Yeni oluştur|Dizin...</b> kullanın" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "İsmi, uyarıyı ya da simgeyi değiştirmek için <b>Ayarlar</b>'ı kullanın" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:609 +msgid "Extras" +msgstr "Diğer" + +#: ../kshutdown/links.cpp:50 +msgid "Location where to create the link:" +msgstr "Kısayolun oluşturulacağı yeri seçin:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "Masaüstü" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K Menüsü" + +#: ../kshutdown/links.cpp:62 +msgid "Type of the link:" +msgstr "Kısayol türünü seçin:" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "Standart Çıkış Penceresi" + +#: ../kshutdown/links.cpp:95 +msgid "System Shut Down Utility" +msgstr "Bilgisayar Kapatma Aracı" + +#: ../kshutdown/links.cpp:106 +msgid "Could not create file <b>%1</b>!" +msgstr "<b>%1</b> dosyası oluşturulamıyor!" + +#: ../kshutdown/links.cpp:117 +msgid "Could not remove file <b>%1</b>!" +msgstr "<b>%1</b> dosyası silinemiyor!" + +#: ../kshutdown/links.cpp:182 +msgid "Remove Link" +msgstr "Kısayol Sil" + +#: ../kshutdown/links.cpp:186 +msgid "Add Link" +msgstr "Linkleri Ekle/Kaldır" + +#: ../kshutdown/links.cpp:205 +msgid "Logout" +msgstr "Çıkış" + +#: ../kshutdown/mactioneditdialog.cpp:67 ../kshutdown/msettingsdialog.cpp:143 +msgid "Method" +msgstr "Yöntem" + +#: ../kshutdown/mactioneditdialog.cpp:70 +msgid "Select a method:" +msgstr "Yöntem seçin:" + +#: ../kshutdown/mactioneditdialog.cpp:75 ../kshutdown/msettingsdialog.cpp:431 +msgid "KDE (default)" +msgstr "KDE (öntanımlı)" + +#: ../kshutdown/mactioneditdialog.cpp:80 +msgid "Enter a custom command:" +msgstr "Komut girin:" + +#: ../kshutdown/mactioneditdialog.cpp:86 ../kshutdown/msettingsdialog.cpp:144 +msgid "Command before action" +msgstr "İşlemden önce komut çalıştır" + +#: ../kshutdown/mactioneditdialog.cpp:87 +msgid "Run command" +msgstr "Komutu çalıştır" + +#: ../kshutdown/mactioneditdialog.cpp:90 +msgid "Pause after run command:" +msgstr "Komutu çalıştırdıktan sonra beklenecek süre" + +#: ../kshutdown/mactioneditdialog.cpp:92 ../kshutdown/msettingsdialog.cpp:445 +msgid "No pause" +msgstr "Duraksama yok" + +#: ../kshutdown/mactioneditdialog.cpp:93 +msgid "second(s)" +msgstr "saniye" + +#: ../kshutdown/mactioneditdialog.cpp:109 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "" +"Çoğu zaman sistemi kapatmak için bazı haklara sahip olmanız gerekir " +"(örneğin: /sbin/shutdown'ı çalıştırabiliyor olmalısınız)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"Eğer <b>KDE</b> ve <b>KDM</b> kullanıyorsanız tüm yöntemleri <i>KDE</i> " +"olarak seçin" + +#: ../kshutdown/mactioneditdialog.cpp:112 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"Eğer <b>KDE</b> kullanıyorsanız ve <b>KDM</b>'dan farklı bir görüntü " +"yönetici kullanıyorsanız <i>Bilgisayarı Kapat</i> ve <i>Bilgisayarı Yeniden " +"Başlat</i> yöntemlerini <i>/sbin/...</i> şeklinde ayarlayın." + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "Manuals:" +msgstr "Belgeler:" + +#: ../kshutdown/mactioneditdialog.cpp:135 +msgid "User Command" +msgstr "Kullanıcı Komutu" + +#: ../kshutdown/main.cpp:43 +msgid "A Shut Down Utility for KDE" +msgstr "KDE için Bilgisayar Kapatma Yazılımı" + +#: ../kshutdown/main.cpp:54 ../kshutdown/main.cpp:56 +msgid "Turn off computer" +msgstr "Bilgisayarı Kapat" + +#: ../kshutdown/main.cpp:58 +msgid "Restart computer" +msgstr "Bilgisayarı Yeniden Başlat" + +#: ../kshutdown/main.cpp:60 +msgid "Lock session" +msgstr "Oturumu Kilitle" + +#: ../kshutdown/main.cpp:62 +msgid "End current session" +msgstr "Oturumu Sonlandır" + +#: ../kshutdown/main.cpp:64 +msgid "Execute \"Extras\" command (.desktop file)" +msgstr "\"Ek\" komut çalıştır (.desktop dosyası)" + +#: ../kshutdown/main.cpp:65 +msgid "Confirm command line action" +msgstr "Komut satırı eylemini onayla" + +#: ../kshutdown/main.cpp:66 +msgid "Show standard logout dialog" +msgstr "Standart çıkış diyaloğunu görüntüle" + +#: ../kshutdown/main.cpp:68 +msgid "Cancel an active action" +msgstr "Etkin işlemi iptal et" + +#: ../kshutdown/main.cpp:69 +msgid "Don't show window at startup" +msgstr "Başlangıçta pencereyi gösterme" + +#: ../kshutdown/main.cpp:70 +msgid "Enable test mode" +msgstr "Deneme modunu etkinleştir" + +#: ../kshutdown/main.cpp:71 +msgid "Disable test mode" +msgstr "Deneme modunu devre dışı bırak" + +#: ../kshutdown/main.cpp:72 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "" +"Zaman örnekleri: 01:30 - tam zaman (SA:DK); 10 - şu andan itibaren " +"beklenecek dakika" + +#: ../kshutdown/main.cpp:245 +msgid "Invalid time: <b>%1</b>" +msgstr "Geçersiz zaman: <b>%1</b>" + +#: ../kshutdown/miscutils.cpp:110 +msgid "1 hour warning" +msgstr "1 saat uyarısı" + +#: ../kshutdown/miscutils.cpp:113 ../kshutdown/miscutils.cpp:114 +msgid "5 minutes warning" +msgstr "5 dakika uyarısı" + +#: ../kshutdown/miscutils.cpp:117 ../kshutdown/miscutils.cpp:118 +msgid "1 minute warning" +msgstr "1 dakika uyarısı" + +#: ../kshutdown/miscutils.cpp:121 +msgid "10 seconds warning" +msgstr "10 saniye uyarısı" + +#: ../kshutdown/miscutils.cpp:226 +msgid "Could not run \"%1\"!" +msgstr "\"%1\" çalıştırılamadı!" + +#: ../kshutdown/miscutils.cpp:231 ../kshutdown/msettingsdialog.cpp:471 +#: ../kshutdown/msettingsdialog.cpp:558 +msgid "Test" +msgstr "Deneme" + +#: ../kshutdown/mmainwindow.cpp:149 +msgid "Enter hour and minute." +msgstr "Saat ve dakika girin." + +#: ../kshutdown/mmainwindow.cpp:159 +msgid "Enter date and time." +msgstr "Tarih ve saat girin." + +#: ../kshutdown/mmainwindow.cpp:238 +msgid "Click the <b>Select a command...</b> button first." +msgstr "Önce <b>Komut Seçin...</b> düğmesine basın." + +#: ../kshutdown/mmainwindow.cpp:280 +msgid "Selected date/time: %1" +msgstr "Belirlenen tarih/saat: %1" + +#: ../kshutdown/mmainwindow.cpp:281 +msgid "Current date/time: %1" +msgstr "Şimdiki tarih/saat: %1" + +#: ../kshutdown/mmainwindow.cpp:287 +msgid "Selected date/time is earlier than current date/time!" +msgstr "Belirlenen tarih/saat şimdiki tarihten/saatten daha erken!" + +#: ../kshutdown/mmainwindow.cpp:292 +msgid "Action cancelled!" +msgstr "İşlem iptal edildi." + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode enabled" +msgstr "Deneme modu etkin" + +#: ../kshutdown/mmainwindow.cpp:408 +msgid "Test mode disabled" +msgstr "Deneme modu devre dışı" + +#: ../kshutdown/mmainwindow.cpp:477 +msgid "&Actions" +msgstr "&Eylemler" + +#: ../kshutdown/mmainwindow.cpp:483 +msgid "Configure Global Shortcuts..." +msgstr "Genel Kısayolları Yapılandır..." + +#: ../kshutdown/mmainwindow.cpp:531 +msgid "C&ancel" +msgstr "İ&ptal" + +#: ../kshutdown/mmainwindow.cpp:539 +msgid "Check &System Configuration" +msgstr "&Sistem yapılandırmasını denetle" + +#: ../kshutdown/mmainwindow.cpp:556 +msgid "&Statistics" +msgstr "İ&statistikler" + +#: ../kshutdown/mmainwindow.cpp:600 +msgid "Select an &action to perform" +msgstr "&Gerçekleştirilecek eylemi seçin" + +#: ../kshutdown/mmainwindow.cpp:610 +msgid "Select an action to perform at the selected time." +msgstr "Belirtilen zamanda uygulanmak üzere bir eylem seçin." + +#: ../kshutdown/mmainwindow.cpp:616 +msgid "S&elect a time" +msgstr "&Zaman seçin" + +#: ../kshutdown/mmainwindow.cpp:623 +msgid "Time From Now (HH:MM)" +msgstr "Şu andan itibaren (SA:DK) " + +#: ../kshutdown/mmainwindow.cpp:624 +msgid "At Date/Time" +msgstr "Tarih/saat" + +#: ../kshutdown/mmainwindow.cpp:625 +msgid "When selected application exit" +msgstr "Belirtilen uygulama kapanınca" + +#: ../kshutdown/mmainwindow.cpp:627 ../kshutdown/msettingsdialog.cpp:117 +msgid "Disabled by the Administrator." +msgstr "Yönetici tarafından devre dışı bırakıldı." + +#: ../kshutdown/mmainwindow.cpp:629 +msgid "Select the type of delay." +msgstr "Bekleme tipini seçin" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "Selected time." +msgstr "Belirlenen süre." + +#: ../kshutdown/mmainwindow.cpp:671 +msgid "TEST MODE" +msgstr "DENEME MODU" + +#: ../kshutdown/mmainwindow.cpp:677 +msgid "Remaining time: <b>%1</b>" +msgstr "Kalan zaman: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:678 +msgid "Selected time: <b>%1</b>" +msgstr "Seçilen zaman: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:679 +msgid "Selected action: <b>%1</b>" +msgstr "Seçilen eylem: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:682 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>Not:</b> Deneme modu etkin" + +#: ../kshutdown/mmainwindow.cpp:887 ../kshutdown/mmainwindow.cpp:905 +msgid "KShutDown has been minimized" +msgstr "KShutDown sistem çekmecesine küçültüldü" + +#: ../kshutdown/mmainwindow.cpp:917 ../kshutdown/mmainwindow.cpp:926 +msgid "KShutDown has quit" +msgstr "KShutDown kapandı" + +#: ../kshutdown/mmessagedialog.cpp:48 ../kshutdown/systemconfig.cpp:82 +msgid "Message" +msgstr "İleti" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "Kalan zaman." + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "Ayarlar" + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "Eylemler" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "Eylem" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "Düzenle..." + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "Sistem Yapılandırmasını Denetle" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "Ekstralar Menüsü" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "Düzenle..." + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "Gelişmiş" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "Oturum açıldıktan sonra" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "Ekranı kilitle" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "Oturum kapanmadan önce" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "CD-ROM kapağını kapat" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "Komut:" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "İlgili KDE Ayarları..." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "Genel" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "Yaygın Sorunlar" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "\"Bilgisayarı Kapat\" çalışmıyor" + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "Popup iletileri çok can sıkıcı" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "Linkleri Ekle/Kaldır" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "Sistem Çekmecesi Simgesini Göster" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "Her zaman" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "Simge her zaman görünür olacaktır." + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "Eğer etkin ise" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "Simge sadece KShutDown etkin iken görünecektir." + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "Asla" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "Simge asla görünmeyecektir." + +#: ../kshutdown/msettingsdialog.cpp:274 +msgid "Show KShutDown Themes" +msgstr "KShutDown Temalarını Göster" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "SuperKaramba Sitesi" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "İletiler" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "Eylemden önce uyarı iletisi görüntüle" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "dakika" + +#: ../kshutdown/msettingsdialog.cpp:303 +msgid "Recommended" +msgstr "Önerilen" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "Warning Message" +msgstr "Uyarı İletisi" + +#: ../kshutdown/msettingsdialog.cpp:317 ../kshutdown/msettingsdialog.cpp:351 +msgid "Enabled" +msgstr "Etkin" + +#: ../kshutdown/msettingsdialog.cpp:318 +msgid "A shell command to execute:" +msgstr "Çalıştırılacak kabuk komutu:" + +#: ../kshutdown/msettingsdialog.cpp:323 +msgid "Enter a command." +msgstr "Komut girin." + +#: ../kshutdown/msettingsdialog.cpp:326 +msgid "A message text" +msgstr "İleti metni" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "The current main window title" +msgstr "Ana pencere başlığı" + +#: ../kshutdown/msettingsdialog.cpp:333 +msgid "Presets" +msgstr "Öntanımlılar" + +#: ../kshutdown/msettingsdialog.cpp:347 +msgid "Custom Message" +msgstr "Uyarı İletisini Özelleştir" + +#: ../kshutdown/msettingsdialog.cpp:350 +msgid "Progress Bar" +msgstr "İşlem Çubuğu" + +#: ../kshutdown/msettingsdialog.cpp:354 +msgid "Re-enable All Message Boxes" +msgstr "Tüm İleti Kutucuklarını Etkinleştir" + +#: ../kshutdown/msettingsdialog.cpp:358 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" +"<b>Bu iletiyi bir daha asla gösterme</b> özelliğiyle kapatılan tüm iletileri " +"etkinleştir." + +#: ../kshutdown/msettingsdialog.cpp:447 +msgid "Pause: %1" +msgstr "Duraksa: %1" + +#: ../kshutdown/msettingsdialog.cpp:516 +msgid "This file is used to lock session at KDE startup" +msgstr "Bu dosya KDE başlangıcında oturumu kilitlemek için kullanılıyor" + +#: ../kshutdown/msettingsdialog.cpp:596 +msgid "Restore default settings for this page?" +msgstr "Bu sayfadaki ayarları öntanımlı haline getir?" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "İstatistikler" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "" +"Bu pencerede bilgisayarda oturum açan kullanıcıları ve onların yürüttüğü " +"süreçleri görebilirsiniz.\n" +"Sistemin ne kadar süredir çalışır durumda olduğu en üst satırda yazmaktadır." + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "Yenile" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "Daha fazla bilgi" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "Oturum süresini, JCPU ve PCPU sürelerini göster." + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "\"FROM\" sütununu göster" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "\"FROM\" sütununu göster." + +#: ../kshutdown/progressbar.cpp:99 +msgid "Hide" +msgstr "Gizle" + +#: ../kshutdown/systemconfig.cpp:71 +msgid "System Configuration" +msgstr "Sistem Yapılandırması" + +#: ../kshutdown/systemconfig.cpp:88 +msgid "Tip: Click here if you have problem with the \"/sbin/shutdown\" command." +msgstr "İpucu: Eğer \"/sbin/shutdown\" komutu ile problem yaşıyorsanız buraya tıklayın." + +#: ../kshutdown/systemconfig.cpp:97 +msgid "No problems were found." +msgstr "Sorun bulunamadı." + +#: ../kshutdown/systemconfig.cpp:128 +msgid "Program \"%1\" was not found!" +msgstr "\"%1\" programı bulunamadı!" + +#: ../kshutdown/systemconfig.cpp:135 +msgid "No permissions to execute \"%1\"." +msgstr "\"%1\" eylemi için yeterli yetkiniz yok." + +#: ../kshutdown/systemconfig.cpp:144 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"Öyle görünüyor ki oturumunuz KDE oturumu değil.\n" +"KShutDown, KDE ile çalışmak üzere tasarlanmıştır.\n" +"Eylemleri KShutDown yapılandırmasından ayarlayabilirsiniz\n" +"(Ayarlar -> KShutDown Programını Yapılandır -> Eylemler)" + +#: ../kshutdown/systemconfig.cpp:161 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "" +"İpucu: Eylemleri GDM ile çalışacak şekilde ayarlayabilirsiniz.\n" +"(Ayarlar -> KShutDown Programını Yapılandır -> Eylemler)" + +#: ../kshutdown/systemconfig.cpp:162 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"KDM çalışmıyor ya da\n" +"bilgisayarı kapat/yeniden başlat işlevleri pasifleştirilmiş.\n" +"\n" +"KDM'ı ayarlamak için buraya tıklayın." + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Ahmet AYGÜN, Eren TÜRKAY" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "ahmet@zion.gen.tr, turkay.eren@gmail.com" + +#: ../kshutdownlockout/lockout.cpp:120 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "KShutDown için tıklayın<br>Menü için tıklayıp basılı tutun" + +#: ../kshutdownlockout/lockout.cpp:148 ../kshutdownlockout/lockout.cpp:155 +#: ../kshutdownlockout/lockout.cpp:200 +msgid "Could not run KShutDown!" +msgstr "KShutDown Çalıştırılamıyor" + +#: ../kshutdownlockout/lockout.cpp:165 +msgid "Lock Screen" +msgstr "Ekranı Kilitle" + +#: ../kshutdownlockout/lockout.cpp:191 +msgid "&Configure KShutDown..." +msgstr "KShutDown Programını &Yapılandır" + diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 0000000..4c227da --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,915 @@ +# translation of zh_CN.po to +# translation of ch_CN.po to +# translation of es.po to Polish +# Translation of kshutdown to Castilian aka Spanish +# This file is distributed under the same license as the Kshutdown package. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# lczxl, 2005. +# Quique <quique@sindominio.net>, 2004. +# lczxl, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: zh_CN\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-04-22 18:03+0200\n" +"PO-Revision-Date: 2005-12-04 16:26+0800\n" +"Last-Translator: lczxl\n" +"Language-Team: <zh@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" + +#: ../kshutdown/mstatstab.cpp:46 +msgid "Statistics" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:71 +msgid "" +"This view displays information about the users currently on the machine, and " +"their processes.<br>The header shows how long the system has been running." +msgstr "显示系统运行了多长时间" + +#: ../kshutdown/mstatstab.cpp:79 +msgid "Refresh" +msgstr "重刷新(&R)" + +#: ../kshutdown/mstatstab.cpp:83 +#, fuzzy +msgid "Options" +msgstr "命令编辑" + +#: ../kshutdown/mstatstab.cpp:85 +msgid "More information" +msgstr "更多信息" + +#: ../kshutdown/mstatstab.cpp:88 +msgid "Show login time, JCPU and PCPU times." +msgstr "显示登入时间,JCPU和PCPU时间。" + +#: ../kshutdown/mstatstab.cpp:90 +msgid "Toggle \"FROM\"" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:92 +msgid "Toggle the \"FROM\" (remote hostname) field." +msgstr "" + +#: ../kshutdown/mstatstab.cpp:190 ../kshutdown/appobserver.cpp:167 +#: ../kshutdown/appobserver.cpp:269 +msgid "Error" +msgstr "" + +#: ../kshutdown/mstatstab.cpp:191 ../kshutdown/actions.cpp:176 +#: ../kshutdown/actions.cpp:416 +msgid "Command: %1" +msgstr "命令: %1" + +#: ../kshutdown/extras.cpp:57 +msgid "More actions..." +msgstr "更多命令" + +#: ../kshutdown/extras.cpp:227 +msgid "Select a command..." +msgstr "选择一个命令" + +#: ../kshutdown/extras.cpp:245 +msgid "Use context menu to add/edit/remove links." +msgstr "使用上下文来添加/编辑/删除链接" + +#: ../kshutdown/extras.cpp:247 +msgid "Use <b>Context Menu</b> to create a new link to application" +msgstr "使用 <b>上下文菜单</b>创建一个到应用程序的新链接" + +#: ../kshutdown/extras.cpp:248 +msgid "Use <b>Create New|Folder...</b> to create a new submenu" +msgstr "使用<b>创建新的文件夹....</b>创建一个新的子菜单" + +#: ../kshutdown/extras.cpp:249 +msgid "Use <b>Properties</b> to change icon, name, or comment" +msgstr "使用<b>属性</b>改变图标,名称,或者说明" + +#: ../kshutdown/extras.cpp:252 ../kshutdown/extras.cpp:271 +#: ../kshutdown/mmainwindow.cpp:582 +msgid "Extras" +msgstr "更多的...." + +#: ../kshutdown/extras.cpp:270 +msgid "" +"Internal error!\n" +"Selected menu item is broken." +msgstr "" +"内部错误!\n" +"选择的菜单项目是无效的" + +#: ../kshutdown/miscutils.cpp:104 +msgid "1 hour warning" +msgstr "一小时警告" + +#: ../kshutdown/miscutils.cpp:107 ../kshutdown/miscutils.cpp:108 +msgid "5 minutes warning" +msgstr "5分钟警告" + +#: ../kshutdown/miscutils.cpp:111 ../kshutdown/miscutils.cpp:112 +msgid "1 minute warning" +msgstr "一分钟警告" + +#: ../kshutdown/miscutils.cpp:115 +msgid "10 seconds warning" +msgstr "十秒钟警告" + +#: ../kshutdown/miscutils.cpp:118 +msgid "3 seconds before action" +msgstr "3秒钟后执行动作" + +#: ../kshutdown/miscutils.cpp:121 +msgid "2 seconds before action" +msgstr "2秒钟后执行动作" + +#: ../kshutdown/miscutils.cpp:124 +msgid "1 second before action" +msgstr "一秒钟后执行动作" + +#: ../kshutdown/miscutils.cpp:223 +msgid "Could not run \"%1\"!" +msgstr "不能运行 <b>%1</b>." + +#: ../kshutdown/miscutils.cpp:228 ../kshutdown/msettingsdialog.cpp:457 +#: ../kshutdown/msettingsdialog.cpp:544 +msgid "Test" +msgstr "测试" + +#: ../kshutdown/links.cpp:50 +#, fuzzy +msgid "Location where to create the link:" +msgstr "选择位置创建链接:" + +#: ../kshutdown/links.cpp:54 +msgid "Desktop" +msgstr "桌面" + +#: ../kshutdown/links.cpp:55 +msgid "K Menu" +msgstr "K菜单" + +#: ../kshutdown/links.cpp:62 +#, fuzzy +msgid "Type of the link:" +msgstr "选择一种链接方式" + +#: ../kshutdown/links.cpp:66 +msgid "KShutDown" +msgstr "KShutDown关机程序" + +#: ../kshutdown/links.cpp:69 +msgid "Standard Logout Dialog" +msgstr "标准注销对话" + +#: ../kshutdown/links.cpp:96 +#, fuzzy +msgid "System Shut Down Utility" +msgstr "KDE的关机程序" + +#: ../kshutdown/links.cpp:107 +msgid "Could not create file <b>%1</b>!" +msgstr "不能创建连接 <b>%1</b>." + +#: ../kshutdown/links.cpp:118 +msgid "Could not remove file <b>%1</b>!" +msgstr "不能删除 <b>%1</b>." + +#: ../kshutdown/links.cpp:183 +msgid "Remove Link" +msgstr "删除链接" + +#: ../kshutdown/links.cpp:187 +#, fuzzy +msgid "Add Link" +msgstr "添加/删除链接" + +#: ../kshutdown/links.cpp:206 +msgid "Logout" +msgstr "注销" + +#: ../kshutdown/main.cpp:40 +msgid "A Shut Down Utility for KDE" +msgstr "KDE的关机程序" + +#: ../kshutdown/main.cpp:51 ../kshutdown/main.cpp:53 +msgid "Turn off computer" +msgstr "关闭电脑" + +#: ../kshutdown/main.cpp:55 +msgid "Restart computer" +msgstr "重启电脑" + +#: ../kshutdown/main.cpp:57 +msgid "Lock session" +msgstr "锁定命令" + +#: ../kshutdown/main.cpp:59 +msgid "End current session" +msgstr "结束当前命令" + +#: ../kshutdown/main.cpp:60 +msgid "Confirm command line action" +msgstr "确认命令" + +#: ../kshutdown/main.cpp:61 +msgid "Show standard logout dialog" +msgstr "显示标准的注销对话" + +#: ../kshutdown/main.cpp:63 +msgid "Cancel an active action" +msgstr "取消活动的命令" + +#: ../kshutdown/main.cpp:64 +msgid "Don't show window at startup" +msgstr "视窗启动时不显示" + +#: ../kshutdown/main.cpp:65 +msgid "Enable test mode" +msgstr "激活测试模式" + +#: ../kshutdown/main.cpp:66 +msgid "Disable test mode" +msgstr "取消测试模式" + +#: ../kshutdown/main.cpp:67 +msgid "" +"Time; Examples: 01:30 - absolute time (HH:MM); 10 - number of minutes to " +"wait from now" +msgstr "时间;例如:01:30-绝对时间(HH:MM);" + +#: ../kshutdown/main.cpp:229 +msgid "Invalid time: <b>%1</b>" +msgstr "无效时间:<b>%1</b>" + +#: ../kshutdown/msettingsdialog.cpp:64 +msgid "Settings" +msgstr "设置" + +#: ../kshutdown/msettingsdialog.cpp:117 ../kshutdown/mmainwindow.cpp:600 +msgid "Disabled by the Administrator." +msgstr "通过超级管理员取消" + +#: ../kshutdown/msettingsdialog.cpp:129 ../kshutdown/msettingsdialog.cpp:135 +msgid "Actions" +msgstr "命令编辑" + +#: ../kshutdown/msettingsdialog.cpp:142 +msgid "Action" +msgstr "命令" + +#: ../kshutdown/msettingsdialog.cpp:143 ../kshutdown/mactioneditdialog.cpp:69 +msgid "Method" +msgstr "方式(&M)" + +#: ../kshutdown/msettingsdialog.cpp:144 ../kshutdown/mactioneditdialog.cpp:88 +msgid "Command before action" +msgstr "执行之前运行命令" + +#: ../kshutdown/msettingsdialog.cpp:162 +msgid "Edit..." +msgstr "编辑(&E)" + +#: ../kshutdown/msettingsdialog.cpp:165 +msgid "Check System Configuration" +msgstr "检查系统设置" + +#: ../kshutdown/msettingsdialog.cpp:168 +msgid "Extras Menu" +msgstr "额外的菜单" + +#: ../kshutdown/msettingsdialog.cpp:169 +msgid "Modify..." +msgstr "更改(&M)" + +#: ../kshutdown/msettingsdialog.cpp:186 +msgid "Advanced" +msgstr "高级" + +#: ../kshutdown/msettingsdialog.cpp:190 +msgid "After Login" +msgstr "登入后" + +#: ../kshutdown/msettingsdialog.cpp:191 +msgid "Lock screen" +msgstr "锁定屏幕" + +#: ../kshutdown/msettingsdialog.cpp:195 +msgid "Before Logout" +msgstr "注销前" + +#: ../kshutdown/msettingsdialog.cpp:196 +msgid "Close CD-ROM Tray" +msgstr "关闭光驱托盘" + +#: ../kshutdown/msettingsdialog.cpp:198 +msgid "Command:" +msgstr "命令" + +#: ../kshutdown/msettingsdialog.cpp:208 +msgid "Related KDE Settings..." +msgstr "相关的KDE设置...." + +#: ../kshutdown/msettingsdialog.cpp:219 +msgid "General" +msgstr "一般" + +#: ../kshutdown/msettingsdialog.cpp:223 +msgid "Common Problems" +msgstr "常用程序" + +#: ../kshutdown/msettingsdialog.cpp:226 +msgid "\"Turn Off Computer\" does not work" +msgstr "如果您的\"关机\"程序不能运行..." + +#: ../kshutdown/msettingsdialog.cpp:230 +msgid "Popup messages are very annoying" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:234 +msgid "Add/Remove Links" +msgstr "添加/删除链接" + +#: ../kshutdown/msettingsdialog.cpp:238 +msgid "Show System Tray Icon" +msgstr "显示托盘图标" + +#: ../kshutdown/msettingsdialog.cpp:240 +msgid "Always" +msgstr "总是" + +#: ../kshutdown/msettingsdialog.cpp:241 +msgid "Tray icon will be always visible." +msgstr "托盘图标总是显示" + +#: ../kshutdown/msettingsdialog.cpp:242 +msgid "If Active" +msgstr "如果KShutDown是活动的" + +#: ../kshutdown/msettingsdialog.cpp:243 +msgid "Tray icon will be visible only if KShutDown is active." +msgstr "只有KshutDown激活时,托盘图标才可见。" + +#: ../kshutdown/msettingsdialog.cpp:244 +msgid "Never" +msgstr "从不" + +#: ../kshutdown/msettingsdialog.cpp:245 +msgid "Tray icon will be always hidden." +msgstr "托盘图标总是隐藏" + +#: ../kshutdown/msettingsdialog.cpp:274 +#, fuzzy +msgid "Show KShutDown Themes" +msgstr "KShutDown主题" + +#: ../kshutdown/msettingsdialog.cpp:276 +msgid "SuperKaramba Home Page" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:285 +msgid "Messages" +msgstr "信息" + +#: ../kshutdown/msettingsdialog.cpp:295 +msgid "Display a warning message before action" +msgstr "动作之前显示警告信息" + +#: ../kshutdown/msettingsdialog.cpp:298 +msgid "minute(s)" +msgstr "分钟(s)" + +#: ../kshutdown/msettingsdialog.cpp:306 +msgid "Warning Message" +msgstr "警告信息" + +#: ../kshutdown/msettingsdialog.cpp:311 +msgid "Enabled" +msgstr "使能" + +#: ../kshutdown/msettingsdialog.cpp:312 +msgid "A shell command to execute:" +msgstr "Shell命令运行:" + +#: ../kshutdown/msettingsdialog.cpp:317 +msgid "Enter a command." +msgstr "键入命令" + +#: ../kshutdown/msettingsdialog.cpp:320 +msgid "A message text" +msgstr "信息" + +#: ../kshutdown/msettingsdialog.cpp:321 +msgid "The current main window title" +msgstr "当前主窗口标题" + +#: ../kshutdown/msettingsdialog.cpp:327 +msgid "Presets" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:341 +msgid "Custom Message" +msgstr "自定义信息" + +#: ../kshutdown/msettingsdialog.cpp:344 +msgid "Re-enable All Message Boxes" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:348 +msgid "" +"Enable all messages which have been turned off with the <b>Do not show this " +"message again</b> feature." +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:417 ../kshutdown/mactioneditdialog.cpp:77 +msgid "KDE (default)" +msgstr "KDE(默认)" + +#: ../kshutdown/msettingsdialog.cpp:431 ../kshutdown/mactioneditdialog.cpp:94 +msgid "No pause" +msgstr "不暂停" + +#: ../kshutdown/msettingsdialog.cpp:433 +#, fuzzy +msgid "Pause: %1" +msgstr "暂停:" + +#: ../kshutdown/msettingsdialog.cpp:502 +msgid "This file is used to lock session at KDE startup" +msgstr "" + +#: ../kshutdown/msettingsdialog.cpp:582 +msgid "Restore default settings for this page?" +msgstr "恢复默认设置?" + +#: ../kshutdown/mmainwindow.cpp:132 +msgid "Enter hour and minute." +msgstr "输入小时和分钟" + +#: ../kshutdown/mmainwindow.cpp:142 +msgid "Enter date and time." +msgstr "输入日期和时间" + +#: ../kshutdown/mmainwindow.cpp:221 +msgid "Click the <b>Select a command...</b> button first." +msgstr "先点击<b>选择命令....</b>按钮" + +#: ../kshutdown/mmainwindow.cpp:263 +msgid "Selected date/time: %1" +msgstr "选择日期/时间" + +#: ../kshutdown/mmainwindow.cpp:264 +msgid "Current date/time: %1" +msgstr "当前日期/时间" + +#: ../kshutdown/mmainwindow.cpp:270 +msgid "Selected date/time is earlier than current date/time!" +msgstr "选择的时间比当前时间早!" + +#: ../kshutdown/mmainwindow.cpp:275 +msgid "Action cancelled!" +msgstr "动作取消!" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode enabled" +msgstr "是测试模式生效" + +#: ../kshutdown/mmainwindow.cpp:380 +msgid "Test mode disabled" +msgstr "取消测试模式" + +#: ../kshutdown/mmainwindow.cpp:417 ../kshutdown/mmainwindow.cpp:442 +#: ../kshutdown/mmainwindow.cpp:595 ../kshutdown/actions.cpp:200 +#: ../kshutdownlockout/lockout.cpp:86 +msgid "No Delay" +msgstr "无延时" + +#: ../kshutdown/mmainwindow.cpp:438 +msgid "&File" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:449 +#, fuzzy +msgid "&Actions" +msgstr "命令编辑" + +#: ../kshutdown/mmainwindow.cpp:455 +#, fuzzy +msgid "Configure Global Shortcuts..." +msgstr "设置&KshutDown" + +#: ../kshutdown/mmainwindow.cpp:460 +#, fuzzy +msgid "&Settings" +msgstr "设置" + +#: ../kshutdown/mmainwindow.cpp:463 +msgid "&Help" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:503 ../kshutdownlockout/lockout.cpp:193 +#, fuzzy +msgid "C&ancel" +msgstr "命令: %1" + +#: ../kshutdown/mmainwindow.cpp:511 +msgid "Check &System Configuration" +msgstr "检查系统设置(&S)" + +#: ../kshutdown/mmainwindow.cpp:520 +#, fuzzy +msgid "&Start [%1]" +msgstr "开始[Enter]" + +#: ../kshutdown/mmainwindow.cpp:528 +msgid "&Statistics" +msgstr "进程列表(&S)" + +#: ../kshutdown/mmainwindow.cpp:573 +msgid "Select an &action to perform" +msgstr "选择一个命令执行(&a)" + +#: ../kshutdown/mmainwindow.cpp:583 +msgid "Select an action to perform at the selected time." +msgstr "在选择的时间上选择命令执行" + +#: ../kshutdown/mmainwindow.cpp:589 +msgid "S&elect a time" +msgstr "选择时间(&e)" + +#: ../kshutdown/mmainwindow.cpp:596 +msgid "Time From Now (HH:MM)" +msgstr "(HH:MM)后执行命令" + +#: ../kshutdown/mmainwindow.cpp:597 +msgid "At Date/Time" +msgstr "在选择的日期/时间执行命令" + +#: ../kshutdown/mmainwindow.cpp:598 +msgid "When selected application exit" +msgstr "当选择的应用程序关闭" + +#: ../kshutdown/mmainwindow.cpp:602 +msgid "Select the type of delay." +msgstr "选择一种延时方式" + +#: ../kshutdown/mmainwindow.cpp:617 +msgid "Selected time." +msgstr "选择的时间:" + +#: ../kshutdown/mmainwindow.cpp:644 +msgid "TEST MODE" +msgstr "测试模式" + +#: ../kshutdown/mmainwindow.cpp:651 +msgid "Remaining time: <b>%1</b>" +msgstr "剩余时间:<b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:651 ../kshutdown/actions.cpp:324 +#: ../kshutdown/confirmation.cpp:77 +msgid "Unknown" +msgstr "不认识" + +#: ../kshutdown/mmainwindow.cpp:652 +msgid "Selected time: <b>%1</b>" +msgstr "选择的时间: <b>%1</b>" + +#: ../kshutdown/mmainwindow.cpp:653 +msgid "Selected action: <b>%1</b>" +msgstr "选择的命令: <b>%1</b>." + +#: ../kshutdown/mmainwindow.cpp:656 +msgid "<b>Note: </b> The test mode is enabled" +msgstr "<b>注意: </b> 测试模式生效" + +#: ../kshutdown/mmainwindow.cpp:849 ../kshutdown/mmainwindow.cpp:867 +msgid "KShutDown has been minimized" +msgstr "" + +#: ../kshutdown/mmainwindow.cpp:879 ../kshutdown/mmainwindow.cpp:888 +#, fuzzy +msgid "KShutDown has quit" +msgstr "KShutDown菜单" + +#: ../kshutdown/actions.cpp:63 +msgid "Please wait..." +msgstr "请等待:" + +#: ../kshutdown/actions.cpp:85 +msgid "" +"Could not logout properly.\n" +"The session manager cannot be contacted." +msgstr "不能被注销" + +#: ../kshutdown/actions.cpp:316 +msgid "Nothing" +msgstr "Nada" + +#: ../kshutdown/actions.cpp:317 ../kshutdownlockout/lockout.cpp:185 +msgid "Turn Off Computer" +msgstr "关闭计算机" + +#: ../kshutdown/actions.cpp:318 ../kshutdownlockout/lockout.cpp:179 +msgid "Restart Computer" +msgstr "重启计算机" + +#: ../kshutdown/actions.cpp:319 +msgid "Lock Session" +msgstr "锁住会话" + +#: ../kshutdown/actions.cpp:320 ../kshutdownlockout/lockout.cpp:173 +msgid "End Current Session" +msgstr "结束当前会话" + +#: ../kshutdown/actions.cpp:359 +msgid "Action failed! (%1)" +msgstr "命令失败!(que = %1)" + +#: ../kshutdown/actions.cpp:403 +msgid "kdesktop: DCOP call failed!" +msgstr "" + +#: ../kshutdown/systemconfig.cpp:65 +msgid "System Configuration" +msgstr "系统设置" + +#: ../kshutdown/systemconfig.cpp:76 ../kshutdown/mmessagedialog.cpp:48 +msgid "Message" +msgstr "消息" + +#: ../kshutdown/systemconfig.cpp:82 +msgid "" +"Tip: If you have problem with the \"/sbin/shutdown\" command,\n" +"try to modify the \"/etc/shutdown.allow\" file,\n" +"then run \"/sbin/shutdown\" command with the additional \"-a\" parameter.\n" +"\n" +"Click here for more information." +msgstr "" +"提示:如果\"/sbin/shutdown\" 命令有问题,\n" +" 请尝试修改 \"/etc/shutdown.allow\" 文件,\n" +" 然后附带 \"-a\" 参数运行 \"/sbin/shutdown\" \n" +" \n" +" 点击\"这里\"获得更多信息." + +#: ../kshutdown/systemconfig.cpp:91 +msgid "No problems were found." +msgstr "未发现程序" + +#: ../kshutdown/systemconfig.cpp:122 +msgid "Program \"%1\" was not found!" +msgstr "未发现程序 \"%1\" " + +#: ../kshutdown/systemconfig.cpp:129 +msgid "No permissions to execute \"%1\"." +msgstr "不允许运行 \"%1\"." + +#: ../kshutdown/systemconfig.cpp:138 +msgid "" +"It seems that this is not a KDE full session.\n" +"KShutDown was designed to work with KDE.\n" +"However, you can customize Actions in the KShutDown settings dialog\n" +"(Settings -> Configure KShutDown... -> Actions)." +msgstr "" +"KShutDown是在KDE下设计的.\n" +"然而,您可自定义动作(设置 -> 配置KShutDown.... -> 动作)" + +#: ../kshutdown/systemconfig.cpp:155 +msgid "" +"Tip: You can customize Actions to work with GDM.\n" +"(Settings -> Configure KShutDown... -> Actions)" +msgstr "提示: 您可在GDM中自定义动作(设置 -> 配置KShutDown.... -> 动作)" + +#: ../kshutdown/systemconfig.cpp:156 +msgid "" +"KDE Display Manager is not running,\n" +"or the shut down/reboot function is disabled.\n" +"\n" +"Click here to configure KDM." +msgstr "" +"KDE显示管理器没有运行,\n" +"或者关闭/重启功能被取消.\n" +"\n" +"点击\"这里\"设置KDM" + +#: ../kshutdown/mactioneditdialog.cpp:72 +msgid "Select a method:" +msgstr "选择一个方式:" + +#: ../kshutdown/mactioneditdialog.cpp:82 +msgid "Enter a custom command:" +msgstr "键入用户命令:" + +#: ../kshutdown/mactioneditdialog.cpp:89 +msgid "Run command" +msgstr "运行命令(&O)" + +#: ../kshutdown/mactioneditdialog.cpp:92 +msgid "Pause after run command:" +msgstr "运行命令后暂停" + +#: ../kshutdown/mactioneditdialog.cpp:95 +msgid "second(s)" +msgstr "秒(s)" + +#: ../kshutdown/mactioneditdialog.cpp:111 +msgid "" +"In most cases you need privileges to shut down system (e.g. run /sbin/" +"shutdown)" +msgstr "多数情况下您需要有特权才能关闭系统(例如运行 /sbin/shutdown)" + +#: ../kshutdown/mactioneditdialog.cpp:113 +msgid "" +"If you are using <b>KDE</b> and <b>KDM</b> (KDE Display Manager), then set " +"all methods to <i>KDE</i>" +msgstr "" +"如果您正在使用<b>KDE</b> 和 <b>KDM</b> (KDE显示管理器),设置所有模式为" +"<i>KDE</i>" + +#: ../kshutdown/mactioneditdialog.cpp:114 +msgid "" +"If you are using <b>KDE</b> and display manager different than <b>KDM</b>, " +"then set <i>Turn Off Computer</i> and <i>Restart Computer</i> methods to <i>/" +"sbin/...</i>" +msgstr "" +"如果您正在使用<b>KDE</b>,显示管理器与<b>KDM</b>不同,则设置<i>关闭计算机</i> " +"和 <i>重启计算机</i> 方式为 <i>/sbin/...</i>" + +#: ../kshutdown/mactioneditdialog.cpp:116 +msgid "Manuals:" +msgstr "手册" + +#: ../kshutdown/mactioneditdialog.cpp:137 +msgid "User Command" +msgstr "使用者命令" + +#: ../kshutdown/mmessagedialog.cpp:79 +msgid "Remaining time." +msgstr "剩余时间." + +#: ../kshutdown/appobserver.cpp:57 +msgid "Refresh the list of processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:63 +msgid "List of the running processes" +msgstr "" + +#: ../kshutdown/appobserver.cpp:66 +msgid "Kill" +msgstr "终止某命令" + +#: ../kshutdown/appobserver.cpp:68 +#, fuzzy +msgid "Kill the selected process" +msgstr "选择的进程不存在" + +#: ../kshutdown/appobserver.cpp:80 +msgid "Waiting for \"%1\"" +msgstr "等待\"%1\"" + +#: ../kshutdown/appobserver.cpp:111 +msgid "The selected process does not exist!" +msgstr "选择的进程不存在" + +#: ../kshutdown/appobserver.cpp:164 +msgid "Could not execute command<br><br><b>%1</b>" +msgstr "不能运行命令<b>%1</b>." + +#: ../kshutdown/appobserver.cpp:191 +msgid "" +"Are you sure you want to KILL<br><b>%1</b>?<br><br>All unsaved data will be " +"lost!" +msgstr "您确认要终止<br><b>%1</b>?<br><br>,所有未保存的数据将丢失!" + +#: ../kshutdown/appobserver.cpp:206 +msgid "Process not found<br><b>%1</b>" +msgstr "进程未发现<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:212 +msgid "No permissions to kill<br><b>%1</b>" +msgstr "不允许终止<br><b>%1</b>" + +#: ../kshutdown/appobserver.cpp:221 +msgid "DEAD: %1" +msgstr "" + +#: ../kshutdown/confirmation.cpp:65 +msgid "Confirm" +msgstr "确认" + +#: ../kshutdown/confirmation.cpp:74 +#, fuzzy +msgid "&Cancel" +msgstr "命令: %1" + +#: ../kshutdown/confirmation.cpp:79 +msgid "" +"Are you sure?<br><br>Selected Action: <b>%1</b><br>Selected Time: <b>%2</b>" +msgstr "" + +#: ../kshutdown/_translatorinfo.cpp:1 _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "张旭亮" + +#: ../kshutdown/_translatorinfo.cpp:3 _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "cnsdxl@gmail.com" + +#: ../kshutdownlockout/lockout.cpp:122 +msgid "Click for KShutDown main window<br>Click and hold for menu" +msgstr "" + +#: ../kshutdownlockout/lockout.cpp:150 ../kshutdownlockout/lockout.cpp:157 +#: ../kshutdownlockout/lockout.cpp:208 +msgid "Could not run KShutDown!" +msgstr "不能执行KShutDown <b>%1</b>." + +#: ../kshutdownlockout/lockout.cpp:167 +#, fuzzy +msgid "Lock Screen" +msgstr "锁定屏幕" + +#: ../kshutdownlockout/lockout.cpp:199 +#, fuzzy +msgid "&Configure KShutDown..." +msgstr "设置(&C):KShutDown...." + +#~ msgid "Are you sure?" +#~ msgstr "您确定吗?" + +#~ msgid "Stop [Esc]" +#~ msgstr "取消" + +#~ msgid "" +#~ "<b>Tip:</b> Use the <b>Middle Mouse Button</b> to display the actions menu" +#~ msgstr "<b>提示:</b> 使用 <b>鼠标中键</b> 显示动作菜单" + +#~ msgid "No delay" +#~ msgstr "无延时" + +#~ msgid "Create Link" +#~ msgstr "建立连接" + +#~ msgid "&I'm Sure" +#~ msgstr "确定" + +#, fuzzy +#~ msgid "&Cancel: %1" +#~ msgstr "命令: %1" + +#~ msgid "KShutDown Actions (no delay!)" +#~ msgstr "KShutDown动作 (无延时!)" + +#~ msgid "Actions (no delay!)" +#~ msgstr "动作(无延时!)" + +#~ msgid "&Turn Off Computer" +#~ msgstr "关机(&T)" + +#~ msgid "&Restart Computer" +#~ msgstr "重启(&R)" + +#~ msgid "&Lock Session" +#~ msgstr "锁定会话(&L)" + +#~ msgid "&End Current Session" +#~ msgstr "结束当前会话(&E)" + +#~ msgid "&Immediate Action" +#~ msgstr "立即执行(&I)" + +#~ msgid "&Stop" +#~ msgstr "停止(&S)" + +#~ msgid "Run KShutDown" +#~ msgstr "运行KSutDown" + +#~ msgid "&Run KShutDown" +#~ msgstr "运行KSutDown(&R)" + +#~ msgid "&Show Lock Button" +#~ msgstr "显示锁定按钮(&S)" + +#~ msgid "MStatsTab" +#~ msgstr "MStatsTab" + +#~ msgid "SystemConfig" +#~ msgstr "系统设置" + +#~ msgid "Lockout" +#~ msgstr "注销" diff --git a/sounds/1m.ogg b/sounds/1m.ogg Binary files differnew file mode 100644 index 0000000..70a8a52 --- /dev/null +++ b/sounds/1m.ogg diff --git a/sounds/5m.ogg b/sounds/5m.ogg Binary files differnew file mode 100644 index 0000000..7e00def --- /dev/null +++ b/sounds/5m.ogg diff --git a/sounds/COPYRIGHT b/sounds/COPYRIGHT new file mode 100644 index 0000000..8c09bc8 --- /dev/null +++ b/sounds/COPYRIGHT @@ -0,0 +1 @@ +(C) Caryn "Hellchick" Law diff --git a/sounds/Makefile.am b/sounds/Makefile.am new file mode 100644 index 0000000..1cab2f5 --- /dev/null +++ b/sounds/Makefile.am @@ -0,0 +1,10 @@ +eventsrcdir = $(kde_datadir)/kshutdown +eventsrc_DATA = eventsrc + +soundsdir = $(kde_datadir)/kshutdown/sounds +sounds_DATA = \ + COPYRIGHT \ + 1m.ogg \ + 5m.ogg + +EXTRA_DIST = $(eventsrc_DATA) $(sounds_DATA) diff --git a/sounds/eventsrc b/sounds/eventsrc new file mode 100644 index 0000000..7266977 --- /dev/null +++ b/sounds/eventsrc @@ -0,0 +1,29 @@ +# encoding: UTF-8 +[!Global!] +IconName=kshutdown +Comment=KShutDown + +[kshutdown-5m] +Name=5 Minutes Warning +Comment=5 Minutes Warning +Comment[it]=Avvertimento a 5 minuti +Comment[pl]=Ostrzeżenie: 5 minut +Comment[el]=Προειδοποίηση των 5 λεπτών +default_sound=5m.ogg +default_presentation=72 + +[kshutdown-1m] +Name=1 Minute Warning +Comment=1 Minute Warning +Comment[it]=Avvertimento a un minuto +Comment[pl]=Ostrzeżenie: 1 minuta +Comment[el]=Προειδοποίηση του 1 λεπτού +default_sound=1m.ogg +default_presentation=72 + +[kshutdown-runerror] +Name=Run Error +Comment=Run Error +Comment[pl]=Błąd uruchomienia +Comment[el]=Σφάλμα εκτέλεσης +default_presentation=88
\ No newline at end of file diff --git a/stamp-h.in b/stamp-h.in new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/stamp-h.in @@ -0,0 +1 @@ +timestamp @@ -0,0 +1,8 @@ +doc +extras +karamba +kshutdown +kshutdownlockout +pics +po +sounds |