diff options
| author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-01 18:16:46 +0000 | 
|---|---|---|
| committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-01 18:16:46 +0000 | 
| commit | a7af74e75730559f7f9661e449eb269e356d9907 (patch) | |
| tree | 72026b40b3a513aa21d630fb09ae10edab7f9e18 /app_templates | |
| download | pytdeextensions-a7af74e7.tar.gz pytdeextensions-a7af74e7.zip | |
Added KDE3 version of pykdeextensions
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/libraries/pykdeextensions@1097589 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'app_templates')
67 files changed, 5529 insertions, 0 deletions
| diff --git a/app_templates/kcontrol_module/AUTHORS b/app_templates/kcontrol_module/AUTHORS new file mode 100644 index 0000000..0463c0d --- /dev/null +++ b/app_templates/kcontrol_module/AUTHORS @@ -0,0 +1 @@ +$AUTHOR$ <$EMAIL$> diff --git a/app_templates/kcontrol_module/COPYING b/app_templates/kcontrol_module/COPYING new file mode 100644 index 0000000..c13faf0 --- /dev/null +++ b/app_templates/kcontrol_module/COPYING @@ -0,0 +1,340 @@ +		    GNU GENERAL PUBLIC LICENSE +		       Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. +                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +			    Preamble + +  The licenses for most software are designed to take away your +freedom to share and change it.  By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users.  This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it.  (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.)  You can apply it to +your programs, too. + +  When we speak of free software, we are referring to freedom, not +price.  Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +  To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +  For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have.  You must make sure that they, too, receive or can get the +source code.  And you must show them these terms so they know their +rights. + +  We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +  Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software.  If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +  Finally, any free program is threatened constantly by software +patents.  We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary.  To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +  The precise terms and conditions for copying, distribution and +modification follow. + +		    GNU GENERAL PUBLIC LICENSE +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +  0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License.  The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language.  (Hereinafter, translation is included without limitation in +the term "modification".)  Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope.  The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +  1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +  2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +    a) You must cause the modified files to carry prominent notices +    stating that you changed the files and the date of any change. + +    b) You must cause any work that you distribute or publish, that in +    whole or in part contains or is derived from the Program or any +    part thereof, to be licensed as a whole at no charge to all third +    parties under the terms of this License. + +    c) If the modified program normally reads commands interactively +    when run, you must cause it, when started running for such +    interactive use in the most ordinary way, to print or display an +    announcement including an appropriate copyright notice and a +    notice that there is no warranty (or else, saying that you provide +    a warranty) and that users may redistribute the program under +    these conditions, and telling the user how to view a copy of this +    License.  (Exception: if the Program itself is interactive but +    does not normally print such an announcement, your work based on +    the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole.  If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works.  But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +  3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +    a) Accompany it with the complete corresponding machine-readable +    source code, which must be distributed under the terms of Sections +    1 and 2 above on a medium customarily used for software interchange; or, + +    b) Accompany it with a written offer, valid for at least three +    years, to give any third party, for a charge no more than your +    cost of physically performing source distribution, a complete +    machine-readable copy of the corresponding source code, to be +    distributed under the terms of Sections 1 and 2 above on a medium +    customarily used for software interchange; or, + +    c) Accompany it with the information you received as to the offer +    to distribute corresponding source code.  (This alternative is +    allowed only for noncommercial distribution and only if you +    received the program in object code or executable form with such +    an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it.  For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable.  However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +  4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License.  Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +  5. You are not required to accept this License, since you have not +signed it.  However, nothing else grants you permission to modify or +distribute the Program or its derivative works.  These actions are +prohibited by law if you do not accept this License.  Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +  6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions.  You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +  7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License.  If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all.  For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices.  Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +  8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded.  In such case, this License incorporates +the limitation as if written in the body of this License. + +  9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time.  Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number.  If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation.  If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +  10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission.  For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this.  Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +			    NO WARRANTY + +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +		     END OF TERMS AND CONDITIONS + +	    How to Apply These Terms to Your New Programs + +  If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +  To do so, attach the following notices to the program.  It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + +    <one line to give the program's name and a brief idea of what it does.> +    Copyright (C) <year>  <name of author> + +    This program is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 2 of the License, or +    (at your option) any later version. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program; if not, write to the Free Software +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +    Gnomovision version 69, Copyright (C) year name of author +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +    This is free software, and you are welcome to redistribute it +    under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License.  Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary.  Here is a sample; alter the names: + +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program +  `Gnomovision' (which makes passes at compilers) written by James Hacker. + +  <signature of Ty Coon>, 1 April 1989 +  Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs.  If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library.  If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/app_templates/kcontrol_module/ChangeLog b/app_templates/kcontrol_module/ChangeLog new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kcontrol_module/ChangeLog diff --git a/app_templates/kcontrol_module/INSTALL b/app_templates/kcontrol_module/INSTALL new file mode 100644 index 0000000..b94cd85 --- /dev/null +++ b/app_templates/kcontrol_module/INSTALL @@ -0,0 +1,43 @@ +Basic Installation +================== +These are generic installation instructions. + +This software uses the Python language's distutils system for installation. +A detailed guide for users and system administrators to using distutils to +install software can be found here: + +    http://docs.python.org/inst/inst.html + +The simplest way to install this software is to run the following command as +the root user: + +    python setup.py install + +The setup.py script will automatically detect the directories to use for +documentation, binaries and other software files. + + +Uninstallation +============== +During installation setup.py creates list of files and directories that +were installed in a file called install_log.txt.  + +    python setup.py uninstall + + +Installing into an alternate root +================================= +For packaging purposes it is often very useful to be able to install all files +relative not to the usual root directory (/) but into an alternative +directory. + +    python setup.py install --root=/tmp/alternativeroot/ + + +Operation Controls +================== +--verbose +    Print more information about what setup.py is doing. +     +--help +    Print a summary of the options to setup.py, and exit. diff --git a/app_templates/kcontrol_module/MANIFEST.in b/app_templates/kcontrol_module/MANIFEST.in new file mode 100644 index 0000000..c2dde3f --- /dev/null +++ b/app_templates/kcontrol_module/MANIFEST.in @@ -0,0 +1,6 @@ +recursive-include doc *.docbook *.png +recursive-include po *.po *.pot +include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO +global-include *.desktop *.py *.ui *.png *.lsm +global-exclude *~ .svn +global-exclude *~ .cvs diff --git a/app_templates/kcontrol_module/NEWS b/app_templates/kcontrol_module/NEWS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kcontrol_module/NEWS diff --git a/app_templates/kcontrol_module/README b/app_templates/kcontrol_module/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kcontrol_module/README diff --git a/app_templates/kcontrol_module/TODO b/app_templates/kcontrol_module/TODO new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kcontrol_module/TODO diff --git a/app_templates/kcontrol_module/doc/en/index.docbook b/app_templates/kcontrol_module/doc/en/index.docbook new file mode 100644 index 0000000..325987f --- /dev/null +++ b/app_templates/kcontrol_module/doc/en/index.docbook @@ -0,0 +1,555 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +  <!ENTITY appname "<application>MyApplicaition 0.1</application>"> +  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname--> +  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc --> +  <!ENTITY % addindex "IGNORE"> +  <!ENTITY % English "INCLUDE"><!-- change language only here --> +   +   +  <!-- Do not define any other entities; instead, use the entities +       from kde-genent.entities and $LANG/user.entities. --> +]> +<!-- kdoctemplate v0.8 October 1 1999  +     Minor update to "Credits and Licenses" section on August 24, 2000 +     Removed "Revision history" section on 22 January 2001 +     Changed to Installation/Help menu entities 18 October 2001 +     Other minor cleanup and changes 18 October 2001 --> + + +<!-- +This template was designed by: David Rugge davidrugge@mindspring.com +with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr +and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de +of the KDE DocBook team. + +You may freely use this template for writing any sort of KDE documentation. +If you have any changes or improvements, please let us know. + +Remember: +- in XML, the case of the <tags> and attributes is relevant ; +- also, quote all attributes. + +Please don't forget to remove all these comments in your final documentation, +thanks ;-). +--> + +<!-- ................................................................ --> + +<!-- The language must NOT be changed here. --> + +<book lang="&language;"> + +<!-- This header contains all of the meta-information for the document such +as Authors, publish date, the abstract, and Keywords --> + +<bookinfo> +<title>The &appname; Handbook</title> + +<authorgroup> +<author> +<firstname></firstname> +<othername></othername> +<surname>%{AUTHOR}</surname> +<affiliation> +<address><email>%{EMAIL}</email></address> +</affiliation> +</author> +</authorgroup> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +<copyright> +<year>1999</year> +<year>%{YEAR}</year> +<holder>%{AUTHOR}</holder> +</copyright> +<!-- Translators: put here the copyright notice of the translation --> +<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook +     and in the FDL itself on how to use it. --> +<legalnotice>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(V.MM.LL), it could be used by automation scripts. +Do NOT change these in the translation. --> + +<date>2001-10-18</date> +<releaseinfo>%{VERSION}</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&appname; is an application specially designed to do nothing you would +ever want. +</para> +</abstract> + +<!-- This is a set of Keywords for indexing by search engines. +Please at least include KDE, the KDE package it is in, the name + of your application, and a few relevant keywords. --> + +<keywordset> +<keyword>KDE</keyword> +<keyword>%{APPNAME}</keyword> +<keyword>nothing</keyword> +<keyword>nothing else</keyword> +</keywordset> + +</bookinfo> + +<!-- The contents of the documentation begin here.  Label +each chapter so with the id attribute. This is necessary for two reasons: it +allows you to easily reference the chapter from other chapters of your +document, and if there is no ID, the name of the generated HTML files will vary +from time to time making it hard to manage for maintainers and for the CVS +system. Any chapter labelled (OPTIONAL) may be left out at the author's +discretion. Other chapters should not be left out in order to maintain a +consistent documentation style across all KDE apps. --> + +<chapter id="introduction"> +<title>Introduction</title> + +<!-- The introduction chapter contains a brief introduction for the +application that explains what it does and where to report +problems. Basically a long version of the abstract.  Don't include a +revision history. (see installation appendix comment) --> + +<para> +&appname; is a program that lets you do absolutely nothing. Please report +any problems or feature requests to the &kde; mailing lists. +</para> +</chapter> + +<chapter id="using-appname"> +<title>Using &appname;</title> + +<!-- This chapter should tell the user how to use your app. You should use as +many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document +your application. --> + +<para> + +<!-- Note that all graphics should be in .png format. Use no gifs because of +patent issues. --> + +<screenshot> +<screeninfo>Here's a screenshot of &appname;</screeninfo> +	<mediaobject> +	  <imageobject> +	    <imagedata fileref="screenshot.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="screenshot.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Screenshot</phrase> +	  </textobject> +	</mediaobject> +</screenshot> +</para> + + +<sect1 id="appname-features"> +<title>More &appname; features</title> + +<para>It slices! It dices! and it comes with a free toaster!</para> +<para> +The Squiggle Tool <guiicon><inlinemediaobject> +	  <imageobject> +	    <imagedata fileref="squiggle.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="squiggle.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Squiggle</phrase> +	  </textobject> +</inlinemediaobject></guiicon> is used to draw squiggly lines all over +the &appname; main window. It's not a bug, it's a feature! +</para> + +</sect1> +</chapter> + +<chapter id="commands"> +<title>Command Reference</title> + +<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the +application windows and their menubar and toolbar commands for easy reference. +Also include any keys that have a special function but have no equivalent in the +menus or toolbars. This may not be necessary for small apps or apps with no tool +or menu bars. --> + +<sect1 id="appname-mainwindow"> +<title>The main &appname; window</title> + +<sect2> +<title>The File Menu</title> +<para> +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice></term> +<listitem><para><action>Creates a new document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem><para><action>Saves the document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Quits</action> &appname;</para></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title>The <guimenu>Help</guimenu> Menu</title> + +<!-- Assuming you have a standard help menu (help, what's this, about --> +<!-- &appname;, about KDE) then the documentation is already written. --> +<!-- The following entity is valid anywhere that a variablelist is --> +<!-- valid.  --> + +&help.menu.documentation; + +</sect2> + +</sect1> +</chapter> + +<chapter id="developers"> +<title>Developer's Guide to &appname;</title> + +<!-- (OPTIONAL) A Programming/Scripting reference chapter should be +used for apps that use plugins or that provide their own scripting hooks +and/or development libraries. --> + +<para> +Programming &appname; plugins is a joy to behold. Just read through the next +66 pages of API's to learn how! +</para> + +<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you +should consult the docbook reference for further details. The example below was +taken from that reference and shortened a bit for readability. --> + +<refentry id="re-1007-unmanagechildren-1"> +<refmeta> +<refentrytitle>XtUnmanageChildren</refentrytitle> +<refmiscinfo>Xt - Geometry Management</refmiscinfo> +</refmeta> +<refnamediv> +<refname>XtUnmanageChildren +</refname> +<refpurpose>remove a list of children from a parent widget's managed +list. +<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm> +<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>  +</refpurpose> + +</refnamediv> +<refsynopsisdiv> +<refsynopsisdivinfo> +<date>4 March 1996</date> +</refsynopsisdivinfo> +<synopsis> +void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>) +    WidgetList <replaceable class="parameter">children</replaceable>; +    Cardinal <replaceable class="parameter">num_children</replaceable>; +</synopsis> + +<refsect2 id="r2-1007-unmanagechildren-1"> +<title>Inputs</title> +<variablelist> +<varlistentry> +<term><replaceable class="parameter">children</replaceable> +</term> +<listitem> +<para>Specifies an array of child widgets. Each child must be of +class RectObj or any subclass thereof. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term><replaceable class="parameter">num_children</replaceable> +</term> +<listitem> +<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>. +</para> +</listitem> +</varlistentry> +</variablelist> +</refsect2></refsynopsisdiv> + +<refsect1 id="r1-1007-unmanagechildren-1"> +<title>Description +</title> +<para><function>XtUnmanageChildren()</function> unmaps the specified widgets +and removes them from their parent's geometry management. +The widgets will disappear from the screen, and (depending +on its parent) may no longer have screen space allocated for +them. +</para> +<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have +the same parent. +</para> +<para>See the “Algorithm” section below for full details of the +widget unmanagement procedure. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-2"> +<title>Usage</title> +<para>Unmanaging widgets is the usual method for temporarily +making them invisible.  They can be re-managed with +<function>XtManageChildren()</function>. +</para> +<para>You can unmap a widget, but leave it under geometry +management by calling <function>XtUnmapWidget()</function>.  You can +destroy a widget's window without destroying the widget by +calling <function>XtUnrealizeWidget()</function>.  You can destroy a +widget completely with <function>XtDestroyWidget()</function>. +</para> +<para>If you are only going to unmanage a single widget, it is +more convenient to call <function>XtUnmanageChild()</function>.  It is +often more convenient to call <function>XtUnmanageChild()</function> +several times than it is to declare and initialize an array +of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling +<function>XtUnmanageChildren()</function> is more efficient, however, +because it only calls the parent's <function>change_managed()</function> +method once. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-3"> +<title>Algorithm +</title> +<para><function>XtUnmanageChildren()</function> performs the following: +</para> +<variablelist> +<varlistentry> +<term>- +</term> +<listitem> +<para>Ignores the child if it already is unmanaged or is being +destroyed. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term>- +</term> +<listitem> +<para>Otherwise, if the child is realized, it makes it nonvisible +by unmapping it. +</para> +</listitem> +</varlistentry> +</variablelist> +<para> +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-4"> +<title>Structures</title> +<para>The <type>WidgetList</type> type is simply an array of widgets: +</para> +<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList; +</screen> +</refsect1> +</refentry> + +</chapter> + +<chapter id="faq"> +<title>Questions and Answers</title> + +<!-- (OPTIONAL but recommended) This chapter should include all of the silly +(and not-so-silly) newbie questions that fill up your mailbox. This chapter +should be reserved for BRIEF questions and answers! If one question uses more +than a page or so then it should probably be part of the +"Using this Application" chapter instead. You should use links to +cross-reference questions to the parts of your documentation that answer them. +This is also a great place to provide pointers to other FAQ's if your users +must do some complicated configuration on other programs in order for your +application work. --> + +&reporting.bugs; +&updating.documentation; + +<qandaset id="faqlist"> +<qandaentry> +<question> +<para>My Mouse doesn't work. How do I quit &appname;?</para> +</question> +<answer> +<para>You silly goose! Check out the <link linkend="commands">Commands +Section</link> for the answer.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para>Why can't I twiddle my documents?</para> +</question> +<answer> +<para>You can only twiddle your documents if you have the foobar.lib +installed.</para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits"> + +<!-- Include credits for the programmers, documentation writers, and +contributors here. The license for your software should then be included below +the credits with a reference to the appropriate license file included in the KDE +distribution. --> + +<title>Credits and License</title> + +<para> +&appname; +</para> +<para> +Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> +<para> +Contributors: +<itemizedlist> +<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para> +</listitem> +<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para> +</listitem> +</itemizedlist> +</para> + +<para> +Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL;               <!-- FDL: do not remove --> + +<!-- Determine which license your application is licensed under,  +     and delete all the remaining licenses below: + +     (NOTE:  All documentation are licensed under the FDL,  +     regardless of what license the application uses) --> + +&underGPL;        	 <!-- GPL License --> +&underBSDLicense;        <!-- BSD License --> +&underArtisticLicense;   <!-- BSD Artistic License --> +&underX11License;        <!-- X11 License  --> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="getting-appname"> +<title>How to obtain &appname;</title> + +<!-- This first entity contains boiler plate for applications that are +part of KDE CVS.  You should remove it if you are releasing your +application -->  + +&install.intro.documentation; + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in kdesupport, +kdelibs, or kdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. +--> + +<para> +In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is +required in order to support the advanced &appname; features. &appname; uses +about 5 megs of memory to run, but this may vary depending on your +platform and configuration. +</para> + +<para> +All required libraries as well as &appname; itself can be found +on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>. +</para> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... --> +<para> +You can find a list of changes at <ulink +url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>. +</para> +</sect1> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +<!-- This entity contains the boilerplate text for standard --> +<!-- compilation instructions.  If your application requires any --> +<!-- special handling, remove it, and replace with your own text. --> + +&install.compile.documentation; + +</sect1> + +<sect1 id="configuration"> +<title>Configuration</title> + +<para>Don't forget to tell your system to start the <filename>dtd</filename> +dicer-toaster daemon first, or &appname; won't work !</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab  +--> + diff --git a/app_templates/kcontrol_module/po/README b/app_templates/kcontrol_module/po/README new file mode 100644 index 0000000..0e18f16 --- /dev/null +++ b/app_templates/kcontrol_module/po/README @@ -0,0 +1 @@ +.pot and .pot translation files should be placed here. diff --git a/app_templates/kcontrol_module/setup.py b/app_templates/kcontrol_module/setup.py new file mode 100755 index 0000000..6741051 --- /dev/null +++ b/app_templates/kcontrol_module/setup.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +########################################################################### +# setup - description                                                     # +# ------------------------------                                          # +# begin     : Fri Jun 27 2005                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : YOUR@EMAIL.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +import kdedistutils + +kdedistutils.setup(name="kcontrol_module", +    version="0.1.0", +    author="AUTHOR", +    author_email="YOUR@EMAIL.com", +    url="http://www.TESTAPP.com/", +    min_kde_version = "3.0.0", +    min_qt_version = "3.0.0", +    license = "GPL", +    application_data = ['src/kcontrol_module.py','src/KcontrolModuleWidgetUI.ui'], +    executable_links = [('kcontrol_module','kcontrol_module.py')], +    docbooks = [ ('doc/en','en') ], +    i18n = ('po',['src']), +    kcontrol_modules = [ ('src/kcontrol_module.desktop','kcontrol_module.py')] ) diff --git a/app_templates/kcontrol_module/src/KcontrolModuleWidgetUI.ui b/app_templates/kcontrol_module/src/KcontrolModuleWidgetUI.ui new file mode 100644 index 0000000..4ff94d7 --- /dev/null +++ b/app_templates/kcontrol_module/src/KcontrolModuleWidgetUI.ui @@ -0,0 +1,33 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>KcontrolModuleWidgetUI</class> +<widget class="QWidget"> +    <property name="name"> +        <cstring>KcontrolModuleWidgetUI</cstring> +    </property> +    <property name="geometry"> +        <rect> +            <x>0</x> +            <y>0</y> +            <width>600</width> +            <height>480</height> +        </rect> +    </property> +    <property name="caption"> +        <string>Form1</string> +    </property> +    <hbox> +        <property name="name"> +            <cstring>unnamed</cstring> +        </property> +        <widget class="QLabel"> +            <property name="name"> +                <cstring>textLabel1</cstring> +            </property> +            <property name="text"> +                <string>Congratulations, Kcontrol_module template application is working!</string> +            </property> +        </widget> +    </hbox> +</widget> +<layoutdefaults spacing="6" margin="11"/> +</UI> diff --git a/app_templates/kcontrol_module/src/hi16-app-kcontrol_module.png b/app_templates/kcontrol_module/src/hi16-app-kcontrol_module.png new file mode 100644 index 0000000..40fe05e --- /dev/null +++ b/app_templates/kcontrol_module/src/hi16-app-kcontrol_module.png @@ -0,0 +1,8 @@ +‰PNG + + +IHDR +¸àÿ5ÑM¼ZŒñfθ92@³ +–é2w”l†A;Àv“c)‡\)¬…/l	Fö\ÿžÏ“ß÷ù~ŸžSöŒüXºÅ¦©=t jÊ76ºþ{rumuüê_Š€% ¾ñ}Êfb{ñZéöRdYÁ7éC2ÊTWÕ“¦Ó²ã³O>ÍfX²GØÈµæÆ,F‹&/#x<Ž&Pµ·%]E«ÉÜ–C®fU¥ÕS¿»ïä +"Öl+²*±²²Jã»Ç°˜M¨ªJde…Ù9Hz]—qTÖPòBÉIÀ× +ÙÝ}±¦ÂQ±˜•—‰ ¤bRˆ¢³ªÒÛ÷€	ï]ánv–ïbf,Àûƒøçü:ÀLÑdÖ4€íPuCÀ ÊÔ7ÔòAK÷\ýô^¿ÏŸ=.~¾ö¡åÐ|ÙŽ2³wÄË|x¾ðw’ÎN†Vd/RKë‡ç6¼Æý+÷øæôɤ°¡ÄôÔĦú7fmcú5€hr¬96“MŠD#xÆ=IaûÞ‚OHxcú7=#	“U¦DæoVÏi diff --git a/app_templates/kcontrol_module/src/hi32-app-kcontrol_module.png b/app_templates/kcontrol_module/src/hi32-app-kcontrol_module.png new file mode 100644 index 0000000..8a6093e --- /dev/null +++ b/app_templates/kcontrol_module/src/hi32-app-kcontrol_module.png @@ -0,0 +1,26 @@ +‰PNG + + +IHDR +:IDATxœ¥—{Œ\Õ}Ç?wîyÜ;;ûðâ}`¯õ®×k̲~&Žq¥R-H£„Gpk +PPJ£&( +´J¥¨EQþ©Ú4Iq	QDHC~D6ØÂBص—×®ÙµÙÇÎÌ™;Ï;Ó?f½1µ i{¤£«+]ï÷œóý}¿¿kö_åòB”«e,Ë¢3²„Ö–6”TضÍ3'Ÿ``ÙÀIe«m=½½¹§ü´ý‰¯}›j ´¢^«w™O<wìYë¯þkV_Ý˺˜xå,“¯MðÏ?ý.½½‹x!þ—c¤ÄŒôlÛ8¼‘ÕÞvßßoZ—¶ó÷ßÿ¿;ퟙ<“ØrÝVöí¾ÍŒOŽ›»>ÿ™\Oü¾Àõz‘U#fhÅa7Œë†YÒÙI5¨rì—‡ÍÉÇùøµŸ@¹[ +>±u;µj¿ùÛoš¯íQk╳ÿ?ç¢çÌÚ•kq× +£…-ít/ïE(‰tB	¤£06Ñse_¸û€ù·ýžõ¥?ºÿ²uÿ©7Þ»ì£ÑQ3¼r)%‘H+B +ŒÖŽ6´ë²CHW£ØRШ7ؾk33³ÌM¾Ïá_<dzGf¬XºbqíÕÀ@ï€YӷƬ\oÖZ‡ã8„B!</MP	X½i-õzƒJ©ŒÐ§ÅA(AHØHGáD\æfcTJeÊùkV³aõ lñÛYkÔ/¼rÐõ +á:.®ãbŒ¡X,ò©[w²sï „ åyh) +¼tè†Á–¢©a#” •H㶸äÓ>gÆ~ÃSo +“/äY58È—¿õç$ÓiÆÆßÄÏøTJjA +€5›†¹0ù> +n¼å“ÜtçMt?±€çgj|’#O=‹]»žùdÛ¶È•r(¥Á¯ß±¿z'N½Œ—ÌÏä)ûE +™<A±BP®0ùê[,íëfåÕýTƒR	¤Va#¥ ªø¦ÀÃ_yˆ‡ÿâ3zõ&Ë›K‘ÍgAP¡T…Bcp—°nŠoó&þô+÷ðËN’IfðS9ò©~*KÎË’ñÒŒMŽQ(˜MͲÿ‹÷²ãSŸFHA(d¡”Dj…m‡B`Œaï·òÝïü£¹fhÔõzî¥Ý +cÓ³ +PJ¢±8^*K.£àù³ +žOP	š>²ìå(Â--H°,©$•R…j9 Ÿõ‰'¢$²‰¢–šz£Ž1†C/¼ÀÎ;8üâ>ô|pó-ûÁ¥°ÑZ“ÉfñRY¼x?™%7Ÿ!—Îà%ÓÄçc+EĪѡœmÛmbáî¤#Iœ3xÍ A©BÑÏ3vnœF£Ñ4š¬£óqvîØÀSÿãíÏßu§B •BIT +G)²^sç~*G&šb~.N46Ç©3§Hù©³ÀHèÀý_lÏ»%êµ:Ò‘¸m-dbi\×Å +YTÊR~ +À3Æ`ŒáÊ® +¹±x”S§(WË–eYÕÅ,8òäa{âQnÛ÷¹fí*±0%á¶þðö›I—Ó] +¨Uöܲ!ìEg»(6-›¡ã:.JJ”T´EZ	ªÇ^:E$â²rÝÀbâj¡q¥K*—"¬ÂÍ–L\ +i#¤h†‡h-ÂÆ–M[½èérá½µ¥Gkå eóØíTN¾ršb¾H6•ʼn¸ô/ë ? h°e3е«éìZ‚‚B¾ˆTÍl—²*J6½])…‚ÙX?—ÇC{Gë¯ZG½QçĽL¹T!›Ê’MdÈDS´/YÀµC×^š]M[?~£õîô›æÎ/ÜE,ž T(á¸BØ\¬oÛ¡ìÕ²,¦¦Ïãg}ò™<¥|	Óh0ñú[,_µŒ H'<ò©Ù¸G*–À5W¹fIë’¤§õ½¤ZX·yÿåßÍõ×m¥œ/áÍ%ÙuûMTk5¤X¡aÇEkÅÔôéd¦ép©…´O¥Øô·µ…eÃ+(Ê$gb¤ãó\8žã¯Ç/ù +›·†l!0µZW'^]ì,ËâÿBâwؼzõFƒî%Ýöž9-¥Þ+Ú® ÑhΧ±,«ÙðòÞbøûŽÿìl€\l4f7 diff --git a/app_templates/kcontrol_module/src/kcontrol_module.desktop b/app_templates/kcontrol_module/src/kcontrol_module.desktop new file mode 100644 index 0000000..f0381c5 --- /dev/null +++ b/app_templates/kcontrol_module/src/kcontrol_module.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Name=Kcontrol module +Name[en]=Kcontrol module +name[en_GB]=Kcontrol module +Comment=Kcontrol module template +Comment[en]=Kcontrol module template +Comment[en_GB]=Kcontrol module template +Icon=daemons.png +X-KDE-ModuleType=Library +X-KDE-Library=kcontrol_module +X-KDE-FactoryName=kcontrol_module +X-KDE-RootOnly=false +Type=Application +Exec=kcmshell kcontrol_module +Categories=QT;KDE;X-KDE-settings-system; diff --git a/app_templates/kcontrol_module/src/kcontrol_module.lsm b/app_templates/kcontrol_module/src/kcontrol_module.lsm new file mode 100644 index 0000000..43d0d5f --- /dev/null +++ b/app_templates/kcontrol_module/src/kcontrol_module.lsm @@ -0,0 +1,16 @@ +Begin3 +Title:          $APPNAME$ -- Some description +Version:        $VERSION$ +Entered-date:    +Description:     +Keywords:       KDE Qt +Author:         $AUTHOR$ <$EMAIL$> +Maintained-by:  $AUTHOR$ <$EMAIL$> +Home-page:       +Alternate-site:  +Primary-site:   ftp://ftp.kde.org/pub/kde/unstable/apps/utils +                xxxxxx  $APPNAMELC$-$VERSION$.tar.gz +                xxx     $APPNAMELC$-$VERSION$.lsm +Platform:       Linux. Needs KDE +Copying-policy: $LICENSE$ +End diff --git a/app_templates/kcontrol_module/src/kcontrol_module.py b/app_templates/kcontrol_module/src/kcontrol_module.py new file mode 100755 index 0000000..b435287 --- /dev/null +++ b/app_templates/kcontrol_module/src/kcontrol_module.py @@ -0,0 +1,166 @@ +#!/usr/bin/python +########################################################################### +# kcontrol_module - description                                           # +# ------------------------------                                          # +# begin     : Mon May 2 2005                                              # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +import sys +from qt import * +from kdecore import * +from kdeui import * + +import kdedesigner +from KcontrolModuleWidgetUI import * + +description = "A Kcontrol module" +version = "0.1" + +############################################################################ +def AboutData(): +    global version,description +     +    about_data = KAboutData("kcontrol_module", "kcontrol_module", version, \ +        description, KAboutData.License_GPL, "(C) 2005 AUTHOR", None, None,\ +        "your@email.com") +    about_data.addAuthor("AUTHOR", None, "your@email.com") +    return about_data + +############################################################################ +class KcontrolModuleWidget(KcontrolModuleWidgetUI): +    def __init__(self,parent=None): +        KcontrolModuleWidgetUI.__init__(self,parent,"Kcontrol module") +    # Add other methods, slots and signals here. + +############################################################################ +# The base class that we use depends on whether this is running inside +# kcontrol or as a standalone application. +# Are we running as a separate standalone application or in KControl? +standalone = __name__=='__main__' + +if standalone: +    programbase = KDialogBase +else: +    programbase = KCModule +     +class KcontrolModuleApp(programbase): +    ######################################################################## +    def __init__(self,parent=None,name=None): +        global standalone +        if standalone: +            KDialogBase.__init__(self,KJanusWidget.Plain,"Kcontrol module",KDialogBase.User1|KDialogBase.Close, KDialogBase.Close) +            self.setButtonText(KDialogBase.User1,"About") +        else: +            KCModule.__init__(self,parent,name) +            # Create a configuration object. +            self.config = KConfig("kcontrol_module") +            self.setButtons(0) +            self.aboutdata = AboutData() + +        # The appdir needs to be explicitly otherwise we won't be able to +        # load our icons and images. +        KGlobal.iconLoader().addAppDir("kcontrol_module") +         +        if standalone: +            toplayout = QVBoxLayout( self.plainPage(), 0, KDialog.spacingHint() ) +            mainwidget = KcontrolModuleWidget(self.plainPage()) +        else: +            toplayout = QVBoxLayout( self, 0, KDialog.spacingHint() ) +            mainwidget = KcontrolModuleWidget(self) +             +        toplayout.addWidget(mainwidget) + +        self.aboutus = KAboutApplication(self) +                 +    ######################################################################## +    def __del__(self): +        pass + +    ######################################################################## +    # KDialogBase method +    def exec_loop(self): +        global programbase +         +        # Load configuration here +        self.__loadOptions() +         +        programbase.exec_loop(self) +         +        # Save configuration here +        self.__saveOptions() + +    ######################################################################## +    # KDialogBase method +    def slotUser1(self): +        self.aboutus.show() + +    ######################################################################## +    def slotCloseButton(self): +        self.close() + +    ######################################################################## +    def __loadOptions(self): +        global kapp +        config = kapp.config() +        config.setGroup("General") +        size = config.readSizeEntry("Geometry") +        if size.isEmpty()==False: +            self.resize(size) + +    ####################################################################### +    def __saveOptions(self): +        global kapp +        config = kapp.config() +        config.setGroup("General") +        config.writeEntry("Geometry", self.size()) +        config.sync() + +    ####################################################################### +    # KControl virtual void methods +    def load(self): +        pass +    def save(self): +        pass +    def defaults(self): +        pass         +    def sysdefaults(self): +        pass +     +    def aboutData(self): +        # Return the KAboutData object which we created during initialisation. +        return self.aboutdata +     +    def buttons(self): +        # Only supply a Help button. Other choices are Default and Apply. +        return KCModule.Help + +############################################################################ +# This is the entry point used when running this module outside of kcontrol. +def main(): +    global kapp +    about_data = AboutData() +    KCmdLineArgs.init(sys.argv,about_data) +    kapp = KApplication() +    myapp = KcontrolModuleApp() +    myapp.exec_loop() +     +############################################################################ +# Factory function for KControl +def create_kcontrol_module(parent,name): +    global kapp +    kapp = KApplication.kApplication() +    return KcontrolModuleApp(parent, name) +     +############################################################################ +if standalone: +    main() diff --git a/app_templates/kdeapp/AUTHORS b/app_templates/kdeapp/AUTHORS new file mode 100644 index 0000000..0463c0d --- /dev/null +++ b/app_templates/kdeapp/AUTHORS @@ -0,0 +1 @@ +$AUTHOR$ <$EMAIL$> diff --git a/app_templates/kdeapp/COPYING b/app_templates/kdeapp/COPYING new file mode 100644 index 0000000..c13faf0 --- /dev/null +++ b/app_templates/kdeapp/COPYING @@ -0,0 +1,340 @@ +		    GNU GENERAL PUBLIC LICENSE +		       Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. +                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +			    Preamble + +  The licenses for most software are designed to take away your +freedom to share and change it.  By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users.  This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it.  (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.)  You can apply it to +your programs, too. + +  When we speak of free software, we are referring to freedom, not +price.  Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +  To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +  For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have.  You must make sure that they, too, receive or can get the +source code.  And you must show them these terms so they know their +rights. + +  We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +  Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software.  If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +  Finally, any free program is threatened constantly by software +patents.  We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary.  To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +  The precise terms and conditions for copying, distribution and +modification follow. + +		    GNU GENERAL PUBLIC LICENSE +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +  0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License.  The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language.  (Hereinafter, translation is included without limitation in +the term "modification".)  Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope.  The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +  1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +  2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +    a) You must cause the modified files to carry prominent notices +    stating that you changed the files and the date of any change. + +    b) You must cause any work that you distribute or publish, that in +    whole or in part contains or is derived from the Program or any +    part thereof, to be licensed as a whole at no charge to all third +    parties under the terms of this License. + +    c) If the modified program normally reads commands interactively +    when run, you must cause it, when started running for such +    interactive use in the most ordinary way, to print or display an +    announcement including an appropriate copyright notice and a +    notice that there is no warranty (or else, saying that you provide +    a warranty) and that users may redistribute the program under +    these conditions, and telling the user how to view a copy of this +    License.  (Exception: if the Program itself is interactive but +    does not normally print such an announcement, your work based on +    the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole.  If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works.  But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +  3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +    a) Accompany it with the complete corresponding machine-readable +    source code, which must be distributed under the terms of Sections +    1 and 2 above on a medium customarily used for software interchange; or, + +    b) Accompany it with a written offer, valid for at least three +    years, to give any third party, for a charge no more than your +    cost of physically performing source distribution, a complete +    machine-readable copy of the corresponding source code, to be +    distributed under the terms of Sections 1 and 2 above on a medium +    customarily used for software interchange; or, + +    c) Accompany it with the information you received as to the offer +    to distribute corresponding source code.  (This alternative is +    allowed only for noncommercial distribution and only if you +    received the program in object code or executable form with such +    an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it.  For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable.  However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +  4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License.  Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +  5. You are not required to accept this License, since you have not +signed it.  However, nothing else grants you permission to modify or +distribute the Program or its derivative works.  These actions are +prohibited by law if you do not accept this License.  Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +  6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions.  You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +  7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License.  If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all.  For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices.  Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +  8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded.  In such case, this License incorporates +the limitation as if written in the body of this License. + +  9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time.  Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number.  If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation.  If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +  10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission.  For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this.  Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +			    NO WARRANTY + +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +		     END OF TERMS AND CONDITIONS + +	    How to Apply These Terms to Your New Programs + +  If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +  To do so, attach the following notices to the program.  It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + +    <one line to give the program's name and a brief idea of what it does.> +    Copyright (C) <year>  <name of author> + +    This program is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 2 of the License, or +    (at your option) any later version. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program; if not, write to the Free Software +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +    Gnomovision version 69, Copyright (C) year name of author +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +    This is free software, and you are welcome to redistribute it +    under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License.  Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary.  Here is a sample; alter the names: + +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program +  `Gnomovision' (which makes passes at compilers) written by James Hacker. + +  <signature of Ty Coon>, 1 April 1989 +  Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs.  If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library.  If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/app_templates/kdeapp/ChangeLog b/app_templates/kdeapp/ChangeLog new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeapp/ChangeLog diff --git a/app_templates/kdeapp/INSTALL b/app_templates/kdeapp/INSTALL new file mode 100644 index 0000000..b94cd85 --- /dev/null +++ b/app_templates/kdeapp/INSTALL @@ -0,0 +1,43 @@ +Basic Installation +================== +These are generic installation instructions. + +This software uses the Python language's distutils system for installation. +A detailed guide for users and system administrators to using distutils to +install software can be found here: + +    http://docs.python.org/inst/inst.html + +The simplest way to install this software is to run the following command as +the root user: + +    python setup.py install + +The setup.py script will automatically detect the directories to use for +documentation, binaries and other software files. + + +Uninstallation +============== +During installation setup.py creates list of files and directories that +were installed in a file called install_log.txt.  + +    python setup.py uninstall + + +Installing into an alternate root +================================= +For packaging purposes it is often very useful to be able to install all files +relative not to the usual root directory (/) but into an alternative +directory. + +    python setup.py install --root=/tmp/alternativeroot/ + + +Operation Controls +================== +--verbose +    Print more information about what setup.py is doing. +     +--help +    Print a summary of the options to setup.py, and exit. diff --git a/app_templates/kdeapp/MANIFEST.in b/app_templates/kdeapp/MANIFEST.in new file mode 100644 index 0000000..c2dde3f --- /dev/null +++ b/app_templates/kdeapp/MANIFEST.in @@ -0,0 +1,6 @@ +recursive-include doc *.docbook *.png +recursive-include po *.po *.pot +include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO +global-include *.desktop *.py *.ui *.png *.lsm +global-exclude *~ .svn +global-exclude *~ .cvs diff --git a/app_templates/kdeapp/NEWS b/app_templates/kdeapp/NEWS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeapp/NEWS diff --git a/app_templates/kdeapp/README b/app_templates/kdeapp/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeapp/README diff --git a/app_templates/kdeapp/TODO b/app_templates/kdeapp/TODO new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeapp/TODO diff --git a/app_templates/kdeapp/doc/en/index.docbook b/app_templates/kdeapp/doc/en/index.docbook new file mode 100644 index 0000000..325987f --- /dev/null +++ b/app_templates/kdeapp/doc/en/index.docbook @@ -0,0 +1,555 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +  <!ENTITY appname "<application>MyApplicaition 0.1</application>"> +  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname--> +  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc --> +  <!ENTITY % addindex "IGNORE"> +  <!ENTITY % English "INCLUDE"><!-- change language only here --> +   +   +  <!-- Do not define any other entities; instead, use the entities +       from kde-genent.entities and $LANG/user.entities. --> +]> +<!-- kdoctemplate v0.8 October 1 1999  +     Minor update to "Credits and Licenses" section on August 24, 2000 +     Removed "Revision history" section on 22 January 2001 +     Changed to Installation/Help menu entities 18 October 2001 +     Other minor cleanup and changes 18 October 2001 --> + + +<!-- +This template was designed by: David Rugge davidrugge@mindspring.com +with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr +and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de +of the KDE DocBook team. + +You may freely use this template for writing any sort of KDE documentation. +If you have any changes or improvements, please let us know. + +Remember: +- in XML, the case of the <tags> and attributes is relevant ; +- also, quote all attributes. + +Please don't forget to remove all these comments in your final documentation, +thanks ;-). +--> + +<!-- ................................................................ --> + +<!-- The language must NOT be changed here. --> + +<book lang="&language;"> + +<!-- This header contains all of the meta-information for the document such +as Authors, publish date, the abstract, and Keywords --> + +<bookinfo> +<title>The &appname; Handbook</title> + +<authorgroup> +<author> +<firstname></firstname> +<othername></othername> +<surname>%{AUTHOR}</surname> +<affiliation> +<address><email>%{EMAIL}</email></address> +</affiliation> +</author> +</authorgroup> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +<copyright> +<year>1999</year> +<year>%{YEAR}</year> +<holder>%{AUTHOR}</holder> +</copyright> +<!-- Translators: put here the copyright notice of the translation --> +<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook +     and in the FDL itself on how to use it. --> +<legalnotice>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(V.MM.LL), it could be used by automation scripts. +Do NOT change these in the translation. --> + +<date>2001-10-18</date> +<releaseinfo>%{VERSION}</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&appname; is an application specially designed to do nothing you would +ever want. +</para> +</abstract> + +<!-- This is a set of Keywords for indexing by search engines. +Please at least include KDE, the KDE package it is in, the name + of your application, and a few relevant keywords. --> + +<keywordset> +<keyword>KDE</keyword> +<keyword>%{APPNAME}</keyword> +<keyword>nothing</keyword> +<keyword>nothing else</keyword> +</keywordset> + +</bookinfo> + +<!-- The contents of the documentation begin here.  Label +each chapter so with the id attribute. This is necessary for two reasons: it +allows you to easily reference the chapter from other chapters of your +document, and if there is no ID, the name of the generated HTML files will vary +from time to time making it hard to manage for maintainers and for the CVS +system. Any chapter labelled (OPTIONAL) may be left out at the author's +discretion. Other chapters should not be left out in order to maintain a +consistent documentation style across all KDE apps. --> + +<chapter id="introduction"> +<title>Introduction</title> + +<!-- The introduction chapter contains a brief introduction for the +application that explains what it does and where to report +problems. Basically a long version of the abstract.  Don't include a +revision history. (see installation appendix comment) --> + +<para> +&appname; is a program that lets you do absolutely nothing. Please report +any problems or feature requests to the &kde; mailing lists. +</para> +</chapter> + +<chapter id="using-appname"> +<title>Using &appname;</title> + +<!-- This chapter should tell the user how to use your app. You should use as +many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document +your application. --> + +<para> + +<!-- Note that all graphics should be in .png format. Use no gifs because of +patent issues. --> + +<screenshot> +<screeninfo>Here's a screenshot of &appname;</screeninfo> +	<mediaobject> +	  <imageobject> +	    <imagedata fileref="screenshot.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="screenshot.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Screenshot</phrase> +	  </textobject> +	</mediaobject> +</screenshot> +</para> + + +<sect1 id="appname-features"> +<title>More &appname; features</title> + +<para>It slices! It dices! and it comes with a free toaster!</para> +<para> +The Squiggle Tool <guiicon><inlinemediaobject> +	  <imageobject> +	    <imagedata fileref="squiggle.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="squiggle.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Squiggle</phrase> +	  </textobject> +</inlinemediaobject></guiicon> is used to draw squiggly lines all over +the &appname; main window. It's not a bug, it's a feature! +</para> + +</sect1> +</chapter> + +<chapter id="commands"> +<title>Command Reference</title> + +<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the +application windows and their menubar and toolbar commands for easy reference. +Also include any keys that have a special function but have no equivalent in the +menus or toolbars. This may not be necessary for small apps or apps with no tool +or menu bars. --> + +<sect1 id="appname-mainwindow"> +<title>The main &appname; window</title> + +<sect2> +<title>The File Menu</title> +<para> +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice></term> +<listitem><para><action>Creates a new document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem><para><action>Saves the document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Quits</action> &appname;</para></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title>The <guimenu>Help</guimenu> Menu</title> + +<!-- Assuming you have a standard help menu (help, what's this, about --> +<!-- &appname;, about KDE) then the documentation is already written. --> +<!-- The following entity is valid anywhere that a variablelist is --> +<!-- valid.  --> + +&help.menu.documentation; + +</sect2> + +</sect1> +</chapter> + +<chapter id="developers"> +<title>Developer's Guide to &appname;</title> + +<!-- (OPTIONAL) A Programming/Scripting reference chapter should be +used for apps that use plugins or that provide their own scripting hooks +and/or development libraries. --> + +<para> +Programming &appname; plugins is a joy to behold. Just read through the next +66 pages of API's to learn how! +</para> + +<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you +should consult the docbook reference for further details. The example below was +taken from that reference and shortened a bit for readability. --> + +<refentry id="re-1007-unmanagechildren-1"> +<refmeta> +<refentrytitle>XtUnmanageChildren</refentrytitle> +<refmiscinfo>Xt - Geometry Management</refmiscinfo> +</refmeta> +<refnamediv> +<refname>XtUnmanageChildren +</refname> +<refpurpose>remove a list of children from a parent widget's managed +list. +<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm> +<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>  +</refpurpose> + +</refnamediv> +<refsynopsisdiv> +<refsynopsisdivinfo> +<date>4 March 1996</date> +</refsynopsisdivinfo> +<synopsis> +void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>) +    WidgetList <replaceable class="parameter">children</replaceable>; +    Cardinal <replaceable class="parameter">num_children</replaceable>; +</synopsis> + +<refsect2 id="r2-1007-unmanagechildren-1"> +<title>Inputs</title> +<variablelist> +<varlistentry> +<term><replaceable class="parameter">children</replaceable> +</term> +<listitem> +<para>Specifies an array of child widgets. Each child must be of +class RectObj or any subclass thereof. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term><replaceable class="parameter">num_children</replaceable> +</term> +<listitem> +<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>. +</para> +</listitem> +</varlistentry> +</variablelist> +</refsect2></refsynopsisdiv> + +<refsect1 id="r1-1007-unmanagechildren-1"> +<title>Description +</title> +<para><function>XtUnmanageChildren()</function> unmaps the specified widgets +and removes them from their parent's geometry management. +The widgets will disappear from the screen, and (depending +on its parent) may no longer have screen space allocated for +them. +</para> +<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have +the same parent. +</para> +<para>See the “Algorithm” section below for full details of the +widget unmanagement procedure. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-2"> +<title>Usage</title> +<para>Unmanaging widgets is the usual method for temporarily +making them invisible.  They can be re-managed with +<function>XtManageChildren()</function>. +</para> +<para>You can unmap a widget, but leave it under geometry +management by calling <function>XtUnmapWidget()</function>.  You can +destroy a widget's window without destroying the widget by +calling <function>XtUnrealizeWidget()</function>.  You can destroy a +widget completely with <function>XtDestroyWidget()</function>. +</para> +<para>If you are only going to unmanage a single widget, it is +more convenient to call <function>XtUnmanageChild()</function>.  It is +often more convenient to call <function>XtUnmanageChild()</function> +several times than it is to declare and initialize an array +of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling +<function>XtUnmanageChildren()</function> is more efficient, however, +because it only calls the parent's <function>change_managed()</function> +method once. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-3"> +<title>Algorithm +</title> +<para><function>XtUnmanageChildren()</function> performs the following: +</para> +<variablelist> +<varlistentry> +<term>- +</term> +<listitem> +<para>Ignores the child if it already is unmanaged or is being +destroyed. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term>- +</term> +<listitem> +<para>Otherwise, if the child is realized, it makes it nonvisible +by unmapping it. +</para> +</listitem> +</varlistentry> +</variablelist> +<para> +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-4"> +<title>Structures</title> +<para>The <type>WidgetList</type> type is simply an array of widgets: +</para> +<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList; +</screen> +</refsect1> +</refentry> + +</chapter> + +<chapter id="faq"> +<title>Questions and Answers</title> + +<!-- (OPTIONAL but recommended) This chapter should include all of the silly +(and not-so-silly) newbie questions that fill up your mailbox. This chapter +should be reserved for BRIEF questions and answers! If one question uses more +than a page or so then it should probably be part of the +"Using this Application" chapter instead. You should use links to +cross-reference questions to the parts of your documentation that answer them. +This is also a great place to provide pointers to other FAQ's if your users +must do some complicated configuration on other programs in order for your +application work. --> + +&reporting.bugs; +&updating.documentation; + +<qandaset id="faqlist"> +<qandaentry> +<question> +<para>My Mouse doesn't work. How do I quit &appname;?</para> +</question> +<answer> +<para>You silly goose! Check out the <link linkend="commands">Commands +Section</link> for the answer.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para>Why can't I twiddle my documents?</para> +</question> +<answer> +<para>You can only twiddle your documents if you have the foobar.lib +installed.</para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits"> + +<!-- Include credits for the programmers, documentation writers, and +contributors here. The license for your software should then be included below +the credits with a reference to the appropriate license file included in the KDE +distribution. --> + +<title>Credits and License</title> + +<para> +&appname; +</para> +<para> +Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> +<para> +Contributors: +<itemizedlist> +<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para> +</listitem> +<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para> +</listitem> +</itemizedlist> +</para> + +<para> +Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL;               <!-- FDL: do not remove --> + +<!-- Determine which license your application is licensed under,  +     and delete all the remaining licenses below: + +     (NOTE:  All documentation are licensed under the FDL,  +     regardless of what license the application uses) --> + +&underGPL;        	 <!-- GPL License --> +&underBSDLicense;        <!-- BSD License --> +&underArtisticLicense;   <!-- BSD Artistic License --> +&underX11License;        <!-- X11 License  --> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="getting-appname"> +<title>How to obtain &appname;</title> + +<!-- This first entity contains boiler plate for applications that are +part of KDE CVS.  You should remove it if you are releasing your +application -->  + +&install.intro.documentation; + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in kdesupport, +kdelibs, or kdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. +--> + +<para> +In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is +required in order to support the advanced &appname; features. &appname; uses +about 5 megs of memory to run, but this may vary depending on your +platform and configuration. +</para> + +<para> +All required libraries as well as &appname; itself can be found +on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>. +</para> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... --> +<para> +You can find a list of changes at <ulink +url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>. +</para> +</sect1> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +<!-- This entity contains the boilerplate text for standard --> +<!-- compilation instructions.  If your application requires any --> +<!-- special handling, remove it, and replace with your own text. --> + +&install.compile.documentation; + +</sect1> + +<sect1 id="configuration"> +<title>Configuration</title> + +<para>Don't forget to tell your system to start the <filename>dtd</filename> +dicer-toaster daemon first, or &appname; won't work !</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab  +--> + diff --git a/app_templates/kdeapp/po/README b/app_templates/kdeapp/po/README new file mode 100644 index 0000000..0e18f16 --- /dev/null +++ b/app_templates/kdeapp/po/README @@ -0,0 +1 @@ +.pot and .pot translation files should be placed here. diff --git a/app_templates/kdeapp/setup.py b/app_templates/kdeapp/setup.py new file mode 100755 index 0000000..8cf6964 --- /dev/null +++ b/app_templates/kdeapp/setup.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +########################################################################### +# setup - description                                                     # +# ------------------------------                                          # +# begin     : Fri Jun 27 2003                                             # +# copyright : (C) 2003-2004 by AUTHOR                                     # +# email     : YOUR@EMAIL.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +import kdedistutils + +kdedistutils.setup(name="kdeapp", +    version="0.1.0", +    author="AUTHOR", +    author_email="YOUR@EMAIL.com", +    url="http://www.KDEAPP.com/", +    min_kde_version = "3.0.0", +    min_qt_version = "3.0.0", +    license = "GPL", +    application_data = ['src/kdeapp.py','src/prefdialog.py','src/kdeappview.py'], +    executable_links = [('kdeapp','kdeapp.py')], +    docbooks = [ ('doc/en','en') ] ) diff --git a/app_templates/kdeapp/src/hi16-app-kdeapp.png b/app_templates/kdeapp/src/hi16-app-kdeapp.png new file mode 100644 index 0000000..40fe05e --- /dev/null +++ b/app_templates/kdeapp/src/hi16-app-kdeapp.png @@ -0,0 +1,8 @@ +‰PNG + + +IHDR +¸àÿ5ÑM¼ZŒñfθ92@³ +–é2w”l†A;Àv“c)‡\)¬…/l	Fö\ÿžÏ“ß÷ù~ŸžSöŒüXºÅ¦©=t jÊ76ºþ{rumuüê_Š€% ¾ñ}Êfb{ñZéöRdYÁ7éC2ÊTWÕ“¦Ó²ã³O>ÍfX²GØÈµæÆ,F‹&/#x<Ž&Pµ·%]E«ÉÜ–C®fU¥ÕS¿»ïä +"Öl+²*±²²Jã»Ç°˜M¨ªJde…Ù9Hz]—qTÖPòBÉIÀ× +ÙÝ}±¦ÂQ±˜•—‰ ¤bRˆ¢³ªÒÛ÷€	ï]ánv–ïbf,Àûƒøçü:ÀLÑdÖ4€íPuCÀ ÊÔ7ÔòAK÷\ýô^¿ÏŸ=.~¾ö¡åÐ|ÙŽ2³wÄË|x¾ðw’ÎN†Vd/RKë‡ç6¼Æý+÷øæôɤ°¡ÄôÔĦú7fmcú5€hr¬96“MŠD#xÆ=IaûÞ‚OHxcú7=#	“U¦DæoVÏi diff --git a/app_templates/kdeapp/src/hi32-app-kdeapp.png b/app_templates/kdeapp/src/hi32-app-kdeapp.png new file mode 100644 index 0000000..8a6093e --- /dev/null +++ b/app_templates/kdeapp/src/hi32-app-kdeapp.png @@ -0,0 +1,26 @@ +‰PNG + + +IHDR +:IDATxœ¥—{Œ\Õ}Ç?wîyÜ;;ûðâ}`¯õ®×k̲~&Žq¥R-H£„Gpk +PPJ£&( +´J¥¨EQþ©Ú4Iq	QDHC~D6ØÂBص—×®ÙµÙÇÎÌ™;Ï;Ó?f½1µ i{¤£«+]ï÷œóý}¿¿kö_åòB”«e,Ë¢3²„Ö–6”TضÍ3'Ÿ``ÙÀIe«m=½½¹§ü´ý‰¯}›j ´¢^«w™O<wìYë¯þkV_Ý˺˜xå,“¯MðÏ?ý.½½‹x!þ—c¤ÄŒôlÛ8¼‘ÕÞvßßoZ—¶ó÷ßÿ¿;ퟙ<“ØrÝVöí¾ÍŒOŽ›»>ÿ™\Oü¾Àõz‘U#fhÅa7Œë†YÒÙI5¨rì—‡ÍÉÇùøµŸ@¹[ +>±u;µj¿ùÛoš¯íQk╳ÿ?ç¢çÌÚ•kq× +£…-ít/ïE(‰tB	¤£06Ñse_¸û€ù·ýžõ¥?ºÿ²uÿ©7Þ»ì£ÑQ3¼r)%‘H+B +ŒÖŽ6´ë²CHW£ØRШ7ؾk33³ÌM¾Ïá_<dzGf¬XºbqíÕÀ@ï€YӷƬ\oÖZ‡ã8„B!</MP	X½i-õzƒJ©ŒÐ§ÅA(AHØHGáD\æfcTJeÊùkV³aõ lñÛYkÔ/¼rÐõ +á:.®ãbŒ¡X,ò©[w²sï „ åyh) +¼tè†Á–¢©a#” •H㶸äÓ>gÆ~ÃSo +“/äY58È—¿õç$ÓiÆÆßÄÏøTJjA +€5›†¹0ù> +n¼å“ÜtçMt?±€çgj|’#O=‹]»žùdÛ¶È•r(¥Á¯ß±¿z'N½Œ—ÌÏä)ûE +™<A±BP®0ùê[,íëfåÕýTƒR	¤Va#¥ ªø¦ÀÃ_yˆ‡ÿâ3zõ&Ë›K‘ÍgAP¡T…Bcp—°nŠoó&þô+÷ðËN’IfðS9ò©~*KÎË’ñÒŒMŽQ(˜MͲÿ‹÷²ãSŸFHA(d¡”Dj…m‡B`Œaï·òÝïü£¹fhÔõzî¥Ý +cÓ³ +PJ¢±8^*K.£àù³ +žOP	š>²ìå(Â--H°,©$•R…j9 Ÿõ‰'¢$²‰¢–šz£Ž1†C/¼ÀÎ;8üâ>ô|pó-ûÁ¥°ÑZ“ÉfñRY¼x?™%7Ÿ!—Îà%ÓÄçc+EĪѡœmÛmbáî¤#Iœ3xÍ A©BÑÏ3vnœF£Ñ4š¬£óqvîØÀSÿãíÏßu§B •BIT +G)²^sç~*G&šb~.N46Ç©3§Hù©³ÀHèÀý_lÏ»%êµ:Ò‘¸m-dbi\×Å +YTÊR~ +À3Æ`ŒáÊ® +¹±x”S§(WË–eYÕÅ,8òäa{âQnÛ÷¹fí*±0%á¶þðö›I—Ó] +¨Uöܲ!ìEg»(6-›¡ã:.JJ”T´EZ	ªÇ^:E$â²rÝÀbâj¡q¥K*—"¬ÂÍ–L\ +i#¤h†‡h-ÂÆ–M[½èérá½µ¥Gkå eóØíTN¾ršb¾H6•ʼn¸ô/ë ? h°e3е«éìZ‚‚B¾ˆTÍl—²*J6½])…‚ÙX?—ÇC{Gë¯ZG½QçĽL¹T!›Ê’MdÈDS´/YÀµC×^š]M[?~£õîô›æÎ/ÜE,ž T(á¸BØ\¬oÛ¡ìÕ²,¦¦Ïãg}ò™<¥|	Óh0ñú[,_µŒ H'<ò©Ù¸G*–À5W¹fIë’¤§õ½¤ZX·yÿåßÍõ×m¥œ/áÍ%ÙuûMTk5¤X¡aÇEkÅÔôéd¦ép©…´O¥Øô·µ…eÃ+(Ê$gb¤ãó\8žã¯Ç/ù +›·†l!0µZW'^]ì,ËâÿBâwؼzõFƒî%Ýöž9-¥Þ+Ú® ÑhΧ±,«ÙðòÞbøûŽÿìl€\l4f7 diff --git a/app_templates/kdeapp/src/kdeapp.desktop b/app_templates/kdeapp/src/kdeapp.desktop new file mode 100644 index 0000000..2787759 --- /dev/null +++ b/app_templates/kdeapp/src/kdeapp.desktop @@ -0,0 +1,35 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=$APPNAME$ +Exec=$APPNAMELC$ %i %m -caption "%c" +Icon=$APPNAMELC$ +Type=Application +DocPath=$APPNAMELC$/$APPNAMELC$.html +Comment=A KDE KPart Application +Comment[ca]=Una aplicació KPart per a KDE +Comment[cy]=Cymhwysiad KPart KDE +Comment[da]=Et KDE KPart program +Comment[de]=Eine KDE-Komponenten-Anwendung +Comment[el]=Μια εφαÏμογή KPart του KDE +Comment[es]=Una aplicación KPart de KDE +Comment[et]=KDE KPart rakendus +Comment[fr]=Une application KPart pour KDE. +Comment[hi]=à¤à¤• केडीई के-पारà¥à¤Ÿ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— +Comment[hu]=KPart-alapú KDE-alkalmazás +Comment[is]=KDE KPart forrit +Comment[it]=Applicazione KPart di KDE +Comment[ja]=KDE KPart アプリケーション +Comment[nb]=Et KDE KPart-program +Comment[nl]=Een KDE KPart-toepassing +Comment[pl]=Aplikacja KDE +Comment[pt]=Uma aplicação KPart do KDE +Comment[pt_BR]=Um Aplicativo KPart do KDE +Comment[ru]=Приложение KPart Ð´Ð»Ñ KDE +Comment[sl]=Program KPart za KDE +Comment[sr]=KDE KPart програм +Comment[sr@Latn]=KDE KPart program +Comment[sv]=Ett KDE Kpart-program +Comment[ta]=கெடி கெபாரà¯à®Ÿà¯  பயனà¯à®ªà®¾à®Ÿà¯  +Comment[tg]=Ба кор андохтани KPart барои KDE +Comment[zh_CN]=一个 KDE KPart åº”ç”¨ç¨‹åº +Terminal=0 diff --git a/app_templates/kdeapp/src/kdeapp.lsm b/app_templates/kdeapp/src/kdeapp.lsm new file mode 100644 index 0000000..43d0d5f --- /dev/null +++ b/app_templates/kdeapp/src/kdeapp.lsm @@ -0,0 +1,16 @@ +Begin3 +Title:          $APPNAME$ -- Some description +Version:        $VERSION$ +Entered-date:    +Description:     +Keywords:       KDE Qt +Author:         $AUTHOR$ <$EMAIL$> +Maintained-by:  $AUTHOR$ <$EMAIL$> +Home-page:       +Alternate-site:  +Primary-site:   ftp://ftp.kde.org/pub/kde/unstable/apps/utils +                xxxxxx  $APPNAMELC$-$VERSION$.tar.gz +                xxx     $APPNAMELC$-$VERSION$.lsm +Platform:       Linux. Needs KDE +Copying-policy: $LICENSE$ +End diff --git a/app_templates/kdeapp/src/kdeapp.py b/app_templates/kdeapp/src/kdeapp.py new file mode 100755 index 0000000..6c9b921 --- /dev/null +++ b/app_templates/kdeapp/src/kdeapp.py @@ -0,0 +1,280 @@ +#!/usr/bin/python +########################################################################### +# kdeapp - description                                                    # +# ------------------------------                                          # +# begin     : Fri Jun 27 2005                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +from qt import * +from kdecore import * +from kdeui import * +import sys +from prefdialog import * +from kdeappview import * + +description = "A KDE Application" +version = "0.1"; + +class KdeApp(KMainWindow): +    def __init__(self): +        KMainWindow.__init__(self,None,"KdeApp") + +        self._view = KdeAppView(self) +        self._printer = None + +        # accept dnd +        self.setAcceptDrops(True) + +        # tell the KMainWindow that this is indeed the main widget +        self.setCentralWidget(self._view) + +        # then, setup our actions +        self._setupActions() + +        # and a status bar +        self.statusBar().show() + +        # Apply the create the main window and ask the mainwindow to +        # automatically save settings if changed: window size, toolbar +        # position, icon size, etc.  Also to add actions for the statusbar +        # toolbar, and keybindings if necessary. +        self.setAutoSaveSettings() + +        # allow the view to change the statusbar and caption +        self.connect(self._view, PYSIGNAL("signalChangeStatusbar"), self.changeStatusbar) +        self.connect(self._view, PYSIGNAL("signalChangeCaption"), self.changeCaption) + +    def load(self,url): +        target = QString() +        # the below code is what you should normally do.  in this +        # example case, we want the url to our own.  you probably +        # want to use this code instead for your app +     +        if False: +            # download the contents +            if KIO.NetAccess.download(url, target): +                # set our caption +                self.setCaption(url) +         +                # load in the file (target is always local) +                self.loadFile(target) +         +                # and remove the temp file +                KIO.NetAccess.removeTempFile(target) +     +        self.setCaption(url.prettyURL()) +        self._view.openURL(url) + + +    def _setupActions(self): +        global kapp +        KStdAction.openNew(self.fileNew, self.actionCollection()) +        KStdAction.open(self.fileOpen, self.actionCollection()) +        KStdAction.save(self.fileSave, self.actionCollection()) +        KStdAction.saveAs(self.fileSaveAs, self.actionCollection()) +        KStdAction.print_(self.filePrint, self.actionCollection()) +        KStdAction.quit(kapp.quit, self.actionCollection()) +         +        self._toolbarAction = KStdAction.showToolbar(self.optionsShowToolbar, self.actionCollection()) +        self._statusbarAction = KStdAction.showStatusbar(self.optionsShowStatusbar, self.actionCollection()) +        KStdAction.keyBindings(self.optionsConfigureKeys, self.actionCollection()) + +        KStdAction.configureToolbars(self.optionsConfigureToolbars, self.actionCollection()) +        KStdAction.preferences(self.optionsPreferences, self.actionCollection()) +     +        # this doesn't do anything useful.  it's just here to illustrate +        # how to insert a custom menu and menu item +        custom = KAction(i18n("Cus&tom Menuitem"), KShortcut(), +                    self.optionsPreferences, +                    self.actionCollection(), "custom_action") +        self.createGUI() + +    def _saveProperties(self,config): +        # the 'config' object points to the session managed +        # config file.  anything you write here will be available +        # later when this app is restored +     +        if not self._view.currentURL().isEmpty(): +            config.writeEntry("lastURL", self._view.currentURL()) + +    def _readProperties(self,config): +        # the 'config' object points to the session managed +        # config file.  this function is automatically called whenever +        # the app is being restored.  read in here whatever you wrote +        # in 'saveProperties' +     +        url = config.readPathEntry("lastURL") +     +        if not url.isEmpty(): +            self._view.openURL(KURL(url)) + +    def dragEnterEvent(self,event): +        # accept uri drops only +        event.accept(KURLDrag.canDecode(event)) + +    def dropEvent(self,event): +        # this is a very simplistic implementation of a drop event.  we +        # will only accept a dropped URL.  the Qt dnd code can do *much* +        # much more, so please read the docs there +        urls = KURL.List() +     +        # see if we can decode a URI.. if not, just ignore it +        if KURLDrag.decode(event, urls) and not urls.isEmpty(): +            # okay, we have a URI.. process it +            url = urls.first() +     +            # load in the file +            self.load(url) + +    def fileNew(self): +        # this slot is called whenever the File->New menu is selected, +        # the New shortcut is pressed (usually CTRL+N) or the New toolbar +        # button is clicked +     +        # create a new window +        KdeApp().show() + +    def fileOpen(self): +        # this slot is called whenever the File->Open menu is selected, +        # the Open shortcut is pressed (usually CTRL+O) or the Open toolbar +        # button is clicked +     +        ## this brings up the generic open dialog +        #KURL url = KURLRequesterDlg::getURL(QString::null, this, i18n("Open Location") ); +     +        # standard filedialog +        url = KFileDialog.getOpenURL(None, One, self, i18n("Open Location")) +        if not url.isEmpty(): +            self._view.openURL(url) + +    def fileSave(self): +        # this slot is called whenever the File->Save menu is selected, +        # the Save shortcut is pressed (usually CTRL+S) or the Save toolbar +        # button is clicked +     +        # save the current file +        pass + +    def fileSaveAs(self): +        # this slot is called whenever the File->Save As menu is selected, +        file_url = KFileDialog.getSaveURL() +        if not file_url.isEmpty() and file_url.isValid(): +            # save your info, here +            pass + + +    def filePrint(self): +        # this slot is called whenever the File->Print menu is selected, +        # the Print shortcut is pressed (usually CTRL+P) or the Print toolbar +        # button is clicked +        if self._printer is None: +            self._printer = KPrinter() +             +        if self._printer.setup(self): +            # setup the printer.  with Qt, you always "print" to a +            # QPainter.. whether the output medium is a pixmap, a screen, +            # or paper +            p = QPainter() +            p.begin(self._printer) +     +            # we let our view do the actual printing +            metrics = QPaintDeviceMetrics(m_printer) +            self._view.print_(p, metrics.height(), metrics.width()) +     +            # and send the result to the printer +            p.end(); + +    def optionsPreferences(self): +        # popup some sort of preference dialog, here +        dlg = PreferencesDialog() +        if dlg.exec_loop(): +            # redo your settings +            pass + +    def optionsShowToolbar(self): +        # this is all very cut and paste code for showing/hiding the +        # toolbar +        if self._toolbarAction.isChecked(): +            self.toolBar().show() +        else: +            self.toolBar().hide() + +    def optionsShowStatusbar(self): +        # this is all very cut and paste code for showing/hiding the +        # statusbar + +        if self._statusbarAction.isChecked(): +            self.statusBar().show() +        else: +            self.statusBar().hide() + +    def optionsConfigureKeys(self): +        KKeyDialog.configure(self.actionCollection()) + +    def optionsConfigureToolbars(self): +        # use the standard toolbar editor +        self.saveMainWindowSettings(KGlobal.config()) + +    def newToolbarConfig(self): +        # this slot is called when user clicks "Ok" or "Apply" in the toolbar editor. +        # recreate our GUI, and re-apply the settings (e.g. "text under icons", etc.) +        self.createGUI() +        self.applyMainWindowSettings(KGlobal.config()) + +    def changeStatusbar(self,text): +        # display the text on the statusbar +        self.statusBar().message(text) + +    def changeCaption(self,text): +        # display the text on the caption +        self.setCaption(text) + + +options = [ ("+[URL]", "Document to open", "") ] + +def main(): +    global kapp,version,description,options + +    aboutdata = KAboutData("kdeapp", "KdeApp", version, description, \ +        KAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com") +    aboutdata.addAuthor("AUTHOR", None, "your@email.com") +    KCmdLineArgs.init(sys.argv,aboutdata) +    KCmdLineArgs.addCmdLineOptions(options) +    kapp = KApplication() +     +    # register ourselves as a dcop client +    kapp.dcopClient().registerAs(kapp.name(), False) + +    # see if we are starting with session management +    if kapp.isRestored(): +        n = 1 +        while KMainWindow.canBeRestored(n): +            KdeApp().restore(n) +            n += 1 +    else: +        # no session.. just start up normally +        args = KCmdLineArgs.parsedArgs() +        if args.count() == 0: +            widget = KdeApp() +            widget.show() +        else: +            i = 0 +            for i in range(args.count()): +                widget = KdeApp() +                widget.show() +                widget.load(args.url(i)) + +        args.clear() + +    return kapp.exec_loop() +main() diff --git a/app_templates/kdeapp/src/kdeappiface.py b/app_templates/kdeapp/src/kdeappiface.py new file mode 100644 index 0000000..1ff3b0f --- /dev/null +++ b/app_templates/kdeapp/src/kdeappiface.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +########################################################################### +# testappiface - description                                              # +# ------------------------------                                          # +# begin     : Fri Jun 27 2003                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +from dcopexport import DCOPExObj + +class TestAppIface(DCOPExObj): +    def __init__(self, parent, id="Value"): +        DCOPExObj.__init__(self, id) +        self.addMethod("void openURL(QString url)", self.openURL) + +    def openURL(self,url): +        pass diff --git a/app_templates/kdeapp/src/kdeappui.rc b/app_templates/kdeapp/src/kdeappui.rc new file mode 100644 index 0000000..6c3f6a9 --- /dev/null +++ b/app_templates/kdeapp/src/kdeappui.rc @@ -0,0 +1,8 @@ +<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> +<kpartgui name="testapp" version="1"> +<MenuBar> +  <Menu name="custom"><text>C&ustom</text> +    <Action name="custom_action" /> +  </Menu> +</MenuBar> +</kpartgui> diff --git a/app_templates/kdeapp/src/kdeappview.py b/app_templates/kdeapp/src/kdeappview.py new file mode 100644 index 0000000..af28a44 --- /dev/null +++ b/app_templates/kdeapp/src/kdeappview.py @@ -0,0 +1,91 @@ +#!/usr/bin/python +########################################################################### +# kdeappview - description                                                # +# ------------------------------                                          # +# begin     : Fri Jun 27 2005                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +from qt import * +from kdecore import * +from kdeui import * +from kio import * +from khtml import * +from kparts import * +#from kdeappiface import * + +class KdeAppView(QWidget): +    def __init__(self,parent): +        QWidget.__init__(self,parent) +        #self._dcopclient= KdeAppIface(self,"KdeAppIface") + +        # setup our layout manager to automatically add our widgets +        top_layout = QHBoxLayout(self) +        top_layout.setAutoAdd(True) +         +        if True: +            self._html = KHTMLPart(self) +        else: + +            # we want to look for all components that satisfy our needs.  the +            # trader will actually search through *all* registered KDE +            # applications and components -- not just KParts.  So we have to +            # specify two things: a service type and a constraint +            # +            # the service type is like a mime type.  we say that we want all +            # applications and components that can handle HTML -- 'text/html' +            # +            # however, by itself, this will return such things as Netscape.. +            # not what we wanted.  so we constrain it by saying that the +            # string 'KParts/ReadOnlyPart' must be found in the ServiceTypes +            # field.  with this, only components of the type we want will be +            # returned. +            offers = KTrader.self().query("text/html", "'KParts/ReadOnlyPart' in ServiceTypes") +             +            self._html = None +            # in theory, we only care about the first one.. but let's try all +            # offers just in case the first can't be loaded for some reason +            for ptr in offers: +                # we now know that our offer can handle HTML and is a part. +                # since it is a part, it must also have a library... let's try to +                # load that now +                self._html = createReadOnlyPart(ptr.library(),self,ptr.name(),"KParts::ReadOnlyPart",QStringList()) +                if self._html is not None: +                    break +         +            # if our factory is invalid, then we never found our component +            # and we might as well just exit now +            if self._html is None: +                KMessageBox.error(self, i18n("Could not find a suitable HTML component")) +                return +     +        QObject.connect(self._html, SIGNAL("setWindowCaption(const QString&)"), self.slotSetTitle) +        QObject.connect(self._html, SIGNAL("setStatusBarText(const QString&)"), self.slotOnURL) + +    def print_(self,p,height,width): +        pass +        # do the actual printing, here +        # p.drawText(etc..) + +    def currentURL(self): +        return self._html.url().url() + +    def openURL(self,url): +        if isinstance(url,QString): +            url = KURL(url) +        self._html.openURL(url) + +    def slotOnURL(self,url): +        self.emit(PYSIGNAL("signalChangeStatusbar"),(url,) ) + +    def slotSetTitle(self,title): +        self.emit(PYSIGNAL("signalChangeCaption"),(title,) ) diff --git a/app_templates/kdeapp/src/prefdialog.py b/app_templates/kdeapp/src/prefdialog.py new file mode 100644 index 0000000..7932f84 --- /dev/null +++ b/app_templates/kdeapp/src/prefdialog.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +########################################################################### +# testapp - description                                                   # +# ------------------------------                                          # +# begin     : Fri Jun 27 2005                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +from qt import * +from kdecore import * +from kdeui import * + +class TestAppPrefDialog(KDialogBase): +    def __init__(self): +        KDialogBase.__init__(TreeList, i18n("TestApp Preferences"), +                  KDialogBase.Help|KDialogBase.Default|KDialogBase.Ok|KDialogBase.Apply|KDialogBase.Cancel, Ok) + +        # this is the base class for your preferences dialog.  it is now +        # a Treelist dialog.. but there are a number of other +        # possibilities (including Tab, Swallow, and just Plain) +        frame = self.addPage(i18n("First Page"), i18n("Page One Options")) +        self._pageOne = TestAppPrefPageOne(frame) +     +        frame = self.addPage(i18n("Second Page"), i18n("Page Two Options")) +        self._pageTwo = TestAppPrefPageTwo(frame) + +class TestAppPrefPageOne(QFrame): +    def __init__(self,parent): +        QFrame.__init__(self,parent) + +        layout = QHBoxLayout(self) +        layout.setAutoAdd(True) +     +        QLabel(i18n("Add something here"), self) + +class TestAppPrefPageTwo(QFrame): +    def __init__(self,parent): +        QFrame.__init__(self,parent) + +        layout = QHBoxLayout(self) +        layout.setAutoAdd(True) + +        QLabel(i18n("Add something here"), self) + diff --git a/app_templates/kdeutility/AUTHORS b/app_templates/kdeutility/AUTHORS new file mode 100644 index 0000000..0463c0d --- /dev/null +++ b/app_templates/kdeutility/AUTHORS @@ -0,0 +1 @@ +$AUTHOR$ <$EMAIL$> diff --git a/app_templates/kdeutility/COPYING b/app_templates/kdeutility/COPYING new file mode 100644 index 0000000..c13faf0 --- /dev/null +++ b/app_templates/kdeutility/COPYING @@ -0,0 +1,340 @@ +		    GNU GENERAL PUBLIC LICENSE +		       Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. +                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +			    Preamble + +  The licenses for most software are designed to take away your +freedom to share and change it.  By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users.  This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it.  (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.)  You can apply it to +your programs, too. + +  When we speak of free software, we are referring to freedom, not +price.  Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +  To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +  For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have.  You must make sure that they, too, receive or can get the +source code.  And you must show them these terms so they know their +rights. + +  We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +  Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software.  If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +  Finally, any free program is threatened constantly by software +patents.  We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary.  To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +  The precise terms and conditions for copying, distribution and +modification follow. + +		    GNU GENERAL PUBLIC LICENSE +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +  0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License.  The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language.  (Hereinafter, translation is included without limitation in +the term "modification".)  Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope.  The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +  1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +  2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +    a) You must cause the modified files to carry prominent notices +    stating that you changed the files and the date of any change. + +    b) You must cause any work that you distribute or publish, that in +    whole or in part contains or is derived from the Program or any +    part thereof, to be licensed as a whole at no charge to all third +    parties under the terms of this License. + +    c) If the modified program normally reads commands interactively +    when run, you must cause it, when started running for such +    interactive use in the most ordinary way, to print or display an +    announcement including an appropriate copyright notice and a +    notice that there is no warranty (or else, saying that you provide +    a warranty) and that users may redistribute the program under +    these conditions, and telling the user how to view a copy of this +    License.  (Exception: if the Program itself is interactive but +    does not normally print such an announcement, your work based on +    the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole.  If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works.  But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +  3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +    a) Accompany it with the complete corresponding machine-readable +    source code, which must be distributed under the terms of Sections +    1 and 2 above on a medium customarily used for software interchange; or, + +    b) Accompany it with a written offer, valid for at least three +    years, to give any third party, for a charge no more than your +    cost of physically performing source distribution, a complete +    machine-readable copy of the corresponding source code, to be +    distributed under the terms of Sections 1 and 2 above on a medium +    customarily used for software interchange; or, + +    c) Accompany it with the information you received as to the offer +    to distribute corresponding source code.  (This alternative is +    allowed only for noncommercial distribution and only if you +    received the program in object code or executable form with such +    an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it.  For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable.  However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +  4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License.  Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +  5. You are not required to accept this License, since you have not +signed it.  However, nothing else grants you permission to modify or +distribute the Program or its derivative works.  These actions are +prohibited by law if you do not accept this License.  Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +  6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions.  You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +  7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License.  If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all.  For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices.  Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +  8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded.  In such case, this License incorporates +the limitation as if written in the body of this License. + +  9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time.  Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number.  If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation.  If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +  10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission.  For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this.  Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +			    NO WARRANTY + +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +		     END OF TERMS AND CONDITIONS + +	    How to Apply These Terms to Your New Programs + +  If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +  To do so, attach the following notices to the program.  It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + +    <one line to give the program's name and a brief idea of what it does.> +    Copyright (C) <year>  <name of author> + +    This program is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 2 of the License, or +    (at your option) any later version. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program; if not, write to the Free Software +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +    Gnomovision version 69, Copyright (C) year name of author +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +    This is free software, and you are welcome to redistribute it +    under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License.  Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary.  Here is a sample; alter the names: + +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program +  `Gnomovision' (which makes passes at compilers) written by James Hacker. + +  <signature of Ty Coon>, 1 April 1989 +  Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs.  If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library.  If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/app_templates/kdeutility/ChangeLog b/app_templates/kdeutility/ChangeLog new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeutility/ChangeLog diff --git a/app_templates/kdeutility/INSTALL b/app_templates/kdeutility/INSTALL new file mode 100644 index 0000000..b94cd85 --- /dev/null +++ b/app_templates/kdeutility/INSTALL @@ -0,0 +1,43 @@ +Basic Installation +================== +These are generic installation instructions. + +This software uses the Python language's distutils system for installation. +A detailed guide for users and system administrators to using distutils to +install software can be found here: + +    http://docs.python.org/inst/inst.html + +The simplest way to install this software is to run the following command as +the root user: + +    python setup.py install + +The setup.py script will automatically detect the directories to use for +documentation, binaries and other software files. + + +Uninstallation +============== +During installation setup.py creates list of files and directories that +were installed in a file called install_log.txt.  + +    python setup.py uninstall + + +Installing into an alternate root +================================= +For packaging purposes it is often very useful to be able to install all files +relative not to the usual root directory (/) but into an alternative +directory. + +    python setup.py install --root=/tmp/alternativeroot/ + + +Operation Controls +================== +--verbose +    Print more information about what setup.py is doing. +     +--help +    Print a summary of the options to setup.py, and exit. diff --git a/app_templates/kdeutility/MANIFEST.in b/app_templates/kdeutility/MANIFEST.in new file mode 100644 index 0000000..c2dde3f --- /dev/null +++ b/app_templates/kdeutility/MANIFEST.in @@ -0,0 +1,6 @@ +recursive-include doc *.docbook *.png +recursive-include po *.po *.pot +include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO +global-include *.desktop *.py *.ui *.png *.lsm +global-exclude *~ .svn +global-exclude *~ .cvs diff --git a/app_templates/kdeutility/NEWS b/app_templates/kdeutility/NEWS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeutility/NEWS diff --git a/app_templates/kdeutility/README b/app_templates/kdeutility/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeutility/README diff --git a/app_templates/kdeutility/TODO b/app_templates/kdeutility/TODO new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kdeutility/TODO diff --git a/app_templates/kdeutility/doc/en/index.docbook b/app_templates/kdeutility/doc/en/index.docbook new file mode 100644 index 0000000..325987f --- /dev/null +++ b/app_templates/kdeutility/doc/en/index.docbook @@ -0,0 +1,555 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +  <!ENTITY appname "<application>MyApplicaition 0.1</application>"> +  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname--> +  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc --> +  <!ENTITY % addindex "IGNORE"> +  <!ENTITY % English "INCLUDE"><!-- change language only here --> +   +   +  <!-- Do not define any other entities; instead, use the entities +       from kde-genent.entities and $LANG/user.entities. --> +]> +<!-- kdoctemplate v0.8 October 1 1999  +     Minor update to "Credits and Licenses" section on August 24, 2000 +     Removed "Revision history" section on 22 January 2001 +     Changed to Installation/Help menu entities 18 October 2001 +     Other minor cleanup and changes 18 October 2001 --> + + +<!-- +This template was designed by: David Rugge davidrugge@mindspring.com +with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr +and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de +of the KDE DocBook team. + +You may freely use this template for writing any sort of KDE documentation. +If you have any changes or improvements, please let us know. + +Remember: +- in XML, the case of the <tags> and attributes is relevant ; +- also, quote all attributes. + +Please don't forget to remove all these comments in your final documentation, +thanks ;-). +--> + +<!-- ................................................................ --> + +<!-- The language must NOT be changed here. --> + +<book lang="&language;"> + +<!-- This header contains all of the meta-information for the document such +as Authors, publish date, the abstract, and Keywords --> + +<bookinfo> +<title>The &appname; Handbook</title> + +<authorgroup> +<author> +<firstname></firstname> +<othername></othername> +<surname>%{AUTHOR}</surname> +<affiliation> +<address><email>%{EMAIL}</email></address> +</affiliation> +</author> +</authorgroup> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +<copyright> +<year>1999</year> +<year>%{YEAR}</year> +<holder>%{AUTHOR}</holder> +</copyright> +<!-- Translators: put here the copyright notice of the translation --> +<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook +     and in the FDL itself on how to use it. --> +<legalnotice>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(V.MM.LL), it could be used by automation scripts. +Do NOT change these in the translation. --> + +<date>2001-10-18</date> +<releaseinfo>%{VERSION}</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&appname; is an application specially designed to do nothing you would +ever want. +</para> +</abstract> + +<!-- This is a set of Keywords for indexing by search engines. +Please at least include KDE, the KDE package it is in, the name + of your application, and a few relevant keywords. --> + +<keywordset> +<keyword>KDE</keyword> +<keyword>%{APPNAME}</keyword> +<keyword>nothing</keyword> +<keyword>nothing else</keyword> +</keywordset> + +</bookinfo> + +<!-- The contents of the documentation begin here.  Label +each chapter so with the id attribute. This is necessary for two reasons: it +allows you to easily reference the chapter from other chapters of your +document, and if there is no ID, the name of the generated HTML files will vary +from time to time making it hard to manage for maintainers and for the CVS +system. Any chapter labelled (OPTIONAL) may be left out at the author's +discretion. Other chapters should not be left out in order to maintain a +consistent documentation style across all KDE apps. --> + +<chapter id="introduction"> +<title>Introduction</title> + +<!-- The introduction chapter contains a brief introduction for the +application that explains what it does and where to report +problems. Basically a long version of the abstract.  Don't include a +revision history. (see installation appendix comment) --> + +<para> +&appname; is a program that lets you do absolutely nothing. Please report +any problems or feature requests to the &kde; mailing lists. +</para> +</chapter> + +<chapter id="using-appname"> +<title>Using &appname;</title> + +<!-- This chapter should tell the user how to use your app. You should use as +many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document +your application. --> + +<para> + +<!-- Note that all graphics should be in .png format. Use no gifs because of +patent issues. --> + +<screenshot> +<screeninfo>Here's a screenshot of &appname;</screeninfo> +	<mediaobject> +	  <imageobject> +	    <imagedata fileref="screenshot.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="screenshot.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Screenshot</phrase> +	  </textobject> +	</mediaobject> +</screenshot> +</para> + + +<sect1 id="appname-features"> +<title>More &appname; features</title> + +<para>It slices! It dices! and it comes with a free toaster!</para> +<para> +The Squiggle Tool <guiicon><inlinemediaobject> +	  <imageobject> +	    <imagedata fileref="squiggle.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="squiggle.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Squiggle</phrase> +	  </textobject> +</inlinemediaobject></guiicon> is used to draw squiggly lines all over +the &appname; main window. It's not a bug, it's a feature! +</para> + +</sect1> +</chapter> + +<chapter id="commands"> +<title>Command Reference</title> + +<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the +application windows and their menubar and toolbar commands for easy reference. +Also include any keys that have a special function but have no equivalent in the +menus or toolbars. This may not be necessary for small apps or apps with no tool +or menu bars. --> + +<sect1 id="appname-mainwindow"> +<title>The main &appname; window</title> + +<sect2> +<title>The File Menu</title> +<para> +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice></term> +<listitem><para><action>Creates a new document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem><para><action>Saves the document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Quits</action> &appname;</para></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title>The <guimenu>Help</guimenu> Menu</title> + +<!-- Assuming you have a standard help menu (help, what's this, about --> +<!-- &appname;, about KDE) then the documentation is already written. --> +<!-- The following entity is valid anywhere that a variablelist is --> +<!-- valid.  --> + +&help.menu.documentation; + +</sect2> + +</sect1> +</chapter> + +<chapter id="developers"> +<title>Developer's Guide to &appname;</title> + +<!-- (OPTIONAL) A Programming/Scripting reference chapter should be +used for apps that use plugins or that provide their own scripting hooks +and/or development libraries. --> + +<para> +Programming &appname; plugins is a joy to behold. Just read through the next +66 pages of API's to learn how! +</para> + +<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you +should consult the docbook reference for further details. The example below was +taken from that reference and shortened a bit for readability. --> + +<refentry id="re-1007-unmanagechildren-1"> +<refmeta> +<refentrytitle>XtUnmanageChildren</refentrytitle> +<refmiscinfo>Xt - Geometry Management</refmiscinfo> +</refmeta> +<refnamediv> +<refname>XtUnmanageChildren +</refname> +<refpurpose>remove a list of children from a parent widget's managed +list. +<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm> +<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>  +</refpurpose> + +</refnamediv> +<refsynopsisdiv> +<refsynopsisdivinfo> +<date>4 March 1996</date> +</refsynopsisdivinfo> +<synopsis> +void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>) +    WidgetList <replaceable class="parameter">children</replaceable>; +    Cardinal <replaceable class="parameter">num_children</replaceable>; +</synopsis> + +<refsect2 id="r2-1007-unmanagechildren-1"> +<title>Inputs</title> +<variablelist> +<varlistentry> +<term><replaceable class="parameter">children</replaceable> +</term> +<listitem> +<para>Specifies an array of child widgets. Each child must be of +class RectObj or any subclass thereof. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term><replaceable class="parameter">num_children</replaceable> +</term> +<listitem> +<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>. +</para> +</listitem> +</varlistentry> +</variablelist> +</refsect2></refsynopsisdiv> + +<refsect1 id="r1-1007-unmanagechildren-1"> +<title>Description +</title> +<para><function>XtUnmanageChildren()</function> unmaps the specified widgets +and removes them from their parent's geometry management. +The widgets will disappear from the screen, and (depending +on its parent) may no longer have screen space allocated for +them. +</para> +<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have +the same parent. +</para> +<para>See the “Algorithm” section below for full details of the +widget unmanagement procedure. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-2"> +<title>Usage</title> +<para>Unmanaging widgets is the usual method for temporarily +making them invisible.  They can be re-managed with +<function>XtManageChildren()</function>. +</para> +<para>You can unmap a widget, but leave it under geometry +management by calling <function>XtUnmapWidget()</function>.  You can +destroy a widget's window without destroying the widget by +calling <function>XtUnrealizeWidget()</function>.  You can destroy a +widget completely with <function>XtDestroyWidget()</function>. +</para> +<para>If you are only going to unmanage a single widget, it is +more convenient to call <function>XtUnmanageChild()</function>.  It is +often more convenient to call <function>XtUnmanageChild()</function> +several times than it is to declare and initialize an array +of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling +<function>XtUnmanageChildren()</function> is more efficient, however, +because it only calls the parent's <function>change_managed()</function> +method once. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-3"> +<title>Algorithm +</title> +<para><function>XtUnmanageChildren()</function> performs the following: +</para> +<variablelist> +<varlistentry> +<term>- +</term> +<listitem> +<para>Ignores the child if it already is unmanaged or is being +destroyed. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term>- +</term> +<listitem> +<para>Otherwise, if the child is realized, it makes it nonvisible +by unmapping it. +</para> +</listitem> +</varlistentry> +</variablelist> +<para> +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-4"> +<title>Structures</title> +<para>The <type>WidgetList</type> type is simply an array of widgets: +</para> +<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList; +</screen> +</refsect1> +</refentry> + +</chapter> + +<chapter id="faq"> +<title>Questions and Answers</title> + +<!-- (OPTIONAL but recommended) This chapter should include all of the silly +(and not-so-silly) newbie questions that fill up your mailbox. This chapter +should be reserved for BRIEF questions and answers! If one question uses more +than a page or so then it should probably be part of the +"Using this Application" chapter instead. You should use links to +cross-reference questions to the parts of your documentation that answer them. +This is also a great place to provide pointers to other FAQ's if your users +must do some complicated configuration on other programs in order for your +application work. --> + +&reporting.bugs; +&updating.documentation; + +<qandaset id="faqlist"> +<qandaentry> +<question> +<para>My Mouse doesn't work. How do I quit &appname;?</para> +</question> +<answer> +<para>You silly goose! Check out the <link linkend="commands">Commands +Section</link> for the answer.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para>Why can't I twiddle my documents?</para> +</question> +<answer> +<para>You can only twiddle your documents if you have the foobar.lib +installed.</para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits"> + +<!-- Include credits for the programmers, documentation writers, and +contributors here. The license for your software should then be included below +the credits with a reference to the appropriate license file included in the KDE +distribution. --> + +<title>Credits and License</title> + +<para> +&appname; +</para> +<para> +Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> +<para> +Contributors: +<itemizedlist> +<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para> +</listitem> +<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para> +</listitem> +</itemizedlist> +</para> + +<para> +Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL;               <!-- FDL: do not remove --> + +<!-- Determine which license your application is licensed under,  +     and delete all the remaining licenses below: + +     (NOTE:  All documentation are licensed under the FDL,  +     regardless of what license the application uses) --> + +&underGPL;        	 <!-- GPL License --> +&underBSDLicense;        <!-- BSD License --> +&underArtisticLicense;   <!-- BSD Artistic License --> +&underX11License;        <!-- X11 License  --> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="getting-appname"> +<title>How to obtain &appname;</title> + +<!-- This first entity contains boiler plate for applications that are +part of KDE CVS.  You should remove it if you are releasing your +application -->  + +&install.intro.documentation; + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in kdesupport, +kdelibs, or kdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. +--> + +<para> +In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is +required in order to support the advanced &appname; features. &appname; uses +about 5 megs of memory to run, but this may vary depending on your +platform and configuration. +</para> + +<para> +All required libraries as well as &appname; itself can be found +on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>. +</para> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... --> +<para> +You can find a list of changes at <ulink +url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>. +</para> +</sect1> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +<!-- This entity contains the boilerplate text for standard --> +<!-- compilation instructions.  If your application requires any --> +<!-- special handling, remove it, and replace with your own text. --> + +&install.compile.documentation; + +</sect1> + +<sect1 id="configuration"> +<title>Configuration</title> + +<para>Don't forget to tell your system to start the <filename>dtd</filename> +dicer-toaster daemon first, or &appname; won't work !</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab  +--> + diff --git a/app_templates/kdeutility/po/README b/app_templates/kdeutility/po/README new file mode 100644 index 0000000..0e18f16 --- /dev/null +++ b/app_templates/kdeutility/po/README @@ -0,0 +1 @@ +.pot and .pot translation files should be placed here. diff --git a/app_templates/kdeutility/setup.py b/app_templates/kdeutility/setup.py new file mode 100755 index 0000000..ff51c10 --- /dev/null +++ b/app_templates/kdeutility/setup.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +########################################################################### +# setup - description                                                     # +# ------------------------------                                          # +# begin     : Fri Jun 27 2005                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : YOUR@EMAIL.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +import kdedistutils + +kdedistutils.setup(name="kdeutility", +    version="0.1.0", +    author="AUTHOR", +    author_email="YOUR@EMAIL.com", +    url="http://www.TESTAPP.com/", +    min_kde_version = "3.0.0", +    min_qt_version = "3.0.0", +    license = "GPL", +    application_data = ['src/kdeutility.py','src/KDEUtilityDialogUI.ui'], +    executable_links = [('kdeutility','kdeutility.py')], +    docbooks = [ ('doc/en','en') ], +    i18n = ('po',['src']) ) diff --git a/app_templates/kdeutility/src/KDEUtilityDialogUI.ui b/app_templates/kdeutility/src/KDEUtilityDialogUI.ui new file mode 100644 index 0000000..af12ef1 --- /dev/null +++ b/app_templates/kdeutility/src/KDEUtilityDialogUI.ui @@ -0,0 +1,33 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>KDEUtilityDialogUI</class> +<widget class="QDialog"> +    <property name="name"> +        <cstring>KDEUtilityDialogUI</cstring> +    </property> +    <property name="geometry"> +        <rect> +            <x>0</x> +            <y>0</y> +            <width>600</width> +            <height>480</height> +        </rect> +    </property> +    <property name="caption"> +        <string>KDE Utility</string> +    </property> +    <vbox> +        <property name="name"> +            <cstring>unnamed</cstring> +        </property> +        <widget class="QPushButton"> +            <property name="name"> +                <cstring>hellobutton</cstring> +            </property> +            <property name="text"> +                <string>Hello, Good bye</string> +            </property> +        </widget> +    </vbox> +</widget> +<layoutdefaults spacing="6" margin="11"/> +</UI> diff --git a/app_templates/kdeutility/src/hi16-app-kdeutility.png b/app_templates/kdeutility/src/hi16-app-kdeutility.png new file mode 100644 index 0000000..40fe05e --- /dev/null +++ b/app_templates/kdeutility/src/hi16-app-kdeutility.png @@ -0,0 +1,8 @@ +‰PNG + + +IHDR +¸àÿ5ÑM¼ZŒñfθ92@³ +–é2w”l†A;Àv“c)‡\)¬…/l	Fö\ÿžÏ“ß÷ù~ŸžSöŒüXºÅ¦©=t jÊ76ºþ{rumuüê_Š€% ¾ñ}Êfb{ñZéöRdYÁ7éC2ÊTWÕ“¦Ó²ã³O>ÍfX²GØÈµæÆ,F‹&/#x<Ž&Pµ·%]E«ÉÜ–C®fU¥ÕS¿»ïä +"Öl+²*±²²Jã»Ç°˜M¨ªJde…Ù9Hz]—qTÖPòBÉIÀ× +ÙÝ}±¦ÂQ±˜•—‰ ¤bRˆ¢³ªÒÛ÷€	ï]ánv–ïbf,Àûƒøçü:ÀLÑdÖ4€íPuCÀ ÊÔ7ÔòAK÷\ýô^¿ÏŸ=.~¾ö¡åÐ|ÙŽ2³wÄË|x¾ðw’ÎN†Vd/RKë‡ç6¼Æý+÷øæôɤ°¡ÄôÔĦú7fmcú5€hr¬96“MŠD#xÆ=IaûÞ‚OHxcú7=#	“U¦DæoVÏi diff --git a/app_templates/kdeutility/src/hi32-app-kdeutility.png b/app_templates/kdeutility/src/hi32-app-kdeutility.png new file mode 100644 index 0000000..8a6093e --- /dev/null +++ b/app_templates/kdeutility/src/hi32-app-kdeutility.png @@ -0,0 +1,26 @@ +‰PNG + + +IHDR +:IDATxœ¥—{Œ\Õ}Ç?wîyÜ;;ûðâ}`¯õ®×k̲~&Žq¥R-H£„Gpk +PPJ£&( +´J¥¨EQþ©Ú4Iq	QDHC~D6ØÂBص—×®ÙµÙÇÎÌ™;Ï;Ó?f½1µ i{¤£«+]ï÷œóý}¿¿kö_åòB”«e,Ë¢3²„Ö–6”TضÍ3'Ÿ``ÙÀIe«m=½½¹§ü´ý‰¯}›j ´¢^«w™O<wìYë¯þkV_Ý˺˜xå,“¯MðÏ?ý.½½‹x!þ—c¤ÄŒôlÛ8¼‘ÕÞvßßoZ—¶ó÷ßÿ¿;ퟙ<“ØrÝVöí¾ÍŒOŽ›»>ÿ™\Oü¾Àõz‘U#fhÅa7Œë†YÒÙI5¨rì—‡ÍÉÇùøµŸ@¹[ +>±u;µj¿ùÛoš¯íQk╳ÿ?ç¢çÌÚ•kq× +£…-ít/ïE(‰tB	¤£06Ñse_¸û€ù·ýžõ¥?ºÿ²uÿ©7Þ»ì£ÑQ3¼r)%‘H+B +ŒÖŽ6´ë²CHW£ØRШ7ؾk33³ÌM¾Ïá_<dzGf¬XºbqíÕÀ@ï€YӷƬ\oÖZ‡ã8„B!</MP	X½i-õzƒJ©ŒÐ§ÅA(AHØHGáD\æfcTJeÊùkV³aõ lñÛYkÔ/¼rÐõ +á:.®ãbŒ¡X,ò©[w²sï „ åyh) +¼tè†Á–¢©a#” •H㶸äÓ>gÆ~ÃSo +“/äY58È—¿õç$ÓiÆÆßÄÏøTJjA +€5›†¹0ù> +n¼å“ÜtçMt?±€çgj|’#O=‹]»žùdÛ¶È•r(¥Á¯ß±¿z'N½Œ—ÌÏä)ûE +™<A±BP®0ùê[,íëfåÕýTƒR	¤Va#¥ ªø¦ÀÃ_yˆ‡ÿâ3zõ&Ë›K‘ÍgAP¡T…Bcp—°nŠoó&þô+÷ðËN’IfðS9ò©~*KÎË’ñÒŒMŽQ(˜MͲÿ‹÷²ãSŸFHA(d¡”Dj…m‡B`Œaï·òÝïü£¹fhÔõzî¥Ý +cÓ³ +PJ¢±8^*K.£àù³ +žOP	š>²ìå(Â--H°,©$•R…j9 Ÿõ‰'¢$²‰¢–šz£Ž1†C/¼ÀÎ;8üâ>ô|pó-ûÁ¥°ÑZ“ÉfñRY¼x?™%7Ÿ!—Îà%ÓÄçc+EĪѡœmÛmbáî¤#Iœ3xÍ A©BÑÏ3vnœF£Ñ4š¬£óqvîØÀSÿãíÏßu§B •BIT +G)²^sç~*G&šb~.N46Ç©3§Hù©³ÀHèÀý_lÏ»%êµ:Ò‘¸m-dbi\×Å +YTÊR~ +À3Æ`ŒáÊ® +¹±x”S§(WË–eYÕÅ,8òäa{âQnÛ÷¹fí*±0%á¶þðö›I—Ó] +¨Uöܲ!ìEg»(6-›¡ã:.JJ”T´EZ	ªÇ^:E$â²rÝÀbâj¡q¥K*—"¬ÂÍ–L\ +i#¤h†‡h-ÂÆ–M[½èérá½µ¥Gkå eóØíTN¾ršb¾H6•ʼn¸ô/ë ? h°e3е«éìZ‚‚B¾ˆTÍl—²*J6½])…‚ÙX?—ÇC{Gë¯ZG½QçĽL¹T!›Ê’MdÈDS´/YÀµC×^š]M[?~£õîô›æÎ/ÜE,ž T(á¸BØ\¬oÛ¡ìÕ²,¦¦Ïãg}ò™<¥|	Óh0ñú[,_µŒ H'<ò©Ù¸G*–À5W¹fIë’¤§õ½¤ZX·yÿåßÍõ×m¥œ/áÍ%ÙuûMTk5¤X¡aÇEkÅÔôéd¦ép©…´O¥Øô·µ…eÃ+(Ê$gb¤ãó\8žã¯Ç/ù +›·†l!0µZW'^]ì,ËâÿBâwؼzõFƒî%Ýöž9-¥Þ+Ú® ÑhΧ±,«ÙðòÞbøûŽÿìl€\l4f7 diff --git a/app_templates/kdeutility/src/kdeutility.desktop b/app_templates/kdeutility/src/kdeutility.desktop new file mode 100644 index 0000000..2787759 --- /dev/null +++ b/app_templates/kdeutility/src/kdeutility.desktop @@ -0,0 +1,35 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=$APPNAME$ +Exec=$APPNAMELC$ %i %m -caption "%c" +Icon=$APPNAMELC$ +Type=Application +DocPath=$APPNAMELC$/$APPNAMELC$.html +Comment=A KDE KPart Application +Comment[ca]=Una aplicació KPart per a KDE +Comment[cy]=Cymhwysiad KPart KDE +Comment[da]=Et KDE KPart program +Comment[de]=Eine KDE-Komponenten-Anwendung +Comment[el]=Μια εφαÏμογή KPart του KDE +Comment[es]=Una aplicación KPart de KDE +Comment[et]=KDE KPart rakendus +Comment[fr]=Une application KPart pour KDE. +Comment[hi]=à¤à¤• केडीई के-पारà¥à¤Ÿ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— +Comment[hu]=KPart-alapú KDE-alkalmazás +Comment[is]=KDE KPart forrit +Comment[it]=Applicazione KPart di KDE +Comment[ja]=KDE KPart アプリケーション +Comment[nb]=Et KDE KPart-program +Comment[nl]=Een KDE KPart-toepassing +Comment[pl]=Aplikacja KDE +Comment[pt]=Uma aplicação KPart do KDE +Comment[pt_BR]=Um Aplicativo KPart do KDE +Comment[ru]=Приложение KPart Ð´Ð»Ñ KDE +Comment[sl]=Program KPart za KDE +Comment[sr]=KDE KPart програм +Comment[sr@Latn]=KDE KPart program +Comment[sv]=Ett KDE Kpart-program +Comment[ta]=கெடி கெபாரà¯à®Ÿà¯  பயனà¯à®ªà®¾à®Ÿà¯  +Comment[tg]=Ба кор андохтани KPart барои KDE +Comment[zh_CN]=一个 KDE KPart åº”ç”¨ç¨‹åº +Terminal=0 diff --git a/app_templates/kdeutility/src/kdeutility.lsm b/app_templates/kdeutility/src/kdeutility.lsm new file mode 100644 index 0000000..43d0d5f --- /dev/null +++ b/app_templates/kdeutility/src/kdeutility.lsm @@ -0,0 +1,16 @@ +Begin3 +Title:          $APPNAME$ -- Some description +Version:        $VERSION$ +Entered-date:    +Description:     +Keywords:       KDE Qt +Author:         $AUTHOR$ <$EMAIL$> +Maintained-by:  $AUTHOR$ <$EMAIL$> +Home-page:       +Alternate-site:  +Primary-site:   ftp://ftp.kde.org/pub/kde/unstable/apps/utils +                xxxxxx  $APPNAMELC$-$VERSION$.tar.gz +                xxx     $APPNAMELC$-$VERSION$.lsm +Platform:       Linux. Needs KDE +Copying-policy: $LICENSE$ +End diff --git a/app_templates/kdeutility/src/kdeutility.py b/app_templates/kdeutility/src/kdeutility.py new file mode 100755 index 0000000..e2849fe --- /dev/null +++ b/app_templates/kdeutility/src/kdeutility.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +########################################################################### +# kdeutility - description                                                # +# ------------------------------                                          # +# begin     : Mon May 2 2005                                              # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +import sys +from qt import * +from kdecore import * +from kdeui import * +import kdedesigner +from KDEUtilityDialogUI import * + +description = "A KDE Utility" +version = "0.1"; + +class KDEUtilityDialog(KDEUtilityDialogUI): +    def __init__(self): +        KDEUtilityDialogUI.__init__(self,None,"TestApp") +    # Add other methods, slots and signals here. + + +options = [] # No command line options. + +def main(): +    global kapp,version,description,options + +    aboutdata = KAboutData("kdeutility", "KdeUtility", version, description, \ +        KAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com") +    aboutdata.addAuthor("AUTHOR", None, "your@email.com") +    KCmdLineArgs.init(sys.argv,aboutdata) +    #KCmdLineArgs.addCmdLineOptions(options) +    kapp = KApplication() +     +    dialog = KDEUtilityDialog() +    kapp.setMainWidget(dialog) +    dialog.show() + +    return kapp.exec_loop() +main() diff --git a/app_templates/kioslave/AUTHORS b/app_templates/kioslave/AUTHORS new file mode 100644 index 0000000..0463c0d --- /dev/null +++ b/app_templates/kioslave/AUTHORS @@ -0,0 +1 @@ +$AUTHOR$ <$EMAIL$> diff --git a/app_templates/kioslave/COPYING b/app_templates/kioslave/COPYING new file mode 100644 index 0000000..c13faf0 --- /dev/null +++ b/app_templates/kioslave/COPYING @@ -0,0 +1,340 @@ +		    GNU GENERAL PUBLIC LICENSE +		       Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. +                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +			    Preamble + +  The licenses for most software are designed to take away your +freedom to share and change it.  By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users.  This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it.  (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.)  You can apply it to +your programs, too. + +  When we speak of free software, we are referring to freedom, not +price.  Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +  To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +  For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have.  You must make sure that they, too, receive or can get the +source code.  And you must show them these terms so they know their +rights. + +  We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +  Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software.  If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +  Finally, any free program is threatened constantly by software +patents.  We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary.  To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +  The precise terms and conditions for copying, distribution and +modification follow. + +		    GNU GENERAL PUBLIC LICENSE +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +  0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License.  The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language.  (Hereinafter, translation is included without limitation in +the term "modification".)  Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope.  The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +  1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +  2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +    a) You must cause the modified files to carry prominent notices +    stating that you changed the files and the date of any change. + +    b) You must cause any work that you distribute or publish, that in +    whole or in part contains or is derived from the Program or any +    part thereof, to be licensed as a whole at no charge to all third +    parties under the terms of this License. + +    c) If the modified program normally reads commands interactively +    when run, you must cause it, when started running for such +    interactive use in the most ordinary way, to print or display an +    announcement including an appropriate copyright notice and a +    notice that there is no warranty (or else, saying that you provide +    a warranty) and that users may redistribute the program under +    these conditions, and telling the user how to view a copy of this +    License.  (Exception: if the Program itself is interactive but +    does not normally print such an announcement, your work based on +    the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole.  If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works.  But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +  3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +    a) Accompany it with the complete corresponding machine-readable +    source code, which must be distributed under the terms of Sections +    1 and 2 above on a medium customarily used for software interchange; or, + +    b) Accompany it with a written offer, valid for at least three +    years, to give any third party, for a charge no more than your +    cost of physically performing source distribution, a complete +    machine-readable copy of the corresponding source code, to be +    distributed under the terms of Sections 1 and 2 above on a medium +    customarily used for software interchange; or, + +    c) Accompany it with the information you received as to the offer +    to distribute corresponding source code.  (This alternative is +    allowed only for noncommercial distribution and only if you +    received the program in object code or executable form with such +    an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it.  For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable.  However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +  4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License.  Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +  5. You are not required to accept this License, since you have not +signed it.  However, nothing else grants you permission to modify or +distribute the Program or its derivative works.  These actions are +prohibited by law if you do not accept this License.  Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +  6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions.  You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +  7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License.  If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all.  For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices.  Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +  8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded.  In such case, this License incorporates +the limitation as if written in the body of this License. + +  9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time.  Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number.  If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation.  If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +  10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission.  For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this.  Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +			    NO WARRANTY + +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +		     END OF TERMS AND CONDITIONS + +	    How to Apply These Terms to Your New Programs + +  If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +  To do so, attach the following notices to the program.  It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + +    <one line to give the program's name and a brief idea of what it does.> +    Copyright (C) <year>  <name of author> + +    This program is free software; you can redistribute it and/or modify +    it under the terms of the GNU General Public License as published by +    the Free Software Foundation; either version 2 of the License, or +    (at your option) any later version. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU General Public License for more details. + +    You should have received a copy of the GNU General Public License +    along with this program; if not, write to the Free Software +    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +    Gnomovision version 69, Copyright (C) year name of author +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +    This is free software, and you are welcome to redistribute it +    under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License.  Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary.  Here is a sample; alter the names: + +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program +  `Gnomovision' (which makes passes at compilers) written by James Hacker. + +  <signature of Ty Coon>, 1 April 1989 +  Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs.  If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library.  If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/app_templates/kioslave/ChangeLog b/app_templates/kioslave/ChangeLog new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kioslave/ChangeLog diff --git a/app_templates/kioslave/INSTALL b/app_templates/kioslave/INSTALL new file mode 100644 index 0000000..b94cd85 --- /dev/null +++ b/app_templates/kioslave/INSTALL @@ -0,0 +1,43 @@ +Basic Installation +================== +These are generic installation instructions. + +This software uses the Python language's distutils system for installation. +A detailed guide for users and system administrators to using distutils to +install software can be found here: + +    http://docs.python.org/inst/inst.html + +The simplest way to install this software is to run the following command as +the root user: + +    python setup.py install + +The setup.py script will automatically detect the directories to use for +documentation, binaries and other software files. + + +Uninstallation +============== +During installation setup.py creates list of files and directories that +were installed in a file called install_log.txt.  + +    python setup.py uninstall + + +Installing into an alternate root +================================= +For packaging purposes it is often very useful to be able to install all files +relative not to the usual root directory (/) but into an alternative +directory. + +    python setup.py install --root=/tmp/alternativeroot/ + + +Operation Controls +================== +--verbose +    Print more information about what setup.py is doing. +     +--help +    Print a summary of the options to setup.py, and exit. diff --git a/app_templates/kioslave/MANIFEST.in b/app_templates/kioslave/MANIFEST.in new file mode 100644 index 0000000..c2dde3f --- /dev/null +++ b/app_templates/kioslave/MANIFEST.in @@ -0,0 +1,6 @@ +recursive-include doc *.docbook *.png +recursive-include po *.po *.pot +include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO +global-include *.desktop *.py *.ui *.png *.lsm +global-exclude *~ .svn +global-exclude *~ .cvs diff --git a/app_templates/kioslave/NEWS b/app_templates/kioslave/NEWS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kioslave/NEWS diff --git a/app_templates/kioslave/README b/app_templates/kioslave/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kioslave/README diff --git a/app_templates/kioslave/TODO b/app_templates/kioslave/TODO new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app_templates/kioslave/TODO diff --git a/app_templates/kioslave/doc/en/index.docbook b/app_templates/kioslave/doc/en/index.docbook new file mode 100644 index 0000000..325987f --- /dev/null +++ b/app_templates/kioslave/doc/en/index.docbook @@ -0,0 +1,555 @@ +<?xml version="1.0" ?> +<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [ +  <!ENTITY appname "<application>MyApplicaition 0.1</application>"> +  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname--> +  <!ENTITY package "kde-module"><!-- kdebase, kdeadmin, etc --> +  <!ENTITY % addindex "IGNORE"> +  <!ENTITY % English "INCLUDE"><!-- change language only here --> +   +   +  <!-- Do not define any other entities; instead, use the entities +       from kde-genent.entities and $LANG/user.entities. --> +]> +<!-- kdoctemplate v0.8 October 1 1999  +     Minor update to "Credits and Licenses" section on August 24, 2000 +     Removed "Revision history" section on 22 January 2001 +     Changed to Installation/Help menu entities 18 October 2001 +     Other minor cleanup and changes 18 October 2001 --> + + +<!-- +This template was designed by: David Rugge davidrugge@mindspring.com +with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr +and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de +of the KDE DocBook team. + +You may freely use this template for writing any sort of KDE documentation. +If you have any changes or improvements, please let us know. + +Remember: +- in XML, the case of the <tags> and attributes is relevant ; +- also, quote all attributes. + +Please don't forget to remove all these comments in your final documentation, +thanks ;-). +--> + +<!-- ................................................................ --> + +<!-- The language must NOT be changed here. --> + +<book lang="&language;"> + +<!-- This header contains all of the meta-information for the document such +as Authors, publish date, the abstract, and Keywords --> + +<bookinfo> +<title>The &appname; Handbook</title> + +<authorgroup> +<author> +<firstname></firstname> +<othername></othername> +<surname>%{AUTHOR}</surname> +<affiliation> +<address><email>%{EMAIL}</email></address> +</affiliation> +</author> +</authorgroup> + +<!-- TRANS:ROLES_OF_TRANSLATORS --> + +<copyright> +<year>1999</year> +<year>%{YEAR}</year> +<holder>%{AUTHOR}</holder> +</copyright> +<!-- Translators: put here the copyright notice of the translation --> +<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook +     and in the FDL itself on how to use it. --> +<legalnotice>&FDLNotice;</legalnotice> + +<!-- Date and version information of the documentation +Don't forget to include this last date and this last revision number, we +need them for translation coordination ! +Please respect the format of the date (YYYY-MM-DD) and of the version +(V.MM.LL), it could be used by automation scripts. +Do NOT change these in the translation. --> + +<date>2001-10-18</date> +<releaseinfo>%{VERSION}</releaseinfo> + +<!-- Abstract about this handbook --> + +<abstract> +<para> +&appname; is an application specially designed to do nothing you would +ever want. +</para> +</abstract> + +<!-- This is a set of Keywords for indexing by search engines. +Please at least include KDE, the KDE package it is in, the name + of your application, and a few relevant keywords. --> + +<keywordset> +<keyword>KDE</keyword> +<keyword>%{APPNAME}</keyword> +<keyword>nothing</keyword> +<keyword>nothing else</keyword> +</keywordset> + +</bookinfo> + +<!-- The contents of the documentation begin here.  Label +each chapter so with the id attribute. This is necessary for two reasons: it +allows you to easily reference the chapter from other chapters of your +document, and if there is no ID, the name of the generated HTML files will vary +from time to time making it hard to manage for maintainers and for the CVS +system. Any chapter labelled (OPTIONAL) may be left out at the author's +discretion. Other chapters should not be left out in order to maintain a +consistent documentation style across all KDE apps. --> + +<chapter id="introduction"> +<title>Introduction</title> + +<!-- The introduction chapter contains a brief introduction for the +application that explains what it does and where to report +problems. Basically a long version of the abstract.  Don't include a +revision history. (see installation appendix comment) --> + +<para> +&appname; is a program that lets you do absolutely nothing. Please report +any problems or feature requests to the &kde; mailing lists. +</para> +</chapter> + +<chapter id="using-appname"> +<title>Using &appname;</title> + +<!-- This chapter should tell the user how to use your app. You should use as +many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document +your application. --> + +<para> + +<!-- Note that all graphics should be in .png format. Use no gifs because of +patent issues. --> + +<screenshot> +<screeninfo>Here's a screenshot of &appname;</screeninfo> +	<mediaobject> +	  <imageobject> +	    <imagedata fileref="screenshot.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="screenshot.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Screenshot</phrase> +	  </textobject> +	</mediaobject> +</screenshot> +</para> + + +<sect1 id="appname-features"> +<title>More &appname; features</title> + +<para>It slices! It dices! and it comes with a free toaster!</para> +<para> +The Squiggle Tool <guiicon><inlinemediaobject> +	  <imageobject> +	    <imagedata fileref="squiggle.png" format="PNG"/> +	  </imageobject> +	  <imageobject> +	    <imagedata fileref="squiggle.eps" format="EPS"/> +	  </imageobject> +	  <textobject> +	    <phrase>Squiggle</phrase> +	  </textobject> +</inlinemediaobject></guiicon> is used to draw squiggly lines all over +the &appname; main window. It's not a bug, it's a feature! +</para> + +</sect1> +</chapter> + +<chapter id="commands"> +<title>Command Reference</title> + +<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the +application windows and their menubar and toolbar commands for easy reference. +Also include any keys that have a special function but have no equivalent in the +menus or toolbars. This may not be necessary for small apps or apps with no tool +or menu bars. --> + +<sect1 id="appname-mainwindow"> +<title>The main &appname; window</title> + +<sect2> +<title>The File Menu</title> +<para> +<variablelist> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>New</guimenuitem> +</menuchoice></term> +<listitem><para><action>Creates a new document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Save</guimenuitem> +</menuchoice></term> +<listitem><para><action>Saves the document</action></para></listitem> +</varlistentry> +<varlistentry> +<term><menuchoice> +<shortcut> +<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo> +</shortcut> +<guimenu>File</guimenu> +<guimenuitem>Quit</guimenuitem> +</menuchoice></term> +<listitem><para><action>Quits</action> &appname;</para></listitem> +</varlistentry> +</variablelist> +</para> + +</sect2> + +<sect2> +<title>The <guimenu>Help</guimenu> Menu</title> + +<!-- Assuming you have a standard help menu (help, what's this, about --> +<!-- &appname;, about KDE) then the documentation is already written. --> +<!-- The following entity is valid anywhere that a variablelist is --> +<!-- valid.  --> + +&help.menu.documentation; + +</sect2> + +</sect1> +</chapter> + +<chapter id="developers"> +<title>Developer's Guide to &appname;</title> + +<!-- (OPTIONAL) A Programming/Scripting reference chapter should be +used for apps that use plugins or that provide their own scripting hooks +and/or development libraries. --> + +<para> +Programming &appname; plugins is a joy to behold. Just read through the next +66 pages of API's to learn how! +</para> + +<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you +should consult the docbook reference for further details. The example below was +taken from that reference and shortened a bit for readability. --> + +<refentry id="re-1007-unmanagechildren-1"> +<refmeta> +<refentrytitle>XtUnmanageChildren</refentrytitle> +<refmiscinfo>Xt - Geometry Management</refmiscinfo> +</refmeta> +<refnamediv> +<refname>XtUnmanageChildren +</refname> +<refpurpose>remove a list of children from a parent widget's managed +list. +<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm> +<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm>  +</refpurpose> + +</refnamediv> +<refsynopsisdiv> +<refsynopsisdivinfo> +<date>4 March 1996</date> +</refsynopsisdivinfo> +<synopsis> +void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>) +    WidgetList <replaceable class="parameter">children</replaceable>; +    Cardinal <replaceable class="parameter">num_children</replaceable>; +</synopsis> + +<refsect2 id="r2-1007-unmanagechildren-1"> +<title>Inputs</title> +<variablelist> +<varlistentry> +<term><replaceable class="parameter">children</replaceable> +</term> +<listitem> +<para>Specifies an array of child widgets. Each child must be of +class RectObj or any subclass thereof. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term><replaceable class="parameter">num_children</replaceable> +</term> +<listitem> +<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>. +</para> +</listitem> +</varlistentry> +</variablelist> +</refsect2></refsynopsisdiv> + +<refsect1 id="r1-1007-unmanagechildren-1"> +<title>Description +</title> +<para><function>XtUnmanageChildren()</function> unmaps the specified widgets +and removes them from their parent's geometry management. +The widgets will disappear from the screen, and (depending +on its parent) may no longer have screen space allocated for +them. +</para> +<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have +the same parent. +</para> +<para>See the “Algorithm” section below for full details of the +widget unmanagement procedure. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-2"> +<title>Usage</title> +<para>Unmanaging widgets is the usual method for temporarily +making them invisible.  They can be re-managed with +<function>XtManageChildren()</function>. +</para> +<para>You can unmap a widget, but leave it under geometry +management by calling <function>XtUnmapWidget()</function>.  You can +destroy a widget's window without destroying the widget by +calling <function>XtUnrealizeWidget()</function>.  You can destroy a +widget completely with <function>XtDestroyWidget()</function>. +</para> +<para>If you are only going to unmanage a single widget, it is +more convenient to call <function>XtUnmanageChild()</function>.  It is +often more convenient to call <function>XtUnmanageChild()</function> +several times than it is to declare and initialize an array +of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling +<function>XtUnmanageChildren()</function> is more efficient, however, +because it only calls the parent's <function>change_managed()</function> +method once. +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-3"> +<title>Algorithm +</title> +<para><function>XtUnmanageChildren()</function> performs the following: +</para> +<variablelist> +<varlistentry> +<term>- +</term> +<listitem> +<para>Ignores the child if it already is unmanaged or is being +destroyed. +</para> +</listitem> +</varlistentry> +<varlistentry> +<term>- +</term> +<listitem> +<para>Otherwise, if the child is realized, it makes it nonvisible +by unmapping it. +</para> +</listitem> +</varlistentry> +</variablelist> +<para> +</para> +</refsect1> + +<refsect1 id="r1-1007-unmanagechildren-4"> +<title>Structures</title> +<para>The <type>WidgetList</type> type is simply an array of widgets: +</para> +<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList; +</screen> +</refsect1> +</refentry> + +</chapter> + +<chapter id="faq"> +<title>Questions and Answers</title> + +<!-- (OPTIONAL but recommended) This chapter should include all of the silly +(and not-so-silly) newbie questions that fill up your mailbox. This chapter +should be reserved for BRIEF questions and answers! If one question uses more +than a page or so then it should probably be part of the +"Using this Application" chapter instead. You should use links to +cross-reference questions to the parts of your documentation that answer them. +This is also a great place to provide pointers to other FAQ's if your users +must do some complicated configuration on other programs in order for your +application work. --> + +&reporting.bugs; +&updating.documentation; + +<qandaset id="faqlist"> +<qandaentry> +<question> +<para>My Mouse doesn't work. How do I quit &appname;?</para> +</question> +<answer> +<para>You silly goose! Check out the <link linkend="commands">Commands +Section</link> for the answer.</para> +</answer> +</qandaentry> +<qandaentry> +<question> +<para>Why can't I twiddle my documents?</para> +</question> +<answer> +<para>You can only twiddle your documents if you have the foobar.lib +installed.</para> +</answer> +</qandaentry> +</qandaset> +</chapter> + +<chapter id="credits"> + +<!-- Include credits for the programmers, documentation writers, and +contributors here. The license for your software should then be included below +the credits with a reference to the appropriate license file included in the KDE +distribution. --> + +<title>Credits and License</title> + +<para> +&appname; +</para> +<para> +Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> +<para> +Contributors: +<itemizedlist> +<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para> +</listitem> +<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para> +</listitem> +</itemizedlist> +</para> + +<para> +Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email> +</para> + +<!-- TRANS:CREDIT_FOR_TRANSLATORS --> + +&underFDL;               <!-- FDL: do not remove --> + +<!-- Determine which license your application is licensed under,  +     and delete all the remaining licenses below: + +     (NOTE:  All documentation are licensed under the FDL,  +     regardless of what license the application uses) --> + +&underGPL;        	 <!-- GPL License --> +&underBSDLicense;        <!-- BSD License --> +&underArtisticLicense;   <!-- BSD Artistic License --> +&underX11License;        <!-- X11 License  --> + +</chapter> + +<appendix id="installation"> +<title>Installation</title> + +<sect1 id="getting-appname"> +<title>How to obtain &appname;</title> + +<!-- This first entity contains boiler plate for applications that are +part of KDE CVS.  You should remove it if you are releasing your +application -->  + +&install.intro.documentation; + +</sect1> + +<sect1 id="requirements"> +<title>Requirements</title> + +<!-- +List any special requirements for your application here. This should include: +.Libraries or other software that is not included in kdesupport, +kdelibs, or kdebase. +.Hardware requirements like amount of RAM, disk space, graphics card +capabilities, screen resolution, special expansion cards, etc. +.Operating systems the app will run on. If your app is designed only for a +specific OS, (you wrote a graphical LILO configurator for example) put this +information here. +--> + +<para> +In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is +required in order to support the advanced &appname; features. &appname; uses +about 5 megs of memory to run, but this may vary depending on your +platform and configuration. +</para> + +<para> +All required libraries as well as &appname; itself can be found +on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>. +</para> + +<!-- For a list of updates, you may refer to the application web site +or the ChangeLog file, or ... --> +<para> +You can find a list of changes at <ulink +url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>. +</para> +</sect1> + +<sect1 id="compilation"> +<title>Compilation and Installation</title> + +<!-- This entity contains the boilerplate text for standard --> +<!-- compilation instructions.  If your application requires any --> +<!-- special handling, remove it, and replace with your own text. --> + +&install.compile.documentation; + +</sect1> + +<sect1 id="configuration"> +<title>Configuration</title> + +<para>Don't forget to tell your system to start the <filename>dtd</filename> +dicer-toaster daemon first, or &appname; won't work !</para> + +</sect1> + +</appendix> + +&documentation.index; +</book> + +<!-- +Local Variables: +mode: sgml +sgml-minimize-attributes:nil +sgml-general-insert-case:lower +sgml-indent-step:0 +sgml-indent-data:nil +End: + +vim:tabstop=2:shiftwidth=2:expandtab  +--> + diff --git a/app_templates/kioslave/setup.py b/app_templates/kioslave/setup.py new file mode 100755 index 0000000..f9b9e30 --- /dev/null +++ b/app_templates/kioslave/setup.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +########################################################################### +# setup - description                                                     # +# ------------------------------                                          # +# begin     : Fri Jun 27 2005                                             # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : YOUR@EMAIL.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +import kdedistutils + +kdedistutils.setup(name="kioslave", +    version="0.1.0", +    author="AUTHOR", +    author_email="YOUR@EMAIL.com", +    url="http://www.TESTAPP.com/", +    min_kde_version = "3.0.0", +    min_qt_version = "3.0.0", +    license = "GPL", +    application_data = ['src/kioslave.py'], +    docbooks = [ ('doc/en','en') ], +    kioslaves = [ ('src/kioslave.protocol','kioslave.py')] ) diff --git a/app_templates/kioslave/src/kioslave.lsm b/app_templates/kioslave/src/kioslave.lsm new file mode 100644 index 0000000..43d0d5f --- /dev/null +++ b/app_templates/kioslave/src/kioslave.lsm @@ -0,0 +1,16 @@ +Begin3 +Title:          $APPNAME$ -- Some description +Version:        $VERSION$ +Entered-date:    +Description:     +Keywords:       KDE Qt +Author:         $AUTHOR$ <$EMAIL$> +Maintained-by:  $AUTHOR$ <$EMAIL$> +Home-page:       +Alternate-site:  +Primary-site:   ftp://ftp.kde.org/pub/kde/unstable/apps/utils +                xxxxxx  $APPNAMELC$-$VERSION$.tar.gz +                xxx     $APPNAMELC$-$VERSION$.lsm +Platform:       Linux. Needs KDE +Copying-policy: $LICENSE$ +End diff --git a/app_templates/kioslave/src/kioslave.protocol b/app_templates/kioslave/src/kioslave.protocol new file mode 100644 index 0000000..01dc5bb --- /dev/null +++ b/app_templates/kioslave/src/kioslave.protocol @@ -0,0 +1,13 @@ +[Protocol] +exec=kioslave +protocol=kioslave +input=none +output=filesystem +listing=Name,Type,Size,Date +reading=true +writing=true +makedir=true +deleting=true +linking=false +moving=true +maxInstances=1 diff --git a/app_templates/kioslave/src/kioslave.py b/app_templates/kioslave/src/kioslave.py new file mode 100755 index 0000000..63e34f0 --- /dev/null +++ b/app_templates/kioslave/src/kioslave.py @@ -0,0 +1,618 @@ +#!/usr/bin/python +########################################################################### +# kioslave - description                                                  # +# ------------------------------                                          # +# begin     : Mon May 2 2005                                              # +# copyright : (C) 2005 by AUTHOR                                          # +# email     : your@email.com                                              # +#                                                                         # +########################################################################### +#                                                                         # +#   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.                                   # +#                                                                         # +########################################################################### + +# Import the required Qt and KDE modules. +from qt import * +from kio import * +from kdecore import * +import os, time + +# For debugging purposes, import the sys and traceback modules. +import sys, traceback + +DEBUG = 1 + +# Define a class which will be used to create IOSlave instances. +############################################################################ +class SlaveClass(KIO.SlaveBase): +    """SlaveClass(KIO.SlaveBase) +     +    See kdelibs/kio/kio/slavebase.h for virtual functions to override. +    """ +     +    ######################################################################## +    def __init__(self, pool, app): +        # We must call the initialisation method of the base class. +        KIO.SlaveBase.__init__(self, "kioslave", pool, app) +         +        # Attach the DCOP client object associated with this IOSlave to the +        # DCOP server. +        self.dcopClient().attach() +         +        self.debug("dcopClient: %i" % self.dcopClient().isRegistered()) +         +        self.contents = RAMDir(None,u"/") +         +        self.host = "" +        self.document = None +        self.file = None +         +        self.debug("Exiting __init__ now"); +     +    ######################################################################## +    def __del__(self): +        pass +     +    ######################################################################## +    # KIO.SlaveBase method +    def setHost(self, host, port, user, passwd): +        self.debug( +            "setHost: %s %s %s %s" % ( +                repr(unicode(host)), repr(unicode(port)), +                repr(unicode(user)), repr(unicode(passwd)) +                ) +            ) +         +        # This IOSlave does not allow a host to be specified as part of +        # a URL. +        if unicode(host) != u"": +            self.closeConnection() +            self.error(KIO.ERR_MALFORMED_URL, host) +            return +     +    ######################################################################## +    # KIO.SlaveBase method +    def openConnection(self): +        # Don't call self.finished() in this method. +        self.debug("openConnection") +     +    ######################################################################## +    # KIO.SlaveBase method +    def closeConnection(self): +        # Don't call self.finished() in this method. +        self.debug("closeConnection") +     +    ######################################################################## +    # KIO.SlaveBase method +    def get(self, url): +        path = str(url.path()) +        self.debug("get(): %s" % path) +        self.openConnection() +         +        item = self.contents.resolve(path) +        if item is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, path) +            return + +        if item.isDir(): +            self.error(KIO.ERR_IS_DIRECTORY, path) +         +        self.totalSize(len(item.getData())) +        self.data(QByteArray(item.getData())) +         +        # The end of the data string. +        self.data(QByteArray()) +         +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def put(self, url, permissions, overwrite, resume): +        self.debug("put") +        self.openConnection() +         +        path = str(url.path()) +        parts = path.split('/') +        filename = parts[-1] +        parent_dir = self.contents.resolveParent(path) +        if parent_dir is None: +            parent_path = '/'.join(parts[:-1]) +            self.error(KIO.ERR_DOES_NOT_EXIST, parent_path) +            return +         +        if parent_dir.contains(filename): +            if not overwrite: +                self.error(KIO.ERR_COULD_NOT_WRITE, parent_path) +                return +            else: +                parent_dir.unlink(filename) +         +        # Read data from the application. +        bytearray = QByteArray() +        bytes = 0 +        data = "" +         +        while True: +            self.dataReq() +            result = self.readData(bytearray) +             +            if result <= 0: +                # An error or the end of data was encountered. +                break +             +            # The number of bytes read is given in the result. +            bytes = bytes + result +            data = data + str(bytearray) +         +        parent_dir.insert(RAMFile(parent_dir,filename,data)) +         +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def stat(self, url): +        self.debug("stat: %s" % url.url(0,0)) +        self.openConnection() +         +        self.debug("path:%s"% url.path()) + +        # Return info the for the root.     +        item = self.contents.resolve(str(url.path())) +        if item is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, str(url.path())) +            return + +        self.statEntry(item.getStatEntry()) +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def mimetype(self, url): +        self.debug("mimetype: %s" % unicode(url)) +        self.openConnection() +         +        path = str(url.path()) +        item = self.contents.resolve(path) +        if item is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, path) +            return +             +        self.mimeType(item.getMimetype()) +         +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def listDir(self, url): +        # The "url" argument is a kdecore.KURL object. +        self.debug("listDir: %s" % str(url.prettyURL(0))) +        self.openConnection() +         +        path = str(url.path()) +        dir = self.contents.resolve(path) +        if dir is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, path) +            return +         +        if not dir.isDir(): +            self.error(KIO.ERR_IS_FILE, path) +            return +             +        for entry in dir.listDir(): +            self.listEntry(entry, 0) +             +        self.listEntry([], 1) # Signal that the list is finished. +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def mkdir(self, url, permissions): +        self.debug("mkdir") +        self.openConnection() +         +        parent_path = str(url.path()) +        parent_dir = self.contents.resolveParent(parent_path) +        if parent_dir is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, parent_path) +            return +         +        new_dir_obj = parent_dir.mkdir(parent_path.split('/')[-1]) +        if new_dir_obj is None: +            self.error(KIO.ERR_COULD_NOT_MKDIR, parent_path) +            return + +        self.finished() + +    ######################################################################## +    # KIO.SlaveBase method +    def rename(self, src, dest, overwrite): +        self.debug("rename: %s %s" % (src.path(), dest.path())) +        self.openConnection() +         +        src_path = str(src.path()) +        src_obj = self.contents.resolve(src_path) +        if src_obj is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, src_path) +            return +         +        # See if the destination path already exists. +        dest_path = str(dest.path()) +        dest_obj = self.contents.resolve(dest_path) +        if dest_obj is not None: +            if dest_obj is src_obj: +                self.finished() # Done already. +                return +             +            if not overwrite: +                # Can't overwrite. not bad. +                self.error(KIO.ERR_CANNOT_RENAME, dest_path) +                return +            else: +                # Over write, just remove the object. +                dest_obj.getParent().unlink(dest_obj.getName()) +         +        dest_dir = self.contents.resolveParent(dest_path) +        if dest_dir is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, dest_path) +            return + +        src_obj.getParent().unlink(src_obj) +        src_obj.setName(dest_path.split('/')[-1]) +        dest_dir.insert(src_obj) +         +        self.finished() +     +    # Other possible file operations are represented by the following +    # methods which are not implemented. +     +    #def symlink(self, target, dest, overwrite): +    #    debug("symlink") +    #    ... +    #    self.finished() +     +    #def chmod(self, url, permissions): +    #    debug("chmod") +    #    ... +    #    self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def copy(self, src, dest, permissions, overwrite): +        self.debug("copy") +        self.openConnection() +         +        src_path = str(src.path()) +        src_obj = self.contents.resolve(src_path) +        if src_obj is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, src_path) +            return +         +        # See if the destination path already exists. +        dest_path = str(dest.path()) +        dest_obj = self.contents.resolve(dest_path) +        if dest_obj is not None: +            if dest_obj is src_obj: +                self.finished() # Done already. +                return +             +            if not overwrite: +                # Can't overwrite. not bad. +                self.error(KIO.ERR_COULD_NOT_WRITE, dest_path) +                return +            else: +                # Over write, just remove the object. +                dest_obj.getParent().unlink(dest_obj.getName()) +         +        dest_dir = self.contents.resolveParent(dest_path) +        if dest_dir is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, dest_path) +            return + +        new_obj = src_obj.copy() +        new_obj.setName(dest_path.split('/')[-1]) +        dest_dir.insert(new_obj) +         +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def del_(self, url, isfile): +        self.debug("del_") +        self.openConnection() +         +        path = str(url.path()) +        item = self.contents.resolve(path) +        if item is None: +            self.error(KIO.ERR_DOES_NOT_EXIST, path) +            return + +        item.getParent().unlink(item.getName()) +         +        self.finished() +     +    ######################################################################## +    # KIO.SlaveBase method +    def disconnectSlave(self): +        self.debug("disconnectSlave") +        return +     +    ######################################################################## +    # KIO.SlaveBase method +    def dispatchLoop(self): +        self.debug("dispatchLoop") +        KIO.SlaveBase.dispatchLoop(self) +     +    ######################################################################## +    # KIO.SlaveBase method +    def error(self,errid,text): +        self.debug("error: %i, %s" % (errid,text) ) +        KIO.SlaveBase.error(self,errid,text) +         +    ############################################################################ +    def debug(self,msg): +        if DEBUG == 0: return +        print "kioslave:"+str(msg)+"\n" +        sys.stdout.flush() + +############################################################################ +class RAMDir(object): +    ############################################################################ +    def __init__(self,parent,name): +        self.contents = {} +        self.parent = parent +        self.name = str(name) +         +    ############################################################################     +    def getParent(self): +        return self.parent +         +    ############################################################################     +    def setParent(self,parent): +        self.parent = parent +         +    ############################################################################     +    def getName(self): +        return self.name +         +    ############################################################################             +    def setName(self,name): +        self.name = str(name) +     +    ############################################################################     +    def resolve(self,path): +        while path.endswith('/'): +            path = path[:-1] +        while path.startswith('/'): +            path = path[1:] +             +        if path=='': +            return self + +        parts = path.split('/') +        self.debug(path) +        for item in self.contents.keys(): +            self.debug("keys:"+item) +         +        if parts[0] in self.contents: +            return self.contents[parts[0]].resolve('/'.join(parts[1:])) +        self.debug("CHECKPOINT 1") +        return None +         +    ############################################################################ +    def resolveParent(self,path): +        while path.endswith('/'): +            path = path[:-1] +        while path.startswith('/'): +            path = path[1:] +         +        if path=="": +            return None +             +        parts = path.split('/') +        return self.resolve('/'.join(parts[:-1])) +         +    ############################################################################ +    def mkdir(self,name): +        if name in self.contents: +            return None +        new_dir = RAMDir(self,name) +        self.contents[name] = new_dir +        return new_dir +         +    ############################################################################ +    def getStatEntry(self): +        # Return info the for the root. +        length = 0 +         +        entry = [] +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_NAME +        atom.m_str = self.name +        #debug("name: %s" % name) +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_SIZE +        atom.m_long = length +        #debug("length: %i" % length) +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_MODIFICATION_TIME +        # Number of seconds since the epoch. +        atom.m_long = int(time.time()) +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_ACCESS +        # The usual octal permission information (rw-r--r-- in this case). +        atom.m_long = 0644 +        entry.append(atom) +         +        # If the stat method is implemented then entries _must_ include +        # the UDE_FILE_TYPE atom or the whole system may not work at all. +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_FILE_TYPE +        #atom.m_long = os.path.stat.S_IFREG +        atom.m_long = os.path.stat.S_IFDIR +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_MIME_TYPE +        atom.m_str = self.getMimetype() +        entry.append(atom) +     +        return entry +         +    ############################################################################ +    def listDir(self): +        list = [] +        for item in self.contents.values(): +            list.append(item.getStatEntry()) +        return list +     +    ############################################################################ +    def isDir(self): +        return True +         +    ############################################################################ +    def insert(self,item): +        self.contents[item.getName()] = item +     +    ############################################################################ +    def contains(self,name): +        return name in self.contents + +    ############################################################################ +    def unlink(self,name): +        if str(name) in self.contents: +            del self.contents[str(name)] +         +    ############################################################################ +    def debug(self,msg): +        if DEBUG == 0: return +         +        print "kioslave:"+str(msg)+"\n" +        sys.stdout.flush() +         +    ############################################################################ +    def getMimetype(self): +        return "inode/directory" + +    ############################################################################ +    def copy(self): +        new_dir = RAMDir(None,self.name) +         +        for item in self.contents.values(): +            new_item = item.copy() +            new_item.setParent(new_dir) +            new_dir.insert(new_item) +         +        return new_dir +         +############################################################################ +class RAMFile(object):         +    ############################################################################ +    def __init__(self,parent,name,data=None): +        self.parent = parent +        self.name = str(name) +        self.data = data +         +    ############################################################################     +    def getParent(self): +        return self.parent +         +    ############################################################################     +    def setParent(self,parent): +        self.parent = parent + +    ############################################################################     +    def getName(self): +        return self.name +         +    ############################################################################             +    def setName(self,name): +        self.name = str(name) +         +    ############################################################################     +    def resolve(self,path): +        if path!="": +            return None +        return self + +    ############################################################################ +    def getData(self): +        return self.data +         +    ############################################################################ +    def resolveParent(self,path): +        return None +         +    ############################################################################ +    def getStatEntry(self): +        # Return info the for the root. +        length = 0 +         +        entry = [] +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_NAME +        atom.m_str = self.name +        #debug("name: %s" % name) +        entry.append(atom) +         +        length = 0 +        if self.data is not None: +            length = len(self.data) +             +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_SIZE +        atom.m_long = length +        #debug("length: %i" % length) +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_MODIFICATION_TIME +        # Number of seconds since the epoch. +        atom.m_long = int(time.time()) +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_ACCESS +        # The usual octal permission information (rw-r--r-- in this case). +        atom.m_long = 0644 +        entry.append(atom) +         +        # If the stat method is implemented then entries _must_ include +        # the UDE_FILE_TYPE atom or the whole system may not work at all. +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_FILE_TYPE +        atom.m_long = os.path.stat.S_IFREG +        entry.append(atom) +         +        atom = KIO.UDSAtom() +        atom.m_uds = KIO.UDS_MIME_TYPE +        atom.m_str = self.getMimetype() +        entry.append(atom) +     +        return entry +         +    ############################################################################ +    def isDir(self): +        return False +         +    ############################################################################ +    def getMimetype(self): +        return "text/html" +         +    ############################################################################ +    def copy(self): +        return RAMFile(None,self.name,self.data) +     +############################################################################ +def SlaveFactory(pool, app): +    slave = SlaveClass(pool, app) +    slave.dispatchLoop() | 
