By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release. View | Details | Raw Unified | Return to bug 1991
Collapse All | Expand All

(-)pytdeextensions/app_templates/kcontrol_module/setup.py (-1 / +1 lines)
Lines 22-28 Link Here
22
    author="AUTHOR",
22
    author="AUTHOR",
23
    author_email="YOUR@EMAIL.com",
23
    author_email="YOUR@EMAIL.com",
24
    url="http://www.TESTAPP.com/",
24
    url="http://www.TESTAPP.com/",
25
    min_kde_version = "3.0.0",
25
    min_tde_version = "3.0.0",
26
    min_qt_version = "3.0.0",
26
    min_qt_version = "3.0.0",
27
    license = "GPL",
27
    license = "GPL",
28
    application_data = ['src/kcontrol_module.py','src/KcontrolModuleWidgetUI.ui'],
28
    application_data = ['src/kcontrol_module.py','src/KcontrolModuleWidgetUI.ui'],
(-)pytdeextensions/app_templates/kcontrol_module/src/kcontrol_module.py (-2 / +2 lines)
Lines 72-81 Link Here
72
        TDEGlobal.iconLoader().addAppDir("kcontrol_module")
72
        TDEGlobal.iconLoader().addAppDir("kcontrol_module")
73
        
73
        
74
        if standalone:
74
        if standalone:
75
            toplayout = QVBoxLayout( self.plainPage(), 0, KDialog.spacingHint() )
75
            toplayout = TQVBoxLayout( self.plainPage(), 0, KDialog.spacingHint() )
76
            mainwidget = KcontrolModuleWidget(self.plainPage())
76
            mainwidget = KcontrolModuleWidget(self.plainPage())
77
        else:
77
        else:
78
            toplayout = QVBoxLayout( self, 0, KDialog.spacingHint() )
78
            toplayout = TQVBoxLayout( self, 0, KDialog.spacingHint() )
79
            mainwidget = KcontrolModuleWidget(self)
79
            mainwidget = KcontrolModuleWidget(self)
80
            
80
            
81
        toplayout.addWidget(mainwidget)
81
        toplayout.addWidget(mainwidget)
(-)pytdeextensions/app_templates/kdeapp/AUTHORS (-1 lines)
Line 1 Link Here
1
$AUTHOR$ <$EMAIL$>
(-)pytdeextensions/app_templates/kdeapp/COPYING (-340 lines)
Lines 1-340 Link Here
1
		    GNU GENERAL PUBLIC LICENSE
2
		       Version 2, June 1991
3
4
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
6
 Everyone is permitted to copy and distribute verbatim copies
7
 of this license document, but changing it is not allowed.
8
9
			    Preamble
10
11
  The licenses for most software are designed to take away your
12
freedom to share and change it.  By contrast, the GNU General Public
13
License is intended to guarantee your freedom to share and change free
14
software--to make sure the software is free for all its users.  This
15
General Public License applies to most of the Free Software
16
Foundation's software and to any other program whose authors commit to
17
using it.  (Some other Free Software Foundation software is covered by
18
the GNU Library General Public License instead.)  You can apply it to
19
your programs, too.
20
21
  When we speak of free software, we are referring to freedom, not
22
price.  Our General Public Licenses are designed to make sure that you
23
have the freedom to distribute copies of free software (and charge for
24
this service if you wish), that you receive source code or can get it
25
if you want it, that you can change the software or use pieces of it
26
in new free programs; and that you know you can do these things.
27
28
  To protect your rights, we need to make restrictions that forbid
29
anyone to deny you these rights or to ask you to surrender the rights.
30
These restrictions translate to certain responsibilities for you if you
31
distribute copies of the software, or if you modify it.
32
33
  For example, if you distribute copies of such a program, whether
34
gratis or for a fee, you must give the recipients all the rights that
35
you have.  You must make sure that they, too, receive or can get the
36
source code.  And you must show them these terms so they know their
37
rights.
38
39
  We protect your rights with two steps: (1) copyright the software, and
40
(2) offer you this license which gives you legal permission to copy,
41
distribute and/or modify the software.
42
43
  Also, for each author's protection and ours, we want to make certain
44
that everyone understands that there is no warranty for this free
45
software.  If the software is modified by someone else and passed on, we
46
want its recipients to know that what they have is not the original, so
47
that any problems introduced by others will not reflect on the original
48
authors' reputations.
49
50
  Finally, any free program is threatened constantly by software
51
patents.  We wish to avoid the danger that redistributors of a free
52
program will individually obtain patent licenses, in effect making the
53
program proprietary.  To prevent this, we have made it clear that any
54
patent must be licensed for everyone's free use or not licensed at all.
55
56
  The precise terms and conditions for copying, distribution and
57
modification follow.
58
59
		    GNU GENERAL PUBLIC LICENSE
60
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62
  0. This License applies to any program or other work which contains
63
a notice placed by the copyright holder saying it may be distributed
64
under the terms of this General Public License.  The "Program", below,
65
refers to any such program or work, and a "work based on the Program"
66
means either the Program or any derivative work under copyright law:
67
that is to say, a work containing the Program or a portion of it,
68
either verbatim or with modifications and/or translated into another
69
language.  (Hereinafter, translation is included without limitation in
70
the term "modification".)  Each licensee is addressed as "you".
71
72
Activities other than copying, distribution and modification are not
73
covered by this License; they are outside its scope.  The act of
74
running the Program is not restricted, and the output from the Program
75
is covered only if its contents constitute a work based on the
76
Program (independent of having been made by running the Program).
77
Whether that is true depends on what the Program does.
78
79
  1. You may copy and distribute verbatim copies of the Program's
80
source code as you receive it, in any medium, provided that you
81
conspicuously and appropriately publish on each copy an appropriate
82
copyright notice and disclaimer of warranty; keep intact all the
83
notices that refer to this License and to the absence of any warranty;
84
and give any other recipients of the Program a copy of this License
85
along with the Program.
86
87
You may charge a fee for the physical act of transferring a copy, and
88
you may at your option offer warranty protection in exchange for a fee.
89
90
  2. You may modify your copy or copies of the Program or any portion
91
of it, thus forming a work based on the Program, and copy and
92
distribute such modifications or work under the terms of Section 1
93
above, provided that you also meet all of these conditions:
94
95
    a) You must cause the modified files to carry prominent notices
96
    stating that you changed the files and the date of any change.
97
98
    b) You must cause any work that you distribute or publish, that in
99
    whole or in part contains or is derived from the Program or any
100
    part thereof, to be licensed as a whole at no charge to all third
101
    parties under the terms of this License.
102
103
    c) If the modified program normally reads commands interactively
104
    when run, you must cause it, when started running for such
105
    interactive use in the most ordinary way, to print or display an
106
    announcement including an appropriate copyright notice and a
107
    notice that there is no warranty (or else, saying that you provide
108
    a warranty) and that users may redistribute the program under
109
    these conditions, and telling the user how to view a copy of this
110
    License.  (Exception: if the Program itself is interactive but
111
    does not normally print such an announcement, your work based on
112
    the Program is not required to print an announcement.)
113
114
These requirements apply to the modified work as a whole.  If
115
identifiable sections of that work are not derived from the Program,
116
and can be reasonably considered independent and separate works in
117
themselves, then this License, and its terms, do not apply to those
118
sections when you distribute them as separate works.  But when you
119
distribute the same sections as part of a whole which is a work based
120
on the Program, the distribution of the whole must be on the terms of
121
this License, whose permissions for other licensees extend to the
122
entire whole, and thus to each and every part regardless of who wrote it.
123
124
Thus, it is not the intent of this section to claim rights or contest
125
your rights to work written entirely by you; rather, the intent is to
126
exercise the right to control the distribution of derivative or
127
collective works based on the Program.
128
129
In addition, mere aggregation of another work not based on the Program
130
with the Program (or with a work based on the Program) on a volume of
131
a storage or distribution medium does not bring the other work under
132
the scope of this License.
133
134
  3. You may copy and distribute the Program (or a work based on it,
135
under Section 2) in object code or executable form under the terms of
136
Sections 1 and 2 above provided that you also do one of the following:
137
138
    a) Accompany it with the complete corresponding machine-readable
139
    source code, which must be distributed under the terms of Sections
140
    1 and 2 above on a medium customarily used for software interchange; or,
141
142
    b) Accompany it with a written offer, valid for at least three
143
    years, to give any third party, for a charge no more than your
144
    cost of physically performing source distribution, a complete
145
    machine-readable copy of the corresponding source code, to be
146
    distributed under the terms of Sections 1 and 2 above on a medium
147
    customarily used for software interchange; or,
148
149
    c) Accompany it with the information you received as to the offer
150
    to distribute corresponding source code.  (This alternative is
151
    allowed only for noncommercial distribution and only if you
152
    received the program in object code or executable form with such
153
    an offer, in accord with Subsection b above.)
154
155
The source code for a work means the preferred form of the work for
156
making modifications to it.  For an executable work, complete source
157
code means all the source code for all modules it contains, plus any
158
associated interface definition files, plus the scripts used to
159
control compilation and installation of the executable.  However, as a
160
special exception, the source code distributed need not include
161
anything that is normally distributed (in either source or binary
162
form) with the major components (compiler, kernel, and so on) of the
163
operating system on which the executable runs, unless that component
164
itself accompanies the executable.
165
166
If distribution of executable or object code is made by offering
167
access to copy from a designated place, then offering equivalent
168
access to copy the source code from the same place counts as
169
distribution of the source code, even though third parties are not
170
compelled to copy the source along with the object code.
171
172
  4. You may not copy, modify, sublicense, or distribute the Program
173
except as expressly provided under this License.  Any attempt
174
otherwise to copy, modify, sublicense or distribute the Program is
175
void, and will automatically terminate your rights under this License.
176
However, parties who have received copies, or rights, from you under
177
this License will not have their licenses terminated so long as such
178
parties remain in full compliance.
179
180
  5. You are not required to accept this License, since you have not
181
signed it.  However, nothing else grants you permission to modify or
182
distribute the Program or its derivative works.  These actions are
183
prohibited by law if you do not accept this License.  Therefore, by
184
modifying or distributing the Program (or any work based on the
185
Program), you indicate your acceptance of this License to do so, and
186
all its terms and conditions for copying, distributing or modifying
187
the Program or works based on it.
188
189
  6. Each time you redistribute the Program (or any work based on the
190
Program), the recipient automatically receives a license from the
191
original licensor to copy, distribute or modify the Program subject to
192
these terms and conditions.  You may not impose any further
193
restrictions on the recipients' exercise of the rights granted herein.
194
You are not responsible for enforcing compliance by third parties to
195
this License.
196
197
  7. If, as a consequence of a court judgment or allegation of patent
198
infringement or for any other reason (not limited to patent issues),
199
conditions are imposed on you (whether by court order, agreement or
200
otherwise) that contradict the conditions of this License, they do not
201
excuse you from the conditions of this License.  If you cannot
202
distribute so as to satisfy simultaneously your obligations under this
203
License and any other pertinent obligations, then as a consequence you
204
may not distribute the Program at all.  For example, if a patent
205
license would not permit royalty-free redistribution of the Program by
206
all those who receive copies directly or indirectly through you, then
207
the only way you could satisfy both it and this License would be to
208
refrain entirely from distribution of the Program.
209
210
If any portion of this section is held invalid or unenforceable under
211
any particular circumstance, the balance of the section is intended to
212
apply and the section as a whole is intended to apply in other
213
circumstances.
214
215
It is not the purpose of this section to induce you to infringe any
216
patents or other property right claims or to contest validity of any
217
such claims; this section has the sole purpose of protecting the
218
integrity of the free software distribution system, which is
219
implemented by public license practices.  Many people have made
220
generous contributions to the wide range of software distributed
221
through that system in reliance on consistent application of that
222
system; it is up to the author/donor to decide if he or she is willing
223
to distribute software through any other system and a licensee cannot
224
impose that choice.
225
226
This section is intended to make thoroughly clear what is believed to
227
be a consequence of the rest of this License.
228
229
  8. If the distribution and/or use of the Program is restricted in
230
certain countries either by patents or by copyrighted interfaces, the
231
original copyright holder who places the Program under this License
232
may add an explicit geographical distribution limitation excluding
233
those countries, so that distribution is permitted only in or among
234
countries not thus excluded.  In such case, this License incorporates
235
the limitation as if written in the body of this License.
236
237
  9. The Free Software Foundation may publish revised and/or new versions
238
of the General Public License from time to time.  Such new versions will
239
be similar in spirit to the present version, but may differ in detail to
240
address new problems or concerns.
241
242
Each version is given a distinguishing version number.  If the Program
243
specifies a version number of this License which applies to it and "any
244
later version", you have the option of following the terms and conditions
245
either of that version or of any later version published by the Free
246
Software Foundation.  If the Program does not specify a version number of
247
this License, you may choose any version ever published by the Free Software
248
Foundation.
249
250
  10. If you wish to incorporate parts of the Program into other free
251
programs whose distribution conditions are different, write to the author
252
to ask for permission.  For software which is copyrighted by the Free
253
Software Foundation, write to the Free Software Foundation; we sometimes
254
make exceptions for this.  Our decision will be guided by the two goals
255
of preserving the free status of all derivatives of our free software and
256
of promoting the sharing and reuse of software generally.
257
258
			    NO WARRANTY
259
260
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
262
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
266
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
267
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
REPAIR OR CORRECTION.
269
270
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
POSSIBILITY OF SUCH DAMAGES.
279
280
		     END OF TERMS AND CONDITIONS
281
282
	    How to Apply These Terms to Your New Programs
283
284
  If you develop a new program, and you want it to be of the greatest
285
possible use to the public, the best way to achieve this is to make it
286
free software which everyone can redistribute and change under these terms.
287
288
  To do so, attach the following notices to the program.  It is safest
289
to attach them to the start of each source file to most effectively
290
convey the exclusion of warranty; and each file should have at least
291
the "copyright" line and a pointer to where the full notice is found.
292
293
    <one line to give the program's name and a brief idea of what it does.>
294
    Copyright (C) <year>  <name of author>
295
296
    This program is free software; you can redistribute it and/or modify
297
    it under the terms of the GNU General Public License as published by
298
    the Free Software Foundation; either version 2 of the License, or
299
    (at your option) any later version.
300
301
    This program is distributed in the hope that it will be useful,
302
    but WITHOUT ANY WARRANTY; without even the implied warranty of
303
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
304
    GNU General Public License for more details.
305
306
    You should have received a copy of the GNU General Public License
307
    along with this program; if not, write to the Free Software
308
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
309
310
311
Also add information on how to contact you by electronic and paper mail.
312
313
If the program is interactive, make it output a short notice like this
314
when it starts in an interactive mode:
315
316
    Gnomovision version 69, Copyright (C) year name of author
317
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318
    This is free software, and you are welcome to redistribute it
319
    under certain conditions; type `show c' for details.
320
321
The hypothetical commands `show w' and `show c' should show the appropriate
322
parts of the General Public License.  Of course, the commands you use may
323
be called something other than `show w' and `show c'; they could even be
324
mouse-clicks or menu items--whatever suits your program.
325
326
You should also get your employer (if you work as a programmer) or your
327
school, if any, to sign a "copyright disclaimer" for the program, if
328
necessary.  Here is a sample; alter the names:
329
330
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333
  <signature of Ty Coon>, 1 April 1989
334
  Ty Coon, President of Vice
335
336
This General Public License does not permit incorporating your program into
337
proprietary programs.  If your program is a subroutine library, you may
338
consider it more useful to permit linking proprietary applications with the
339
library.  If this is what you want to do, use the GNU Library General
340
Public License instead of this License.
(-)pytdeextensions/app_templates/kdeapp/ChangeLog (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeapp/INSTALL (-43 lines)
Lines 1-43 Link Here
1
Basic Installation
2
==================
3
These are generic installation instructions.
4
5
This software uses the Python language's distutils system for installation.
6
A detailed guide for users and system administrators to using distutils to
7
install software can be found here:
8
9
    http://docs.python.org/inst/inst.html
10
11
The simplest way to install this software is to run the following command as
12
the root user:
13
14
    python setup.py install
15
16
The setup.py script will automatically detect the directories to use for
17
documentation, binaries and other software files.
18
19
20
Uninstallation
21
==============
22
During installation setup.py creates list of files and directories that
23
were installed in a file called install_log.txt. 
24
25
    python setup.py uninstall
26
27
28
Installing into an alternate root
29
=================================
30
For packaging purposes it is often very useful to be able to install all files
31
relative not to the usual root directory (/) but into an alternative
32
directory.
33
34
    python setup.py install --root=/tmp/alternativeroot/
35
36
37
Operation Controls
38
==================
39
--verbose
40
    Print more information about what setup.py is doing.
41
    
42
--help
43
    Print a summary of the options to setup.py, and exit.
(-)pytdeextensions/app_templates/kdeapp/MANIFEST.in (-6 lines)
Lines 1-6 Link Here
1
recursive-include doc *.docbook *.png
2
recursive-include po *.po *.pot
3
include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO
4
global-include *.desktop *.py *.ui *.png *.lsm
5
global-exclude *~ .svn
6
global-exclude *~ .cvs
(-)pytdeextensions/app_templates/kdeapp/NEWS (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeapp/README (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeapp/TODO (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeapp/doc/en/index.docbook (-555 lines)
Lines 1-555 Link Here
1
<?xml version="1.0" ?>
2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3
  <!ENTITY appname "<application>MyApplication 0.1</application>">
4
  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname-->
5
  <!ENTITY package "kde-module"><!-- tdebase, tdeadmin, etc -->
6
  <!ENTITY % addindex "IGNORE">
7
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
8
  
9
  
10
  <!-- Do not define any other entities; instead, use the entities
11
       from kde-genent.entities and $LANG/user.entities. -->
12
]>
13
<!-- kdoctemplate v0.8 October 1 1999 
14
     Minor update to "Credits and Licenses" section on August 24, 2000
15
     Removed "Revision history" section on 22 January 2001
16
     Changed to Installation/Help menu entities 18 October 2001
17
     Other minor cleanup and changes 18 October 2001 -->
18
19
20
<!--
21
This template was designed by: David Rugge davidrugge@mindspring.com
22
with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
23
and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
24
of the KDE DocBook team.
25
26
You may freely use this template for writing any sort of KDE documentation.
27
If you have any changes or improvements, please let us know.
28
29
Remember:
30
- in XML, the case of the <tags> and attributes is relevant ;
31
- also, quote all attributes.
32
33
Please don't forget to remove all these comments in your final documentation,
34
thanks ;-).
35
-->
36
37
<!-- ................................................................ -->
38
39
<!-- The language must NOT be changed here. -->
40
41
<book lang="&language;">
42
43
<!-- This header contains all of the meta-information for the document such
44
as Authors, publish date, the abstract, and Keywords -->
45
46
<bookinfo>
47
<title>The &appname; Handbook</title>
48
49
<authorgroup>
50
<author>
51
<firstname></firstname>
52
<othername></othername>
53
<surname>%{AUTHOR}</surname>
54
<affiliation>
55
<address><email>%{EMAIL}</email></address>
56
</affiliation>
57
</author>
58
</authorgroup>
59
60
<!-- TRANS:ROLES_OF_TRANSLATORS -->
61
62
<copyright>
63
<year>1999</year>
64
<year>%{YEAR}</year>
65
<holder>%{AUTHOR}</holder>
66
</copyright>
67
<!-- Translators: put here the copyright notice of the translation -->
68
<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
69
     and in the FDL itself on how to use it. -->
70
<legalnotice>&FDLNotice;</legalnotice>
71
72
<!-- Date and version information of the documentation
73
Don't forget to include this last date and this last revision number, we
74
need them for translation coordination !
75
Please respect the format of the date (YYYY-MM-DD) and of the version
76
(V.MM.LL), it could be used by automation scripts.
77
Do NOT change these in the translation. -->
78
79
<date>2001-10-18</date>
80
<releaseinfo>%{VERSION}</releaseinfo>
81
82
<!-- Abstract about this handbook -->
83
84
<abstract>
85
<para>
86
&appname; is an application specially designed to do nothing you would
87
ever want.
88
</para>
89
</abstract>
90
91
<!-- This is a set of Keywords for indexing by search engines.
92
Please at least include KDE, the KDE package it is in, the name
93
 of your application, and a few relevant keywords. -->
94
95
<keywordset>
96
<keyword>KDE</keyword>
97
<keyword>%{APPNAME}</keyword>
98
<keyword>nothing</keyword>
99
<keyword>nothing else</keyword>
100
</keywordset>
101
102
</bookinfo>
103
104
<!-- The contents of the documentation begin here.  Label
105
each chapter so with the id attribute. This is necessary for two reasons: it
106
allows you to easily reference the chapter from other chapters of your
107
document, and if there is no ID, the name of the generated HTML files will vary
108
from time to time making it hard to manage for maintainers and for the CVS
109
system. Any chapter labelled (OPTIONAL) may be left out at the author's
110
discretion. Other chapters should not be left out in order to maintain a
111
consistent documentation style across all KDE apps. -->
112
113
<chapter id="introduction">
114
<title>Introduction</title>
115
116
<!-- The introduction chapter contains a brief introduction for the
117
application that explains what it does and where to report
118
problems. Basically a long version of the abstract.  Don't include a
119
revision history. (see installation appendix comment) -->
120
121
<para>
122
&appname; is a program that lets you do absolutely nothing. Please report
123
any problems or feature requests to the &kde; mailing lists.
124
</para>
125
</chapter>
126
127
<chapter id="using-appname">
128
<title>Using &appname;</title>
129
130
<!-- This chapter should tell the user how to use your app. You should use as
131
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
132
your application. -->
133
134
<para>
135
136
<!-- Note that all graphics should be in .png format. Use no gifs because of
137
patent issues. -->
138
139
<screenshot>
140
<screeninfo>Here's a screenshot of &appname;</screeninfo>
141
	<mediaobject>
142
	  <imageobject>
143
	    <imagedata fileref="screenshot.png" format="PNG"/>
144
	  </imageobject>
145
	  <imageobject>
146
	    <imagedata fileref="screenshot.eps" format="EPS"/>
147
	  </imageobject>
148
	  <textobject>
149
	    <phrase>Screenshot</phrase>
150
	  </textobject>
151
	</mediaobject>
152
</screenshot>
153
</para>
154
155
156
<sect1 id="appname-features">
157
<title>More &appname; features</title>
158
159
<para>It slices! It dices! and it comes with a free toaster!</para>
160
<para>
161
The Squiggle Tool <guiicon><inlinemediaobject>
162
	  <imageobject>
163
	    <imagedata fileref="squiggle.png" format="PNG"/>
164
	  </imageobject>
165
	  <imageobject>
166
	    <imagedata fileref="squiggle.eps" format="EPS"/>
167
	  </imageobject>
168
	  <textobject>
169
	    <phrase>Squiggle</phrase>
170
	  </textobject>
171
</inlinemediaobject></guiicon> is used to draw squiggly lines all over
172
the &appname; main window. It's not a bug, it's a feature!
173
</para>
174
175
</sect1>
176
</chapter>
177
178
<chapter id="commands">
179
<title>Command Reference</title>
180
181
<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
182
application windows and their menubar and toolbar commands for easy reference.
183
Also include any keys that have a special function but have no equivalent in the
184
menus or toolbars. This may not be necessary for small apps or apps with no tool
185
or menu bars. -->
186
187
<sect1 id="appname-mainwindow">
188
<title>The main &appname; window</title>
189
190
<sect2>
191
<title>The File Menu</title>
192
<para>
193
<variablelist>
194
<varlistentry>
195
<term><menuchoice>
196
<shortcut>
197
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
198
</shortcut>
199
<guimenu>File</guimenu>
200
<guimenuitem>New</guimenuitem>
201
</menuchoice></term>
202
<listitem><para><action>Creates a new document</action></para></listitem>
203
</varlistentry>
204
<varlistentry>
205
<term><menuchoice>
206
<shortcut>
207
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
208
</shortcut>
209
<guimenu>File</guimenu>
210
<guimenuitem>Save</guimenuitem>
211
</menuchoice></term>
212
<listitem><para><action>Saves the document</action></para></listitem>
213
</varlistentry>
214
<varlistentry>
215
<term><menuchoice>
216
<shortcut>
217
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
218
</shortcut>
219
<guimenu>File</guimenu>
220
<guimenuitem>Quit</guimenuitem>
221
</menuchoice></term>
222
<listitem><para><action>Quits</action> &appname;</para></listitem>
223
</varlistentry>
224
</variablelist>
225
</para>
226
227
</sect2>
228
229
<sect2>
230
<title>The <guimenu>Help</guimenu> Menu</title>
231
232
<!-- Assuming you have a standard help menu (help, what's this, about -->
233
<!-- &appname;, about KDE) then the documentation is already written. -->
234
<!-- The following entity is valid anywhere that a variablelist is -->
235
<!-- valid.  -->
236
237
&help.menu.documentation;
238
239
</sect2>
240
241
</sect1>
242
</chapter>
243
244
<chapter id="developers">
245
<title>Developer's Guide to &appname;</title>
246
247
<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
248
used for apps that use plugins or that provide their own scripting hooks
249
and/or development libraries. -->
250
251
<para>
252
Programming &appname; plugins is a joy to behold. Just read through the next
253
66 pages of API's to learn how!
254
</para>
255
256
<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
257
should consult the docbook reference for further details. The example below was
258
taken from that reference and shortened a bit for readability. -->
259
260
<refentry id="re-1007-unmanagechildren-1">
261
<refmeta>
262
<refentrytitle>XtUnmanageChildren</refentrytitle>
263
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
264
</refmeta>
265
<refnamediv>
266
<refname>XtUnmanageChildren
267
</refname>
268
<refpurpose>remove a list of children from a parent widget's managed
269
list.
270
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
271
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm> 
272
</refpurpose>
273
274
</refnamediv>
275
<refsynopsisdiv>
276
<refsynopsisdivinfo>
277
<date>4 March 1996</date>
278
</refsynopsisdivinfo>
279
<synopsis>
280
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
281
    WidgetList <replaceable class="parameter">children</replaceable>;
282
    Cardinal <replaceable class="parameter">num_children</replaceable>;
283
</synopsis>
284
285
<refsect2 id="r2-1007-unmanagechildren-1">
286
<title>Inputs</title>
287
<variablelist>
288
<varlistentry>
289
<term><replaceable class="parameter">children</replaceable>
290
</term>
291
<listitem>
292
<para>Specifies an array of child widgets. Each child must be of
293
class RectObj or any subclass thereof.
294
</para>
295
</listitem>
296
</varlistentry>
297
<varlistentry>
298
<term><replaceable class="parameter">num_children</replaceable>
299
</term>
300
<listitem>
301
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
302
</para>
303
</listitem>
304
</varlistentry>
305
</variablelist>
306
</refsect2></refsynopsisdiv>
307
308
<refsect1 id="r1-1007-unmanagechildren-1">
309
<title>Description
310
</title>
311
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
312
and removes them from their parent's geometry management.
313
The widgets will disappear from the screen, and (depending
314
on its parent) may no longer have screen space allocated for
315
them.
316
</para>
317
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
318
the same parent.
319
</para>
320
<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
321
widget unmanagement procedure.
322
</para>
323
</refsect1>
324
325
<refsect1 id="r1-1007-unmanagechildren-2">
326
<title>Usage</title>
327
<para>Unmanaging widgets is the usual method for temporarily
328
making them invisible.  They can be re-managed with
329
<function>XtManageChildren()</function>.
330
</para>
331
<para>You can unmap a widget, but leave it under geometry
332
management by calling <function>XtUnmapWidget()</function>.  You can
333
destroy a widget's window without destroying the widget by
334
calling <function>XtUnrealizeWidget()</function>.  You can destroy a
335
widget completely with <function>XtDestroyWidget()</function>.
336
</para>
337
<para>If you are only going to unmanage a single widget, it is
338
more convenient to call <function>XtUnmanageChild()</function>.  It is
339
often more convenient to call <function>XtUnmanageChild()</function>
340
several times than it is to declare and initialize an array
341
of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
342
<function>XtUnmanageChildren()</function> is more efficient, however,
343
because it only calls the parent's <function>change_managed()</function>
344
method once.
345
</para>
346
</refsect1>
347
348
<refsect1 id="r1-1007-unmanagechildren-3">
349
<title>Algorithm
350
</title>
351
<para><function>XtUnmanageChildren()</function> performs the following:
352
</para>
353
<variablelist>
354
<varlistentry>
355
<term>-
356
</term>
357
<listitem>
358
<para>Ignores the child if it already is unmanaged or is being
359
destroyed.
360
</para>
361
</listitem>
362
</varlistentry>
363
<varlistentry>
364
<term>-
365
</term>
366
<listitem>
367
<para>Otherwise, if the child is realized, it makes it nonvisible
368
by unmapping it.
369
</para>
370
</listitem>
371
</varlistentry>
372
</variablelist>
373
<para>
374
</para>
375
</refsect1>
376
377
<refsect1 id="r1-1007-unmanagechildren-4">
378
<title>Structures</title>
379
<para>The <type>WidgetList</type> type is simply an array of widgets:
380
</para>
381
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
382
</screen>
383
</refsect1>
384
</refentry>
385
386
</chapter>
387
388
<chapter id="faq">
389
<title>Questions and Answers</title>
390
391
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
392
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
393
should be reserved for BRIEF questions and answers! If one question uses more
394
than a page or so then it should probably be part of the
395
"Using this Application" chapter instead. You should use links to
396
cross-reference questions to the parts of your documentation that answer them.
397
This is also a great place to provide pointers to other FAQ's if your users
398
must do some complicated configuration on other programs in order for your
399
application work. -->
400
401
&reporting.bugs;
402
&updating.documentation;
403
404
<qandaset id="faqlist">
405
<qandaentry>
406
<question>
407
<para>My Mouse doesn't work. How do I quit &appname;?</para>
408
</question>
409
<answer>
410
<para>You silly goose! Check out the <link linkend="commands">Commands
411
Section</link> for the answer.</para>
412
</answer>
413
</qandaentry>
414
<qandaentry>
415
<question>
416
<para>Why can't I twiddle my documents?</para>
417
</question>
418
<answer>
419
<para>You can only twiddle your documents if you have the foobar.lib
420
installed.</para>
421
</answer>
422
</qandaentry>
423
</qandaset>
424
</chapter>
425
426
<chapter id="credits">
427
428
<!-- Include credits for the programmers, documentation writers, and
429
contributors here. The license for your software should then be included below
430
the credits with a reference to the appropriate license file included in the KDE
431
distribution. -->
432
433
<title>Credits and License</title>
434
435
<para>
436
&appname;
437
</para>
438
<para>
439
Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
440
</para>
441
<para>
442
Contributors:
443
<itemizedlist>
444
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
445
</listitem>
446
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
447
</listitem>
448
</itemizedlist>
449
</para>
450
451
<para>
452
Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
453
</para>
454
455
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
456
457
&underFDL;               <!-- FDL: do not remove -->
458
459
<!-- Determine which license your application is licensed under, 
460
     and delete all the remaining licenses below:
461
462
     (NOTE:  All documentation are licensed under the FDL, 
463
     regardless of what license the application uses) -->
464
465
&underGPL;        	 <!-- GPL License -->
466
&underBSDLicense;        <!-- BSD License -->
467
&underArtisticLicense;   <!-- BSD Artistic License -->
468
&underX11License;        <!-- X11 License  -->
469
470
</chapter>
471
472
<appendix id="installation">
473
<title>Installation</title>
474
475
<sect1 id="getting-appname">
476
<title>How to obtain &appname;</title>
477
478
<!-- This first entity contains boiler plate for applications that are
479
part of KDE CVS.  You should remove it if you are releasing your
480
application --> 
481
482
&install.intro.documentation;
483
484
</sect1>
485
486
<sect1 id="requirements">
487
<title>Requirements</title>
488
489
<!--
490
List any special requirements for your application here. This should include:
491
.Libraries or other software that is not included in tdesupport,
492
tdelibs, or tdebase.
493
.Hardware requirements like amount of RAM, disk space, graphics card
494
capabilities, screen resolution, special expansion cards, etc.
495
.Operating systems the app will run on. If your app is designed only for a
496
specific OS, (you wrote a graphical LILO configurator for example) put this
497
information here.
498
-->
499
500
<para>
501
In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is
502
required in order to support the advanced &appname; features. &appname; uses
503
about 5 megs of memory to run, but this may vary depending on your
504
platform and configuration.
505
</para>
506
507
<para>
508
All required libraries as well as &appname; itself can be found
509
on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>.
510
</para>
511
512
<!-- For a list of updates, you may refer to the application web site
513
or the ChangeLog file, or ... -->
514
<para>
515
You can find a list of changes at <ulink
516
url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>.
517
</para>
518
</sect1>
519
520
<sect1 id="compilation">
521
<title>Compilation and Installation</title>
522
523
<!-- This entity contains the boilerplate text for standard -->
524
<!-- compilation instructions.  If your application requires any -->
525
<!-- special handling, remove it, and replace with your own text. -->
526
527
&install.compile.documentation;
528
529
</sect1>
530
531
<sect1 id="configuration">
532
<title>Configuration</title>
533
534
<para>Don't forget to tell your system to start the <filename>dtd</filename>
535
dicer-toaster daemon first, or &appname; won't work !</para>
536
537
</sect1>
538
539
</appendix>
540
541
&documentation.index;
542
</book>
543
544
<!--
545
Local Variables:
546
mode: sgml
547
sgml-minimize-attributes:nil
548
sgml-general-insert-case:lower
549
sgml-indent-step:0
550
sgml-indent-data:nil
551
End:
552
553
vim:tabstop=2:shiftwidth=2:expandtab 
554
-->
555
(-)pytdeextensions/app_templates/kdeapp/po/README (-1 lines)
Line 1 Link Here
1
.pot and .pot translation files should be placed here.
(-)pytdeextensions/app_templates/kdeapp/setup.py (-30 lines)
Lines 1-30 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# setup - description                                                     #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2003                                             #
6
# copyright : (C) 2003-2004 by AUTHOR                                     #
7
# email     : YOUR@EMAIL.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
import tdedistutils
19
20
tdedistutils.setup(name="kdeapp",
21
    version="0.1.0",
22
    author="AUTHOR",
23
    author_email="YOUR@EMAIL.com",
24
    url="http://www.KDEAPP.com/",
25
    min_kde_version = "3.0.0",
26
    min_qt_version = "3.0.0",
27
    license = "GPL",
28
    application_data = ['src/kdeapp.py','src/prefdialog.py','src/kdeappview.py'],
29
    executable_links = [('kdeapp','kdeapp.py')],
30
    docbooks = [ ('doc/en','en') ] )
(-)pytdeextensions/app_templates/kdeapp/src/hi16-app-kdeapp.png (-7 lines)
Lines 1-7 Link Here
1
‰PNG
2
3
IHDRóÿaDIDAT8…’}H[gƟ÷½·IMn’Ö›“ÑšE¹V‡ÄÕZ,*´¥8hé2
4
Jéжø×°¥¥ÛÄj²	ºÌvtÝ-¥ì×Jŵn5t¬´«SÉ*šˆ·k⚚ܨ¹ïþJS6öÀÃá<¿s8Âê¶mßV¶Û€1F'&&xpf¥­¬OߤFž…H(¼L)¥3·oßú977äUÀ·_w±÷êàÿtêÔéËEQ]-¶´´ÐtAü‹š’OO8¯×›ñ
5
…ÈààÀg›Œ:ø®\ÂÔä8ôz=êƒV«Á÷}ß 8;«Ã`tdÜät:uñµ
†‡\ÌΑðfNÜ%e¯Mžú}•;PøVÄ3FFÇzEQLÖÖÖ2
6
6›íÙ³{äÓs×ÃajrÅ¥þáP¤.a9*£å“Ö_L&c¿Ïç[*Ë2Ñë…ÍW¯úÞõxöï}ò•UÀs™)Wõ/Æn ¾î`q$ò×þìlg^cc#G›šš¸ãÍü˽¥%¥ÈÈ@H„.¦8ʐxAqQ	"‘gÝ'Ž7?éëësQY–©ÊT,)q$
7
Øò^<M0Dc	(Ê"–”8T¦"™L¦Óüüü•ööså¢Õ~¶ÿZÿŸXÑ!1êÇR(˜{ƒª5áî½{­ö³­­mµf³9Àùý~ær¹‚ÁàìÐäÄ䖺÷=z98­Äb‹ø¡zƒÅý>ïºp!Ûé<ÑÖÖ6n·Û•µO4„Í^oÏOMé6K¦¿
ÝįþAdÖÁœÆaKÙ`½	Ï#/C‡ÕïK$”û===”@  yÍEîB›`4ãHÃá§æ¢÷N¬…{1#zòãöIÁhF‘»Ð&I9J’”ÖÐР‚1†ùùyâp8„ꪝßeeevétº\ž×bwî0Žã¿Ðh4V‹Ø»½ìíû¦ª¦¦fc`Œ1†™™"I’ÎápT«ÝPù՗^vñ¼—q²¼¼\k±X6FÛª9ðzTWWó<ϟá8þ#ƒÁ`ëîî&ÿÖ÷7„v#–+ü9IEND®B`‚
(-)pytdeextensions/app_templates/kdeapp/src/hi32-app-kdeapp.png (-8 lines)
Lines 1-8 Link Here
1
‰PNG
2
3
IHDR  szzô	ÏIDATX…­W}TTeÿ½ï½—a„á³ÆOX!?PÄ@eü¨ÍÕÔm2k×ʃ™Ú9ÜÕüƒ³†Y¹ëÉ-·£«¥0:$ºdJ&È ò¡¨23hÀ03Ì0÷Þgÿ@IÚöœžsžsޏ{ßßï>Ïûüîû2"Âÿco½õ+**â6›M¸\¯×+óçÏW7mÚÔ» Ùlf`‡ƒiµZ$%%©[¶léÈ#6wæ4G›sƒ×ã{pН¯¯gØÝ1
4
ÕùÑ##T—L ;­hþÉÇ:Ýʽg Âû«W¯*u¹\lÁ‚d2™DûŠÉÔÐp™TUþMüóϐ HÏ,\¸GFFj¦N*¾ðÂ\,Ôº‡"ú+’òëÌápòóóUÞØØX¡´´Tà=l6›ýø›hii„^¯×Þë?üðÃÐh4ԏ@AA¶lÙ":ºA4@˜|×2l¶VØl¶®ûG£¢¢Ô~&ÓÒÈ1c"675âËC…{|þbôö››a9]ÜÛwz¨jO[p¾²zsDªª¢}ûö1Y–SæÍ›ôĜ´ÞqU>Úýw³0~b<röîÆãó÷!Twñ<}±ÓSf¢¨¨+þüjŸùƒDåµZí¨ððpû¡C‡<ÐgçïÝ»—‚øvaáRU™Zí-tâX!9;;èʕ:Ú½ëmJzt$µ·wôÙå…GÓïç¦PýÅ*rt´Ñ‰c…Ôjoé™+<Bœ‡AxR§Ó…͘1C¸‡ÙgdddPXX˜G…³³·Ãn·¢¦ª±“âðãÅØú×70i’‰‰cñ`Î9º¡ñZQüՇ¸\w±“âPSU
»ÝŠììíè+A.ÅÄÄ8²³³•Þ¬ÿmÛ¶1ƒÁ ñµ%‹Q[Ûªª8GKÏ¥ÊòýÔÙù½ºú‰~8zô-1N¢¦C/RP¥å²Û[hÉ¢EĹð©$IqC‡’——ÇîÇëW‰‰‰¤×ë}sèr;ñ÷þ†7Þ|ã’áï?œû°-U%i$qñ”Ž;­0"à¶$I¶¨¨(¯Édê#½½JJJðì³Ïòõë×KÍÍ͚„ø¸mظß?Ž1я á±40
5
†´b÷‰¨N+!A߅5%X¿a=¦$L~Ýçó××׌=Ú?%%E4›Í@O˜Íf¶yóféʕ†õD”@X¹ü9„‡¢Ìò–.[ÞÖЂ³õ«‡8Uc*.]¨Dܬ˜•:åU9Nwg§³Ân·ïÙ¸q㝂‚‚n~ìØ1lݺUìêòx?Þ³{{]]헫ý©™©F<^ÃGŒº»|€Ný~P?‡”DCdÎ5˜™j„ËÕn¬««ýÃÇ{þ¹eèP}“ÕjÉÏÏkkkY{{»˜œ<
ËÓÓ!Š÷¤Á΂‚®°pè¾ëƒ‡ÉP|÷ÒíƒFãèèhDFFâð‘B|ýõW‘Ç.ʲY–‘
6
"µwÙç`è†ì¹
7
h‚µ»G•Ï/¤ '
m*HUáõvAöyžÿgõˆ=çœÎž-ÇþœL‰ƒaøHx»8;ðÉZ¯5 dx( ¨àíý®©`pz»!«"dY†·[A«­-Í7Q^Y³gËÁkçœûÄɓ'“N§Snܸ1nõËk×HHZñüÓSâ§$`„Éh¼x	Ñ܀{ñ¡_ à“Ø:<hë솟¿n·ÿ)<‚?­\U0€«€ú­$I—BCC;ÅyóæÁh4úòòòn¹Ýî÷eYŽ ¢ÀoŽ|·&11iIšq6¾ù¢3F·Â+`€r_H´N/ÁzǍ.EÂØ)i8öí1(Ð&ÆàEÑʹÔÅ£ÐÐP…Àž={(++˙””Ô¨×ëχ„„XŽÎúYŽ-2j¾æÓ·ájkƒû§;»'põf¼>†ð¨ÄLLÀ§ŸåØÌýcHHHé°aÃ*§M›Ö¸cǛËå²iµZµ· 333éäɓJnnn—ÑhtÌ=nüX|“ÿ5fgC5~»ÇÞÞPU ££uuu¨½P
"/¼
8
ƒ›cTÂ<üP\ŒqãÇ`îÔÔTwcc£§¨¨HÉÌÌìUÃO


<&&ú©U«ÖèÛîÜ빇ðôÒ¥¸t)Mg͇„cnòD¡AþЀ†ÜHoà–3ÔbÕª5úŠÊÚ§Ž=z¹¤¤¤aúôé€9sæðÀÀÀþ§âÔÔT¡´´ìõ÷Þ{wû²eéPUNŸ:–Ö<½äX[n£Úò-dG4\†ŸÔó
D*B2@?!
'K-1)©³Á¹„ƒs°qãÆ\I_óx<V Gúï¾Ø÷< Š~Ïed¤“õ–®]k¤ë×Énm¥Œ•ËsÓsìÿd+;Gµ5µt±¦–ª*ÊÉb9MÇi×Ν4{æTÏÊåK=vk+]¿ÞH×®5’õ–22҉sa›Á`Ю]»¶÷Ø/œó*‹ålåùê3ñ11± Շí»vⓜÜý:¦ýƍÍ	Ñc¢žóH,( •AQËWëpæ\M™·»«£èT¹ôÐÐáÆ5k^ãÎWWáÔ©Òf€ZÛÚÚBËÊÊì¸w˜¸?yyylذaZ??¿1ãǏ«y';‹f¦Nkçœïâœ?)IÒxI’&q.ž¨°œ¡s–2*>ñ=UXJ‰s¡–sþ2çÜÄ9‘1þEêŒäÎw²³(&&ÚÊû‹ ³BCCuééé|À˜L&ÊÏÏ÷Ø._¾².;{ÇÜv‡Ëàœ$Iƒ‚‚nû|>Ááp:;œmÐ	„­m6¬›1ÜE±JUUEQº‹KδŸ?_=ÔéòÔsÎ-~~~õñññî—^z©Wóû¥ ''Gݽ{·+++«Ìápü(I¢FEרQ£:233å;wJ‡Sinº…‘#FA–]°·Ü€[§ÓÝ	ó555uø|¾Ê.O·V…΀€ëĉ]ǏWîǰ333Éf³uy;::¸Á`PW¯^­šL&úàƒˆ1¶/¿àðâŒåÏC”$/úDª…1I’”uëÖùÌfóíëׯ·+ŠÂ´Z­j4å+V¨ýÀ»æ&“‰‡……é8ÎÞï‚ Ìñ÷÷ž’’"ÿêõ½ÿ/“$)înÓ"""jnÞ¼9¸FbÿõŽež_IEND®B`‚
(-)pytdeextensions/app_templates/kdeapp/src/kdeapp.desktop (-35 lines)
Lines 1-35 Link Here
1
[Desktop Entry]
2
Encoding=UTF-8
3
Name=$APPNAME$
4
Exec=$APPNAMELC$ %i %m -caption "%c"
5
Icon=$APPNAMELC$
6
Type=Application
7
DocPath=$APPNAMELC$/$APPNAMELC$.html
8
Comment=A TDE KPart Application
9
Comment[ca]=Una aplicació KPart per a TDE
10
Comment[cy]=Cymhwysiad KPart TDE
11
Comment[da]=Et TDE KPart program
12
Comment[de]=Eine TDE-Komponenten-Anwendung
13
Comment[el]=Μια εφαρμογή KPart του TDE
14
Comment[es]=Una aplicación KPart de TDE
15
Comment[et]=TDE KPart rakendus
16
Comment[fr]=Une application KPart pour TDE.
17
Comment[hi]=एक केडीई के-पार्ट अनुप्रयोग
18
Comment[hu]=KPart-alapú TDE-alkalmazás
19
Comment[is]=TDE KPart forrit
20
Comment[it]=Applicazione KPart di TDE
21
Comment[ja]=TDE KPart アプリケーション
22
Comment[nb]=Et TDE KPart-program
23
Comment[nl]=Een TDE KPart-toepassing
24
Comment[pl]=Aplikacja TDE
25
Comment[pt]=Uma aplicação KPart do TDE
26
Comment[pt_BR]=Um Aplicativo KPart do TDE
27
Comment[ru]=Приложение KPart для TDE
28
Comment[sl]=Program KPart za TDE
29
Comment[sr]=TDE KPart програм
30
Comment[sr@Latn]=TDE KPart program
31
Comment[sv]=Ett TDE Kpart-program
32
Comment[ta]=கெடி கெபார்ட்  பயன்பாடு 
33
Comment[tg]=Ба кор андохтани KPart барои TDE
34
Comment[zh_CN]=一个 TDE KPart 应用程序
35
Terminal=0
(-)pytdeextensions/app_templates/kdeapp/src/kdeapp.lsm (-14 lines)
Lines 1-14 Link Here
1
Begin4
2
Title:          $APPNAME
3
Version:        R14.0.0
4
Entered-date:   2010-05-10
5
Description:    .... for the Trinity Desktop Environment
6
Keywords:       TDE Qt
7
Author:         %{AUTHOR} <%{EMAIL}>
8
Maintained-by:  The Trinity Desktop Environment (TDE) http://www.trinitydesktop.org/
9
Primary-site:   http://git.trinitydesktop.org/cgit/
10
Alternate-site:
11
Original-site:
12
Platforms:      Linux and other Unices running TDE
13
Copying-policy: GPL
14
End
(-)pytdeextensions/app_templates/kdeapp/src/kdeapp.py (-280 lines)
Lines 1-280 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# kdeapp - description                                                    #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from qt import *
19
from tdecore import *
20
from tdeui import *
21
import sys
22
from prefdialog import *
23
from kdeappview import *
24
25
description = "A KDE Application"
26
version = "0.1";
27
28
class KdeApp(TDEMainWindow):
29
    def __init__(self):
30
        TDEMainWindow.__init__(self,None,"KdeApp")
31
32
        self._view = KdeAppView(self)
33
        self._printer = None
34
35
        # accept dnd
36
        self.setAcceptDrops(True)
37
38
        # tell the TDEMainWindow that this is indeed the main widget
39
        self.setCentralWidget(self._view)
40
41
        # then, setup our actions
42
        self._setupActions()
43
44
        # and a status bar
45
        self.statusBar().show()
46
47
        # Apply the create the main window and ask the mainwindow to
48
        # automatically save settings if changed: window size, toolbar
49
        # position, icon size, etc.  Also to add actions for the statusbar
50
        # toolbar, and keybindings if necessary.
51
        self.setAutoSaveSettings()
52
53
        # allow the view to change the statusbar and caption
54
        self.connect(self._view, PYSIGNAL("signalChangeStatusbar"), self.changeStatusbar)
55
        self.connect(self._view, PYSIGNAL("signalChangeCaption"), self.changeCaption)
56
57
    def load(self,url):
58
        target = QString()
59
        # the below code is what you should normally do.  in this
60
        # example case, we want the url to our own.  you probably
61
        # want to use this code instead for your app
62
    
63
        if False:
64
            # download the contents
65
            if TDEIO.NetAccess.download(url, target):
66
                # set our caption
67
                self.setCaption(url)
68
        
69
                # load in the file (target is always local)
70
                self.loadFile(target)
71
        
72
                # and remove the temp file
73
                TDEIO.NetAccess.removeTempFile(target)
74
    
75
        self.setCaption(url.prettyURL())
76
        self._view.openURL(url)
77
78
79
    def _setupActions(self):
80
        global kapp
81
        KStdAction.openNew(self.fileNew, self.actionCollection())
82
        KStdAction.open(self.fileOpen, self.actionCollection())
83
        KStdAction.save(self.fileSave, self.actionCollection())
84
        KStdAction.saveAs(self.fileSaveAs, self.actionCollection())
85
        KStdAction.print_(self.filePrint, self.actionCollection())
86
        KStdAction.quit(kapp.quit, self.actionCollection())
87
        
88
        self._toolbarAction = KStdAction.showToolbar(self.optionsShowToolbar, self.actionCollection())
89
        self._statusbarAction = KStdAction.showStatusbar(self.optionsShowStatusbar, self.actionCollection())
90
        KStdAction.keyBindings(self.optionsConfigureKeys, self.actionCollection())
91
92
        KStdAction.configureToolbars(self.optionsConfigureToolbars, self.actionCollection())
93
        KStdAction.preferences(self.optionsPreferences, self.actionCollection())
94
    
95
        # this doesn't do anything useful.  it's just here to illustrate
96
        # how to insert a custom menu and menu item
97
        custom = TDEAction(i18n("Cus&tom Menuitem"), TDEShortcut(),
98
                    self.optionsPreferences,
99
                    self.actionCollection(), "custom_action")
100
        self.createGUI()
101
102
    def _saveProperties(self,config):
103
        # the 'config' object points to the session managed
104
        # config file.  anything you write here will be available
105
        # later when this app is restored
106
    
107
        if not self._view.currentURL().isEmpty():
108
            config.writeEntry("lastURL", self._view.currentURL())
109
110
    def _readProperties(self,config):
111
        # the 'config' object points to the session managed
112
        # config file.  this function is automatically called whenever
113
        # the app is being restored.  read in here whatever you wrote
114
        # in 'saveProperties'
115
    
116
        url = config.readPathEntry("lastURL")
117
    
118
        if not url.isEmpty():
119
            self._view.openURL(KURL(url))
120
121
    def dragEnterEvent(self,event):
122
        # accept uri drops only
123
        event.accept(KURLDrag.canDecode(event))
124
125
    def dropEvent(self,event):
126
        # this is a very simplistic implementation of a drop event.  we
127
        # will only accept a dropped URL.  the Qt dnd code can do *much*
128
        # much more, so please read the docs there
129
        urls = KURL.List()
130
    
131
        # see if we can decode a URI.. if not, just ignore it
132
        if KURLDrag.decode(event, urls) and not urls.isEmpty():
133
            # okay, we have a URI.. process it
134
            url = urls.first()
135
    
136
            # load in the file
137
            self.load(url)
138
139
    def fileNew(self):
140
        # this slot is called whenever the File->New menu is selected,
141
        # the New shortcut is pressed (usually CTRL+N) or the New toolbar
142
        # button is clicked
143
    
144
        # create a new window
145
        KdeApp().show()
146
147
    def fileOpen(self):
148
        # this slot is called whenever the File->Open menu is selected,
149
        # the Open shortcut is pressed (usually CTRL+O) or the Open toolbar
150
        # button is clicked
151
    
152
        ## this brings up the generic open dialog
153
        #KURL url = KURLRequesterDlg::getURL(QString::null, this, i18n("Open Location") );
154
    
155
        # standard filedialog
156
        url = KFileDialog.getOpenURL(None, One, self, i18n("Open Location"))
157
        if not url.isEmpty():
158
            self._view.openURL(url)
159
160
    def fileSave(self):
161
        # this slot is called whenever the File->Save menu is selected,
162
        # the Save shortcut is pressed (usually CTRL+S) or the Save toolbar
163
        # button is clicked
164
    
165
        # save the current file
166
        pass
167
168
    def fileSaveAs(self):
169
        # this slot is called whenever the File->Save As menu is selected,
170
        file_url = KFileDialog.getSaveURL()
171
        if not file_url.isEmpty() and file_url.isValid():
172
            # save your info, here
173
            pass
174
175
176
    def filePrint(self):
177
        # this slot is called whenever the File->Print menu is selected,
178
        # the Print shortcut is pressed (usually CTRL+P) or the Print toolbar
179
        # button is clicked
180
        if self._printer is None:
181
            self._printer = KPrinter()
182
            
183
        if self._printer.setup(self):
184
            # setup the printer.  with Qt, you always "print" to a
185
            # QPainter.. whether the output medium is a pixmap, a screen,
186
            # or paper
187
            p = QPainter()
188
            p.begin(self._printer)
189
    
190
            # we let our view do the actual printing
191
            metrics = QPaintDeviceMetrics(m_printer)
192
            self._view.print_(p, metrics.height(), metrics.width())
193
    
194
            # and send the result to the printer
195
            p.end();
196
197
    def optionsPreferences(self):
198
        # popup some sort of preference dialog, here
199
        dlg = PreferencesDialog()
200
        if dlg.exec_loop():
201
            # redo your settings
202
            pass
203
204
    def optionsShowToolbar(self):
205
        # this is all very cut and paste code for showing/hiding the
206
        # toolbar
207
        if self._toolbarAction.isChecked():
208
            self.toolBar().show()
209
        else:
210
            self.toolBar().hide()
211
212
    def optionsShowStatusbar(self):
213
        # this is all very cut and paste code for showing/hiding the
214
        # statusbar
215
216
        if self._statusbarAction.isChecked():
217
            self.statusBar().show()
218
        else:
219
            self.statusBar().hide()
220
221
    def optionsConfigureKeys(self):
222
        KKeyDialog.configure(self.actionCollection())
223
224
    def optionsConfigureToolbars(self):
225
        # use the standard toolbar editor
226
        self.saveMainWindowSettings(TDEGlobal.config())
227
228
    def newToolbarConfig(self):
229
        # this slot is called when user clicks "Ok" or "Apply" in the toolbar editor.
230
        # recreate our GUI, and re-apply the settings (e.g. "text under icons", etc.)
231
        self.createGUI()
232
        self.applyMainWindowSettings(TDEGlobal.config())
233
234
    def changeStatusbar(self,text):
235
        # display the text on the statusbar
236
        self.statusBar().message(text)
237
238
    def changeCaption(self,text):
239
        # display the text on the caption
240
        self.setCaption(text)
241
242
243
options = [ ("+[URL]", "Document to open", "") ]
244
245
def main():
246
    global kapp,version,description,options
247
248
    aboutdata = TDEAboutData("kdeapp", "KdeApp", version, description, \
249
        TDEAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com")
250
    aboutdata.addAuthor("AUTHOR", None, "your@email.com")
251
    TDECmdLineArgs.init(sys.argv,aboutdata)
252
    TDECmdLineArgs.addCmdLineOptions(options)
253
    kapp = TDEApplication()
254
    
255
    # register ourselves as a dcop client
256
    kapp.dcopClient().registerAs(kapp.name(), False)
257
258
    # see if we are starting with session management
259
    if kapp.isRestored():
260
        n = 1
261
        while TDEMainWindow.canBeRestored(n):
262
            KdeApp().restore(n)
263
            n += 1
264
    else:
265
        # no session.. just start up normally
266
        args = TDECmdLineArgs.parsedArgs()
267
        if args.count() == 0:
268
            widget = KdeApp()
269
            widget.show()
270
        else:
271
            i = 0
272
            for i in range(args.count()):
273
                widget = KdeApp()
274
                widget.show()
275
                widget.load(args.url(i))
276
277
        args.clear()
278
279
    return kapp.exec_loop()
280
main()
(-)pytdeextensions/app_templates/kdeapp/src/kdeappiface.py (-26 lines)
Lines 1-26 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# testappiface - description                                              #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2003                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from dcopexport import DCOPExObj
19
20
class TestAppIface(DCOPExObj):
21
    def __init__(self, parent, id="Value"):
22
        DCOPExObj.__init__(self, id)
23
        self.addMethod("void openURL(QString url)", self.openURL)
24
25
    def openURL(self,url):
26
        pass
(-)pytdeextensions/app_templates/kdeapp/src/kdeappui.rc (-8 lines)
Lines 1-8 Link Here
1
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
2
<kpartgui name="testapp" version="1">
3
<MenuBar>
4
  <Menu name="custom"><text>C&amp;ustom</text>
5
    <Action name="custom_action" />
6
  </Menu>
7
</MenuBar>
8
</kpartgui>
(-)pytdeextensions/app_templates/kdeapp/src/kdeappview.py (-91 lines)
Lines 1-91 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# kdeappview - description                                                #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from qt import *
19
from tdecore import *
20
from tdeui import *
21
from tdeio import *
22
from tdehtml import *
23
from tdeparts import *
24
#from kdeappiface import *
25
26
class KdeAppView(QWidget):
27
    def __init__(self,parent):
28
        QWidget.__init__(self,parent)
29
        #self._dcopclient= KdeAppIface(self,"KdeAppIface")
30
31
        # setup our layout manager to automatically add our widgets
32
        top_layout = QHBoxLayout(self)
33
        top_layout.setAutoAdd(True)
34
        
35
        if True:
36
            self._html = TDEHTMLPart(self)
37
        else:
38
39
            # we want to look for all components that satisfy our needs.  the
40
            # trader will actually search through *all* registered KDE
41
            # applications and components -- not just KParts.  So we have to
42
            # specify two things: a service type and a constraint
43
            #
44
            # the service type is like a mime type.  we say that we want all
45
            # applications and components that can handle HTML -- 'text/html'
46
            #
47
            # however, by itself, this will return such things as Netscape..
48
            # not what we wanted.  so we constrain it by saying that the
49
            # string 'KParts/ReadOnlyPart' must be found in the ServiceTypes
50
            # field.  with this, only components of the type we want will be
51
            # returned.
52
            offers = TDETrader.self().query("text/html", "'KParts/ReadOnlyPart' in ServiceTypes")
53
            
54
            self._html = None
55
            # in theory, we only care about the first one.. but let's try all
56
            # offers just in case the first can't be loaded for some reason
57
            for ptr in offers:
58
                # we now know that our offer can handle HTML and is a part.
59
                # since it is a part, it must also have a library... let's try to
60
                # load that now
61
                self._html = createReadOnlyPart(ptr.library(),self,ptr.name(),"KParts::ReadOnlyPart",QStringList())
62
                if self._html is not None:
63
                    break
64
        
65
            # if our factory is invalid, then we never found our component
66
            # and we might as well just exit now
67
            if self._html is None:
68
                KMessageBox.error(self, i18n("Could not find a suitable HTML component"))
69
                return
70
    
71
        QObject.connect(self._html, SIGNAL("setWindowCaption(const QString&)"), self.slotSetTitle)
72
        QObject.connect(self._html, SIGNAL("setStatusBarText(const QString&)"), self.slotOnURL)
73
74
    def print_(self,p,height,width):
75
        pass
76
        # do the actual printing, here
77
        # p.drawText(etc..)
78
79
    def currentURL(self):
80
        return self._html.url().url()
81
82
    def openURL(self,url):
83
        if isinstance(url,QString):
84
            url = KURL(url)
85
        self._html.openURL(url)
86
87
    def slotOnURL(self,url):
88
        self.emit(PYSIGNAL("signalChangeStatusbar"),(url,) )
89
90
    def slotSetTitle(self,title):
91
        self.emit(PYSIGNAL("signalChangeCaption"),(title,) )
(-)pytdeextensions/app_templates/kdeapp/src/prefdialog.py (-53 lines)
Lines 1-53 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# testapp - description                                                   #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from qt import *
19
from tdecore import *
20
from tdeui import *
21
22
class TestAppPrefDialog(KDialogBase):
23
    def __init__(self):
24
        KDialogBase.__init__(TreeList, i18n("TestApp Preferences"),
25
                  KDialogBase.Help|KDialogBase.Default|KDialogBase.Ok|KDialogBase.Apply|KDialogBase.Cancel, Ok)
26
27
        # this is the base class for your preferences dialog.  it is now
28
        # a Treelist dialog.. but there are a number of other
29
        # possibilities (including Tab, Swallow, and just Plain)
30
        frame = self.addPage(i18n("First Page"), i18n("Page One Options"))
31
        self._pageOne = TestAppPrefPageOne(frame)
32
    
33
        frame = self.addPage(i18n("Second Page"), i18n("Page Two Options"))
34
        self._pageTwo = TestAppPrefPageTwo(frame)
35
36
class TestAppPrefPageOne(QFrame):
37
    def __init__(self,parent):
38
        QFrame.__init__(self,parent)
39
40
        layout = QHBoxLayout(self)
41
        layout.setAutoAdd(True)
42
    
43
        QLabel(i18n("Add something here"), self)
44
45
class TestAppPrefPageTwo(QFrame):
46
    def __init__(self,parent):
47
        QFrame.__init__(self,parent)
48
49
        layout = QHBoxLayout(self)
50
        layout.setAutoAdd(True)
51
52
        QLabel(i18n("Add something here"), self)
53
(-)pytdeextensions/app_templates/kdeutility/AUTHORS (-1 lines)
Line 1 Link Here
1
$AUTHOR$ <$EMAIL$>
(-)pytdeextensions/app_templates/kdeutility/COPYING (-340 lines)
Lines 1-340 Link Here
1
		    GNU GENERAL PUBLIC LICENSE
2
		       Version 2, June 1991
3
4
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
6
 Everyone is permitted to copy and distribute verbatim copies
7
 of this license document, but changing it is not allowed.
8
9
			    Preamble
10
11
  The licenses for most software are designed to take away your
12
freedom to share and change it.  By contrast, the GNU General Public
13
License is intended to guarantee your freedom to share and change free
14
software--to make sure the software is free for all its users.  This
15
General Public License applies to most of the Free Software
16
Foundation's software and to any other program whose authors commit to
17
using it.  (Some other Free Software Foundation software is covered by
18
the GNU Library General Public License instead.)  You can apply it to
19
your programs, too.
20
21
  When we speak of free software, we are referring to freedom, not
22
price.  Our General Public Licenses are designed to make sure that you
23
have the freedom to distribute copies of free software (and charge for
24
this service if you wish), that you receive source code or can get it
25
if you want it, that you can change the software or use pieces of it
26
in new free programs; and that you know you can do these things.
27
28
  To protect your rights, we need to make restrictions that forbid
29
anyone to deny you these rights or to ask you to surrender the rights.
30
These restrictions translate to certain responsibilities for you if you
31
distribute copies of the software, or if you modify it.
32
33
  For example, if you distribute copies of such a program, whether
34
gratis or for a fee, you must give the recipients all the rights that
35
you have.  You must make sure that they, too, receive or can get the
36
source code.  And you must show them these terms so they know their
37
rights.
38
39
  We protect your rights with two steps: (1) copyright the software, and
40
(2) offer you this license which gives you legal permission to copy,
41
distribute and/or modify the software.
42
43
  Also, for each author's protection and ours, we want to make certain
44
that everyone understands that there is no warranty for this free
45
software.  If the software is modified by someone else and passed on, we
46
want its recipients to know that what they have is not the original, so
47
that any problems introduced by others will not reflect on the original
48
authors' reputations.
49
50
  Finally, any free program is threatened constantly by software
51
patents.  We wish to avoid the danger that redistributors of a free
52
program will individually obtain patent licenses, in effect making the
53
program proprietary.  To prevent this, we have made it clear that any
54
patent must be licensed for everyone's free use or not licensed at all.
55
56
  The precise terms and conditions for copying, distribution and
57
modification follow.
58
59
		    GNU GENERAL PUBLIC LICENSE
60
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62
  0. This License applies to any program or other work which contains
63
a notice placed by the copyright holder saying it may be distributed
64
under the terms of this General Public License.  The "Program", below,
65
refers to any such program or work, and a "work based on the Program"
66
means either the Program or any derivative work under copyright law:
67
that is to say, a work containing the Program or a portion of it,
68
either verbatim or with modifications and/or translated into another
69
language.  (Hereinafter, translation is included without limitation in
70
the term "modification".)  Each licensee is addressed as "you".
71
72
Activities other than copying, distribution and modification are not
73
covered by this License; they are outside its scope.  The act of
74
running the Program is not restricted, and the output from the Program
75
is covered only if its contents constitute a work based on the
76
Program (independent of having been made by running the Program).
77
Whether that is true depends on what the Program does.
78
79
  1. You may copy and distribute verbatim copies of the Program's
80
source code as you receive it, in any medium, provided that you
81
conspicuously and appropriately publish on each copy an appropriate
82
copyright notice and disclaimer of warranty; keep intact all the
83
notices that refer to this License and to the absence of any warranty;
84
and give any other recipients of the Program a copy of this License
85
along with the Program.
86
87
You may charge a fee for the physical act of transferring a copy, and
88
you may at your option offer warranty protection in exchange for a fee.
89
90
  2. You may modify your copy or copies of the Program or any portion
91
of it, thus forming a work based on the Program, and copy and
92
distribute such modifications or work under the terms of Section 1
93
above, provided that you also meet all of these conditions:
94
95
    a) You must cause the modified files to carry prominent notices
96
    stating that you changed the files and the date of any change.
97
98
    b) You must cause any work that you distribute or publish, that in
99
    whole or in part contains or is derived from the Program or any
100
    part thereof, to be licensed as a whole at no charge to all third
101
    parties under the terms of this License.
102
103
    c) If the modified program normally reads commands interactively
104
    when run, you must cause it, when started running for such
105
    interactive use in the most ordinary way, to print or display an
106
    announcement including an appropriate copyright notice and a
107
    notice that there is no warranty (or else, saying that you provide
108
    a warranty) and that users may redistribute the program under
109
    these conditions, and telling the user how to view a copy of this
110
    License.  (Exception: if the Program itself is interactive but
111
    does not normally print such an announcement, your work based on
112
    the Program is not required to print an announcement.)
113
114
These requirements apply to the modified work as a whole.  If
115
identifiable sections of that work are not derived from the Program,
116
and can be reasonably considered independent and separate works in
117
themselves, then this License, and its terms, do not apply to those
118
sections when you distribute them as separate works.  But when you
119
distribute the same sections as part of a whole which is a work based
120
on the Program, the distribution of the whole must be on the terms of
121
this License, whose permissions for other licensees extend to the
122
entire whole, and thus to each and every part regardless of who wrote it.
123
124
Thus, it is not the intent of this section to claim rights or contest
125
your rights to work written entirely by you; rather, the intent is to
126
exercise the right to control the distribution of derivative or
127
collective works based on the Program.
128
129
In addition, mere aggregation of another work not based on the Program
130
with the Program (or with a work based on the Program) on a volume of
131
a storage or distribution medium does not bring the other work under
132
the scope of this License.
133
134
  3. You may copy and distribute the Program (or a work based on it,
135
under Section 2) in object code or executable form under the terms of
136
Sections 1 and 2 above provided that you also do one of the following:
137
138
    a) Accompany it with the complete corresponding machine-readable
139
    source code, which must be distributed under the terms of Sections
140
    1 and 2 above on a medium customarily used for software interchange; or,
141
142
    b) Accompany it with a written offer, valid for at least three
143
    years, to give any third party, for a charge no more than your
144
    cost of physically performing source distribution, a complete
145
    machine-readable copy of the corresponding source code, to be
146
    distributed under the terms of Sections 1 and 2 above on a medium
147
    customarily used for software interchange; or,
148
149
    c) Accompany it with the information you received as to the offer
150
    to distribute corresponding source code.  (This alternative is
151
    allowed only for noncommercial distribution and only if you
152
    received the program in object code or executable form with such
153
    an offer, in accord with Subsection b above.)
154
155
The source code for a work means the preferred form of the work for
156
making modifications to it.  For an executable work, complete source
157
code means all the source code for all modules it contains, plus any
158
associated interface definition files, plus the scripts used to
159
control compilation and installation of the executable.  However, as a
160
special exception, the source code distributed need not include
161
anything that is normally distributed (in either source or binary
162
form) with the major components (compiler, kernel, and so on) of the
163
operating system on which the executable runs, unless that component
164
itself accompanies the executable.
165
166
If distribution of executable or object code is made by offering
167
access to copy from a designated place, then offering equivalent
168
access to copy the source code from the same place counts as
169
distribution of the source code, even though third parties are not
170
compelled to copy the source along with the object code.
171
172
  4. You may not copy, modify, sublicense, or distribute the Program
173
except as expressly provided under this License.  Any attempt
174
otherwise to copy, modify, sublicense or distribute the Program is
175
void, and will automatically terminate your rights under this License.
176
However, parties who have received copies, or rights, from you under
177
this License will not have their licenses terminated so long as such
178
parties remain in full compliance.
179
180
  5. You are not required to accept this License, since you have not
181
signed it.  However, nothing else grants you permission to modify or
182
distribute the Program or its derivative works.  These actions are
183
prohibited by law if you do not accept this License.  Therefore, by
184
modifying or distributing the Program (or any work based on the
185
Program), you indicate your acceptance of this License to do so, and
186
all its terms and conditions for copying, distributing or modifying
187
the Program or works based on it.
188
189
  6. Each time you redistribute the Program (or any work based on the
190
Program), the recipient automatically receives a license from the
191
original licensor to copy, distribute or modify the Program subject to
192
these terms and conditions.  You may not impose any further
193
restrictions on the recipients' exercise of the rights granted herein.
194
You are not responsible for enforcing compliance by third parties to
195
this License.
196
197
  7. If, as a consequence of a court judgment or allegation of patent
198
infringement or for any other reason (not limited to patent issues),
199
conditions are imposed on you (whether by court order, agreement or
200
otherwise) that contradict the conditions of this License, they do not
201
excuse you from the conditions of this License.  If you cannot
202
distribute so as to satisfy simultaneously your obligations under this
203
License and any other pertinent obligations, then as a consequence you
204
may not distribute the Program at all.  For example, if a patent
205
license would not permit royalty-free redistribution of the Program by
206
all those who receive copies directly or indirectly through you, then
207
the only way you could satisfy both it and this License would be to
208
refrain entirely from distribution of the Program.
209
210
If any portion of this section is held invalid or unenforceable under
211
any particular circumstance, the balance of the section is intended to
212
apply and the section as a whole is intended to apply in other
213
circumstances.
214
215
It is not the purpose of this section to induce you to infringe any
216
patents or other property right claims or to contest validity of any
217
such claims; this section has the sole purpose of protecting the
218
integrity of the free software distribution system, which is
219
implemented by public license practices.  Many people have made
220
generous contributions to the wide range of software distributed
221
through that system in reliance on consistent application of that
222
system; it is up to the author/donor to decide if he or she is willing
223
to distribute software through any other system and a licensee cannot
224
impose that choice.
225
226
This section is intended to make thoroughly clear what is believed to
227
be a consequence of the rest of this License.
228
229
  8. If the distribution and/or use of the Program is restricted in
230
certain countries either by patents or by copyrighted interfaces, the
231
original copyright holder who places the Program under this License
232
may add an explicit geographical distribution limitation excluding
233
those countries, so that distribution is permitted only in or among
234
countries not thus excluded.  In such case, this License incorporates
235
the limitation as if written in the body of this License.
236
237
  9. The Free Software Foundation may publish revised and/or new versions
238
of the General Public License from time to time.  Such new versions will
239
be similar in spirit to the present version, but may differ in detail to
240
address new problems or concerns.
241
242
Each version is given a distinguishing version number.  If the Program
243
specifies a version number of this License which applies to it and "any
244
later version", you have the option of following the terms and conditions
245
either of that version or of any later version published by the Free
246
Software Foundation.  If the Program does not specify a version number of
247
this License, you may choose any version ever published by the Free Software
248
Foundation.
249
250
  10. If you wish to incorporate parts of the Program into other free
251
programs whose distribution conditions are different, write to the author
252
to ask for permission.  For software which is copyrighted by the Free
253
Software Foundation, write to the Free Software Foundation; we sometimes
254
make exceptions for this.  Our decision will be guided by the two goals
255
of preserving the free status of all derivatives of our free software and
256
of promoting the sharing and reuse of software generally.
257
258
			    NO WARRANTY
259
260
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
262
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
266
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
267
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
REPAIR OR CORRECTION.
269
270
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
POSSIBILITY OF SUCH DAMAGES.
279
280
		     END OF TERMS AND CONDITIONS
281
282
	    How to Apply These Terms to Your New Programs
283
284
  If you develop a new program, and you want it to be of the greatest
285
possible use to the public, the best way to achieve this is to make it
286
free software which everyone can redistribute and change under these terms.
287
288
  To do so, attach the following notices to the program.  It is safest
289
to attach them to the start of each source file to most effectively
290
convey the exclusion of warranty; and each file should have at least
291
the "copyright" line and a pointer to where the full notice is found.
292
293
    <one line to give the program's name and a brief idea of what it does.>
294
    Copyright (C) <year>  <name of author>
295
296
    This program is free software; you can redistribute it and/or modify
297
    it under the terms of the GNU General Public License as published by
298
    the Free Software Foundation; either version 2 of the License, or
299
    (at your option) any later version.
300
301
    This program is distributed in the hope that it will be useful,
302
    but WITHOUT ANY WARRANTY; without even the implied warranty of
303
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
304
    GNU General Public License for more details.
305
306
    You should have received a copy of the GNU General Public License
307
    along with this program; if not, write to the Free Software
308
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
309
310
311
Also add information on how to contact you by electronic and paper mail.
312
313
If the program is interactive, make it output a short notice like this
314
when it starts in an interactive mode:
315
316
    Gnomovision version 69, Copyright (C) year name of author
317
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318
    This is free software, and you are welcome to redistribute it
319
    under certain conditions; type `show c' for details.
320
321
The hypothetical commands `show w' and `show c' should show the appropriate
322
parts of the General Public License.  Of course, the commands you use may
323
be called something other than `show w' and `show c'; they could even be
324
mouse-clicks or menu items--whatever suits your program.
325
326
You should also get your employer (if you work as a programmer) or your
327
school, if any, to sign a "copyright disclaimer" for the program, if
328
necessary.  Here is a sample; alter the names:
329
330
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333
  <signature of Ty Coon>, 1 April 1989
334
  Ty Coon, President of Vice
335
336
This General Public License does not permit incorporating your program into
337
proprietary programs.  If your program is a subroutine library, you may
338
consider it more useful to permit linking proprietary applications with the
339
library.  If this is what you want to do, use the GNU Library General
340
Public License instead of this License.
(-)pytdeextensions/app_templates/kdeutility/ChangeLog (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeutility/INSTALL (-43 lines)
Lines 1-43 Link Here
1
Basic Installation
2
==================
3
These are generic installation instructions.
4
5
This software uses the Python language's distutils system for installation.
6
A detailed guide for users and system administrators to using distutils to
7
install software can be found here:
8
9
    http://docs.python.org/inst/inst.html
10
11
The simplest way to install this software is to run the following command as
12
the root user:
13
14
    python setup.py install
15
16
The setup.py script will automatically detect the directories to use for
17
documentation, binaries and other software files.
18
19
20
Uninstallation
21
==============
22
During installation setup.py creates list of files and directories that
23
were installed in a file called install_log.txt. 
24
25
    python setup.py uninstall
26
27
28
Installing into an alternate root
29
=================================
30
For packaging purposes it is often very useful to be able to install all files
31
relative not to the usual root directory (/) but into an alternative
32
directory.
33
34
    python setup.py install --root=/tmp/alternativeroot/
35
36
37
Operation Controls
38
==================
39
--verbose
40
    Print more information about what setup.py is doing.
41
    
42
--help
43
    Print a summary of the options to setup.py, and exit.
(-)pytdeextensions/app_templates/kdeutility/MANIFEST.in (-6 lines)
Lines 1-6 Link Here
1
recursive-include doc *.docbook *.png
2
recursive-include po *.po *.pot
3
include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO
4
global-include *.desktop *.py *.ui *.png *.lsm
5
global-exclude *~ .svn
6
global-exclude *~ .cvs
(-)pytdeextensions/app_templates/kdeutility/NEWS (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeutility/README (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeutility/TODO (-1 lines)
Line 1 Link Here
1
 
(-)pytdeextensions/app_templates/kdeutility/doc/en/index.docbook (-555 lines)
Lines 1-555 Link Here
1
<?xml version="1.0" ?>
2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3
  <!ENTITY appname "<application>MyApplication 0.1</application>">
4
  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname-->
5
  <!ENTITY package "kde-module"><!-- tdebase, tdeadmin, etc -->
6
  <!ENTITY % addindex "IGNORE">
7
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
8
  
9
  
10
  <!-- Do not define any other entities; instead, use the entities
11
       from kde-genent.entities and $LANG/user.entities. -->
12
]>
13
<!-- kdoctemplate v0.8 October 1 1999 
14
     Minor update to "Credits and Licenses" section on August 24, 2000
15
     Removed "Revision history" section on 22 January 2001
16
     Changed to Installation/Help menu entities 18 October 2001
17
     Other minor cleanup and changes 18 October 2001 -->
18
19
20
<!--
21
This template was designed by: David Rugge davidrugge@mindspring.com
22
with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
23
and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
24
of the KDE DocBook team.
25
26
You may freely use this template for writing any sort of KDE documentation.
27
If you have any changes or improvements, please let us know.
28
29
Remember:
30
- in XML, the case of the <tags> and attributes is relevant ;
31
- also, quote all attributes.
32
33
Please don't forget to remove all these comments in your final documentation,
34
thanks ;-).
35
-->
36
37
<!-- ................................................................ -->
38
39
<!-- The language must NOT be changed here. -->
40
41
<book lang="&language;">
42
43
<!-- This header contains all of the meta-information for the document such
44
as Authors, publish date, the abstract, and Keywords -->
45
46
<bookinfo>
47
<title>The &appname; Handbook</title>
48
49
<authorgroup>
50
<author>
51
<firstname></firstname>
52
<othername></othername>
53
<surname>%{AUTHOR}</surname>
54
<affiliation>
55
<address><email>%{EMAIL}</email></address>
56
</affiliation>
57
</author>
58
</authorgroup>
59
60
<!-- TRANS:ROLES_OF_TRANSLATORS -->
61
62
<copyright>
63
<year>1999</year>
64
<year>%{YEAR}</year>
65
<holder>%{AUTHOR}</holder>
66
</copyright>
67
<!-- Translators: put here the copyright notice of the translation -->
68
<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
69
     and in the FDL itself on how to use it. -->
70
<legalnotice>&FDLNotice;</legalnotice>
71
72
<!-- Date and version information of the documentation
73
Don't forget to include this last date and this last revision number, we
74
need them for translation coordination !
75
Please respect the format of the date (YYYY-MM-DD) and of the version
76
(V.MM.LL), it could be used by automation scripts.
77
Do NOT change these in the translation. -->
78
79
<date>2001-10-18</date>
80
<releaseinfo>%{VERSION}</releaseinfo>
81
82
<!-- Abstract about this handbook -->
83
84
<abstract>
85
<para>
86
&appname; is an application specially designed to do nothing you would
87
ever want.
88
</para>
89
</abstract>
90
91
<!-- This is a set of Keywords for indexing by search engines.
92
Please at least include KDE, the KDE package it is in, the name
93
 of your application, and a few relevant keywords. -->
94
95
<keywordset>
96
<keyword>KDE</keyword>
97
<keyword>%{APPNAME}</keyword>
98
<keyword>nothing</keyword>
99
<keyword>nothing else</keyword>
100
</keywordset>
101
102
</bookinfo>
103
104
<!-- The contents of the documentation begin here.  Label
105
each chapter so with the id attribute. This is necessary for two reasons: it
106
allows you to easily reference the chapter from other chapters of your
107
document, and if there is no ID, the name of the generated HTML files will vary
108
from time to time making it hard to manage for maintainers and for the CVS
109
system. Any chapter labelled (OPTIONAL) may be left out at the author's
110
discretion. Other chapters should not be left out in order to maintain a
111
consistent documentation style across all KDE apps. -->
112
113
<chapter id="introduction">
114
<title>Introduction</title>
115
116
<!-- The introduction chapter contains a brief introduction for the
117
application that explains what it does and where to report
118
problems. Basically a long version of the abstract.  Don't include a
119
revision history. (see installation appendix comment) -->
120
121
<para>
122
&appname; is a program that lets you do absolutely nothing. Please report
123
any problems or feature requests to the &kde; mailing lists.
124
</para>
125
</chapter>
126
127
<chapter id="using-appname">
128
<title>Using &appname;</title>
129
130
<!-- This chapter should tell the user how to use your app. You should use as
131
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
132
your application. -->
133
134
<para>
135
136
<!-- Note that all graphics should be in .png format. Use no gifs because of
137
patent issues. -->
138
139
<screenshot>
140
<screeninfo>Here's a screenshot of &appname;</screeninfo>
141
	<mediaobject>
142
	  <imageobject>
143
	    <imagedata fileref="screenshot.png" format="PNG"/>
144
	  </imageobject>
145
	  <imageobject>
146
	    <imagedata fileref="screenshot.eps" format="EPS"/>
147
	  </imageobject>
148
	  <textobject>
149
	    <phrase>Screenshot</phrase>
150
	  </textobject>
151
	</mediaobject>
152
</screenshot>
153
</para>
154
155
156
<sect1 id="appname-features">
157
<title>More &appname; features</title>
158
159
<para>It slices! It dices! and it comes with a free toaster!</para>
160
<para>
161
The Squiggle Tool <guiicon><inlinemediaobject>
162
	  <imageobject>
163
	    <imagedata fileref="squiggle.png" format="PNG"/>
164
	  </imageobject>
165
	  <imageobject>
166
	    <imagedata fileref="squiggle.eps" format="EPS"/>
167
	  </imageobject>
168
	  <textobject>
169
	    <phrase>Squiggle</phrase>
170
	  </textobject>
171
</inlinemediaobject></guiicon> is used to draw squiggly lines all over
172
the &appname; main window. It's not a bug, it's a feature!
173
</para>
174
175
</sect1>
176
</chapter>
177
178
<chapter id="commands">
179
<title>Command Reference</title>
180
181
<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
182
application windows and their menubar and toolbar commands for easy reference.
183
Also include any keys that have a special function but have no equivalent in the
184
menus or toolbars. This may not be necessary for small apps or apps with no tool
185
or menu bars. -->
186
187
<sect1 id="appname-mainwindow">
188
<title>The main &appname; window</title>
189
190
<sect2>
191
<title>The File Menu</title>
192
<para>
193
<variablelist>
194
<varlistentry>
195
<term><menuchoice>
196
<shortcut>
197
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
198
</shortcut>
199
<guimenu>File</guimenu>
200
<guimenuitem>New</guimenuitem>
201
</menuchoice></term>
202
<listitem><para><action>Creates a new document</action></para></listitem>
203
</varlistentry>
204
<varlistentry>
205
<term><menuchoice>
206
<shortcut>
207
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
208
</shortcut>
209
<guimenu>File</guimenu>
210
<guimenuitem>Save</guimenuitem>
211
</menuchoice></term>
212
<listitem><para><action>Saves the document</action></para></listitem>
213
</varlistentry>
214
<varlistentry>
215
<term><menuchoice>
216
<shortcut>
217
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
218
</shortcut>
219
<guimenu>File</guimenu>
220
<guimenuitem>Quit</guimenuitem>
221
</menuchoice></term>
222
<listitem><para><action>Quits</action> &appname;</para></listitem>
223
</varlistentry>
224
</variablelist>
225
</para>
226
227
</sect2>
228
229
<sect2>
230
<title>The <guimenu>Help</guimenu> Menu</title>
231
232
<!-- Assuming you have a standard help menu (help, what's this, about -->
233
<!-- &appname;, about KDE) then the documentation is already written. -->
234
<!-- The following entity is valid anywhere that a variablelist is -->
235
<!-- valid.  -->
236
237
&help.menu.documentation;
238
239
</sect2>
240
241
</sect1>
242
</chapter>
243
244
<chapter id="developers">
245
<title>Developer's Guide to &appname;</title>
246
247
<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
248
used for apps that use plugins or that provide their own scripting hooks
249
and/or development libraries. -->
250
251
<para>
252
Programming &appname; plugins is a joy to behold. Just read through the next
253
66 pages of API's to learn how!
254
</para>
255
256
<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
257
should consult the docbook reference for further details. The example below was
258
taken from that reference and shortened a bit for readability. -->
259
260
<refentry id="re-1007-unmanagechildren-1">
261
<refmeta>
262
<refentrytitle>XtUnmanageChildren</refentrytitle>
263
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
264
</refmeta>
265
<refnamediv>
266
<refname>XtUnmanageChildren
267
</refname>
268
<refpurpose>remove a list of children from a parent widget's managed
269
list.
270
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
271
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm> 
272
</refpurpose>
273
274
</refnamediv>
275
<refsynopsisdiv>
276
<refsynopsisdivinfo>
277
<date>4 March 1996</date>
278
</refsynopsisdivinfo>
279
<synopsis>
280
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
281
    WidgetList <replaceable class="parameter">children</replaceable>;
282
    Cardinal <replaceable class="parameter">num_children</replaceable>;
283
</synopsis>
284
285
<refsect2 id="r2-1007-unmanagechildren-1">
286
<title>Inputs</title>
287
<variablelist>
288
<varlistentry>
289
<term><replaceable class="parameter">children</replaceable>
290
</term>
291
<listitem>
292
<para>Specifies an array of child widgets. Each child must be of
293
class RectObj or any subclass thereof.
294
</para>
295
</listitem>
296
</varlistentry>
297
<varlistentry>
298
<term><replaceable class="parameter">num_children</replaceable>
299
</term>
300
<listitem>
301
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
302
</para>
303
</listitem>
304
</varlistentry>
305
</variablelist>
306
</refsect2></refsynopsisdiv>
307
308
<refsect1 id="r1-1007-unmanagechildren-1">
309
<title>Description
310
</title>
311
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
312
and removes them from their parent's geometry management.
313
The widgets will disappear from the screen, and (depending
314
on its parent) may no longer have screen space allocated for
315
them.
316
</para>
317
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
318
the same parent.
319
</para>
320
<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
321
widget unmanagement procedure.
322
</para>
323
</refsect1>
324
325
<refsect1 id="r1-1007-unmanagechildren-2">
326
<title>Usage</title>
327
<para>Unmanaging widgets is the usual method for temporarily
328
making them invisible.  They can be re-managed with
329
<function>XtManageChildren()</function>.
330
</para>
331
<para>You can unmap a widget, but leave it under geometry
332
management by calling <function>XtUnmapWidget()</function>.  You can
333
destroy a widget's window without destroying the widget by
334
calling <function>XtUnrealizeWidget()</function>.  You can destroy a
335
widget completely with <function>XtDestroyWidget()</function>.
336
</para>
337
<para>If you are only going to unmanage a single widget, it is
338
more convenient to call <function>XtUnmanageChild()</function>.  It is
339
often more convenient to call <function>XtUnmanageChild()</function>
340
several times than it is to declare and initialize an array
341
of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
342
<function>XtUnmanageChildren()</function> is more efficient, however,
343
because it only calls the parent's <function>change_managed()</function>
344
method once.
345
</para>
346
</refsect1>
347
348
<refsect1 id="r1-1007-unmanagechildren-3">
349
<title>Algorithm
350
</title>
351
<para><function>XtUnmanageChildren()</function> performs the following:
352
</para>
353
<variablelist>
354
<varlistentry>
355
<term>-
356
</term>
357
<listitem>
358
<para>Ignores the child if it already is unmanaged or is being
359
destroyed.
360
</para>
361
</listitem>
362
</varlistentry>
363
<varlistentry>
364
<term>-
365
</term>
366
<listitem>
367
<para>Otherwise, if the child is realized, it makes it nonvisible
368
by unmapping it.
369
</para>
370
</listitem>
371
</varlistentry>
372
</variablelist>
373
<para>
374
</para>
375
</refsect1>
376
377
<refsect1 id="r1-1007-unmanagechildren-4">
378
<title>Structures</title>
379
<para>The <type>WidgetList</type> type is simply an array of widgets:
380
</para>
381
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
382
</screen>
383
</refsect1>
384
</refentry>
385
386
</chapter>
387
388
<chapter id="faq">
389
<title>Questions and Answers</title>
390
391
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
392
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
393
should be reserved for BRIEF questions and answers! If one question uses more
394
than a page or so then it should probably be part of the
395
"Using this Application" chapter instead. You should use links to
396
cross-reference questions to the parts of your documentation that answer them.
397
This is also a great place to provide pointers to other FAQ's if your users
398
must do some complicated configuration on other programs in order for your
399
application work. -->
400
401
&reporting.bugs;
402
&updating.documentation;
403
404
<qandaset id="faqlist">
405
<qandaentry>
406
<question>
407
<para>My Mouse doesn't work. How do I quit &appname;?</para>
408
</question>
409
<answer>
410
<para>You silly goose! Check out the <link linkend="commands">Commands
411
Section</link> for the answer.</para>
412
</answer>
413
</qandaentry>
414
<qandaentry>
415
<question>
416
<para>Why can't I twiddle my documents?</para>
417
</question>
418
<answer>
419
<para>You can only twiddle your documents if you have the foobar.lib
420
installed.</para>
421
</answer>
422
</qandaentry>
423
</qandaset>
424
</chapter>
425
426
<chapter id="credits">
427
428
<!-- Include credits for the programmers, documentation writers, and
429
contributors here. The license for your software should then be included below
430
the credits with a reference to the appropriate license file included in the KDE
431
distribution. -->
432
433
<title>Credits and License</title>
434
435
<para>
436
&appname;
437
</para>
438
<para>
439
Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
440
</para>
441
<para>
442
Contributors:
443
<itemizedlist>
444
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
445
</listitem>
446
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
447
</listitem>
448
</itemizedlist>
449
</para>
450
451
<para>
452
Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
453
</para>
454
455
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
456
457
&underFDL;               <!-- FDL: do not remove -->
458
459
<!-- Determine which license your application is licensed under, 
460
     and delete all the remaining licenses below:
461
462
     (NOTE:  All documentation are licensed under the FDL, 
463
     regardless of what license the application uses) -->
464
465
&underGPL;        	 <!-- GPL License -->
466
&underBSDLicense;        <!-- BSD License -->
467
&underArtisticLicense;   <!-- BSD Artistic License -->
468
&underX11License;        <!-- X11 License  -->
469
470
</chapter>
471
472
<appendix id="installation">
473
<title>Installation</title>
474
475
<sect1 id="getting-appname">
476
<title>How to obtain &appname;</title>
477
478
<!-- This first entity contains boiler plate for applications that are
479
part of KDE CVS.  You should remove it if you are releasing your
480
application --> 
481
482
&install.intro.documentation;
483
484
</sect1>
485
486
<sect1 id="requirements">
487
<title>Requirements</title>
488
489
<!--
490
List any special requirements for your application here. This should include:
491
.Libraries or other software that is not included in tdesupport,
492
tdelibs, or tdebase.
493
.Hardware requirements like amount of RAM, disk space, graphics card
494
capabilities, screen resolution, special expansion cards, etc.
495
.Operating systems the app will run on. If your app is designed only for a
496
specific OS, (you wrote a graphical LILO configurator for example) put this
497
information here.
498
-->
499
500
<para>
501
In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is
502
required in order to support the advanced &appname; features. &appname; uses
503
about 5 megs of memory to run, but this may vary depending on your
504
platform and configuration.
505
</para>
506
507
<para>
508
All required libraries as well as &appname; itself can be found
509
on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>.
510
</para>
511
512
<!-- For a list of updates, you may refer to the application web site
513
or the ChangeLog file, or ... -->
514
<para>
515
You can find a list of changes at <ulink
516
url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>.
517
</para>
518
</sect1>
519
520
<sect1 id="compilation">
521
<title>Compilation and Installation</title>
522
523
<!-- This entity contains the boilerplate text for standard -->
524
<!-- compilation instructions.  If your application requires any -->
525
<!-- special handling, remove it, and replace with your own text. -->
526
527
&install.compile.documentation;
528
529
</sect1>
530
531
<sect1 id="configuration">
532
<title>Configuration</title>
533
534
<para>Don't forget to tell your system to start the <filename>dtd</filename>
535
dicer-toaster daemon first, or &appname; won't work !</para>
536
537
</sect1>
538
539
</appendix>
540
541
&documentation.index;
542
</book>
543
544
<!--
545
Local Variables:
546
mode: sgml
547
sgml-minimize-attributes:nil
548
sgml-general-insert-case:lower
549
sgml-indent-step:0
550
sgml-indent-data:nil
551
End:
552
553
vim:tabstop=2:shiftwidth=2:expandtab 
554
-->
555
(-)pytdeextensions/app_templates/kdeutility/po/README (-1 lines)
Line 1 Link Here
1
.pot and .pot translation files should be placed here.
(-)pytdeextensions/app_templates/kdeutility/setup.py (-31 lines)
Lines 1-31 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# setup - description                                                     #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : YOUR@EMAIL.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
import tdedistutils
19
20
tdedistutils.setup(name="kdeutility",
21
    version="0.1.0",
22
    author="AUTHOR",
23
    author_email="YOUR@EMAIL.com",
24
    url="http://www.TESTAPP.com/",
25
    min_kde_version = "3.0.0",
26
    min_qt_version = "3.0.0",
27
    license = "GPL",
28
    application_data = ['src/kdeutility.py','src/KDEUtilityDialogUI.ui'],
29
    executable_links = [('kdeutility','kdeutility.py')],
30
    docbooks = [ ('doc/en','en') ],
31
    i18n = ('po',['src']) )
(-)pytdeextensions/app_templates/kdeutility/src/KDEUtilityDialogUI.ui (-33 lines)
Lines 1-33 Link Here
1
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
2
<class>KDEUtilityDialogUI</class>
3
<widget class="QDialog">
4
    <property name="name">
5
        <cstring>KDEUtilityDialogUI</cstring>
6
    </property>
7
    <property name="geometry">
8
        <rect>
9
            <x>0</x>
10
            <y>0</y>
11
            <width>600</width>
12
            <height>480</height>
13
        </rect>
14
    </property>
15
    <property name="caption">
16
        <string>KDE Utility</string>
17
    </property>
18
    <vbox>
19
        <property name="name">
20
            <cstring>unnamed</cstring>
21
        </property>
22
        <widget class="QPushButton">
23
            <property name="name">
24
                <cstring>hellobutton</cstring>
25
            </property>
26
            <property name="text">
27
                <string>Hello, Good bye</string>
28
            </property>
29
        </widget>
30
    </vbox>
31
</widget>
32
<layoutdefaults spacing="6" margin="11"/>
33
</UI>
(-)pytdeextensions/app_templates/kdeutility/src/hi16-app-kdeutility.png (-5 lines)
Lines 1-5 Link Here
1
‰PNG
2
3
IHDRóÿa‘IDAT8…RkL›e}>¾o½Ñ–Ë·réÚ#md70–°Ävnű¦2‡3º¹@ŒJ.™˜,(?ìŸBÆþ$È6h*cq@Û lÚ2PêèÆhÝÚpoé½}ýah³Ä'9ɓ<ç$Ï99Bž7lŠ¢>ÚÒÒX,–Q±X<e±XÏòҞ'njj:,•J=Z­¶5??¿™F£}"~o½ûR–€Ÿ[__ŸÒÏ
4
ÛÚÚäÉdòI’…Á`uõjLLŒOx½ÞÈ>2Öpá+Óô¼#>08T‰D~ïîîNb{:::
5
9άJ¥Úït:¡¿¿>|d³Zg>-á~Ù<ðx‘7¢ÓÝ#‘_Óy9Ñ óÁÅÔ++++‹µßï÷Ãââ"”ØóL0Œ‚é¥Ê›¹ys3¹¾áú¨ýë³übYóæÆº÷x<¥v»]Îûýþç÷@œõŽ©Þ†XÀ.Û
…¦ÄÅò“Â×_+âŠèGª«¥ká015bðÜîë„P(4«Õjöøø8ŒÝÚñùžŒî¼Î‡¼•2Q)Än°Ž¿Å2Y­ð×Ì4$ƒ!ø{þþ¿Ë՝N’K„ÙlÖóùüf@‰Dâɝ›ë¬§±­ÝÞê#yÇOœ¬c
ºàþŸÈ¿<eû’Éß0{Êd0iµÚ"_2›-9kC¡ Çñõx’±±Á¬ßZŽÀ›Èê5€EûÐÈ*¹¼…x¦†††XKKË¿éwuuaE1I’<@’äœÌ,î©Îô:Ð;½W\šþî=d3\B­ïË|Gf¾Q^^Ž#„!°·ôôô`YT.«þÜù¾žÙ;¨æòe$RUíþ¹F^0v£ó]dý©µŸ)õ{%[QVV†#„ Õn6ÅÔÔÖê+NŸ®»6ƒqÛ}ûv;ÁÅ&£òb®¾¦ªR-”HàgÃ5ï´Ã}*Æ-5¥z…%¯ªûÅa›Á¸å1™.\S*•ž/.|ãµ:·?µ¯º–¡HÄ煢¨qnnŽª2“Asý¨ûA·Ú-ñ?^Áñën£Ñ˜ˆÇã>]gÛYfŒ€¸:Kø	 RÇcÐéô܌ŒŒL¥R™¶wۃ^¯Q.›ä¤eÒɉDBÂIÿ‡ÉÉIP(¸F£I[[[ƒÂÝÖ(’:pTIEND®B`‚
(-)pytdeextensions/app_templates/kdeutility/src/hi32-app-kdeutility.png (-11 lines)
Lines 1-11 Link Here
1
‰PNG
2
3
IHDR"":GÂgAMA±üabKGDùC»	pHYs­#½utIMEÑ5.áŸIDATxœµ˜mlSçÇ÷Ú818؜ðÒH!ƒPD×­ë*Øc«`h,Y¥éRiۗM“¶JSÅÔIY«•Ii§ÁVmÀZ:J·h ";$®¹$7‰1×oÉulãë÷·}ðu0YÂ[·óåê^YÇ¿çžsÎsÏf êÏ©Vòúóž=(€aÿþý£Ñ8ù1‰àv»éîî&X(Ôþç bsss®¶¶–Ý»wãr¹˜7o…B·ÛÛíÆçóqèÐ!€Gà.ÊÜ/ˆÐÒҒ¯««ãÀƒA:::èïïÇn·
4
…¨¯_A{{û7	˜àV˜¦
—qê‡`KûÀ°dÉ ±±‘ƒb·_Áh±X,œ<yòE záÂù8Mf€ÅZÃM·2c¸î¦ˆØÖ֖ëééÁh4R(дÔðÄOpéÒ%\®ë¤R)NŸþ¨ˆ*´êõ;;;hs8q8ú8Þú3òéĴẓ"bSSS.
5
±yófV®\I  §§YæØ±cD£1 ÀéÓíE1˜Ïç‡tmvÝ∳³ƒÕ	z{/⒤’ß%º*]•<P˜	DhkkË
²cÇêëë	ƒTTT Ë2••
6
š¦¡iQ.\8ßøt/MæÔˆää‚êçø©\’„ôv;ùtb/ ή[쫜WɄSž•8“===ìÙ³‡êêjjjjðûýX,4-N(bùòeèḮCÄE“9åUüÃ?ÁÁ?ýÙÑW‚ØŒ‰&óÇ¿9õk~¸‡¹KûE@匊Øl6Ö¯_Àùóçq:œ:õ/ï*ðÏÎë~÷l‚@=æU¼,®,®Q‡x	M濽ØÍªÕ¬[·Ž®pàa :“"Bmm-‘HEQnƒèì<ÃÊGŸä;O?Ìó;¿ð{ ¤u ¬…Éfá•æçØxàˆ&s›h2ÿýW]gøÑŠetÉ#ôõõ•þ«
7
¨()Rž¢Bkkk:N£iýýýX,úúúùå^ŽÎWYóôkÀ«%Gçq5PLÉ4À¦_ä_²U
³}Û6V­ZÅWßȖռ~ñ]]ÑT?hÉÛB`jnnNÕ××c4q»Ý$	V«•‰‰±XŒ%5×x¬áó¬^¶Ï-Z˚§_ãw¿Þˆ¼‰g,Áá#®Ñd¾êUtÇ3¸‡$	«ÕÊb«-™DUÃH’„"OnހQÀahnnÎnݺ•íÛ·S]]͜9s0„Ãa|¾‹¥Š÷Ž÷¶ÔYgmsŒœxƒÐµ_n܀)¢JŒ·þ{ÀKw<C·s§ÓË¥àõ*8%	Y–ñzν~õâå„W7Š¢Èõë×Q…
6 ÑhAÑ´(}}öŸa`âð×SÏï䜼	À޼À’ÇžÁðá!^þÖRyí8GªFSýHo¾
ÆY“!ȧ/ê™,˶¤Án·Ÿ«««k
8
…BTUU±fÍz{{¹zõ*…BÑÑÑ£À0ìŽðW,³´ÎOd™]Q‰‰±úk;ÑÆ¯Q5[ ÿÝ6|µë&!òùlK!—=ZÈerÙ£«î¨1F±Âæ
@òʕ+³jkk7¦R)


Ølvb±££#G€À¯gHÂÐBkUe±GÈÄhüú.4åuæ2~æ8Ÿœ¸H>ŸmÑW<¸(–vŸs³,Û0) Û¶m?!™L‰F£x<^nÜpÕD€Ò’7»?0déñÌ3»»ÔT›¨ÌGp*É¿²¤XEKé~[Ó3èDé³g϶Ûl¶ã=4¿©»»›x<IggÇ^]>Ÿî ¢hLxÃ,kú)o¼²ÿ6˜ÕÏìä¦Ç¥"C•1þ¬SI¾EñÒ2í¹ÄPÚCz¬b×®IírlxXþ›á¦ØÈ2kMî|0Œ”ÌpÆv™¹O~›ßúÃ$Œ¡aõSß'rcY¥˜/¦÷9•d;Å:“½HAÿQB—/\¦„ª;D“9çM %3ØG†ðûýH’„íýNJar„LŒµ›v2>ÜKå¬,Օ¹V§’|çN0†)ïù2 bÿȔ JÅêòàn·‚$Ihªµ×†7”~iL
}·<L¾ùê
û=ÁL)Yù‘N,‡xÿÜÇøý*²,—§è>ÀçgßSC?.‡Yû•ï‘
9
Ž—Â4#ÌL %»
â“þËøý~Üne*„‡bv(¾pöð˜j-Á…
7‘‰ø¨š-P%Ƨ…¹ˆ85²,£(þ"ÄÛíä³ér/ÅÚ÷…³ïL…Yµa3©˜‡Œ¦²ÐÂÁÌ"ˆ&s¾abpP¾¥Ä­ƒN	ÂCq?•êLr:˜G¿´‰HpCj‚…s­z6ŁìL#`$î!dYÂårÝ
¢T òú»Ç6šXҟJM[n9®š;ŸyÖE÷|
10
°TW1uÇZ Áá¸/ˆ’Mc0çSÆèê‘'¹€
11
@˜iœ0ËgÍ,oÝw‚(7˜
,ZÿˆYjÚ²š.Û$ïu‡Ÿl€g&0S<Ø.æêߣ+­÷ ¦…Xn­à½îð^Š=ȌßiÀJnÉÅ~qσõ40uçłéF¶î6éM½v¸¯«†i`J3QìÀ“‹zÐk‰µò…}–Eýÿì?V*³e0Ž'IEND®B`‚
(-)pytdeextensions/app_templates/kdeutility/src/kdeutility.desktop (-35 lines)
Lines 1-35 Link Here
1
[Desktop Entry]
2
Encoding=UTF-8
3
Name=$APPNAME$
4
Exec=$APPNAMELC$ %i %m -caption "%c"
5
Icon=$APPNAMELC$
6
Type=Application
7
DocPath=$APPNAMELC$/$APPNAMELC$.html
8
Comment=A TDE KPart Application
9
Comment[ca]=Una aplicació KPart per a TDE
10
Comment[cy]=Cymhwysiad KPart TDE
11
Comment[da]=Et TDE KPart program
12
Comment[de]=Eine TDE-Komponenten-Anwendung
13
Comment[el]=Μια εφαρμογή KPart του TDE
14
Comment[es]=Una aplicación KPart de TDE
15
Comment[et]=TDE KPart rakendus
16
Comment[fr]=Une application KPart pour TDE.
17
Comment[hi]=एक केडीई के-पार्ट अनुप्रयोग
18
Comment[hu]=KPart-alapú TDE-alkalmazás
19
Comment[is]=TDE KPart forrit
20
Comment[it]=Applicazione KPart di TDE
21
Comment[ja]=TDE KPart アプリケーション
22
Comment[nb]=Et TDE KPart-program
23
Comment[nl]=Een TDE KPart-toepassing
24
Comment[pl]=Aplikacja TDE
25
Comment[pt]=Uma aplicação KPart do TDE
26
Comment[pt_BR]=Um Aplicativo KPart do TDE
27
Comment[ru]=Приложение KPart для TDE
28
Comment[sl]=Program KPart za TDE
29
Comment[sr]=TDE KPart програм
30
Comment[sr@Latn]=TDE KPart program
31
Comment[sv]=Ett TDE Kpart-program
32
Comment[ta]=கெடி கெபார்ட்  பயன்பாடு 
33
Comment[tg]=Ба кор андохтани KPart барои TDE
34
Comment[zh_CN]=一个 TDE KPart 应用程序
35
Terminal=0
(-)pytdeextensions/app_templates/kdeutility/src/kdeutility.lsm (-14 lines)
Lines 1-14 Link Here
1
Begin4
2
Title:          $APPNAME$
3
Version:        R14.0.0
4
Entered-date:   2010-05-10
5
Description:    .... for the Trinity Desktop Environment
6
Keywords:       TDE Qt
7
Author:         $AUTHOR$ <$EMAIL$>
8
Maintained-by:  The Trinity Desktop Environment (TDE) http://www.trinitydesktop.org/
9
Primary-site:   http://git.trinitydesktop.org/cgit/
10
Alternate-site:
11
Original-site:
12
Platforms:      Linux and other Unices running TDE
13
Copying-policy: GPL
14
End
(-)pytdeextensions/app_templates/kdeutility/src/kdeutility.py (-51 lines)
Lines 1-51 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# kdeutility - description                                                #
4
# ------------------------------                                          #
5
# begin     : Mon May 2 2005                                              #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
import sys
19
from qt import *
20
from tdecore import *
21
from tdeui import *
22
import tdedesigner
23
from KDEUtilityDialogUI import *
24
25
description = "A KDE Utility"
26
version = "0.1";
27
28
class KDEUtilityDialog(KDEUtilityDialogUI):
29
    def __init__(self):
30
        KDEUtilityDialogUI.__init__(self,None,"TestApp")
31
    # Add other methods, slots and signals here.
32
33
34
options = [] # No command line options.
35
36
def main():
37
    global kapp,version,description,options
38
39
    aboutdata = TDEAboutData("kdeutility", "KdeUtility", version, description, \
40
        TDEAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com")
41
    aboutdata.addAuthor("AUTHOR", None, "your@email.com")
42
    TDECmdLineArgs.init(sys.argv,aboutdata)
43
    #TDECmdLineArgs.addCmdLineOptions(options)
44
    kapp = TDEApplication()
45
    
46
    dialog = KDEUtilityDialog()
47
    kapp.setMainWidget(dialog)
48
    dialog.show()
49
50
    return kapp.exec_loop()
51
main()
(-)pytdeextensions/app_templates/tdeapp/AUTHORS (+1 lines)
Line 0 Link Here
1
$AUTHOR$ <$EMAIL$>
(-)pytdeextensions/app_templates/tdeapp/COPYING (+340 lines)
Line 0 Link Here
1
		    GNU GENERAL PUBLIC LICENSE
2
		       Version 2, June 1991
3
4
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
6
 Everyone is permitted to copy and distribute verbatim copies
7
 of this license document, but changing it is not allowed.
8
9
			    Preamble
10
11
  The licenses for most software are designed to take away your
12
freedom to share and change it.  By contrast, the GNU General Public
13
License is intended to guarantee your freedom to share and change free
14
software--to make sure the software is free for all its users.  This
15
General Public License applies to most of the Free Software
16
Foundation's software and to any other program whose authors commit to
17
using it.  (Some other Free Software Foundation software is covered by
18
the GNU Library General Public License instead.)  You can apply it to
19
your programs, too.
20
21
  When we speak of free software, we are referring to freedom, not
22
price.  Our General Public Licenses are designed to make sure that you
23
have the freedom to distribute copies of free software (and charge for
24
this service if you wish), that you receive source code or can get it
25
if you want it, that you can change the software or use pieces of it
26
in new free programs; and that you know you can do these things.
27
28
  To protect your rights, we need to make restrictions that forbid
29
anyone to deny you these rights or to ask you to surrender the rights.
30
These restrictions translate to certain responsibilities for you if you
31
distribute copies of the software, or if you modify it.
32
33
  For example, if you distribute copies of such a program, whether
34
gratis or for a fee, you must give the recipients all the rights that
35
you have.  You must make sure that they, too, receive or can get the
36
source code.  And you must show them these terms so they know their
37
rights.
38
39
  We protect your rights with two steps: (1) copyright the software, and
40
(2) offer you this license which gives you legal permission to copy,
41
distribute and/or modify the software.
42
43
  Also, for each author's protection and ours, we want to make certain
44
that everyone understands that there is no warranty for this free
45
software.  If the software is modified by someone else and passed on, we
46
want its recipients to know that what they have is not the original, so
47
that any problems introduced by others will not reflect on the original
48
authors' reputations.
49
50
  Finally, any free program is threatened constantly by software
51
patents.  We wish to avoid the danger that redistributors of a free
52
program will individually obtain patent licenses, in effect making the
53
program proprietary.  To prevent this, we have made it clear that any
54
patent must be licensed for everyone's free use or not licensed at all.
55
56
  The precise terms and conditions for copying, distribution and
57
modification follow.
58
59
		    GNU GENERAL PUBLIC LICENSE
60
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62
  0. This License applies to any program or other work which contains
63
a notice placed by the copyright holder saying it may be distributed
64
under the terms of this General Public License.  The "Program", below,
65
refers to any such program or work, and a "work based on the Program"
66
means either the Program or any derivative work under copyright law:
67
that is to say, a work containing the Program or a portion of it,
68
either verbatim or with modifications and/or translated into another
69
language.  (Hereinafter, translation is included without limitation in
70
the term "modification".)  Each licensee is addressed as "you".
71
72
Activities other than copying, distribution and modification are not
73
covered by this License; they are outside its scope.  The act of
74
running the Program is not restricted, and the output from the Program
75
is covered only if its contents constitute a work based on the
76
Program (independent of having been made by running the Program).
77
Whether that is true depends on what the Program does.
78
79
  1. You may copy and distribute verbatim copies of the Program's
80
source code as you receive it, in any medium, provided that you
81
conspicuously and appropriately publish on each copy an appropriate
82
copyright notice and disclaimer of warranty; keep intact all the
83
notices that refer to this License and to the absence of any warranty;
84
and give any other recipients of the Program a copy of this License
85
along with the Program.
86
87
You may charge a fee for the physical act of transferring a copy, and
88
you may at your option offer warranty protection in exchange for a fee.
89
90
  2. You may modify your copy or copies of the Program or any portion
91
of it, thus forming a work based on the Program, and copy and
92
distribute such modifications or work under the terms of Section 1
93
above, provided that you also meet all of these conditions:
94
95
    a) You must cause the modified files to carry prominent notices
96
    stating that you changed the files and the date of any change.
97
98
    b) You must cause any work that you distribute or publish, that in
99
    whole or in part contains or is derived from the Program or any
100
    part thereof, to be licensed as a whole at no charge to all third
101
    parties under the terms of this License.
102
103
    c) If the modified program normally reads commands interactively
104
    when run, you must cause it, when started running for such
105
    interactive use in the most ordinary way, to print or display an
106
    announcement including an appropriate copyright notice and a
107
    notice that there is no warranty (or else, saying that you provide
108
    a warranty) and that users may redistribute the program under
109
    these conditions, and telling the user how to view a copy of this
110
    License.  (Exception: if the Program itself is interactive but
111
    does not normally print such an announcement, your work based on
112
    the Program is not required to print an announcement.)
113
114
These requirements apply to the modified work as a whole.  If
115
identifiable sections of that work are not derived from the Program,
116
and can be reasonably considered independent and separate works in
117
themselves, then this License, and its terms, do not apply to those
118
sections when you distribute them as separate works.  But when you
119
distribute the same sections as part of a whole which is a work based
120
on the Program, the distribution of the whole must be on the terms of
121
this License, whose permissions for other licensees extend to the
122
entire whole, and thus to each and every part regardless of who wrote it.
123
124
Thus, it is not the intent of this section to claim rights or contest
125
your rights to work written entirely by you; rather, the intent is to
126
exercise the right to control the distribution of derivative or
127
collective works based on the Program.
128
129
In addition, mere aggregation of another work not based on the Program
130
with the Program (or with a work based on the Program) on a volume of
131
a storage or distribution medium does not bring the other work under
132
the scope of this License.
133
134
  3. You may copy and distribute the Program (or a work based on it,
135
under Section 2) in object code or executable form under the terms of
136
Sections 1 and 2 above provided that you also do one of the following:
137
138
    a) Accompany it with the complete corresponding machine-readable
139
    source code, which must be distributed under the terms of Sections
140
    1 and 2 above on a medium customarily used for software interchange; or,
141
142
    b) Accompany it with a written offer, valid for at least three
143
    years, to give any third party, for a charge no more than your
144
    cost of physically performing source distribution, a complete
145
    machine-readable copy of the corresponding source code, to be
146
    distributed under the terms of Sections 1 and 2 above on a medium
147
    customarily used for software interchange; or,
148
149
    c) Accompany it with the information you received as to the offer
150
    to distribute corresponding source code.  (This alternative is
151
    allowed only for noncommercial distribution and only if you
152
    received the program in object code or executable form with such
153
    an offer, in accord with Subsection b above.)
154
155
The source code for a work means the preferred form of the work for
156
making modifications to it.  For an executable work, complete source
157
code means all the source code for all modules it contains, plus any
158
associated interface definition files, plus the scripts used to
159
control compilation and installation of the executable.  However, as a
160
special exception, the source code distributed need not include
161
anything that is normally distributed (in either source or binary
162
form) with the major components (compiler, kernel, and so on) of the
163
operating system on which the executable runs, unless that component
164
itself accompanies the executable.
165
166
If distribution of executable or object code is made by offering
167
access to copy from a designated place, then offering equivalent
168
access to copy the source code from the same place counts as
169
distribution of the source code, even though third parties are not
170
compelled to copy the source along with the object code.
171
172
  4. You may not copy, modify, sublicense, or distribute the Program
173
except as expressly provided under this License.  Any attempt
174
otherwise to copy, modify, sublicense or distribute the Program is
175
void, and will automatically terminate your rights under this License.
176
However, parties who have received copies, or rights, from you under
177
this License will not have their licenses terminated so long as such
178
parties remain in full compliance.
179
180
  5. You are not required to accept this License, since you have not
181
signed it.  However, nothing else grants you permission to modify or
182
distribute the Program or its derivative works.  These actions are
183
prohibited by law if you do not accept this License.  Therefore, by
184
modifying or distributing the Program (or any work based on the
185
Program), you indicate your acceptance of this License to do so, and
186
all its terms and conditions for copying, distributing or modifying
187
the Program or works based on it.
188
189
  6. Each time you redistribute the Program (or any work based on the
190
Program), the recipient automatically receives a license from the
191
original licensor to copy, distribute or modify the Program subject to
192
these terms and conditions.  You may not impose any further
193
restrictions on the recipients' exercise of the rights granted herein.
194
You are not responsible for enforcing compliance by third parties to
195
this License.
196
197
  7. If, as a consequence of a court judgment or allegation of patent
198
infringement or for any other reason (not limited to patent issues),
199
conditions are imposed on you (whether by court order, agreement or
200
otherwise) that contradict the conditions of this License, they do not
201
excuse you from the conditions of this License.  If you cannot
202
distribute so as to satisfy simultaneously your obligations under this
203
License and any other pertinent obligations, then as a consequence you
204
may not distribute the Program at all.  For example, if a patent
205
license would not permit royalty-free redistribution of the Program by
206
all those who receive copies directly or indirectly through you, then
207
the only way you could satisfy both it and this License would be to
208
refrain entirely from distribution of the Program.
209
210
If any portion of this section is held invalid or unenforceable under
211
any particular circumstance, the balance of the section is intended to
212
apply and the section as a whole is intended to apply in other
213
circumstances.
214
215
It is not the purpose of this section to induce you to infringe any
216
patents or other property right claims or to contest validity of any
217
such claims; this section has the sole purpose of protecting the
218
integrity of the free software distribution system, which is
219
implemented by public license practices.  Many people have made
220
generous contributions to the wide range of software distributed
221
through that system in reliance on consistent application of that
222
system; it is up to the author/donor to decide if he or she is willing
223
to distribute software through any other system and a licensee cannot
224
impose that choice.
225
226
This section is intended to make thoroughly clear what is believed to
227
be a consequence of the rest of this License.
228
229
  8. If the distribution and/or use of the Program is restricted in
230
certain countries either by patents or by copyrighted interfaces, the
231
original copyright holder who places the Program under this License
232
may add an explicit geographical distribution limitation excluding
233
those countries, so that distribution is permitted only in or among
234
countries not thus excluded.  In such case, this License incorporates
235
the limitation as if written in the body of this License.
236
237
  9. The Free Software Foundation may publish revised and/or new versions
238
of the General Public License from time to time.  Such new versions will
239
be similar in spirit to the present version, but may differ in detail to
240
address new problems or concerns.
241
242
Each version is given a distinguishing version number.  If the Program
243
specifies a version number of this License which applies to it and "any
244
later version", you have the option of following the terms and conditions
245
either of that version or of any later version published by the Free
246
Software Foundation.  If the Program does not specify a version number of
247
this License, you may choose any version ever published by the Free Software
248
Foundation.
249
250
  10. If you wish to incorporate parts of the Program into other free
251
programs whose distribution conditions are different, write to the author
252
to ask for permission.  For software which is copyrighted by the Free
253
Software Foundation, write to the Free Software Foundation; we sometimes
254
make exceptions for this.  Our decision will be guided by the two goals
255
of preserving the free status of all derivatives of our free software and
256
of promoting the sharing and reuse of software generally.
257
258
			    NO WARRANTY
259
260
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
262
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
266
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
267
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
REPAIR OR CORRECTION.
269
270
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
POSSIBILITY OF SUCH DAMAGES.
279
280
		     END OF TERMS AND CONDITIONS
281
282
	    How to Apply These Terms to Your New Programs
283
284
  If you develop a new program, and you want it to be of the greatest
285
possible use to the public, the best way to achieve this is to make it
286
free software which everyone can redistribute and change under these terms.
287
288
  To do so, attach the following notices to the program.  It is safest
289
to attach them to the start of each source file to most effectively
290
convey the exclusion of warranty; and each file should have at least
291
the "copyright" line and a pointer to where the full notice is found.
292
293
    <one line to give the program's name and a brief idea of what it does.>
294
    Copyright (C) <year>  <name of author>
295
296
    This program is free software; you can redistribute it and/or modify
297
    it under the terms of the GNU General Public License as published by
298
    the Free Software Foundation; either version 2 of the License, or
299
    (at your option) any later version.
300
301
    This program is distributed in the hope that it will be useful,
302
    but WITHOUT ANY WARRANTY; without even the implied warranty of
303
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
304
    GNU General Public License for more details.
305
306
    You should have received a copy of the GNU General Public License
307
    along with this program; if not, write to the Free Software
308
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
309
310
311
Also add information on how to contact you by electronic and paper mail.
312
313
If the program is interactive, make it output a short notice like this
314
when it starts in an interactive mode:
315
316
    Gnomovision version 69, Copyright (C) year name of author
317
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318
    This is free software, and you are welcome to redistribute it
319
    under certain conditions; type `show c' for details.
320
321
The hypothetical commands `show w' and `show c' should show the appropriate
322
parts of the General Public License.  Of course, the commands you use may
323
be called something other than `show w' and `show c'; they could even be
324
mouse-clicks or menu items--whatever suits your program.
325
326
You should also get your employer (if you work as a programmer) or your
327
school, if any, to sign a "copyright disclaimer" for the program, if
328
necessary.  Here is a sample; alter the names:
329
330
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333
  <signature of Ty Coon>, 1 April 1989
334
  Ty Coon, President of Vice
335
336
This General Public License does not permit incorporating your program into
337
proprietary programs.  If your program is a subroutine library, you may
338
consider it more useful to permit linking proprietary applications with the
339
library.  If this is what you want to do, use the GNU Library General
340
Public License instead of this License.
(-)pytdeextensions/app_templates/tdeapp/ChangeLog (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeapp/INSTALL (+43 lines)
Line 0 Link Here
1
Basic Installation
2
==================
3
These are generic installation instructions.
4
5
This software uses the Python language's distutils system for installation.
6
A detailed guide for users and system administrators to using distutils to
7
install software can be found here:
8
9
    http://docs.python.org/inst/inst.html
10
11
The simplest way to install this software is to run the following command as
12
the root user:
13
14
    python setup.py install
15
16
The setup.py script will automatically detect the directories to use for
17
documentation, binaries and other software files.
18
19
20
Uninstallation
21
==============
22
During installation setup.py creates list of files and directories that
23
were installed in a file called install_log.txt. 
24
25
    python setup.py uninstall
26
27
28
Installing into an alternate root
29
=================================
30
For packaging purposes it is often very useful to be able to install all files
31
relative not to the usual root directory (/) but into an alternative
32
directory.
33
34
    python setup.py install --root=/tmp/alternativeroot/
35
36
37
Operation Controls
38
==================
39
--verbose
40
    Print more information about what setup.py is doing.
41
    
42
--help
43
    Print a summary of the options to setup.py, and exit.
(-)pytdeextensions/app_templates/tdeapp/MANIFEST.in (+6 lines)
Line 0 Link Here
1
recursive-include doc *.docbook *.png
2
recursive-include po *.po *.pot
3
include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO
4
global-include *.desktop *.py *.ui *.png *.lsm
5
global-exclude *~ .svn
6
global-exclude *~ .cvs
(-)pytdeextensions/app_templates/tdeapp/NEWS (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeapp/README (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeapp/TODO (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeapp/doc/en/index.docbook (+555 lines)
Line 0 Link Here
1
<?xml version="1.0" ?>
2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3
  <!ENTITY appname "<application>MyApplication 0.1</application>">
4
  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname-->
5
  <!ENTITY package "kde-module"><!-- tdebase, tdeadmin, etc -->
6
  <!ENTITY % addindex "IGNORE">
7
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
8
  
9
  
10
  <!-- Do not define any other entities; instead, use the entities
11
       from kde-genent.entities and $LANG/user.entities. -->
12
]>
13
<!-- kdoctemplate v0.8 October 1 1999 
14
     Minor update to "Credits and Licenses" section on August 24, 2000
15
     Removed "Revision history" section on 22 January 2001
16
     Changed to Installation/Help menu entities 18 October 2001
17
     Other minor cleanup and changes 18 October 2001 -->
18
19
20
<!--
21
This template was designed by: David Rugge davidrugge@mindspring.com
22
with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
23
and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
24
of the KDE DocBook team.
25
26
You may freely use this template for writing any sort of KDE documentation.
27
If you have any changes or improvements, please let us know.
28
29
Remember:
30
- in XML, the case of the <tags> and attributes is relevant ;
31
- also, quote all attributes.
32
33
Please don't forget to remove all these comments in your final documentation,
34
thanks ;-).
35
-->
36
37
<!-- ................................................................ -->
38
39
<!-- The language must NOT be changed here. -->
40
41
<book lang="&language;">
42
43
<!-- This header contains all of the meta-information for the document such
44
as Authors, publish date, the abstract, and Keywords -->
45
46
<bookinfo>
47
<title>The &appname; Handbook</title>
48
49
<authorgroup>
50
<author>
51
<firstname></firstname>
52
<othername></othername>
53
<surname>%{AUTHOR}</surname>
54
<affiliation>
55
<address><email>%{EMAIL}</email></address>
56
</affiliation>
57
</author>
58
</authorgroup>
59
60
<!-- TRANS:ROLES_OF_TRANSLATORS -->
61
62
<copyright>
63
<year>1999</year>
64
<year>%{YEAR}</year>
65
<holder>%{AUTHOR}</holder>
66
</copyright>
67
<!-- Translators: put here the copyright notice of the translation -->
68
<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
69
     and in the FDL itself on how to use it. -->
70
<legalnotice>&FDLNotice;</legalnotice>
71
72
<!-- Date and version information of the documentation
73
Don't forget to include this last date and this last revision number, we
74
need them for translation coordination !
75
Please respect the format of the date (YYYY-MM-DD) and of the version
76
(V.MM.LL), it could be used by automation scripts.
77
Do NOT change these in the translation. -->
78
79
<date>2001-10-18</date>
80
<releaseinfo>%{VERSION}</releaseinfo>
81
82
<!-- Abstract about this handbook -->
83
84
<abstract>
85
<para>
86
&appname; is an application specially designed to do nothing you would
87
ever want.
88
</para>
89
</abstract>
90
91
<!-- This is a set of Keywords for indexing by search engines.
92
Please at least include KDE, the KDE package it is in, the name
93
 of your application, and a few relevant keywords. -->
94
95
<keywordset>
96
<keyword>KDE</keyword>
97
<keyword>%{APPNAME}</keyword>
98
<keyword>nothing</keyword>
99
<keyword>nothing else</keyword>
100
</keywordset>
101
102
</bookinfo>
103
104
<!-- The contents of the documentation begin here.  Label
105
each chapter so with the id attribute. This is necessary for two reasons: it
106
allows you to easily reference the chapter from other chapters of your
107
document, and if there is no ID, the name of the generated HTML files will vary
108
from time to time making it hard to manage for maintainers and for the CVS
109
system. Any chapter labelled (OPTIONAL) may be left out at the author's
110
discretion. Other chapters should not be left out in order to maintain a
111
consistent documentation style across all KDE apps. -->
112
113
<chapter id="introduction">
114
<title>Introduction</title>
115
116
<!-- The introduction chapter contains a brief introduction for the
117
application that explains what it does and where to report
118
problems. Basically a long version of the abstract.  Don't include a
119
revision history. (see installation appendix comment) -->
120
121
<para>
122
&appname; is a program that lets you do absolutely nothing. Please report
123
any problems or feature requests to the &kde; mailing lists.
124
</para>
125
</chapter>
126
127
<chapter id="using-appname">
128
<title>Using &appname;</title>
129
130
<!-- This chapter should tell the user how to use your app. You should use as
131
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
132
your application. -->
133
134
<para>
135
136
<!-- Note that all graphics should be in .png format. Use no gifs because of
137
patent issues. -->
138
139
<screenshot>
140
<screeninfo>Here's a screenshot of &appname;</screeninfo>
141
	<mediaobject>
142
	  <imageobject>
143
	    <imagedata fileref="screenshot.png" format="PNG"/>
144
	  </imageobject>
145
	  <imageobject>
146
	    <imagedata fileref="screenshot.eps" format="EPS"/>
147
	  </imageobject>
148
	  <textobject>
149
	    <phrase>Screenshot</phrase>
150
	  </textobject>
151
	</mediaobject>
152
</screenshot>
153
</para>
154
155
156
<sect1 id="appname-features">
157
<title>More &appname; features</title>
158
159
<para>It slices! It dices! and it comes with a free toaster!</para>
160
<para>
161
The Squiggle Tool <guiicon><inlinemediaobject>
162
	  <imageobject>
163
	    <imagedata fileref="squiggle.png" format="PNG"/>
164
	  </imageobject>
165
	  <imageobject>
166
	    <imagedata fileref="squiggle.eps" format="EPS"/>
167
	  </imageobject>
168
	  <textobject>
169
	    <phrase>Squiggle</phrase>
170
	  </textobject>
171
</inlinemediaobject></guiicon> is used to draw squiggly lines all over
172
the &appname; main window. It's not a bug, it's a feature!
173
</para>
174
175
</sect1>
176
</chapter>
177
178
<chapter id="commands">
179
<title>Command Reference</title>
180
181
<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
182
application windows and their menubar and toolbar commands for easy reference.
183
Also include any keys that have a special function but have no equivalent in the
184
menus or toolbars. This may not be necessary for small apps or apps with no tool
185
or menu bars. -->
186
187
<sect1 id="appname-mainwindow">
188
<title>The main &appname; window</title>
189
190
<sect2>
191
<title>The File Menu</title>
192
<para>
193
<variablelist>
194
<varlistentry>
195
<term><menuchoice>
196
<shortcut>
197
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
198
</shortcut>
199
<guimenu>File</guimenu>
200
<guimenuitem>New</guimenuitem>
201
</menuchoice></term>
202
<listitem><para><action>Creates a new document</action></para></listitem>
203
</varlistentry>
204
<varlistentry>
205
<term><menuchoice>
206
<shortcut>
207
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
208
</shortcut>
209
<guimenu>File</guimenu>
210
<guimenuitem>Save</guimenuitem>
211
</menuchoice></term>
212
<listitem><para><action>Saves the document</action></para></listitem>
213
</varlistentry>
214
<varlistentry>
215
<term><menuchoice>
216
<shortcut>
217
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
218
</shortcut>
219
<guimenu>File</guimenu>
220
<guimenuitem>Quit</guimenuitem>
221
</menuchoice></term>
222
<listitem><para><action>Quits</action> &appname;</para></listitem>
223
</varlistentry>
224
</variablelist>
225
</para>
226
227
</sect2>
228
229
<sect2>
230
<title>The <guimenu>Help</guimenu> Menu</title>
231
232
<!-- Assuming you have a standard help menu (help, what's this, about -->
233
<!-- &appname;, about KDE) then the documentation is already written. -->
234
<!-- The following entity is valid anywhere that a variablelist is -->
235
<!-- valid.  -->
236
237
&help.menu.documentation;
238
239
</sect2>
240
241
</sect1>
242
</chapter>
243
244
<chapter id="developers">
245
<title>Developer's Guide to &appname;</title>
246
247
<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
248
used for apps that use plugins or that provide their own scripting hooks
249
and/or development libraries. -->
250
251
<para>
252
Programming &appname; plugins is a joy to behold. Just read through the next
253
66 pages of API's to learn how!
254
</para>
255
256
<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
257
should consult the docbook reference for further details. The example below was
258
taken from that reference and shortened a bit for readability. -->
259
260
<refentry id="re-1007-unmanagechildren-1">
261
<refmeta>
262
<refentrytitle>XtUnmanageChildren</refentrytitle>
263
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
264
</refmeta>
265
<refnamediv>
266
<refname>XtUnmanageChildren
267
</refname>
268
<refpurpose>remove a list of children from a parent widget's managed
269
list.
270
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
271
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm> 
272
</refpurpose>
273
274
</refnamediv>
275
<refsynopsisdiv>
276
<refsynopsisdivinfo>
277
<date>4 March 1996</date>
278
</refsynopsisdivinfo>
279
<synopsis>
280
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
281
    WidgetList <replaceable class="parameter">children</replaceable>;
282
    Cardinal <replaceable class="parameter">num_children</replaceable>;
283
</synopsis>
284
285
<refsect2 id="r2-1007-unmanagechildren-1">
286
<title>Inputs</title>
287
<variablelist>
288
<varlistentry>
289
<term><replaceable class="parameter">children</replaceable>
290
</term>
291
<listitem>
292
<para>Specifies an array of child widgets. Each child must be of
293
class RectObj or any subclass thereof.
294
</para>
295
</listitem>
296
</varlistentry>
297
<varlistentry>
298
<term><replaceable class="parameter">num_children</replaceable>
299
</term>
300
<listitem>
301
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
302
</para>
303
</listitem>
304
</varlistentry>
305
</variablelist>
306
</refsect2></refsynopsisdiv>
307
308
<refsect1 id="r1-1007-unmanagechildren-1">
309
<title>Description
310
</title>
311
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
312
and removes them from their parent's geometry management.
313
The widgets will disappear from the screen, and (depending
314
on its parent) may no longer have screen space allocated for
315
them.
316
</para>
317
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
318
the same parent.
319
</para>
320
<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
321
widget unmanagement procedure.
322
</para>
323
</refsect1>
324
325
<refsect1 id="r1-1007-unmanagechildren-2">
326
<title>Usage</title>
327
<para>Unmanaging widgets is the usual method for temporarily
328
making them invisible.  They can be re-managed with
329
<function>XtManageChildren()</function>.
330
</para>
331
<para>You can unmap a widget, but leave it under geometry
332
management by calling <function>XtUnmapWidget()</function>.  You can
333
destroy a widget's window without destroying the widget by
334
calling <function>XtUnrealizeWidget()</function>.  You can destroy a
335
widget completely with <function>XtDestroyWidget()</function>.
336
</para>
337
<para>If you are only going to unmanage a single widget, it is
338
more convenient to call <function>XtUnmanageChild()</function>.  It is
339
often more convenient to call <function>XtUnmanageChild()</function>
340
several times than it is to declare and initialize an array
341
of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
342
<function>XtUnmanageChildren()</function> is more efficient, however,
343
because it only calls the parent's <function>change_managed()</function>
344
method once.
345
</para>
346
</refsect1>
347
348
<refsect1 id="r1-1007-unmanagechildren-3">
349
<title>Algorithm
350
</title>
351
<para><function>XtUnmanageChildren()</function> performs the following:
352
</para>
353
<variablelist>
354
<varlistentry>
355
<term>-
356
</term>
357
<listitem>
358
<para>Ignores the child if it already is unmanaged or is being
359
destroyed.
360
</para>
361
</listitem>
362
</varlistentry>
363
<varlistentry>
364
<term>-
365
</term>
366
<listitem>
367
<para>Otherwise, if the child is realized, it makes it nonvisible
368
by unmapping it.
369
</para>
370
</listitem>
371
</varlistentry>
372
</variablelist>
373
<para>
374
</para>
375
</refsect1>
376
377
<refsect1 id="r1-1007-unmanagechildren-4">
378
<title>Structures</title>
379
<para>The <type>WidgetList</type> type is simply an array of widgets:
380
</para>
381
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
382
</screen>
383
</refsect1>
384
</refentry>
385
386
</chapter>
387
388
<chapter id="faq">
389
<title>Questions and Answers</title>
390
391
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
392
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
393
should be reserved for BRIEF questions and answers! If one question uses more
394
than a page or so then it should probably be part of the
395
"Using this Application" chapter instead. You should use links to
396
cross-reference questions to the parts of your documentation that answer them.
397
This is also a great place to provide pointers to other FAQ's if your users
398
must do some complicated configuration on other programs in order for your
399
application work. -->
400
401
&reporting.bugs;
402
&updating.documentation;
403
404
<qandaset id="faqlist">
405
<qandaentry>
406
<question>
407
<para>My Mouse doesn't work. How do I quit &appname;?</para>
408
</question>
409
<answer>
410
<para>You silly goose! Check out the <link linkend="commands">Commands
411
Section</link> for the answer.</para>
412
</answer>
413
</qandaentry>
414
<qandaentry>
415
<question>
416
<para>Why can't I twiddle my documents?</para>
417
</question>
418
<answer>
419
<para>You can only twiddle your documents if you have the foobar.lib
420
installed.</para>
421
</answer>
422
</qandaentry>
423
</qandaset>
424
</chapter>
425
426
<chapter id="credits">
427
428
<!-- Include credits for the programmers, documentation writers, and
429
contributors here. The license for your software should then be included below
430
the credits with a reference to the appropriate license file included in the KDE
431
distribution. -->
432
433
<title>Credits and License</title>
434
435
<para>
436
&appname;
437
</para>
438
<para>
439
Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
440
</para>
441
<para>
442
Contributors:
443
<itemizedlist>
444
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
445
</listitem>
446
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
447
</listitem>
448
</itemizedlist>
449
</para>
450
451
<para>
452
Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
453
</para>
454
455
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
456
457
&underFDL;               <!-- FDL: do not remove -->
458
459
<!-- Determine which license your application is licensed under, 
460
     and delete all the remaining licenses below:
461
462
     (NOTE:  All documentation are licensed under the FDL, 
463
     regardless of what license the application uses) -->
464
465
&underGPL;        	 <!-- GPL License -->
466
&underBSDLicense;        <!-- BSD License -->
467
&underArtisticLicense;   <!-- BSD Artistic License -->
468
&underX11License;        <!-- X11 License  -->
469
470
</chapter>
471
472
<appendix id="installation">
473
<title>Installation</title>
474
475
<sect1 id="getting-appname">
476
<title>How to obtain &appname;</title>
477
478
<!-- This first entity contains boiler plate for applications that are
479
part of KDE CVS.  You should remove it if you are releasing your
480
application --> 
481
482
&install.intro.documentation;
483
484
</sect1>
485
486
<sect1 id="requirements">
487
<title>Requirements</title>
488
489
<!--
490
List any special requirements for your application here. This should include:
491
.Libraries or other software that is not included in tdesupport,
492
tdelibs, or tdebase.
493
.Hardware requirements like amount of RAM, disk space, graphics card
494
capabilities, screen resolution, special expansion cards, etc.
495
.Operating systems the app will run on. If your app is designed only for a
496
specific OS, (you wrote a graphical LILO configurator for example) put this
497
information here.
498
-->
499
500
<para>
501
In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is
502
required in order to support the advanced &appname; features. &appname; uses
503
about 5 megs of memory to run, but this may vary depending on your
504
platform and configuration.
505
</para>
506
507
<para>
508
All required libraries as well as &appname; itself can be found
509
on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>.
510
</para>
511
512
<!-- For a list of updates, you may refer to the application web site
513
or the ChangeLog file, or ... -->
514
<para>
515
You can find a list of changes at <ulink
516
url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>.
517
</para>
518
</sect1>
519
520
<sect1 id="compilation">
521
<title>Compilation and Installation</title>
522
523
<!-- This entity contains the boilerplate text for standard -->
524
<!-- compilation instructions.  If your application requires any -->
525
<!-- special handling, remove it, and replace with your own text. -->
526
527
&install.compile.documentation;
528
529
</sect1>
530
531
<sect1 id="configuration">
532
<title>Configuration</title>
533
534
<para>Don't forget to tell your system to start the <filename>dtd</filename>
535
dicer-toaster daemon first, or &appname; won't work !</para>
536
537
</sect1>
538
539
</appendix>
540
541
&documentation.index;
542
</book>
543
544
<!--
545
Local Variables:
546
mode: sgml
547
sgml-minimize-attributes:nil
548
sgml-general-insert-case:lower
549
sgml-indent-step:0
550
sgml-indent-data:nil
551
End:
552
553
vim:tabstop=2:shiftwidth=2:expandtab 
554
-->
555
(-)pytdeextensions/app_templates/tdeapp/po/README (+1 lines)
Line 0 Link Here
1
.pot and .pot translation files should be placed here.
(-)pytdeextensions/app_templates/tdeapp/setup.py (+30 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# setup - description                                                     #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2003                                             #
6
# copyright : (C) 2003-2004 by AUTHOR                                     #
7
# email     : YOUR@EMAIL.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
import tdedistutils
19
20
tdedistutils.setup(name="tdeapp",
21
    version="0.1.0",
22
    author="AUTHOR",
23
    author_email="YOUR@EMAIL.com",
24
    url="http://www.TDEAPP.com/",
25
    min_tde_version = "3.0.0",
26
    min_qt_version = "3.0.0",
27
    license = "GPL",
28
    application_data = ['src/tdeapp.py','src/prefdialog.py','src/tdeappview.py'],
29
    executable_links = [('tdeapp','tdeapp.py')],
30
    docbooks = [ ('doc/en','en') ] )
(-)pytdeextensions/app_templates/tdeapp/src/hi16-app-tdeapp.png (+7 lines)
Line 0 Link Here
1
‰PNG
2
3
IHDRóÿaDIDAT8…’}H[gƟ÷½·IMn’Ö›“ÑšE¹V‡ÄÕZ,*´¥8hé2
4
Jéжø×°¥¥ÛÄj²	ºÌvtÝ-¥ì×Jŵn5t¬´«SÉ*šˆ·k⚚ܨ¹ïþJS6öÀÃá<¿s8Âê¶mßV¶Û€1F'&&xpf¥­¬OߤFž…H(¼L)¥3·oßú977äUÀ·_w±÷êàÿtêÔéËEQ]-¶´´ÐtAü‹š’OO8¯×›ñ
5
…ÈààÀg›Œ:ø®\ÂÔä8ôz=êƒV«Á÷}ß 8;«Ã`tdÜät:uñµ
†‡\ÌΑðfNÜ%e¯Mžú}•;PøVÄ3FFÇzEQLÖÖÖ2
6
6›íÙ³{äÓs×ÃajrÅ¥þáP¤.a9*£å“Ö_L&c¿Ïç[*Ë2Ñë…ÍW¯úÞõxöï}ò•UÀs™)Wõ/Æn ¾î`q$ò×þìlg^cc#G›šš¸ãÍü˽¥%¥ÈÈ@H„.¦8ʐxAqQ	"‘gÝ'Ž7?éëësQY–©ÊT,)q$
7
Øò^<M0Dc	(Ê"–”8T¦"™L¦Óüüü•ööså¢Õ~¶ÿZÿŸXÑ!1êÇR(˜{ƒª5áî½{­ö³­­mµf³9Àùý~ær¹‚ÁàìÐäÄ䖺÷=z98­Äb‹ø¡zƒÅý>ïºp!Ûé<ÑÖÖ6n·Û•µO4„Í^oÏOMé6K¦¿
ÝįþAdÖÁœÆaKÙ`½	Ï#/C‡ÕïK$”û===”@  yÍEîB›`4ãHÃá§æ¢÷N¬…{1#zòãöIÁhF‘»Ð&I9J’”ÖÐР‚1†ùùyâp8„ꪝßeeevétº\ž×bwî0Žã¿Ðh4V‹Ø»½ìíû¦ª¦¦fc`Œ1†™™"I’ÎápT«ÝPù՗^vñ¼—q²¼¼\k±X6FÛª9ðzTWWó<ϟá8þ#ƒÁ`ëîî&ÿÖ÷7„v#–+ü9IEND®B`‚
(-)pytdeextensions/app_templates/tdeapp/src/hi32-app-tdeapp.png (+8 lines)
Line 0 Link Here
1
‰PNG
2
3
IHDR  szzô	ÏIDATX…­W}TTeÿ½ï½—a„á³ÆOX!?PÄ@eü¨ÍÕÔm2k×ʃ™Ú9ÜÕüƒ³†Y¹ëÉ-·£«¥0:$ºdJ&È ò¡¨23hÀ03Ì0÷Þgÿ@IÚöœžsžsޏ{ßßï>Ïûüîû2"Âÿco½õ+**â6›M¸\¯×+óçÏW7mÚÔ» Ùlf`‡ƒiµZ$%%©[¶léÈ#6wæ4G›sƒ×ã{pН¯¯gØÝ1
4
ÕùÑ##T—L ;­hþÉÇ:Ýʽg Âû«W¯*u¹\lÁ‚d2™DûŠÉÔÐp™TUþMüóϐ HÏ,\¸GFFj¦N*¾ðÂ\,Ôº‡"ú+’òëÌápòóóUÞØØX¡´´Tà=l6›ýø›hii„^¯×Þë?üðÃÐh4ԏ@AA¶lÙ":ºA4@˜|×2l¶VØl¶®ûG£¢¢Ô~&ÓÒÈ1c"675âËC…{|þbôö››a9]ÜÛwz¨jO[p¾²zsDªª¢}ûö1Y–SæÍ›ôĜ´ÞqU>Úýw³0~b<röîÆãó÷!Twñ<}±ÓSf¢¨¨+þüjŸùƒDåµZí¨ððpû¡C‡<ÐgçïÝ»—‚øvaáRU™Zí-tâX!9;;èʕ:Ú½ëmJzt$µ·wôÙå…GÓïç¦PýÅ*rt´Ñ‰c…Ôjoé™+<Bœ‡AxR§Ó…͘1C¸‡ÙgdddPXX˜G…³³·Ãn·¢¦ª±“âðãÅØú×70i’‰‰cñ`Î9º¡ñZQüՇ¸\w±“âPSU
»ÝŠììíè+A.ÅÄÄ8²³³•Þ¬ÿmÛ¶1ƒÁ ñµ%‹Q[Ûªª8GKÏ¥ÊòýÔÙù½ºú‰~8zô-1N¢¦C/RP¥å²Û[hÉ¢EĹð©$IqC‡’——ÇîÇëW‰‰‰¤×ë}sèr;ñ÷þ†7Þ|ã’áï?œû°-U%i$qñ”Ž;­0"à¶$I¶¨¨(¯Édê#½½JJJðì³Ïòõë×KÍÍ͚„ø¸mظß?Ž1я á±40
5
†´b÷‰¨N+!A߅5%X¿a=¦$L~Ýçó××׌=Ú?%%E4›Í@O˜Íf¶yóféʕ†õD”@X¹ü9„‡¢Ìò–.[ÞÖЂ³õ«‡8Uc*.]¨Dܬ˜•:åU9Nwg§³Ân·ïÙ¸q㝂‚‚n~ìØ1lݺUìêòx?Þ³{{]]헫ý©™©F<^ÃGŒº»|€Ný~P?‡”DCdÎ5˜™j„ËÕn¬««ýÃÇ{þ¹eèP}“ÕjÉÏÏkkkY{{»˜œ<
ËÓÓ!Š÷¤Á΂‚®°pè¾ëƒ‡ÉP|÷ÒíƒFãèèhDFFâð‘B|ýõW‘Ç.ʲY–‘
6
"µwÙç`è†ì¹
7
h‚µ»G•Ï/¤ '
m*HUáõvAöyžÿgõˆ=çœÎž-ÇþœL‰ƒaøHx»8;ðÉZ¯5 dx( ¨àíý®©`pz»!«"dY†·[A«­-Í7Q^Y³gËÁkçœûÄɓ'“N§Snܸ1nõËk×HHZñüÓSâ§$`„Éh¼x	Ñ܀{ñ¡_ à“Ø:<hë솟¿n·ÿ)<‚?­\U0€«€ú­$I—BCC;ÅyóæÁh4úòòòn¹Ýî÷eYŽ ¢ÀoŽ|·&11iIšq6¾ù¢3F·Â+`€r_H´N/ÁzǍ.EÂØ)i8öí1(Ð&ÆàEÑʹÔÅ£ÐÐP…Àž={(++˙””Ô¨×ëχ„„XŽÎúYŽ-2j¾æÓ·ájkƒû§;»'põf¼>†ð¨ÄLLÀ§ŸåØÌýcHHHé°aÃ*§M›Ö¸cǛËå²iµZµ· 333éäɓJnnn—ÑhtÌ=nüX|“ÿ5fgC5~»ÇÞÞPU ££uuu¨½P
"/¼
8
ƒ›cTÂ<üP\ŒqãÇ`îÔÔTwcc£§¨¨HÉÌÌìUÃO


<&&ú©U«ÖèÛîÜ빇ðôÒ¥¸t)Mg͇„cnòD¡AþЀ†ÜHoà–3ÔbÕª5úŠÊÚ§Ž=z¹¤¤¤aúôé€9sæðÀÀÀþ§âÔÔT¡´´ìõ÷Þ{wû²eéPUNŸ:–Ö<½äX[n£Úò-dG4\†ŸÔó
D*B2@?!
'K-1)©³Á¹„ƒs°qãÆ\I_óx<V Gúï¾Ø÷< Š~Ïed¤“õ–®]k¤ë×Énm¥Œ•ËsÓsìÿd+;Gµ5µt±¦–ª*ÊÉb9MÇi×Ν4{æTÏÊåK=vk+]¿ÞH×®5’õ–22҉sa›Á`Ю]»¶÷Ø/œó*‹ålåùê3ñ11± Շí»vⓜÜý:¦ýƍÍ	Ñc¢žóH,( •AQËWëpæ\M™·»«£èT¹ôÐÐáÆ5k^ãÎWWáÔ©Òf€ZÛÚÚBËÊÊì¸w˜¸?yyylذaZ??¿1ãǏ«y';‹f¦Nkçœïâœ?)IÒxI’&q.ž¨°œ¡s–2*>ñ=UXJ‰s¡–sþ2çÜÄ9‘1þEêŒäÎw²³(&&ÚÊû‹ ³BCCuééé|À˜L&ÊÏÏ÷Ø._¾².;{ÇÜv‡Ëàœ$Iƒ‚‚nû|>Ááp:;œmÐ	„­m6¬›1ÜE±JUUEQº‹KδŸ?_=ÔéòÔsÎ-~~~õñññî—^z©Wóû¥ ''Gݽ{·+++«Ìápü(I¢FEרQ£:233å;wJ‡Sinº…‘#FA–]°·Ü€[§ÓÝ	ó555uø|¾Ê.O·V…΀€ëĉ]ǏWîǰ333Éf³uy;::¸Á`PW¯^­šL&úàƒˆ1¶/¿àðâŒåÏC”$/úDª…1I’”uëÖùÌfóíëׯ·+ŠÂ´Z­j4å+V¨ýÀ»æ&“‰‡……é8ÎÞï‚ Ìñ÷÷ž’’"ÿêõ½ÿ/“$)înÓ"""jnÞ¼9¸FbÿõŽež_IEND®B`‚
(-)pytdeextensions/app_templates/tdeapp/src/prefdialog.py (+53 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# testapp - description                                                   #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from qt import *
19
from tdecore import *
20
from tdeui import *
21
22
class TestAppPrefDialog(KDialogBase):
23
    def __init__(self):
24
        KDialogBase.__init__(TreeList, i18n("TestApp Preferences"),
25
                  KDialogBase.Help|KDialogBase.Default|KDialogBase.Ok|KDialogBase.Apply|KDialogBase.Cancel, Ok)
26
27
        # this is the base class for your preferences dialog.  it is now
28
        # a Treelist dialog.. but there are a number of other
29
        # possibilities (including Tab, Swallow, and just Plain)
30
        frame = self.addPage(i18n("First Page"), i18n("Page One Options"))
31
        self._pageOne = TestAppPrefPageOne(frame)
32
    
33
        frame = self.addPage(i18n("Second Page"), i18n("Page Two Options"))
34
        self._pageTwo = TestAppPrefPageTwo(frame)
35
36
class TestAppPrefPageOne(TQFrame):
37
    def __init__(self,parent):
38
        TQFrame.__init__(self,parent)
39
40
        layout = TQHBoxLayout(self)
41
        layout.setAutoAdd(True)
42
    
43
        TQLabel(i18n("Add something here"), self)
44
45
class TestAppPrefPageTwo(TQFrame):
46
    def __init__(self,parent):
47
        TQFrame.__init__(self,parent)
48
49
        layout = TQHBoxLayout(self)
50
        layout.setAutoAdd(True)
51
52
        TQLabel(i18n("Add something here"), self)
53
(-)pytdeextensions/app_templates/tdeapp/src/tdeapp.desktop (+35 lines)
Line 0 Link Here
1
[Desktop Entry]
2
Encoding=UTF-8
3
Name=$APPNAME$
4
Exec=$APPNAMELC$ %i %m -caption "%c"
5
Icon=$APPNAMELC$
6
Type=Application
7
DocPath=$APPNAMELC$/$APPNAMELC$.html
8
Comment=A TDE KPart Application
9
Comment[ca]=Una aplicació KPart per a TDE
10
Comment[cy]=Cymhwysiad KPart TDE
11
Comment[da]=Et TDE KPart program
12
Comment[de]=Eine TDE-Komponenten-Anwendung
13
Comment[el]=Μια εφαρμογή KPart του TDE
14
Comment[es]=Una aplicación KPart de TDE
15
Comment[et]=TDE KPart rakendus
16
Comment[fr]=Une application KPart pour TDE.
17
Comment[hi]=एक केडीई के-पार्ट अनुप्रयोग
18
Comment[hu]=KPart-alapú TDE-alkalmazás
19
Comment[is]=TDE KPart forrit
20
Comment[it]=Applicazione KPart di TDE
21
Comment[ja]=TDE KPart アプリケーション
22
Comment[nb]=Et TDE KPart-program
23
Comment[nl]=Een TDE KPart-toepassing
24
Comment[pl]=Aplikacja TDE
25
Comment[pt]=Uma aplicação KPart do TDE
26
Comment[pt_BR]=Um Aplicativo KPart do TDE
27
Comment[ru]=Приложение KPart для TDE
28
Comment[sl]=Program KPart za TDE
29
Comment[sr]=TDE KPart програм
30
Comment[sr@Latn]=TDE KPart program
31
Comment[sv]=Ett TDE Kpart-program
32
Comment[ta]=கெடி கெபார்ட்  பயன்பாடு 
33
Comment[tg]=Ба кор андохтани KPart барои TDE
34
Comment[zh_CN]=一个 TDE KPart 应用程序
35
Terminal=0
(-)pytdeextensions/app_templates/tdeapp/src/tdeapp.lsm (+14 lines)
Line 0 Link Here
1
Begin4
2
Title:          $APPNAME
3
Version:        R14.0.0
4
Entered-date:   2010-05-10
5
Description:    .... for the Trinity Desktop Environment
6
Keywords:       TDE Qt
7
Author:         %{AUTHOR} <%{EMAIL}>
8
Maintained-by:  The Trinity Desktop Environment (TDE) http://www.trinitydesktop.org/
9
Primary-site:   http://git.trinitydesktop.org/cgit/
10
Alternate-site:
11
Original-site:
12
Platforms:      Linux and other Unices running TDE
13
Copying-policy: GPL
14
End
(-)pytdeextensions/app_templates/tdeapp/src/tdeapp.py (+280 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# tdeapp - description                                                    #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from qt import *
19
from tdecore import *
20
from tdeui import *
21
import sys
22
from prefdialog import *
23
from tdeappview import *
24
25
description = "A TDE Application"
26
version = "0.1";
27
28
class TdeApp(TDEMainWindow):
29
    def __init__(self):
30
        TDEMainWindow.__init__(self,None,"TdeApp")
31
32
        self._view = TdeAppView(self)
33
        self._printer = None
34
35
        # accept dnd
36
        self.setAcceptDrops(True)
37
38
        # tell the TDEMainWindow that this is indeed the main widget
39
        self.setCentralWidget(self._view)
40
41
        # then, setup our actions
42
        self._setupActions()
43
44
        # and a status bar
45
        self.statusBar().show()
46
47
        # Apply the create the main window and ask the mainwindow to
48
        # automatically save settings if changed: window size, toolbar
49
        # position, icon size, etc.  Also to add actions for the statusbar
50
        # toolbar, and keybindings if necessary.
51
        self.setAutoSaveSettings()
52
53
        # allow the view to change the statusbar and caption
54
        self.connect(self._view, PYSIGNAL("signalChangeStatusbar"), self.changeStatusbar)
55
        self.connect(self._view, PYSIGNAL("signalChangeCaption"), self.changeCaption)
56
57
    def load(self,url):
58
        target = TQString()
59
        # the below code is what you should normally do.  in this
60
        # example case, we want the url to our own.  you probably
61
        # want to use this code instead for your app
62
    
63
        if False:
64
            # download the contents
65
            if TDEIO.NetAccess.download(url, target):
66
                # set our caption
67
                self.setCaption(url)
68
        
69
                # load in the file (target is always local)
70
                self.loadFile(target)
71
        
72
                # and remove the temp file
73
                TDEIO.NetAccess.removeTempFile(target)
74
    
75
        self.setCaption(url.prettyURL())
76
        self._view.openURL(url)
77
78
79
    def _setupActions(self):
80
        global kapp
81
        KStdAction.openNew(self.fileNew, self.actionCollection())
82
        KStdAction.open(self.fileOpen, self.actionCollection())
83
        KStdAction.save(self.fileSave, self.actionCollection())
84
        KStdAction.saveAs(self.fileSaveAs, self.actionCollection())
85
        KStdAction.print_(self.filePrint, self.actionCollection())
86
        KStdAction.quit(kapp.quit, self.actionCollection())
87
        
88
        self._toolbarAction = KStdAction.showToolbar(self.optionsShowToolbar, self.actionCollection())
89
        self._statusbarAction = KStdAction.showStatusbar(self.optionsShowStatusbar, self.actionCollection())
90
        KStdAction.keyBindings(self.optionsConfigureKeys, self.actionCollection())
91
92
        KStdAction.configureToolbars(self.optionsConfigureToolbars, self.actionCollection())
93
        KStdAction.preferences(self.optionsPreferences, self.actionCollection())
94
    
95
        # this doesn't do anything useful.  it's just here to illustrate
96
        # how to insert a custom menu and menu item
97
        custom = TDEAction(i18n("Cus&tom Menuitem"), TDEShortcut(),
98
                    self.optionsPreferences,
99
                    self.actionCollection(), "custom_action")
100
        self.createGUI()
101
102
    def _saveProperties(self,config):
103
        # the 'config' object points to the session managed
104
        # config file.  anything you write here will be available
105
        # later when this app is restored
106
    
107
        if not self._view.currentURL().isEmpty():
108
            config.writeEntry("lastURL", self._view.currentURL())
109
110
    def _readProperties(self,config):
111
        # the 'config' object points to the session managed
112
        # config file.  this function is automatically called whenever
113
        # the app is being restored.  read in here whatever you wrote
114
        # in 'saveProperties'
115
    
116
        url = config.readPathEntry("lastURL")
117
    
118
        if not url.isEmpty():
119
            self._view.openURL(KURL(url))
120
121
    def dragEnterEvent(self,event):
122
        # accept uri drops only
123
        event.accept(KURLDrag.canDecode(event))
124
125
    def dropEvent(self,event):
126
        # this is a very simplistic implementation of a drop event.  we
127
        # will only accept a dropped URL.  the TQt dnd code can do *much*
128
        # much more, so please read the docs there
129
        urls = KURL.List()
130
    
131
        # see if we can decode a URI.. if not, just ignore it
132
        if KURLDrag.decode(event, urls) and not urls.isEmpty():
133
            # okay, we have a URI.. process it
134
            url = urls.first()
135
    
136
            # load in the file
137
            self.load(url)
138
139
    def fileNew(self):
140
        # this slot is called whenever the File->New menu is selected,
141
        # the New shortcut is pressed (usually CTRL+N) or the New toolbar
142
        # button is clicked
143
    
144
        # create a new window
145
        TdeApp().show()
146
147
    def fileOpen(self):
148
        # this slot is called whenever the File->Open menu is selected,
149
        # the Open shortcut is pressed (usually CTRL+O) or the Open toolbar
150
        # button is clicked
151
    
152
        ## this brings up the generic open dialog
153
        #KURL url = KURLRequesterDlg::getURL(TQString::null, this, i18n("Open Location") );
154
    
155
        # standard filedialog
156
        url = KFileDialog.getOpenURL(None, One, self, i18n("Open Location"))
157
        if not url.isEmpty():
158
            self._view.openURL(url)
159
160
    def fileSave(self):
161
        # this slot is called whenever the File->Save menu is selected,
162
        # the Save shortcut is pressed (usually CTRL+S) or the Save toolbar
163
        # button is clicked
164
    
165
        # save the current file
166
        pass
167
168
    def fileSaveAs(self):
169
        # this slot is called whenever the File->Save As menu is selected,
170
        file_url = KFileDialog.getSaveURL()
171
        if not file_url.isEmpty() and file_url.isValid():
172
            # save your info, here
173
            pass
174
175
176
    def filePrint(self):
177
        # this slot is called whenever the File->Print menu is selected,
178
        # the Print shortcut is pressed (usually CTRL+P) or the Print toolbar
179
        # button is clicked
180
        if self._printer is None:
181
            self._printer = TDEPrinter()
182
            
183
        if self._printer.setup(self):
184
            # setup the printer.  with Qt, you always "print" to a
185
            # TQPainter.. whether the output medium is a pixmap, a screen,
186
            # or paper
187
            p = TQPainter()
188
            p.begin(self._printer)
189
    
190
            # we let our view do the actual printing
191
            metrics = TQPaintDeviceMetrics(m_printer)
192
            self._view.print_(p, metrics.height(), metrics.width())
193
    
194
            # and send the result to the printer
195
            p.end();
196
197
    def optionsPreferences(self):
198
        # popup some sort of preference dialog, here
199
        dlg = PreferencesDialog()
200
        if dlg.exec_loop():
201
            # redo your settings
202
            pass
203
204
    def optionsShowToolbar(self):
205
        # this is all very cut and paste code for showing/hiding the
206
        # toolbar
207
        if self._toolbarAction.isChecked():
208
            self.toolBar().show()
209
        else:
210
            self.toolBar().hide()
211
212
    def optionsShowStatusbar(self):
213
        # this is all very cut and paste code for showing/hiding the
214
        # statusbar
215
216
        if self._statusbarAction.isChecked():
217
            self.statusBar().show()
218
        else:
219
            self.statusBar().hide()
220
221
    def optionsConfigureKeys(self):
222
        KKeyDialog.configure(self.actionCollection())
223
224
    def optionsConfigureToolbars(self):
225
        # use the standard toolbar editor
226
        self.saveMainWindowSettings(TDEGlobal.config())
227
228
    def newToolbarConfig(self):
229
        # this slot is called when user clicks "Ok" or "Apply" in the toolbar editor.
230
        # recreate our GUI, and re-apply the settings (e.g. "text under icons", etc.)
231
        self.createGUI()
232
        self.applyMainWindowSettings(TDEGlobal.config())
233
234
    def changeStatusbar(self,text):
235
        # display the text on the statusbar
236
        self.statusBar().message(text)
237
238
    def changeCaption(self,text):
239
        # display the text on the caption
240
        self.setCaption(text)
241
242
243
options = [ ("+[URL]", "Document to open", "") ]
244
245
def main():
246
    global kapp,version,description,options
247
248
    aboutdata = TDEAboutData("tdeapp", "TdeApp", version, description, \
249
        TDEAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com")
250
    aboutdata.addAuthor("AUTHOR", None, "your@email.com")
251
    TDECmdLineArgs.init(sys.argv,aboutdata)
252
    TDECmdLineArgs.addCmdLineOptions(options)
253
    kapp = TDEApplication()
254
    
255
    # register ourselves as a dcop client
256
    kapp.dcopClient().registerAs(kapp.name(), False)
257
258
    # see if we are starting with session management
259
    if kapp.isRestored():
260
        n = 1
261
        while TDEMainWindow.canBeRestored(n):
262
            TdeApp().restore(n)
263
            n += 1
264
    else:
265
        # no session.. just start up normally
266
        args = TDECmdLineArgs.parsedArgs()
267
        if args.count() == 0:
268
            widget = TdeApp()
269
            widget.show()
270
        else:
271
            i = 0
272
            for i in range(args.count()):
273
                widget = TdeApp()
274
                widget.show()
275
                widget.load(args.url(i))
276
277
        args.clear()
278
279
    return kapp.exec_loop()
280
main()
(-)pytdeextensions/app_templates/tdeapp/src/tdeappiface.py (+26 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# testappiface - description                                              #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2003                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from dcopexport import DCOPExObj
19
20
class TestAppIface(DCOPExObj):
21
    def __init__(self, parent, id="Value"):
22
        DCOPExObj.__init__(self, id)
23
        self.addMethod("void openURL(TQString url)", self.openURL)
24
25
    def openURL(self,url):
26
        pass
(-)pytdeextensions/app_templates/tdeapp/src/tdeappui.rc (+8 lines)
Line 0 Link Here
1
<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
2
<kpartgui name="testapp" version="1">
3
<MenuBar>
4
  <Menu name="custom"><text>C&amp;ustom</text>
5
    <Action name="custom_action" />
6
  </Menu>
7
</MenuBar>
8
</kpartgui>
(-)pytdeextensions/app_templates/tdeapp/src/tdeappview.py (+91 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# tdeappview - description                                                #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
from qt import *
19
from tdecore import *
20
from tdeui import *
21
from tdeio import *
22
from tdehtml import *
23
from tdeparts import *
24
#from tdeappiface import *
25
26
class TdeAppView(TQWidget):
27
    def __init__(self,parent):
28
        TQWidget.__init__(self,parent)
29
        #self._dcopclient= TdeAppIface(self,"TdeAppIface")
30
31
        # setup our layout manager to automatically add our widgets
32
        top_layout = TQHBoxLayout(self)
33
        top_layout.setAutoAdd(True)
34
        
35
        if True:
36
            self._html = TDEHTMLPart(self)
37
        else:
38
39
            # we want to look for all components that satisfy our needs.  the
40
            # trader will actually search through *all* registered TDE
41
            # applications and components -- not just KParts.  So we have to
42
            # specify two things: a service type and a constraint
43
            #
44
            # the service type is like a mime type.  we say that we want all
45
            # applications and components that can handle HTML -- 'text/html'
46
            #
47
            # however, by itself, this will return such things as Netscape..
48
            # not what we wanted.  so we constrain it by saying that the
49
            # string 'KParts/ReadOnlyPart' must be found in the ServiceTypes
50
            # field.  with this, only components of the type we want will be
51
            # returned.
52
            offers = TDETrader.self().query("text/html", "'KParts/ReadOnlyPart' in ServiceTypes")
53
            
54
            self._html = None
55
            # in theory, we only care about the first one.. but let's try all
56
            # offers just in case the first can't be loaded for some reason
57
            for ptr in offers:
58
                # we now know that our offer can handle HTML and is a part.
59
                # since it is a part, it must also have a library... let's try to
60
                # load that now
61
                self._html = createReadOnlyPart(ptr.library(),self,ptr.name(),"KParts::ReadOnlyPart",TQStringList())
62
                if self._html is not None:
63
                    break
64
        
65
            # if our factory is invalid, then we never found our component
66
            # and we might as well just exit now
67
            if self._html is None:
68
                KMessageBox.error(self, i18n("Could not find a suitable HTML component"))
69
                return
70
    
71
        QObject.connect(self._html, SIGNAL("setWindowCaption(const TQString&)"), self.slotSetTitle)
72
        QObject.connect(self._html, SIGNAL("setStatusBarText(const TQString&)"), self.slotOnURL)
73
74
    def print_(self,p,height,width):
75
        pass
76
        # do the actual printing, here
77
        # p.drawText(etc..)
78
79
    def currentURL(self):
80
        return self._html.url().url()
81
82
    def openURL(self,url):
83
        if isinstance(url,TQString):
84
            url = KURL(url)
85
        self._html.openURL(url)
86
87
    def slotOnURL(self,url):
88
        self.emit(PYSIGNAL("signalChangeStatusbar"),(url,) )
89
90
    def slotSetTitle(self,title):
91
        self.emit(PYSIGNAL("signalChangeCaption"),(title,) )
(-)pytdeextensions/app_templates/tdeioslave/setup.py (-1 / +1 lines)
Lines 22-28 Link Here
22
    author="AUTHOR",
22
    author="AUTHOR",
23
    author_email="YOUR@EMAIL.com",
23
    author_email="YOUR@EMAIL.com",
24
    url="http://www.TESTAPP.com/",
24
    url="http://www.TESTAPP.com/",
25
    min_kde_version = "3.0.0",
25
    min_tde_version = "3.0.0",
26
    min_qt_version = "3.0.0",
26
    min_qt_version = "3.0.0",
27
    license = "GPL",
27
    license = "GPL",
28
    application_data = ['src/tdeioslave.py'],
28
    application_data = ['src/tdeioslave.py'],
(-)pytdeextensions/app_templates/tdeioslave/src/tdeioslave.py (-1 / +1 lines)
Lines 15-21 Link Here
15
#                                                                         #
15
#                                                                         #
16
###########################################################################
16
###########################################################################
17
17
18
# Import the required Qt and KDE modules.
18
# Import the required TQt and TDE modules.
19
from qt import *
19
from qt import *
20
from tdeio import *
20
from tdeio import *
21
from tdecore import *
21
from tdecore import *
(-)pytdeextensions/app_templates/tdeutility/AUTHORS (+1 lines)
Line 0 Link Here
1
$AUTHOR$ <$EMAIL$>
(-)pytdeextensions/app_templates/tdeutility/COPYING (+340 lines)
Line 0 Link Here
1
		    GNU GENERAL PUBLIC LICENSE
2
		       Version 2, June 1991
3
4
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
                       51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
6
 Everyone is permitted to copy and distribute verbatim copies
7
 of this license document, but changing it is not allowed.
8
9
			    Preamble
10
11
  The licenses for most software are designed to take away your
12
freedom to share and change it.  By contrast, the GNU General Public
13
License is intended to guarantee your freedom to share and change free
14
software--to make sure the software is free for all its users.  This
15
General Public License applies to most of the Free Software
16
Foundation's software and to any other program whose authors commit to
17
using it.  (Some other Free Software Foundation software is covered by
18
the GNU Library General Public License instead.)  You can apply it to
19
your programs, too.
20
21
  When we speak of free software, we are referring to freedom, not
22
price.  Our General Public Licenses are designed to make sure that you
23
have the freedom to distribute copies of free software (and charge for
24
this service if you wish), that you receive source code or can get it
25
if you want it, that you can change the software or use pieces of it
26
in new free programs; and that you know you can do these things.
27
28
  To protect your rights, we need to make restrictions that forbid
29
anyone to deny you these rights or to ask you to surrender the rights.
30
These restrictions translate to certain responsibilities for you if you
31
distribute copies of the software, or if you modify it.
32
33
  For example, if you distribute copies of such a program, whether
34
gratis or for a fee, you must give the recipients all the rights that
35
you have.  You must make sure that they, too, receive or can get the
36
source code.  And you must show them these terms so they know their
37
rights.
38
39
  We protect your rights with two steps: (1) copyright the software, and
40
(2) offer you this license which gives you legal permission to copy,
41
distribute and/or modify the software.
42
43
  Also, for each author's protection and ours, we want to make certain
44
that everyone understands that there is no warranty for this free
45
software.  If the software is modified by someone else and passed on, we
46
want its recipients to know that what they have is not the original, so
47
that any problems introduced by others will not reflect on the original
48
authors' reputations.
49
50
  Finally, any free program is threatened constantly by software
51
patents.  We wish to avoid the danger that redistributors of a free
52
program will individually obtain patent licenses, in effect making the
53
program proprietary.  To prevent this, we have made it clear that any
54
patent must be licensed for everyone's free use or not licensed at all.
55
56
  The precise terms and conditions for copying, distribution and
57
modification follow.
58
59
		    GNU GENERAL PUBLIC LICENSE
60
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
62
  0. This License applies to any program or other work which contains
63
a notice placed by the copyright holder saying it may be distributed
64
under the terms of this General Public License.  The "Program", below,
65
refers to any such program or work, and a "work based on the Program"
66
means either the Program or any derivative work under copyright law:
67
that is to say, a work containing the Program or a portion of it,
68
either verbatim or with modifications and/or translated into another
69
language.  (Hereinafter, translation is included without limitation in
70
the term "modification".)  Each licensee is addressed as "you".
71
72
Activities other than copying, distribution and modification are not
73
covered by this License; they are outside its scope.  The act of
74
running the Program is not restricted, and the output from the Program
75
is covered only if its contents constitute a work based on the
76
Program (independent of having been made by running the Program).
77
Whether that is true depends on what the Program does.
78
79
  1. You may copy and distribute verbatim copies of the Program's
80
source code as you receive it, in any medium, provided that you
81
conspicuously and appropriately publish on each copy an appropriate
82
copyright notice and disclaimer of warranty; keep intact all the
83
notices that refer to this License and to the absence of any warranty;
84
and give any other recipients of the Program a copy of this License
85
along with the Program.
86
87
You may charge a fee for the physical act of transferring a copy, and
88
you may at your option offer warranty protection in exchange for a fee.
89
90
  2. You may modify your copy or copies of the Program or any portion
91
of it, thus forming a work based on the Program, and copy and
92
distribute such modifications or work under the terms of Section 1
93
above, provided that you also meet all of these conditions:
94
95
    a) You must cause the modified files to carry prominent notices
96
    stating that you changed the files and the date of any change.
97
98
    b) You must cause any work that you distribute or publish, that in
99
    whole or in part contains or is derived from the Program or any
100
    part thereof, to be licensed as a whole at no charge to all third
101
    parties under the terms of this License.
102
103
    c) If the modified program normally reads commands interactively
104
    when run, you must cause it, when started running for such
105
    interactive use in the most ordinary way, to print or display an
106
    announcement including an appropriate copyright notice and a
107
    notice that there is no warranty (or else, saying that you provide
108
    a warranty) and that users may redistribute the program under
109
    these conditions, and telling the user how to view a copy of this
110
    License.  (Exception: if the Program itself is interactive but
111
    does not normally print such an announcement, your work based on
112
    the Program is not required to print an announcement.)
113
114
These requirements apply to the modified work as a whole.  If
115
identifiable sections of that work are not derived from the Program,
116
and can be reasonably considered independent and separate works in
117
themselves, then this License, and its terms, do not apply to those
118
sections when you distribute them as separate works.  But when you
119
distribute the same sections as part of a whole which is a work based
120
on the Program, the distribution of the whole must be on the terms of
121
this License, whose permissions for other licensees extend to the
122
entire whole, and thus to each and every part regardless of who wrote it.
123
124
Thus, it is not the intent of this section to claim rights or contest
125
your rights to work written entirely by you; rather, the intent is to
126
exercise the right to control the distribution of derivative or
127
collective works based on the Program.
128
129
In addition, mere aggregation of another work not based on the Program
130
with the Program (or with a work based on the Program) on a volume of
131
a storage or distribution medium does not bring the other work under
132
the scope of this License.
133
134
  3. You may copy and distribute the Program (or a work based on it,
135
under Section 2) in object code or executable form under the terms of
136
Sections 1 and 2 above provided that you also do one of the following:
137
138
    a) Accompany it with the complete corresponding machine-readable
139
    source code, which must be distributed under the terms of Sections
140
    1 and 2 above on a medium customarily used for software interchange; or,
141
142
    b) Accompany it with a written offer, valid for at least three
143
    years, to give any third party, for a charge no more than your
144
    cost of physically performing source distribution, a complete
145
    machine-readable copy of the corresponding source code, to be
146
    distributed under the terms of Sections 1 and 2 above on a medium
147
    customarily used for software interchange; or,
148
149
    c) Accompany it with the information you received as to the offer
150
    to distribute corresponding source code.  (This alternative is
151
    allowed only for noncommercial distribution and only if you
152
    received the program in object code or executable form with such
153
    an offer, in accord with Subsection b above.)
154
155
The source code for a work means the preferred form of the work for
156
making modifications to it.  For an executable work, complete source
157
code means all the source code for all modules it contains, plus any
158
associated interface definition files, plus the scripts used to
159
control compilation and installation of the executable.  However, as a
160
special exception, the source code distributed need not include
161
anything that is normally distributed (in either source or binary
162
form) with the major components (compiler, kernel, and so on) of the
163
operating system on which the executable runs, unless that component
164
itself accompanies the executable.
165
166
If distribution of executable or object code is made by offering
167
access to copy from a designated place, then offering equivalent
168
access to copy the source code from the same place counts as
169
distribution of the source code, even though third parties are not
170
compelled to copy the source along with the object code.
171
172
  4. You may not copy, modify, sublicense, or distribute the Program
173
except as expressly provided under this License.  Any attempt
174
otherwise to copy, modify, sublicense or distribute the Program is
175
void, and will automatically terminate your rights under this License.
176
However, parties who have received copies, or rights, from you under
177
this License will not have their licenses terminated so long as such
178
parties remain in full compliance.
179
180
  5. You are not required to accept this License, since you have not
181
signed it.  However, nothing else grants you permission to modify or
182
distribute the Program or its derivative works.  These actions are
183
prohibited by law if you do not accept this License.  Therefore, by
184
modifying or distributing the Program (or any work based on the
185
Program), you indicate your acceptance of this License to do so, and
186
all its terms and conditions for copying, distributing or modifying
187
the Program or works based on it.
188
189
  6. Each time you redistribute the Program (or any work based on the
190
Program), the recipient automatically receives a license from the
191
original licensor to copy, distribute or modify the Program subject to
192
these terms and conditions.  You may not impose any further
193
restrictions on the recipients' exercise of the rights granted herein.
194
You are not responsible for enforcing compliance by third parties to
195
this License.
196
197
  7. If, as a consequence of a court judgment or allegation of patent
198
infringement or for any other reason (not limited to patent issues),
199
conditions are imposed on you (whether by court order, agreement or
200
otherwise) that contradict the conditions of this License, they do not
201
excuse you from the conditions of this License.  If you cannot
202
distribute so as to satisfy simultaneously your obligations under this
203
License and any other pertinent obligations, then as a consequence you
204
may not distribute the Program at all.  For example, if a patent
205
license would not permit royalty-free redistribution of the Program by
206
all those who receive copies directly or indirectly through you, then
207
the only way you could satisfy both it and this License would be to
208
refrain entirely from distribution of the Program.
209
210
If any portion of this section is held invalid or unenforceable under
211
any particular circumstance, the balance of the section is intended to
212
apply and the section as a whole is intended to apply in other
213
circumstances.
214
215
It is not the purpose of this section to induce you to infringe any
216
patents or other property right claims or to contest validity of any
217
such claims; this section has the sole purpose of protecting the
218
integrity of the free software distribution system, which is
219
implemented by public license practices.  Many people have made
220
generous contributions to the wide range of software distributed
221
through that system in reliance on consistent application of that
222
system; it is up to the author/donor to decide if he or she is willing
223
to distribute software through any other system and a licensee cannot
224
impose that choice.
225
226
This section is intended to make thoroughly clear what is believed to
227
be a consequence of the rest of this License.
228
229
  8. If the distribution and/or use of the Program is restricted in
230
certain countries either by patents or by copyrighted interfaces, the
231
original copyright holder who places the Program under this License
232
may add an explicit geographical distribution limitation excluding
233
those countries, so that distribution is permitted only in or among
234
countries not thus excluded.  In such case, this License incorporates
235
the limitation as if written in the body of this License.
236
237
  9. The Free Software Foundation may publish revised and/or new versions
238
of the General Public License from time to time.  Such new versions will
239
be similar in spirit to the present version, but may differ in detail to
240
address new problems or concerns.
241
242
Each version is given a distinguishing version number.  If the Program
243
specifies a version number of this License which applies to it and "any
244
later version", you have the option of following the terms and conditions
245
either of that version or of any later version published by the Free
246
Software Foundation.  If the Program does not specify a version number of
247
this License, you may choose any version ever published by the Free Software
248
Foundation.
249
250
  10. If you wish to incorporate parts of the Program into other free
251
programs whose distribution conditions are different, write to the author
252
to ask for permission.  For software which is copyrighted by the Free
253
Software Foundation, write to the Free Software Foundation; we sometimes
254
make exceptions for this.  Our decision will be guided by the two goals
255
of preserving the free status of all derivatives of our free software and
256
of promoting the sharing and reuse of software generally.
257
258
			    NO WARRANTY
259
260
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
262
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
266
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
267
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
REPAIR OR CORRECTION.
269
270
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
POSSIBILITY OF SUCH DAMAGES.
279
280
		     END OF TERMS AND CONDITIONS
281
282
	    How to Apply These Terms to Your New Programs
283
284
  If you develop a new program, and you want it to be of the greatest
285
possible use to the public, the best way to achieve this is to make it
286
free software which everyone can redistribute and change under these terms.
287
288
  To do so, attach the following notices to the program.  It is safest
289
to attach them to the start of each source file to most effectively
290
convey the exclusion of warranty; and each file should have at least
291
the "copyright" line and a pointer to where the full notice is found.
292
293
    <one line to give the program's name and a brief idea of what it does.>
294
    Copyright (C) <year>  <name of author>
295
296
    This program is free software; you can redistribute it and/or modify
297
    it under the terms of the GNU General Public License as published by
298
    the Free Software Foundation; either version 2 of the License, or
299
    (at your option) any later version.
300
301
    This program is distributed in the hope that it will be useful,
302
    but WITHOUT ANY WARRANTY; without even the implied warranty of
303
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
304
    GNU General Public License for more details.
305
306
    You should have received a copy of the GNU General Public License
307
    along with this program; if not, write to the Free Software
308
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
309
310
311
Also add information on how to contact you by electronic and paper mail.
312
313
If the program is interactive, make it output a short notice like this
314
when it starts in an interactive mode:
315
316
    Gnomovision version 69, Copyright (C) year name of author
317
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318
    This is free software, and you are welcome to redistribute it
319
    under certain conditions; type `show c' for details.
320
321
The hypothetical commands `show w' and `show c' should show the appropriate
322
parts of the General Public License.  Of course, the commands you use may
323
be called something other than `show w' and `show c'; they could even be
324
mouse-clicks or menu items--whatever suits your program.
325
326
You should also get your employer (if you work as a programmer) or your
327
school, if any, to sign a "copyright disclaimer" for the program, if
328
necessary.  Here is a sample; alter the names:
329
330
  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331
  `Gnomovision' (which makes passes at compilers) written by James Hacker.
332
333
  <signature of Ty Coon>, 1 April 1989
334
  Ty Coon, President of Vice
335
336
This General Public License does not permit incorporating your program into
337
proprietary programs.  If your program is a subroutine library, you may
338
consider it more useful to permit linking proprietary applications with the
339
library.  If this is what you want to do, use the GNU Library General
340
Public License instead of this License.
(-)pytdeextensions/app_templates/tdeutility/ChangeLog (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeutility/INSTALL (+43 lines)
Line 0 Link Here
1
Basic Installation
2
==================
3
These are generic installation instructions.
4
5
This software uses the Python language's distutils system for installation.
6
A detailed guide for users and system administrators to using distutils to
7
install software can be found here:
8
9
    http://docs.python.org/inst/inst.html
10
11
The simplest way to install this software is to run the following command as
12
the root user:
13
14
    python setup.py install
15
16
The setup.py script will automatically detect the directories to use for
17
documentation, binaries and other software files.
18
19
20
Uninstallation
21
==============
22
During installation setup.py creates list of files and directories that
23
were installed in a file called install_log.txt. 
24
25
    python setup.py uninstall
26
27
28
Installing into an alternate root
29
=================================
30
For packaging purposes it is often very useful to be able to install all files
31
relative not to the usual root directory (/) but into an alternative
32
directory.
33
34
    python setup.py install --root=/tmp/alternativeroot/
35
36
37
Operation Controls
38
==================
39
--verbose
40
    Print more information about what setup.py is doing.
41
    
42
--help
43
    Print a summary of the options to setup.py, and exit.
(-)pytdeextensions/app_templates/tdeutility/MANIFEST.in (+6 lines)
Line 0 Link Here
1
recursive-include doc *.docbook *.png
2
recursive-include po *.po *.pot
3
include AUTHORS ChangeLog COPYING INSTALL MANIFEST.in NEWS README TODO
4
global-include *.desktop *.py *.ui *.png *.lsm
5
global-exclude *~ .svn
6
global-exclude *~ .cvs
(-)pytdeextensions/app_templates/tdeutility/NEWS (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeutility/README (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeutility/TODO (+1 lines)
Line 0 Link Here
1
 
(-)pytdeextensions/app_templates/tdeutility/doc/en/index.docbook (+555 lines)
Line 0 Link Here
1
<?xml version="1.0" ?>
2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
3
  <!ENTITY appname "<application>MyApplication 0.1</application>">
4
  <!ENTITY kappname "&appname;"><!-- Do *not* replace kappname-->
5
  <!ENTITY package "kde-module"><!-- tdebase, tdeadmin, etc -->
6
  <!ENTITY % addindex "IGNORE">
7
  <!ENTITY % English "INCLUDE"><!-- change language only here -->
8
  
9
  
10
  <!-- Do not define any other entities; instead, use the entities
11
       from kde-genent.entities and $LANG/user.entities. -->
12
]>
13
<!-- kdoctemplate v0.8 October 1 1999 
14
     Minor update to "Credits and Licenses" section on August 24, 2000
15
     Removed "Revision history" section on 22 January 2001
16
     Changed to Installation/Help menu entities 18 October 2001
17
     Other minor cleanup and changes 18 October 2001 -->
18
19
20
<!--
21
This template was designed by: David Rugge davidrugge@mindspring.com
22
with lots of help from: Eric Bischoff ebisch@cybercable.tm.fr
23
and Frederik Fouvry fouvry@sfs.nphil.uni-tuebingen.de
24
of the KDE DocBook team.
25
26
You may freely use this template for writing any sort of KDE documentation.
27
If you have any changes or improvements, please let us know.
28
29
Remember:
30
- in XML, the case of the <tags> and attributes is relevant ;
31
- also, quote all attributes.
32
33
Please don't forget to remove all these comments in your final documentation,
34
thanks ;-).
35
-->
36
37
<!-- ................................................................ -->
38
39
<!-- The language must NOT be changed here. -->
40
41
<book lang="&language;">
42
43
<!-- This header contains all of the meta-information for the document such
44
as Authors, publish date, the abstract, and Keywords -->
45
46
<bookinfo>
47
<title>The &appname; Handbook</title>
48
49
<authorgroup>
50
<author>
51
<firstname></firstname>
52
<othername></othername>
53
<surname>%{AUTHOR}</surname>
54
<affiliation>
55
<address><email>%{EMAIL}</email></address>
56
</affiliation>
57
</author>
58
</authorgroup>
59
60
<!-- TRANS:ROLES_OF_TRANSLATORS -->
61
62
<copyright>
63
<year>1999</year>
64
<year>%{YEAR}</year>
65
<holder>%{AUTHOR}</holder>
66
</copyright>
67
<!-- Translators: put here the copyright notice of the translation -->
68
<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook
69
     and in the FDL itself on how to use it. -->
70
<legalnotice>&FDLNotice;</legalnotice>
71
72
<!-- Date and version information of the documentation
73
Don't forget to include this last date and this last revision number, we
74
need them for translation coordination !
75
Please respect the format of the date (YYYY-MM-DD) and of the version
76
(V.MM.LL), it could be used by automation scripts.
77
Do NOT change these in the translation. -->
78
79
<date>2001-10-18</date>
80
<releaseinfo>%{VERSION}</releaseinfo>
81
82
<!-- Abstract about this handbook -->
83
84
<abstract>
85
<para>
86
&appname; is an application specially designed to do nothing you would
87
ever want.
88
</para>
89
</abstract>
90
91
<!-- This is a set of Keywords for indexing by search engines.
92
Please at least include KDE, the KDE package it is in, the name
93
 of your application, and a few relevant keywords. -->
94
95
<keywordset>
96
<keyword>KDE</keyword>
97
<keyword>%{APPNAME}</keyword>
98
<keyword>nothing</keyword>
99
<keyword>nothing else</keyword>
100
</keywordset>
101
102
</bookinfo>
103
104
<!-- The contents of the documentation begin here.  Label
105
each chapter so with the id attribute. This is necessary for two reasons: it
106
allows you to easily reference the chapter from other chapters of your
107
document, and if there is no ID, the name of the generated HTML files will vary
108
from time to time making it hard to manage for maintainers and for the CVS
109
system. Any chapter labelled (OPTIONAL) may be left out at the author's
110
discretion. Other chapters should not be left out in order to maintain a
111
consistent documentation style across all KDE apps. -->
112
113
<chapter id="introduction">
114
<title>Introduction</title>
115
116
<!-- The introduction chapter contains a brief introduction for the
117
application that explains what it does and where to report
118
problems. Basically a long version of the abstract.  Don't include a
119
revision history. (see installation appendix comment) -->
120
121
<para>
122
&appname; is a program that lets you do absolutely nothing. Please report
123
any problems or feature requests to the &kde; mailing lists.
124
</para>
125
</chapter>
126
127
<chapter id="using-appname">
128
<title>Using &appname;</title>
129
130
<!-- This chapter should tell the user how to use your app. You should use as
131
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
132
your application. -->
133
134
<para>
135
136
<!-- Note that all graphics should be in .png format. Use no gifs because of
137
patent issues. -->
138
139
<screenshot>
140
<screeninfo>Here's a screenshot of &appname;</screeninfo>
141
	<mediaobject>
142
	  <imageobject>
143
	    <imagedata fileref="screenshot.png" format="PNG"/>
144
	  </imageobject>
145
	  <imageobject>
146
	    <imagedata fileref="screenshot.eps" format="EPS"/>
147
	  </imageobject>
148
	  <textobject>
149
	    <phrase>Screenshot</phrase>
150
	  </textobject>
151
	</mediaobject>
152
</screenshot>
153
</para>
154
155
156
<sect1 id="appname-features">
157
<title>More &appname; features</title>
158
159
<para>It slices! It dices! and it comes with a free toaster!</para>
160
<para>
161
The Squiggle Tool <guiicon><inlinemediaobject>
162
	  <imageobject>
163
	    <imagedata fileref="squiggle.png" format="PNG"/>
164
	  </imageobject>
165
	  <imageobject>
166
	    <imagedata fileref="squiggle.eps" format="EPS"/>
167
	  </imageobject>
168
	  <textobject>
169
	    <phrase>Squiggle</phrase>
170
	  </textobject>
171
</inlinemediaobject></guiicon> is used to draw squiggly lines all over
172
the &appname; main window. It's not a bug, it's a feature!
173
</para>
174
175
</sect1>
176
</chapter>
177
178
<chapter id="commands">
179
<title>Command Reference</title>
180
181
<!-- (OPTIONAL, BUT RECOMMENDED) This chapter should list all of the
182
application windows and their menubar and toolbar commands for easy reference.
183
Also include any keys that have a special function but have no equivalent in the
184
menus or toolbars. This may not be necessary for small apps or apps with no tool
185
or menu bars. -->
186
187
<sect1 id="appname-mainwindow">
188
<title>The main &appname; window</title>
189
190
<sect2>
191
<title>The File Menu</title>
192
<para>
193
<variablelist>
194
<varlistentry>
195
<term><menuchoice>
196
<shortcut>
197
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
198
</shortcut>
199
<guimenu>File</guimenu>
200
<guimenuitem>New</guimenuitem>
201
</menuchoice></term>
202
<listitem><para><action>Creates a new document</action></para></listitem>
203
</varlistentry>
204
<varlistentry>
205
<term><menuchoice>
206
<shortcut>
207
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
208
</shortcut>
209
<guimenu>File</guimenu>
210
<guimenuitem>Save</guimenuitem>
211
</menuchoice></term>
212
<listitem><para><action>Saves the document</action></para></listitem>
213
</varlistentry>
214
<varlistentry>
215
<term><menuchoice>
216
<shortcut>
217
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
218
</shortcut>
219
<guimenu>File</guimenu>
220
<guimenuitem>Quit</guimenuitem>
221
</menuchoice></term>
222
<listitem><para><action>Quits</action> &appname;</para></listitem>
223
</varlistentry>
224
</variablelist>
225
</para>
226
227
</sect2>
228
229
<sect2>
230
<title>The <guimenu>Help</guimenu> Menu</title>
231
232
<!-- Assuming you have a standard help menu (help, what's this, about -->
233
<!-- &appname;, about KDE) then the documentation is already written. -->
234
<!-- The following entity is valid anywhere that a variablelist is -->
235
<!-- valid.  -->
236
237
&help.menu.documentation;
238
239
</sect2>
240
241
</sect1>
242
</chapter>
243
244
<chapter id="developers">
245
<title>Developer's Guide to &appname;</title>
246
247
<!-- (OPTIONAL) A Programming/Scripting reference chapter should be
248
used for apps that use plugins or that provide their own scripting hooks
249
and/or development libraries. -->
250
251
<para>
252
Programming &appname; plugins is a joy to behold. Just read through the next
253
66 pages of API's to learn how!
254
</para>
255
256
<!-- Use refentries to describe APIs.  Refentries are fairly complicated and you
257
should consult the docbook reference for further details. The example below was
258
taken from that reference and shortened a bit for readability. -->
259
260
<refentry id="re-1007-unmanagechildren-1">
261
<refmeta>
262
<refentrytitle>XtUnmanageChildren</refentrytitle>
263
<refmiscinfo>Xt - Geometry Management</refmiscinfo>
264
</refmeta>
265
<refnamediv>
266
<refname>XtUnmanageChildren
267
</refname>
268
<refpurpose>remove a list of children from a parent widget's managed
269
list.
270
<indexterm id="ix-1007-unmanagechildren-1"><primary>widgets</primary><secondary>removing</secondary></indexterm>
271
<indexterm id="ix-1007-unmanagechildren-2"><primary>XtUnmanageChildren</primary></indexterm> 
272
</refpurpose>
273
274
</refnamediv>
275
<refsynopsisdiv>
276
<refsynopsisdivinfo>
277
<date>4 March 1996</date>
278
</refsynopsisdivinfo>
279
<synopsis>
280
void XtUnmanageChildren(<replaceable class="parameter">children</replaceable>, <replaceable class="parameter">num_children</replaceable>)
281
    WidgetList <replaceable class="parameter">children</replaceable>;
282
    Cardinal <replaceable class="parameter">num_children</replaceable>;
283
</synopsis>
284
285
<refsect2 id="r2-1007-unmanagechildren-1">
286
<title>Inputs</title>
287
<variablelist>
288
<varlistentry>
289
<term><replaceable class="parameter">children</replaceable>
290
</term>
291
<listitem>
292
<para>Specifies an array of child widgets. Each child must be of
293
class RectObj or any subclass thereof.
294
</para>
295
</listitem>
296
</varlistentry>
297
<varlistentry>
298
<term><replaceable class="parameter">num_children</replaceable>
299
</term>
300
<listitem>
301
<para>Specifies the number of elements in <replaceable class="parameter">children</replaceable>.
302
</para>
303
</listitem>
304
</varlistentry>
305
</variablelist>
306
</refsect2></refsynopsisdiv>
307
308
<refsect1 id="r1-1007-unmanagechildren-1">
309
<title>Description
310
</title>
311
<para><function>XtUnmanageChildren()</function> unmaps the specified widgets
312
and removes them from their parent's geometry management.
313
The widgets will disappear from the screen, and (depending
314
on its parent) may no longer have screen space allocated for
315
them.
316
</para>
317
<para>Each of the widgets in the <replaceable class="parameter">children</replaceable> array must have
318
the same parent.
319
</para>
320
<para>See the &ldquo;Algorithm&rdquo; section below for full details of the
321
widget unmanagement procedure.
322
</para>
323
</refsect1>
324
325
<refsect1 id="r1-1007-unmanagechildren-2">
326
<title>Usage</title>
327
<para>Unmanaging widgets is the usual method for temporarily
328
making them invisible.  They can be re-managed with
329
<function>XtManageChildren()</function>.
330
</para>
331
<para>You can unmap a widget, but leave it under geometry
332
management by calling <function>XtUnmapWidget()</function>.  You can
333
destroy a widget's window without destroying the widget by
334
calling <function>XtUnrealizeWidget()</function>.  You can destroy a
335
widget completely with <function>XtDestroyWidget()</function>.
336
</para>
337
<para>If you are only going to unmanage a single widget, it is
338
more convenient to call <function>XtUnmanageChild()</function>.  It is
339
often more convenient to call <function>XtUnmanageChild()</function>
340
several times than it is to declare and initialize an array
341
of widgets to pass to <function>XtUnmanageChildren()</function>.  Calling
342
<function>XtUnmanageChildren()</function> is more efficient, however,
343
because it only calls the parent's <function>change_managed()</function>
344
method once.
345
</para>
346
</refsect1>
347
348
<refsect1 id="r1-1007-unmanagechildren-3">
349
<title>Algorithm
350
</title>
351
<para><function>XtUnmanageChildren()</function> performs the following:
352
</para>
353
<variablelist>
354
<varlistentry>
355
<term>-
356
</term>
357
<listitem>
358
<para>Ignores the child if it already is unmanaged or is being
359
destroyed.
360
</para>
361
</listitem>
362
</varlistentry>
363
<varlistentry>
364
<term>-
365
</term>
366
<listitem>
367
<para>Otherwise, if the child is realized, it makes it nonvisible
368
by unmapping it.
369
</para>
370
</listitem>
371
</varlistentry>
372
</variablelist>
373
<para>
374
</para>
375
</refsect1>
376
377
<refsect1 id="r1-1007-unmanagechildren-4">
378
<title>Structures</title>
379
<para>The <type>WidgetList</type> type is simply an array of widgets:
380
</para>
381
<screen id="sc-1007-unmanagechildren-1">typedef Widget *WidgetList;
382
</screen>
383
</refsect1>
384
</refentry>
385
386
</chapter>
387
388
<chapter id="faq">
389
<title>Questions and Answers</title>
390
391
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
392
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
393
should be reserved for BRIEF questions and answers! If one question uses more
394
than a page or so then it should probably be part of the
395
"Using this Application" chapter instead. You should use links to
396
cross-reference questions to the parts of your documentation that answer them.
397
This is also a great place to provide pointers to other FAQ's if your users
398
must do some complicated configuration on other programs in order for your
399
application work. -->
400
401
&reporting.bugs;
402
&updating.documentation;
403
404
<qandaset id="faqlist">
405
<qandaentry>
406
<question>
407
<para>My Mouse doesn't work. How do I quit &appname;?</para>
408
</question>
409
<answer>
410
<para>You silly goose! Check out the <link linkend="commands">Commands
411
Section</link> for the answer.</para>
412
</answer>
413
</qandaentry>
414
<qandaentry>
415
<question>
416
<para>Why can't I twiddle my documents?</para>
417
</question>
418
<answer>
419
<para>You can only twiddle your documents if you have the foobar.lib
420
installed.</para>
421
</answer>
422
</qandaentry>
423
</qandaset>
424
</chapter>
425
426
<chapter id="credits">
427
428
<!-- Include credits for the programmers, documentation writers, and
429
contributors here. The license for your software should then be included below
430
the credits with a reference to the appropriate license file included in the KDE
431
distribution. -->
432
433
<title>Credits and License</title>
434
435
<para>
436
&appname;
437
</para>
438
<para>
439
Program copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
440
</para>
441
<para>
442
Contributors:
443
<itemizedlist>
444
<listitem><para>Konqui the KDE Dragon <email>konqui@kde.org</email></para>
445
</listitem>
446
<listitem><para>Tux the Linux Penguin <email>tux@linux.org</email></para>
447
</listitem>
448
</itemizedlist>
449
</para>
450
451
<para>
452
Documentation copyright %{YEAR} %{AUTHOR} <email>%{EMAIL}</email>
453
</para>
454
455
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
456
457
&underFDL;               <!-- FDL: do not remove -->
458
459
<!-- Determine which license your application is licensed under, 
460
     and delete all the remaining licenses below:
461
462
     (NOTE:  All documentation are licensed under the FDL, 
463
     regardless of what license the application uses) -->
464
465
&underGPL;        	 <!-- GPL License -->
466
&underBSDLicense;        <!-- BSD License -->
467
&underArtisticLicense;   <!-- BSD Artistic License -->
468
&underX11License;        <!-- X11 License  -->
469
470
</chapter>
471
472
<appendix id="installation">
473
<title>Installation</title>
474
475
<sect1 id="getting-appname">
476
<title>How to obtain &appname;</title>
477
478
<!-- This first entity contains boiler plate for applications that are
479
part of KDE CVS.  You should remove it if you are releasing your
480
application --> 
481
482
&install.intro.documentation;
483
484
</sect1>
485
486
<sect1 id="requirements">
487
<title>Requirements</title>
488
489
<!--
490
List any special requirements for your application here. This should include:
491
.Libraries or other software that is not included in tdesupport,
492
tdelibs, or tdebase.
493
.Hardware requirements like amount of RAM, disk space, graphics card
494
capabilities, screen resolution, special expansion cards, etc.
495
.Operating systems the app will run on. If your app is designed only for a
496
specific OS, (you wrote a graphical LILO configurator for example) put this
497
information here.
498
-->
499
500
<para>
501
In order to successfully use &appname;, you need &kde; 1.1. Foobar.lib is
502
required in order to support the advanced &appname; features. &appname; uses
503
about 5 megs of memory to run, but this may vary depending on your
504
platform and configuration.
505
</para>
506
507
<para>
508
All required libraries as well as &appname; itself can be found
509
on <ulink url="ftp://ftp.appname.org">The &appname; home page</ulink>.
510
</para>
511
512
<!-- For a list of updates, you may refer to the application web site
513
or the ChangeLog file, or ... -->
514
<para>
515
You can find a list of changes at <ulink
516
url="http://apps.kde.org/appname">http://apps.kde.org/appname</ulink>.
517
</para>
518
</sect1>
519
520
<sect1 id="compilation">
521
<title>Compilation and Installation</title>
522
523
<!-- This entity contains the boilerplate text for standard -->
524
<!-- compilation instructions.  If your application requires any -->
525
<!-- special handling, remove it, and replace with your own text. -->
526
527
&install.compile.documentation;
528
529
</sect1>
530
531
<sect1 id="configuration">
532
<title>Configuration</title>
533
534
<para>Don't forget to tell your system to start the <filename>dtd</filename>
535
dicer-toaster daemon first, or &appname; won't work !</para>
536
537
</sect1>
538
539
</appendix>
540
541
&documentation.index;
542
</book>
543
544
<!--
545
Local Variables:
546
mode: sgml
547
sgml-minimize-attributes:nil
548
sgml-general-insert-case:lower
549
sgml-indent-step:0
550
sgml-indent-data:nil
551
End:
552
553
vim:tabstop=2:shiftwidth=2:expandtab 
554
-->
555
(-)pytdeextensions/app_templates/tdeutility/po/README (+1 lines)
Line 0 Link Here
1
.pot and .pot translation files should be placed here.
(-)pytdeextensions/app_templates/tdeutility/setup.py (+31 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# setup - description                                                     #
4
# ------------------------------                                          #
5
# begin     : Fri Jun 27 2005                                             #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : YOUR@EMAIL.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
import tdedistutils
19
20
tdedistutils.setup(name="tdeutility",
21
    version="0.1.0",
22
    author="AUTHOR",
23
    author_email="YOUR@EMAIL.com",
24
    url="http://www.TESTAPP.com/",
25
    min_tde_version = "3.0.0",
26
    min_qt_version = "3.0.0",
27
    license = "GPL",
28
    application_data = ['src/tdeutility.py','src/TDEUtilityDialogUI.ui'],
29
    executable_links = [('tdeutility','tdeutility.py')],
30
    docbooks = [ ('doc/en','en') ],
31
    i18n = ('po',['src']) )
(-)pytdeextensions/app_templates/tdeutility/src/TDEUtilityDialogUI.ui (+33 lines)
Line 0 Link Here
1
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
2
<class>TDEUtilityDialogUI</class>
3
<widget class="QDialog">
4
    <property name="name">
5
        <cstring>TDEUtilityDialogUI</cstring>
6
    </property>
7
    <property name="geometry">
8
        <rect>
9
            <x>0</x>
10
            <y>0</y>
11
            <width>600</width>
12
            <height>480</height>
13
        </rect>
14
    </property>
15
    <property name="caption">
16
        <string>KDE Utility</string>
17
    </property>
18
    <vbox>
19
        <property name="name">
20
            <cstring>unnamed</cstring>
21
        </property>
22
        <widget class="QPushButton">
23
            <property name="name">
24
                <cstring>hellobutton</cstring>
25
            </property>
26
            <property name="text">
27
                <string>Hello, Good bye</string>
28
            </property>
29
        </widget>
30
    </vbox>
31
</widget>
32
<layoutdefaults spacing="6" margin="11"/>
33
</UI>
(-)pytdeextensions/app_templates/tdeutility/src/hi16-app-tdeutility.png (+5 lines)
Line 0 Link Here
1
‰PNG
2
3
IHDRóÿa‘IDAT8…RkL›e}>¾o½Ñ–Ë·réÚ#md70–°Ävnű¦2‡3º¹@ŒJ.™˜,(?ìŸBÆþ$È6h*cq@Û lÚ2PêèÆhÝÚpoé½}ýah³Ä'9ɓ<ç$Ï99Bž7lŠ¢>ÚÒÒX,–Q±X<e±XÏòҞ'njj:,•J=Z­¶5??¿™F£}"~o½ûR–€Ÿ[__ŸÒÏ
4
ÛÚÚäÉdòI’…Á`uõjLLŒOx½ÞÈ>2Öpá+Óô¼#>08T‰D~ïîîNb{:::
5
9άJ¥Úït:¡¿¿>|d³Zg>-á~Ù<ðx‘7¢ÓÝ#‘_Óy9Ñ óÁÅÔ++++‹µßï÷Ãââ"”ØóL0Œ‚é¥Ê›¹ys3¹¾áú¨ýë³übYóæÆº÷x<¥v»]Îûýþç÷@œõŽ©Þ†XÀ.Û
…¦ÄÅò“Â×_+âŠèGª«¥ká015bðÜîë„P(4«Õjöøø8ŒÝÚñùžŒî¼Î‡¼•2Q)Än°Ž¿Å2Y­ð×Ì4$ƒ!ø{þþ¿Ë՝N’K„ÙlÖóùüf@‰Dâɝ›ë¬§±­ÝÞê#yÇOœ¬c
ºàþŸÈ¿<eû’Éß0{Êd0iµÚ"_2›-9kC¡ Çñõx’±±Á¬ßZŽÀ›Èê5€EûÐÈ*¹¼…x¦†††XKKË¿éwuuaE1I’<@’äœÌ,î©Îô:Ð;½W\šþî=d3\B­ïË|Gf¾Q^^Ž#„!°·ôôô`YT.«þÜù¾žÙ;¨æòe$RUíþ¹F^0v£ó]dý©µŸ)õ{%[QVV†#„ Õn6ÅÔÔÖê+NŸ®»6ƒqÛ}ûv;ÁÅ&£òb®¾¦ªR-”HàgÃ5ï´Ã}*Æ-5¥z…%¯ªûÅa›Á¸å1™.\S*•ž/.|ãµ:·?µ¯º–¡HÄ煢¨qnnŽª2“Asý¨ûA·Ú-ñ?^Áñën£Ñ˜ˆÇã>]gÛYfŒ€¸:Kø	 RÇcÐéô܌ŒŒL¥R™¶wۃ^¯Q.›ä¤eÒɉDBÂIÿ‡ÉÉIP(¸F£I[[[ƒÂÝÖ(’:pTIEND®B`‚
(-)pytdeextensions/app_templates/tdeutility/src/hi32-app-tdeutility.png (+11 lines)
Line 0 Link Here
1
‰PNG
2
3
IHDR"":GÂgAMA±üabKGDùC»	pHYs­#½utIMEÑ5.áŸIDATxœµ˜mlSçÇ÷Ú818؜ðÒH!ƒPD×­ë*Øc«`h,Y¥éRiۗM“¶JSÅÔIY«•Ii§ÁVmÀZ:J·h ";$®¹$7‰1×oÉulãë÷·}ðu0YÂ[·óåê^YÇ¿çžsÎsÏf êÏ©Vòúóž=(€aÿþý£Ñ8ù1‰àv»éîî&X(Ôþç bsss®¶¶–Ý»wãr¹˜7o…B·ÛÛíÆçóqèÐ!€Gà.ÊÜ/ˆÐÒҒ¯««ãÀƒA:::èïïÇn·
4
…¨¯_A{{û7	˜àV˜¦
—qê‡`KûÀ°dÉ ±±‘ƒb·_Áh±X,œ<yòE záÂù8Mf€ÅZÃM·2c¸î¦ˆØÖ֖ëééÁh4R(дÔðÄOpéÒ%\®ë¤R)NŸþ¨ˆ*´êõ;;;hs8q8ú8Þú3òéĴẓ"bSSS.
5
±yófV®\I  §§YæØ±cD£1 ÀéÓíE1˜Ïç‡tmvÝ∳³ƒÕ	z{/⒤’ß%º*]•<P˜	DhkkË
²cÇêëë	ƒTTT Ë2••
6
š¦¡iQ.\8ßøt/MæÔˆää‚êçø©\’„ôv;ùtb/ ή[쫜WɄSž•8“===ìÙ³‡êêjjjjðûýX,4-N(bùòeèḮCÄE“9åUüÃ?ÁÁ?ýÙÑW‚ØŒ‰&óÇ¿9õk~¸‡¹KûE@匊Øl6Ö¯_Àùóçq:œ:õ/ï*ðÏÎë~÷l‚@=æU¼,®,®Q‡x	M濽ØÍªÕ¬[·Ž®pàa :“"Bmm-‘HEQnƒèì<ÃÊGŸä;O?Ìó;¿ð{ ¤u ¬…Éfá•æçØxàˆ&s›h2ÿýW]gøÑŠetÉ#ôõõ•þ«
7
¨()Rž¢Bkkk:N£iýýýX,úúúùå^ŽÎWYóôkÀ«%Gçq5PLÉ4À¦_ä_²U
³}Û6V­ZÅWßȖռ~ñ]]ÑT?hÉÛB`jnnNÕ××c4q»Ý$	V«•‰‰±XŒ%5×x¬áó¬^¶Ï-Z˚§_ãw¿Þˆ¼‰g,Áá#®Ñd¾êUtÇ3¸‡$	«ÕÊb«-™DUÃH’„"OnހQÀahnnÎnݺ•íÛ·S]]͜9s0„Ãa|¾‹¥Š÷Ž÷¶ÔYgmsŒœxƒÐµ_n܀)¢JŒ·þ{ÀKw<C·s§ÓË¥àõ*8%	Y–ñzν~õâå„W7Š¢Èõë×Q…
6 ÑhAÑ´(}}öŸa`âð×SÏï䜼	À޼À’ÇžÁðá!^þÖRyí8GªFSýHo¾
ÆY“!ȧ/ê™,˶¤Án·Ÿ«««k
8
…BTUU±fÍz{{¹zõ*…BÑÑÑ£À0ìŽðW,³´ÎOd™]Q‰‰±úk;ÑÆ¯Q5[ ÿÝ6|µë&!òùlK!—=ZÈerÙ£«î¨1F±Âæ
@òʕ+³jkk7¦R)


Ølvb±££#G€À¯gHÂÐBkUe±GÈÄhüú.4åuæ2~æ8Ÿœ¸H>ŸmÑW<¸(–vŸs³,Û0) Û¶m?!™L‰F£x<^nÜpÕD€Ò’7»?0déñÌ3»»ÔT›¨ÌGp*É¿²¤XEKé~[Ó3èDé³g϶Ûl¶ã=4¿©»»›x<IggÇ^]>Ÿî ¢hLxÃ,kú)o¼²ÿ6˜ÕÏìä¦Ç¥"C•1þ¬SI¾EñÒ2í¹ÄPÚCz¬b×®IírlxXþ›á¦ØÈ2kMî|0Œ”ÌpÆv™¹O~›ßúÃ$Œ¡aõSß'rcY¥˜/¦÷9•d;Å:“½HAÿQB—/\¦„ª;D“9çM %3ØG†ðûýH’„íýNJar„LŒµ›v2>ÜKå¬,Օ¹V§’|çN0†)ïù2 bÿȔ JÅêòàn·‚$Ihªµ×†7”~iL
}·<L¾ùê
û=ÁL)Yù‘N,‡xÿÜÇøý*²,—§è>ÀçgßSC?.‡Yû•ï‘
9
Ž—Â4#ÌL %»
â“þËøý~Üne*„‡bv(¾pöð˜j-Á…
7‘‰ø¨š-P%Ƨ…¹ˆ85²,£(þ"ÄÛíä³ér/ÅÚ÷…³ïL…Yµa3©˜‡Œ¦²ÐÂÁÌ"ˆ&s¾abpP¾¥Ä­ƒN	ÂCq?•êLr:˜G¿´‰HpCj‚…s­z6ŁìL#`$î!dYÂårÝ
¢T òú»Ç6šXҟJM[n9®š;ŸyÖE÷|
10
°TW1uÇZ Áá¸/ˆ’Mc0çSÆèê‘'¹€
11
@˜iœ0ËgÍ,oÝw‚(7˜
,ZÿˆYjÚ²š.Û$ïu‡Ÿl€g&0S<Ø.æêߣ+­÷ ¦…Xn­à½îð^Š=ȌßiÀJnÉÅ~qσõ40uçłéF¶î6éM½v¸¯«†i`J3QìÀ“‹zÐk‰µò…}–Eýÿì?V*³e0Ž'IEND®B`‚
(-)pytdeextensions/app_templates/tdeutility/src/tdeutility.desktop (+35 lines)
Line 0 Link Here
1
[Desktop Entry]
2
Encoding=UTF-8
3
Name=$APPNAME$
4
Exec=$APPNAMELC$ %i %m -caption "%c"
5
Icon=$APPNAMELC$
6
Type=Application
7
DocPath=$APPNAMELC$/$APPNAMELC$.html
8
Comment=A TDE KPart Application
9
Comment[ca]=Una aplicació KPart per a TDE
10
Comment[cy]=Cymhwysiad KPart TDE
11
Comment[da]=Et TDE KPart program
12
Comment[de]=Eine TDE-Komponenten-Anwendung
13
Comment[el]=Μια εφαρμογή KPart του TDE
14
Comment[es]=Una aplicación KPart de TDE
15
Comment[et]=TDE KPart rakendus
16
Comment[fr]=Une application KPart pour TDE.
17
Comment[hi]=एक केडीई के-पार्ट अनुप्रयोग
18
Comment[hu]=KPart-alapú TDE-alkalmazás
19
Comment[is]=TDE KPart forrit
20
Comment[it]=Applicazione KPart di TDE
21
Comment[ja]=TDE KPart アプリケーション
22
Comment[nb]=Et TDE KPart-program
23
Comment[nl]=Een TDE KPart-toepassing
24
Comment[pl]=Aplikacja TDE
25
Comment[pt]=Uma aplicação KPart do TDE
26
Comment[pt_BR]=Um Aplicativo KPart do TDE
27
Comment[ru]=Приложение KPart для TDE
28
Comment[sl]=Program KPart za TDE
29
Comment[sr]=TDE KPart програм
30
Comment[sr@Latn]=TDE KPart program
31
Comment[sv]=Ett TDE Kpart-program
32
Comment[ta]=கெடி கெபார்ட்  பயன்பாடு 
33
Comment[tg]=Ба кор андохтани KPart барои TDE
34
Comment[zh_CN]=一个 TDE KPart 应用程序
35
Terminal=0
(-)pytdeextensions/app_templates/tdeutility/src/tdeutility.lsm (+14 lines)
Line 0 Link Here
1
Begin4
2
Title:          $APPNAME$
3
Version:        R14.0.0
4
Entered-date:   2010-05-10
5
Description:    .... for the Trinity Desktop Environment
6
Keywords:       TDE Qt
7
Author:         $AUTHOR$ <$EMAIL$>
8
Maintained-by:  The Trinity Desktop Environment (TDE) http://www.trinitydesktop.org/
9
Primary-site:   http://git.trinitydesktop.org/cgit/
10
Alternate-site:
11
Original-site:
12
Platforms:      Linux and other Unices running TDE
13
Copying-policy: GPL
14
End
(-)pytdeextensions/app_templates/tdeutility/src/tdeutility.py (+51 lines)
Line 0 Link Here
1
#!/usr/bin/python
2
###########################################################################
3
# tdeutility - description                                                #
4
# ------------------------------                                          #
5
# begin     : Mon May 2 2005                                              #
6
# copyright : (C) 2005 by AUTHOR                                          #
7
# email     : your@email.com                                              #
8
#                                                                         #
9
###########################################################################
10
#                                                                         #
11
#   This program is free software; you can redistribute it and/or modify  #
12
#   it under the terms of the GNU General Public License as published by  #
13
#   the Free Software Foundation; either version 2 of the License, or     #
14
#   (at your option) any later version.                                   #
15
#                                                                         #
16
###########################################################################
17
18
import sys
19
from qt import *
20
from tdecore import *
21
from tdeui import *
22
import tdedesigner
23
from TDEUtilityDialogUI import *
24
25
description = "A TDE Utility"
26
version = "0.1";
27
28
class TDEUtilityDialog(TDEUtilityDialogUI):
29
    def __init__(self):
30
        TDEUtilityDialogUI.__init__(self,None,"TestApp")
31
    # Add other methods, slots and signals here.
32
33
34
options = [] # No command line options.
35
36
def main():
37
    global kapp,version,description,options
38
39
    aboutdata = TDEAboutData("tdeutility", "TdeUtility", version, description, \
40
        TDEAboutData.License_GPL, "(C) 2005 AUTHOR", None, None, "your@email.com")
41
    aboutdata.addAuthor("AUTHOR", None, "your@email.com")
42
    TDECmdLineArgs.init(sys.argv,aboutdata)
43
    #TDECmdLineArgs.addCmdLineOptions(options)
44
    kapp = TDEApplication()
45
    
46
    dialog = TDEUtilityDialog()
47
    kapp.setMainWidget(dialog)
48
    dialog.show()
49
50
    return kapp.exec_loop()
51
main()
(-)pytdeextensions/doc/en/index.docbook (-3 / +3 lines)
Lines 321-327 Link Here
321
from kdecode import *
321
from kdecode import *
322
322
323
        ...
323
        ...
324
        mylabel = QLabel(i18n("Select new directory:"))
324
        mylabel = TQLabel(i18n("Select new directory:"))
325
        ...
325
        ...
326
</programlisting>
326
</programlisting>
327
The <function>i18n()</function> is part of the <symbol>kdecode</symbol> package
327
The <function>i18n()</function> is part of the <symbol>kdecode</symbol> package
Lines 553-559 Link Here
553
<sect1 id="app-template-simple">
553
<sect1 id="app-template-simple">
554
<title>Simple TDE utility template</title>
554
<title>Simple TDE utility template</title>
555
<para>
555
<para>
556
The <filename>kdeutility</filename> application template is a simple utility
556
The <filename>tdeutility</filename> application template is a simple utility
557
that uses an interface designed in Qt-Designer. It doesn't have a menubar
557
that uses an interface designed in Qt-Designer. It doesn't have a menubar
558
or toolbar.
558
or toolbar.
559
</para>
559
</para>
Lines 562-568 Link Here
562
<sect1 id="app-template-application">
562
<sect1 id="app-template-application">
563
<title>TDE application template</title>
563
<title>TDE application template</title>
564
<para>
564
<para>
565
The <filename>kdeapp</filename> application template is an application with
565
The <filename>tdeapp</filename> application template is an application with
566
menubar, toolbar and separated document and view classes. The menubar and toolbars
566
menubar, toolbar and separated document and view classes. The menubar and toolbars
567
are defined using XML.
567
are defined using XML.
568
</para>
568
</para>
(-)pytdeextensions/setup.py (-13 / +13 lines)
Lines 31-37 Link Here
31
        author="Simon Edwards",
31
        author="Simon Edwards",
32
        author_email="simon@simonzone.com",
32
        author_email="simon@simonzone.com",
33
        url="http://www.simonzone.com/software/pykdeextensions/",
33
        url="http://www.simonzone.com/software/pykdeextensions/",
34
        min_kde_version = "3.0.0",
34
        min_tde_version = "3.0.0",
35
        min_qt_version = "3.0.0",
35
        min_qt_version = "3.0.0",
36
        license = "LGPL",
36
        license = "LGPL",
37
        package_dir = {'': 'src'},
37
        package_dir = {'': 'src'},
Lines 39-82 Link Here
39
        application_data = ["app_templates","AUTHORS","ChangeLog","COPYING","INSTALL","NEWS"],
39
        application_data = ["app_templates","AUTHORS","ChangeLog","COPYING","INSTALL","NEWS"],
40
        docbooks = [ ('doc/en','en') ],
40
        docbooks = [ ('doc/en','en') ],
41
        cmdclass = {
41
        cmdclass = {
42
            'install' : InstallPyKDEExtensions,
42
            'install' : InstallPyTDEExtensions,
43
            'build_libpythonize' : BuildLibpythonize,
43
            'build_libpythonize' : BuildLibpythonize,
44
            'install_libpythonize' : InstallLibpythonize
44
            'install_libpythonize' : InstallLibpythonize
45
        }
45
        }
46
        )
46
        )
47
47
48
###########################################################################
48
###########################################################################
49
class InstallPyKDEExtensions(tdedistutils.InstallKDE):
49
class InstallPyTDEExtensions(tdedistutils.InstallTDE):
50
    sub_commands = tdedistutils.InstallKDE.sub_commands[:]
50
    sub_commands = tdedistutils.InstallTDE.sub_commands[:]
51
    sub_commands.append( ('install_libpythonize',None) )
51
    sub_commands.append( ('install_libpythonize',None) )
52
    
52
    
53
    user_options = tdedistutils.InstallKDE.user_options
53
    user_options = tdedistutils.InstallTDE.user_options
54
    user_options.append( ('install-clib=', None, "installation directory for shared libraries") )
54
    user_options.append( ('install-clib=', None, "installation directory for shared libraries") )
55
    user_options.append( ('install-cheaders=', None, "installation directory for C header files") )
55
    user_options.append( ('install-cheaders=', None, "installation directory for C header files") )
56
            
56
            
57
    def initialize_options(self):
57
    def initialize_options(self):
58
        self.install_clib = None
58
        self.install_clib = None
59
        self.install_cheaders = None
59
        self.install_cheaders = None
60
        tdedistutils.InstallKDE.initialize_options(self)
60
        tdedistutils.InstallTDE.initialize_options(self)
61
61
62
    def finalize_options(self):
62
    def finalize_options(self):
63
        if self.install_clib is None:
63
        if self.install_clib is None:
64
            if self.prefix is not None:
64
            if self.prefix is not None:
65
                self.install_clib = os.path.join(self.prefix,'lib')
65
                self.install_clib = os.path.join(self.prefix,'lib')
66
            else:
66
            else:
67
                self.announce("Detecting KDE library directory...")
67
                self.announce("Detecting TDE library directory...")
68
                self.install_clib = tdedistutils.ask_kde_config('--install lib --expandvars').strip()
68
                self.install_clib = tdedistutils.ask_tde_config('--install lib --expandvars').strip()
69
                self.announce("  ...KDE library directory is %s" % self.install_clib)
69
                self.announce("  ...TDE library directory is %s" % self.install_clib)
70
                
70
                
71
        if self.install_cheaders is None:
71
        if self.install_cheaders is None:
72
            if self.prefix is not None:
72
            if self.prefix is not None:
73
                self.install_cheaders = os.path.join(self.prefix,'include')
73
                self.install_cheaders = os.path.join(self.prefix,'include')
74
            else:
74
            else:
75
                self.announce("Detecting KDE headers directory...")
75
                self.announce("Detecting TDE headers directory...")
76
                self.install_cheaders = os.path.normpath(os.path.join(tdedistutils.ask_kde_config('--install lib --expandvars').strip(),"../include"))
76
                self.install_cheaders = os.path.normpath(os.path.join(tdedistutils.ask_tde_config('--install lib --expandvars').strip(),"../include"))
77
                self.announce("  ...KDE library headers is %s" % self.install_cheaders)
77
                self.announce("  ...TDE library headers is %s" % self.install_cheaders)
78
78
79
        tdedistutils.InstallKDE.finalize_options(self)
79
        tdedistutils.InstallTDE.finalize_options(self)
80
80
81
        if self.root is not None:
81
        if self.root is not None:
82
            self.change_roots('clib','cheaders')
82
            self.change_roots('clib','cheaders')
(-)pytdeextensions/src/qtuicompiler.py (-10 / +10 lines)
Lines 35-41 Link Here
35
        pyuic_exe = find_executable('pyuic')
35
        pyuic_exe = find_executable('pyuic')
36
36
37
############################################################################
37
############################################################################
38
def CompileUI(ui_file_name, py_file_name=None, kde=False):
38
def CompileUI(ui_file_name, py_file_name=None, tde=False):
39
    pyuic_exe = find_executable('pyuic',pyqt_configuration.default_bin_dir)
39
    pyuic_exe = find_executable('pyuic',pyqt_configuration.default_bin_dir)
40
    if pyuic_exe is None:
40
    if pyuic_exe is None:
41
        # Search on the $Path.
41
        # Search on the $Path.
Lines 48-54 Link Here
48
    
48
    
49
    tmp_file_name = py_file_name + '.bak'
49
    tmp_file_name = py_file_name + '.bak'
50
    cmd = [pyuic_exe]
50
    cmd = [pyuic_exe]
51
    if kde:
51
    if tde:
52
        cmd.append('-tr')
52
        cmd.append('-tr')
53
        cmd.append('i18n')
53
        cmd.append('i18n')
54
    cmd.append('-o')
54
    cmd.append('-o')
Lines 59-68 Link Here
59
    input = open(tmp_file_name, 'r')
59
    input = open(tmp_file_name, 'r')
60
    output = open(py_file_name, 'w')
60
    output = open(py_file_name, 'w')
61
    for line in input.readlines():
61
    for line in input.readlines():
62
        if kde and string.strip(line) == 'from qt import *':
62
        if tde and string.strip(line) == 'from qt import *':
63
            output.write(line)
63
            output.write(line)
64
            output.write('from tdecore import *\nfrom tdeui import *\n\n')
64
            output.write('from tdecore import *\nfrom tdeui import *\n\n')
65
        elif kde and string.find(line, " = KDatePicker(") != -1:
65
        elif tde and string.find(line, " = KDatePicker(") != -1:
66
            o = string.find(line, ",")
66
            o = string.find(line, ",")
67
            output.write(line[:o] + ",QDate.currentDate()" + line[o:])
67
            output.write(line[:o] + ",QDate.currentDate()" + line[o:])
68
        else:
68
        else:
Lines 74-91 Link Here
74
    os.remove(tmp_file_name)
74
    os.remove(tmp_file_name)
75
75
76
############################################################################
76
############################################################################
77
def DynamicImport(importargs,kde=False):
77
def DynamicImport(importargs,tde=False):
78
    file_name = importargs[0].replace('.',os.sep)
78
    file_name = importargs[0].replace('.',os.sep)
79
    file_name_ui = file_name + '.ui'
79
    file_name_ui = file_name + '.ui'
80
    if os.path.exists(file_name_ui):
80
    if os.path.exists(file_name_ui):
81
        try:
81
        try:
82
            UpdateUI(file_name_ui,kde)
82
            UpdateUI(file_name_ui,tde)
83
        except:
83
        except:
84
            traceback.print_exc()
84
            traceback.print_exc()
85
            raise ImportError, "Unable to compile Qt designer file %s." % args[0]
85
            raise ImportError, "Unable to compile TQt designer file %s." % args[0]
86
86
87
############################################################################
87
############################################################################
88
def UpdateUI(ui_file,kde=False):
88
def UpdateUI(ui_file,tde=False):
89
    py_file = ui_file[:-3] + '.py'
89
    py_file = ui_file[:-3] + '.py'
90
    remake = False
90
    remake = False
91
    if os.path.exists(py_file):
91
    if os.path.exists(py_file):
Lines 94-104 Link Here
94
        remake = True
94
        remake = True
95
95
96
    if remake:
96
    if remake:
97
        CompileUI(ui_file, py_file, kde)
97
        CompileUI(ui_file, py_file, tde)
98
98
99
############################################################################
99
############################################################################
100
def main():
100
def main():
101
    # FIXME parse args and add --kde parameter.
101
    # FIXME parse args and add --tde parameter.
102
    if len(sys.argv)!=3:
102
    if len(sys.argv)!=3:
103
        print """\nUsage:
103
        print """\nUsage:
104
qtuicompiler filename.ui filename.py\n\n
104
qtuicompiler filename.ui filename.py\n\n
(-)pytdeextensions/src/tdedistutils.py (-157 / +157 lines)
Lines 62-68 Link Here
62
62
63
    arg_dict.setdefault('data_files',[])
63
    arg_dict.setdefault('data_files',[])
64
64
65
    kdecmdclass = {'install' : InstallKDE,
65
    tdecmdclass = {'install' : InstallTDE,
66
        'install_executable_links' : InstallExecutableLinks,
66
        'install_executable_links' : InstallExecutableLinks,
67
        'install_application_data' : InstallApplicationDataAndLinks,
67
        'install_application_data' : InstallApplicationDataAndLinks,
68
        'build_messages' : BuildI18NMessages,
68
        'build_messages' : BuildI18NMessages,
Lines 71-77 Link Here
71
        'checkpyqt' : CheckPyQt,
71
        'checkpyqt' : CheckPyQt,
72
        'checkpytde' : CheckPyTDE,
72
        'checkpytde' : CheckPyTDE,
73
        'uninstall' : Uninstall,
73
        'uninstall' : Uninstall,
74
        'build' : BuildKDE,
74
        'build' : BuildTDE,
75
        'build_kcm' : BuildKControlModule,
75
        'build_kcm' : BuildKControlModule,
76
        'install_kcm' : InstallKControlModule,
76
        'install_kcm' : InstallKControlModule,
77
        'build_html' : BuildDocbookHTML,
77
        'build_html' : BuildDocbookHTML,
Lines 80-96 Link Here
80
        'build_tdeioslave' : BuildTdeioslave,
80
        'build_tdeioslave' : BuildTdeioslave,
81
        'install_tdeioslave' : InstallTdeioslave}
81
        'install_tdeioslave' : InstallTdeioslave}
82
82
83
    for key in kdecmdclass.iterkeys():
83
    for key in tdecmdclass.iterkeys():
84
        cmdclass.setdefault(key,kdecmdclass[key])
84
        cmdclass.setdefault(key,tdecmdclass[key])
85
85
86
    arg_dict.setdefault('distclass',KDEDistribution)
86
    arg_dict.setdefault('distclass',TDEDistribution)
87
87
88
    apply(distutils.core.setup,[],arg_dict)
88
    apply(distutils.core.setup,[],arg_dict)
89
89
90
###########################################################################
90
###########################################################################
91
class KDEDistribution(Distribution):
91
class TDEDistribution(Distribution):
92
    def __init__(self,attrs=None):
92
    def __init__(self,attrs=None):
93
        self.min_kde_version = None
93
        self.min_tde_version = None
94
        self.min_qt_version = None
94
        self.min_qt_version = None
95
        self.kcontrol_modules = None
95
        self.kcontrol_modules = None
96
        self.tdeioslaves = None
96
        self.tdeioslaves = None
Lines 128-134 Link Here
128
128
129
###########################################################################
129
###########################################################################
130
# Our slightly extended build command. This also does kcontrol modules.
130
# Our slightly extended build command. This also does kcontrol modules.
131
class BuildKDE(build):
131
class BuildTDE(build):
132
132
133
    user_options = build.user_options[:]
133
    user_options = build.user_options[:]
134
    user_options.append( ('msgfmt-exe=',None,'Path to the msgfmt executable') )
134
    user_options.append( ('msgfmt-exe=',None,'Path to the msgfmt executable') )
Lines 158-164 Link Here
158
        if self.msgfmt_exe is None:
158
        if self.msgfmt_exe is None:
159
            # Find msgfmt
159
            # Find msgfmt
160
            canidatepaths = []
160
            canidatepaths = []
161
            canidatepaths.append( ask_kde_config('--install exe --expandvars').strip() )
161
            canidatepaths.append( ask_tde_config('--install exe --expandvars').strip() )
162
            self.msgfmt_exe = FindExeOnPath('msgfmt',canidatepaths)
162
            self.msgfmt_exe = FindExeOnPath('msgfmt',canidatepaths)
163
            if self.msgfmt_exe is None:
163
            if self.msgfmt_exe is None:
164
                raise SystemExit, "Unable to find 'msgfmt', needed to build i18n messages."
164
                raise SystemExit, "Unable to find 'msgfmt', needed to build i18n messages."
Lines 166-172 Link Here
166
        if self.meinproc_exe is None:
166
        if self.meinproc_exe is None:
167
            # Find meinproc
167
            # Find meinproc
168
            canidatepaths = []
168
            canidatepaths = []
169
            canidatepaths.append( ask_kde_config('--install exe --expandvars').strip() )
169
            canidatepaths.append( ask_tde_config('--install exe --expandvars').strip() )
170
            self.meinproc_exe = FindExeOnPath('meinproc',canidatepaths)
170
            self.meinproc_exe = FindExeOnPath('meinproc',canidatepaths)
171
            if self.meinproc_exe is None:
171
            if self.meinproc_exe is None:
172
                raise SystemExit, "Unable to find 'meinproc', needed to generate Docbook HTML documentation."
172
                raise SystemExit, "Unable to find 'meinproc', needed to generate Docbook HTML documentation."
Lines 178-186 Link Here
178
    return  len(self.distribution.executable_links)!=0
178
    return  len(self.distribution.executable_links)!=0
179
179
180
###########################################################################
180
###########################################################################
181
class InstallKDE(install):
181
class InstallTDE(install):
182
    user_options = install.user_options[:]
182
    user_options = install.user_options[:]
183
    user_options.append( ('kde-prefix=',None,"TDE installation prefix") )
183
    user_options.append( ('tde-prefix=',None,"TDE installation prefix") )
184
    user_options.append( ('install-messages=',None,"installation directory for i18n message files") )
184
    user_options.append( ('install-messages=',None,"installation directory for i18n message files") )
185
    user_options.append( ('install-html=',None,"installation directory for Docbook HTML files") )
185
    user_options.append( ('install-html=',None,"installation directory for Docbook HTML files") )
186
    user_options.append( ('install-cmd=',None,"Command to use to install the files") )
186
    user_options.append( ('install-cmd=',None,"Command to use to install the files") )
Lines 200-206 Link Here
200
    sub_commands.append( ('install_application_data',has_application_data) )
200
    sub_commands.append( ('install_application_data',has_application_data) )
201
201
202
    def initialize_options(self):
202
    def initialize_options(self):
203
        self.kde_prefix = None
203
        self.tde_prefix = None
204
        self.install_messages = None
204
        self.install_messages = None
205
        self.install_html = None
205
        self.install_html = None
206
        self.install_cmd = None
206
        self.install_cmd = None
Lines 212-258 Link Here
212
        install.initialize_options(self)
212
        install.initialize_options(self)
213
213
214
    def finalize_options(self):
214
    def finalize_options(self):
215
        # If no install prefix was provided, then we try to detect the KDE install prefix.
215
        # If no install prefix was provided, then we try to detect the TDE install prefix.
216
        self.user_supplied_kde_prefix = True
216
        self.user_supplied_tde_prefix = True
217
217
218
        if self.install_scripts is None:
218
        if self.install_scripts is None:
219
            if self.kde_prefix is not None:
219
            if self.tde_prefix is not None:
220
                self.install_scripts = os.path.join(self.kde_prefix,'bin')
220
                self.install_scripts = os.path.join(self.tde_prefix,'bin')
221
            else:
221
            else:
222
                self.announce("Detecting TDE 'bin' directory...")
222
                self.announce("Detecting TDE 'bin' directory...")
223
                self.install_scripts = ask_kde_config('--install exe --expandvars').strip()
223
                self.install_scripts = ask_tde_config('--install exe --expandvars').strip()
224
                self.announce("   ...TDE 'bin' directory is %s" % self.install_scripts)
224
                self.announce("   ...TDE 'bin' directory is %s" % self.install_scripts)
225
225
226
        if self.install_application_data is None:
226
        if self.install_application_data is None:
227
            if self.kde_prefix is not None:
227
            if self.tde_prefix is not None:
228
                self.install_application_data = os.path.join(self.kde_prefix,'share/apps',self.distribution.metadata.name)
228
                self.install_application_data = os.path.join(self.tde_prefix,'share/apps',self.distribution.metadata.name)
229
            else:
229
            else:
230
                self.announce("Detecting TDE application directory...")
230
                self.announce("Detecting TDE application directory...")
231
                kdeappdir = ask_kde_config('--install data --expandvars').strip()
231
                tdeappdir = ask_tde_config('--install data --expandvars').strip()
232
                self.announce("  ...TDE application directory is %s" % self.install_application_data)
232
                self.announce("  ...TDE application directory is %s" % self.install_application_data)
233
                self.install_application_data = os.path.join(kdeappdir,self.distribution.metadata.name)
233
                self.install_application_data = os.path.join(tdeappdir,self.distribution.metadata.name)
234
234
235
        if self.install_messages is None:
235
        if self.install_messages is None:
236
            if self.kde_prefix is not None:
236
            if self.tde_prefix is not None:
237
                self.install_messages = os.path.join(self.kde_prefix,'share/locale')
237
                self.install_messages = os.path.join(self.tde_prefix,'share/locale')
238
            else:
238
            else:
239
                self.announce("Detecting TDE messages directory...")
239
                self.announce("Detecting TDE messages directory...")
240
                self.install_messages = ask_kde_config('--install locale --expandvars').strip()
240
                self.install_messages = ask_tde_config('--install locale --expandvars').strip()
241
                self.announce("  ...TDE messages directory is %s" % self.install_messages)
241
                self.announce("  ...TDE messages directory is %s" % self.install_messages)
242
242
243
        if self.install_html is None:
243
        if self.install_html is None:
244
            if self.kde_prefix is not None:
244
            if self.tde_prefix is not None:
245
                self.install_html = os.path.join(self.kde_prefix,'share/doc/tde/HTML')
245
                self.install_html = os.path.join(self.tde_prefix,'share/doc/tde/HTML')
246
            else:
246
            else:
247
                self.announce("Detecting TDE HTML directory...")
247
                self.announce("Detecting TDE HTML directory...")
248
                self.install_html = ask_kde_config('--install html --expandvars').strip()
248
                self.install_html = ask_tde_config('--install html --expandvars').strip()
249
                self.announce("  ...TDE HTML directory is %s" % self.install_html)
249
                self.announce("  ...TDE HTML directory is %s" % self.install_html)
250
250
251
        if self.kde_prefix is None:
251
        if self.tde_prefix is None:
252
            self.announce("Detecting TDE install prefix...")
252
            self.announce("Detecting TDE install prefix...")
253
            self.kde_prefix = ask_kde_config('--prefix').strip()
253
            self.tde_prefix = ask_tde_config('--prefix').strip()
254
            self.announce("  ...TDE install prefix is %s" % self.kde_prefix)
254
            self.announce("  ...TDE install prefix is %s" % self.tde_prefix)
255
            self.user_supplied_kde_prefix = False
255
            self.user_supplied_tde_prefix = False
256
256
257
        if self.install_cmd is None:
257
        if self.install_cmd is None:
258
            self.announce("Detecting 'install' command...")
258
            self.announce("Detecting 'install' command...")
Lines 264-285 Link Here
264
264
265
        if self.install_xdg_apps is None:
265
        if self.install_xdg_apps is None:
266
            self.announce("Detecting XDG apps directory...")
266
            self.announce("Detecting XDG apps directory...")
267
            self.install_xdg_apps = ask_kde_config('--install xdgdata-apps --expandvars').strip()
267
            self.install_xdg_apps = ask_tde_config('--install xdgdata-apps --expandvars').strip()
268
            self.announce("  ...XDG apps directory is %s" % self.install_xdg_apps)
268
            self.announce("  ...XDG apps directory is %s" % self.install_xdg_apps)
269
269
270
        if self.install_kcm is None:
270
        if self.install_kcm is None:
271
            self.announce("Detecting kcm library  directory...")
271
            self.announce("Detecting kcm library  directory...")
272
            self.install_kcm = os.path.join(ask_kde_config('--install lib --expandvars').strip(),'trinity')
272
            self.install_kcm = os.path.join(ask_tde_config('--install lib --expandvars').strip(),'trinity')
273
            self.announce("  ...kcm library directory is %s" % self.install_kcm)
273
            self.announce("  ...kcm library directory is %s" % self.install_kcm)
274
274
275
        if self.install_tdeioslave is None:
275
        if self.install_tdeioslave is None:
276
            self.announce("Detecting tdeioslave library  directory...")
276
            self.announce("Detecting tdeioslave library  directory...")
277
            self.install_tdeioslave = os.path.join(ask_kde_config('--install lib --expandvars').strip(),'trinity')
277
            self.install_tdeioslave = os.path.join(ask_tde_config('--install lib --expandvars').strip(),'trinity')
278
            self.announce("  ...tdeioslave library directory is %s" % self.install_tdeioslave)
278
            self.announce("  ...tdeioslave library directory is %s" % self.install_tdeioslave)
279
279
280
        if self.install_protocol is None:
280
        if self.install_protocol is None:
281
            self.announce("Detecting tdeioslave protocol directory...")
281
            self.announce("Detecting tdeioslave protocol directory...")
282
            self.install_protocol = ask_kde_config('--install services --expandvars').strip()
282
            self.install_protocol = ask_tde_config('--install services --expandvars').strip()
283
            self.announce("  ...tdeioslave protocol directory is %s" % self.install_protocol)
283
            self.announce("  ...tdeioslave protocol directory is %s" % self.install_protocol)
284
284
285
        install.finalize_options(self)
285
        install.finalize_options(self)
Lines 510-520 Link Here
510
                    ('build-dir=','b', "build directory (where to install from)"),
510
                    ('build-dir=','b', "build directory (where to install from)"),
511
                    ('python-dir=',None,'Directory containing the Python installation'),
511
                    ('python-dir=',None,'Directory containing the Python installation'),
512
                    ('python-inc-dir=',None,'Directory containing C Header files for Python'),
512
                    ('python-inc-dir=',None,'Directory containing C Header files for Python'),
513
                    ('kde-inc-dir=',None,'Directory containing C++ header files for KDE'),
513
                    ('tde-inc-dir=',None,'Directory containing C++ header files for TDE'),
514
                    ('kde-lib-dir=',None,'Directory containing library files for KDE'),
514
                    ('tde-lib-dir=',None,'Directory containing library files for TDE'),
515
                    ('kde-kcm-lib-dir=',None,'Directory for KDE kcm library files'),
515
                    ('tde-kcm-lib-dir=',None,'Directory for TDE kcm library files'),
516
                    ('qt-inc-dir=',None,'Directory containing C++ header files for Qt'),
516
                    ('qt-inc-dir=',None,'Directory containing C++ header files for TQt'),
517
                    ('qt-lib-dir=',None,'Directory containing library files for Qt'),
517
                    ('qt-lib-dir=',None,'Directory containing library files for TQt'),
518
                    ('sip-dir=',None,'Directory containing the sip library files'),
518
                    ('sip-dir=',None,'Directory containing the sip library files'),
519
                    ('clib=',None,'gcc library and path'),
519
                    ('clib=',None,'gcc library and path'),
520
                    ('pyqt-dir=',None,'PyQt module directory'),
520
                    ('pyqt-dir=',None,'PyQt module directory'),
Lines 526-534 Link Here
526
        self.build_dir = None
526
        self.build_dir = None
527
        self.python_inc_dir = None
527
        self.python_inc_dir = None
528
        self.python_dir = None
528
        self.python_dir = None
529
        self.kde_inc_dir = None
529
        self.tde_inc_dir = None
530
        self.kde_lib_dir = None
530
        self.tde_lib_dir = None
531
        self.kde_kcm_lib_dir = None
531
        self.tde_kcm_lib_dir = None
532
        self.qt_inc_dir = None
532
        self.qt_inc_dir = None
533
        self.qt_lib_dir = None
533
        self.qt_lib_dir = None
534
        self.sip_dir = None
534
        self.sip_dir = None
Lines 542-551 Link Here
542
            self.set_undefined_options('install', ('build_base', 'build_dir'),('install_application_data','data_dir'))
542
            self.set_undefined_options('install', ('build_base', 'build_dir'),('install_application_data','data_dir'))
543
543
544
            install = self.get_finalized_command('install')
544
            install = self.get_finalized_command('install')
545
            self.install_prefix = ask_kde_config('--prefix').strip()
545
            self.install_prefix = ask_tde_config('--prefix').strip()
546
546
547
            # KDE inc dir: find it!
547
            # TDE inc dir: find it!
548
            if self.kde_inc_dir is None:
548
            if self.tde_inc_dir is None:
549
                canidatepaths = []
549
                canidatepaths = []
550
                tdedir = os.getenv("TDEDIR")
550
                tdedir = os.getenv("TDEDIR")
551
                if tdedir!=None:
551
                if tdedir!=None:
Lines 553-578 Link Here
553
                canidatepaths.append(os.path.join(install.prefix,"include"))
553
                canidatepaths.append(os.path.join(install.prefix,"include"))
554
                canidatepaths.append(os.path.join(self.install_prefix,'include'))
554
                canidatepaths.append(os.path.join(self.install_prefix,'include'))
555
                canidatepaths.append(os.path.join(self.install_prefix,'include','tde'))
555
                canidatepaths.append(os.path.join(self.install_prefix,'include','tde'))
556
                self.kde_inc_dir = FindFileInPaths('tdeapplication.h',canidatepaths)
556
                self.tde_inc_dir = FindFileInPaths('tdeapplication.h',canidatepaths)
557
            if self.kde_inc_dir is None:
557
            if self.tde_inc_dir is None:
558
                raise SystemExit, "Failed to find the KDE header file directory."
558
                raise SystemExit, "Failed to find the TDE header file directory."
559
            if FindFileInPaths('tdeapplication.h',[self.kde_inc_dir]) is None:
559
            if FindFileInPaths('tdeapplication.h',[self.tde_inc_dir]) is None:
560
                raise SystemExit, "Failed to find KDE header files in: %s" % self.kde_inc_dir
560
                raise SystemExit, "Failed to find TDE header files in: %s" % self.tde_inc_dir
561
            self.announce("Using %s for KDE header files" % self.kde_inc_dir)
561
            self.announce("Using %s for TDE header files" % self.tde_inc_dir)
562
562
563
            # KDE lib dir
563
            # TDE lib dir
564
            if self.kde_lib_dir is None:
564
            if self.tde_lib_dir is None:
565
                self.kde_lib_dir = os.path.join(self.install_prefix,"lib")
565
                self.tde_lib_dir = os.path.join(self.install_prefix,"lib")
566
            self.announce("Using %s for KDE library files" % self.kde_lib_dir)
566
            self.announce("Using %s for TDE library files" % self.tde_lib_dir)
567
567
568
            # KDE KCM lib dir
568
            # TDE KCM lib dir
569
            if self.kde_kcm_lib_dir is None:
569
            if self.tde_kcm_lib_dir is None:
570
                self.kde_kcm_lib_dir = os.path.join(self.kde_lib_dir,"trinity")
570
                self.tde_kcm_lib_dir = os.path.join(self.tde_lib_dir,"trinity")
571
            if FindFileInPaths('*kcm*.so',[self.kde_kcm_lib_dir]) is None:
571
            if FindFileInPaths('*kcm*.so',[self.tde_kcm_lib_dir]) is None:
572
                raise SystemExit, "Failed to find KDE KCM files in: %s" % self.kde_kcm_lib_dir
572
                raise SystemExit, "Failed to find TDE KCM files in: %s" % self.tde_kcm_lib_dir
573
            self.announce("Using %s for KDE KCM library files" % self.kde_kcm_lib_dir)
573
            self.announce("Using %s for TDE KCM library files" % self.tde_kcm_lib_dir)
574
574
575
            # Qt inc dir
575
            # TQt inc dir
576
            if self.qt_inc_dir is None:
576
            if self.qt_inc_dir is None:
577
                canidatepaths = []
577
                canidatepaths = []
578
                qtinc = os.getenv("QTINC")
578
                qtinc = os.getenv("QTINC")
Lines 594-606 Link Here
594
            if self.qt_inc_dir is None:
594
            if self.qt_inc_dir is None:
595
                self.qt_inc_dir = FindFileInPaths('qstring.h',canidatepaths)
595
                self.qt_inc_dir = FindFileInPaths('qstring.h',canidatepaths)
596
            if self.qt_inc_dir is None:
596
            if self.qt_inc_dir is None:
597
                raise SystemExit,"Failed to find the Qt header file directory"
597
                raise SystemExit,"Failed to find the TQt header file directory"
598
            if FindFileInPaths('ntqstring.h',[self.qt_inc_dir]) is None:
598
            if FindFileInPaths('ntqstring.h',[self.qt_inc_dir]) is None:
599
                if FindFileInPaths('qstring.h',[self.qt_inc_dir]) is None:
599
                if FindFileInPaths('qstring.h',[self.qt_inc_dir]) is None:
600
                    raise SystemExit, "Failed to find Qt header files in: %s" % self.qt_inc_dir
600
                    raise SystemExit, "Failed to find TQt header files in: %s" % self.qt_inc_dir
601
            self.announce("Using %s for Qt header files" % self.qt_inc_dir)
601
            self.announce("Using %s for TQt header files" % self.qt_inc_dir)
602
602
603
            # Qt lib dir
603
            # TQt lib dir
604
            if self.qt_lib_dir is None:
604
            if self.qt_lib_dir is None:
605
                canidatepaths = []
605
                canidatepaths = []
606
                qtlib = os.getenv("TQTLIB")
606
                qtlib = os.getenv("TQTLIB")
Lines 634-641 Link Here
634
                canidatepaths.append("/opt/qt3/lib/"+get_libdir_name())
634
                canidatepaths.append("/opt/qt3/lib/"+get_libdir_name())
635
                self.qt_lib_dir = FindFileInPaths('libqt*',canidatepaths)
635
                self.qt_lib_dir = FindFileInPaths('libqt*',canidatepaths)
636
            if self.qt_lib_dir is None:
636
            if self.qt_lib_dir is None:
637
                raise SystemExit, "Failed to find Qt library files"
637
                raise SystemExit, "Failed to find TQt library files"
638
            self.announce("Using %s for Qt library files" % self.qt_lib_dir)
638
            self.announce("Using %s for TQt library files" % self.qt_lib_dir)
639
639
640
            # Python dir
640
            # Python dir
641
            if self.python_dir is None:
641
            if self.python_dir is None:
Lines 810-817 Link Here
810
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEDIR"))
810
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEDIR"))
811
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEPY"))
811
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEPY"))
812
            cmdlist.append("-I" + self.python_inc_dir)
812
            cmdlist.append("-I" + self.python_inc_dir)
813
            cmdlist.append("-I" + self.kde_inc_dir)
813
            cmdlist.append("-I" + self.tde_inc_dir)
814
            cmdlist.append("-I" + self.kde_inc_dir + "/tde")
814
            cmdlist.append("-I" + self.tde_inc_dir + "/tde")
815
            cmdlist.append("-I" + self.qt_inc_dir)
815
            cmdlist.append("-I" + self.qt_inc_dir)
816
            cmdlist.append("-I/usr/include/tqt")
816
            cmdlist.append("-I/usr/include/tqt")
817
            cmdlist.append("-I.")
817
            cmdlist.append("-I.")
Lines 838-844 Link Here
838
            cmdlist.append("-export-dynamic")
838
            cmdlist.append("-export-dynamic")
839
            # object
839
            # object
840
            cmdlist.append(outputfile)
840
            cmdlist.append(outputfile)
841
            cmdlist.append("-rpath"); cmdlist.append(self.kde_kcm_lib_dir)
841
            cmdlist.append("-rpath"); cmdlist.append(self.tde_kcm_lib_dir)
842
            cmdlist.append("-o"); cmdlist.append(os.path.join(self.build_dir,stub_la_name))
842
            cmdlist.append("-o"); cmdlist.append(os.path.join(self.build_dir,stub_la_name))
843
            # Link libs
843
            # Link libs
844
            linklist = []
844
            linklist = []
Lines 859-865 Link Here
859
#            # PyTDE libs
859
#            # PyTDE libs
860
#            linklist.append("-L"+self.pytde_dir); linklist.append("-ltdecorecmodule"); linklist.append("-ltdeuicmodule")
860
#            linklist.append("-L"+self.pytde_dir); linklist.append("-ltdecorecmodule"); linklist.append("-ltdeuicmodule")
861
861
862
            linklist.append("-L"+self.kde_lib_dir); linklist.append("-L/opt/trinity/lib"); linklist.append("-ltdecore"); linklist.append("-lpythonize")
862
            linklist.append("-L"+self.tde_lib_dir); linklist.append("-L/opt/trinity/lib"); linklist.append("-ltdecore"); linklist.append("-lpythonize")
863
            linklist.append("-L"+self.qt_lib_dir); linklist.append("-ltqt-mt")
863
            linklist.append("-L"+self.qt_lib_dir); linklist.append("-ltqt-mt")
864
            linklist.append("-lm")
864
            linklist.append("-lm")
865
            linklist.append("-lc")
865
            linklist.append("-lc")
Lines 870-876 Link Here
870
            linklist.append("-R"); linklist.append(self.sip_dir)
870
            linklist.append("-R"); linklist.append(self.sip_dir)
871
            linklist.append("-R"); linklist.append(self.pyqt_dir)
871
            linklist.append("-R"); linklist.append(self.pyqt_dir)
872
            linklist.append("-R"); linklist.append(self.pytde_dir)
872
            linklist.append("-R"); linklist.append(self.pytde_dir)
873
            linklist.append("-R"); linklist.append(self.kde_lib_dir)
873
            linklist.append("-R"); linklist.append(self.tde_lib_dir)
874
874
875
            cmdlist.extend(linklist)
875
            cmdlist.extend(linklist)
876
            spawn(cmdlist) # Execute!!
876
            spawn(cmdlist) # Execute!!
Lines 1265-1288 Link Here
1265
    description = "Extract and update messages for translation"
1265
    description = "Extract and update messages for translation"
1266
1266
1267
    user_options = [('xgettext-exe=',None,'Full path to the xgetext executable'),\
1267
    user_options = [('xgettext-exe=',None,'Full path to the xgetext executable'),\
1268
                    ('kde-pot=',None,'Location of the the KDE pot file'),\
1268
                    ('tde-pot=',None,'Location of the the TDE pot file'),\
1269
                    ('msgmerge-exe=',None,'Full path to the msgmerge executable')]
1269
                    ('msgmerge-exe=',None,'Full path to the msgmerge executable')]
1270
1270
1271
    def initialize_options(self):
1271
    def initialize_options(self):
1272
        self.xgettext_exe = None
1272
        self.xgettext_exe = None
1273
        self.msgmerge_exe = None
1273
        self.msgmerge_exe = None
1274
        self.kde_pot = None
1274
        self.tde_pot = None
1275
1275
1276
    def finalize_options(self):
1276
    def finalize_options(self):
1277
        if self.xgettext_exe is None:
1277
        if self.xgettext_exe is None:
1278
            install = self.get_finalized_command('install')
1278
            install = self.get_finalized_command('install')
1279
1279
1280
            canidate_paths = []
1280
            canidate_paths = []
1281
            if install.user_supplied_kde_prefix:
1281
            if install.user_supplied_tde_prefix:
1282
                canidate_paths.append(os.path.join(install.kde_prefix,'bin'))
1282
                canidate_paths.append(os.path.join(install.tde_prefix,'bin'))
1283
1283
1284
            self.announce("Detecting xgettext...")
1284
            self.announce("Detecting xgettext...")
1285
            canidate_paths.append(ask_kde_config('--install exe --expandvars').strip())
1285
            canidate_paths.append(ask_tde_config('--install exe --expandvars').strip())
1286
            self.xgettext_exe = FindExeOnPath('xgettext',canidate_paths)
1286
            self.xgettext_exe = FindExeOnPath('xgettext',canidate_paths)
1287
            if self.xgettext_exe is None:
1287
            if self.xgettext_exe is None:
1288
                raise SystemExit, "Unable to find 'xgettext'."
1288
                raise SystemExit, "Unable to find 'xgettext'."
Lines 1292-1324 Link Here
1292
            install = self.get_finalized_command('install')
1292
            install = self.get_finalized_command('install')
1293
1293
1294
            canidate_paths = []
1294
            canidate_paths = []
1295
            if install.user_supplied_kde_prefix:
1295
            if install.user_supplied_tde_prefix:
1296
                canidate_paths.append(os.path.join(install.kde_prefix,'bin'))
1296
                canidate_paths.append(os.path.join(install.tde_prefix,'bin'))
1297
1297
1298
            self.announce("Detecting msgmerge...")
1298
            self.announce("Detecting msgmerge...")
1299
            canidate_paths.append(ask_kde_config('--install exe --expandvars').strip())
1299
            canidate_paths.append(ask_tde_config('--install exe --expandvars').strip())
1300
            self.msgmerge_exe = FindExeOnPath('msgmerge',canidate_paths)
1300
            self.msgmerge_exe = FindExeOnPath('msgmerge',canidate_paths)
1301
            if self.msgmerge_exe is None:
1301
            if self.msgmerge_exe is None:
1302
                raise SystemExit, "Unable to find 'xgettext'."
1302
                raise SystemExit, "Unable to find 'xgettext'."
1303
            self.announce("  ...msgmerge found at %s" % self.msgmerge_exe)
1303
            self.announce("  ...msgmerge found at %s" % self.msgmerge_exe)
1304
1304
1305
        if self.kde_pot is None:
1305
        if self.tde_pot is None:
1306
            self.announce("Detecting kde.pot...")
1306
            self.announce("Detecting tde.pot...")
1307
            canidatepaths = []
1307
            canidatepaths = []
1308
            tdedir = os.getenv("TDEDIR")
1308
            tdedir = os.getenv("TDEDIR")
1309
            if tdedir!=None:
1309
            if tdedir!=None:
1310
                canidatepaths.append(os.path.join(tdedir,"include"))
1310
                canidatepaths.append(os.path.join(tdedir,"include"))
1311
            install = self.get_finalized_command('install')
1311
            install = self.get_finalized_command('install')
1312
            canidatepaths.append(os.path.join(install.kde_prefix,"include"))
1312
            canidatepaths.append(os.path.join(install.tde_prefix,"include"))
1313
            canidatepaths.append('/opt/trinity/include')
1313
            canidatepaths.append('/opt/trinity/include')
1314
            canidatepaths.append('/opt/kde/include')
1314
            canidatepaths.append('/opt/kde/include')
1315
            kde_pot_dir = FindFileInPaths('kde.pot',canidatepaths)
1315
            tde_pot_dir = FindFileInPaths('tde.pot',canidatepaths)
1316
1316
1317
            if kde_pot_dir is None:
1317
            if tde_pot_dir is None:
1318
                raise SystemExit, "Failed to find the kde.pot file."
1318
                raise SystemExit, "Failed to find the tde.pot file."
1319
1319
1320
            self.kde_pot = os.path.join(kde_pot_dir,'kde.pot')
1320
            self.tde_pot = os.path.join(tde_pot_dir,'tde.pot')
1321
            self.announce("   ...kde.pot found at %s" % self.kde_pot)
1321
            self.announce("   ...tde.pot found at %s" % self.tde_pot)
1322
1322
1323
    def get_command_name(self):
1323
    def get_command_name(self):
1324
        return 'update_messages'
1324
        return 'update_messages'
Lines 1335-1341 Link Here
1335
        # Compile any UI files
1335
        # Compile any UI files
1336
        for dir in self.distribution.i18n[1]:
1336
        for dir in self.distribution.i18n[1]:
1337
            for file in glob.glob(os.path.join(dir,'*.ui')):
1337
            for file in glob.glob(os.path.join(dir,'*.ui')):
1338
                qtuicompiler.UpdateUI(file,kde=True)
1338
                qtuicompiler.UpdateUI(file,tde=True)
1339
1339
1340
        # Fetch all of the python files.
1340
        # Fetch all of the python files.
1341
        for dir in self.distribution.i18n[1]:
1341
        for dir in self.distribution.i18n[1]:
Lines 1344-1350 Link Here
1344
        target_pot = os.path.join(po_dir,self.distribution.metadata.name+".pot")
1344
        target_pot = os.path.join(po_dir,self.distribution.metadata.name+".pot")
1345
1345
1346
        cmd = [self.xgettext_exe, '-o', target_pot, '-ki18n', '-ktr2i18n', \
1346
        cmd = [self.xgettext_exe, '-o', target_pot, '-ki18n', '-ktr2i18n', \
1347
                '-kI18N_NOOP', '-ktranslate', '-kaliasLocale','-x',self.kde_pot]
1347
                '-kI18N_NOOP', '-ktranslate', '-kaliasLocale','-x',self.tde_pot]
1348
        cmd.extend(input_files)
1348
        cmd.extend(input_files)
1349
        spawn(cmd)
1349
        spawn(cmd)
1350
1350
Lines 1460-1471 Link Here
1460
                    ('build-dir=','b', "build directory (where to install from)"),
1460
                    ('build-dir=','b', "build directory (where to install from)"),
1461
                    ('python-dir=',None,'Directory containing the Python installation'),
1461
                    ('python-dir=',None,'Directory containing the Python installation'),
1462
                    ('python-inc-dir=',None,'Directory containing C Header files for Python'),
1462
                    ('python-inc-dir=',None,'Directory containing C Header files for Python'),
1463
                    ('kde-inc-dir=',None,'Directory containing C++ header files for KDE'),
1463
                    ('tde-inc-dir=',None,'Directory containing C++ header files for TDE'),
1464
                    ('kde-lib-dir=',None,'Directory containing library files for KDE'),
1464
                    ('tde-lib-dir=',None,'Directory containing library files for TDE'),
1465
                    ('kde-tdeioslave-lib-dir=',None,'Directory for KDE tdeioslave library files'),
1465
                    ('tde-tdeioslave-lib-dir=',None,'Directory for TDE tdeioslave library files'),
1466
                    ('kde-protocol-dir=',None,'Directory for KDE tdeioslave protocol files'),
1466
                    ('tde-protocol-dir=',None,'Directory for TDE tdeioslave protocol files'),
1467
                    ('qt-inc-dir=',None,'Directory containing C++ header files for Qt'),
1467
                    ('qt-inc-dir=',None,'Directory containing C++ header files for TQt'),
1468
                    ('qt-lib-dir=',None,'Directory containing library files for Qt'),
1468
                    ('qt-lib-dir=',None,'Directory containing library files for TQt'),
1469
                    ('sip-dir=','/usr/lib/pyshared/python*','Directory containing the sip library files'),
1469
                    ('sip-dir=','/usr/lib/pyshared/python*','Directory containing the sip library files'),
1470
                    ('clib=',None,'gcc library and path'),
1470
                    ('clib=',None,'gcc library and path'),
1471
                    ('pyqt-dir=','/usr/lib/pyshared/python*','PyQt module directory'),
1471
                    ('pyqt-dir=','/usr/lib/pyshared/python*','PyQt module directory'),
Lines 1477-1486 Link Here
1477
        self.build_dir = None
1477
        self.build_dir = None
1478
        self.python_inc_dir = None
1478
        self.python_inc_dir = None
1479
        self.python_dir = None
1479
        self.python_dir = None
1480
        self.kde_inc_dir = None
1480
        self.tde_inc_dir = None
1481
        self.kde_lib_dir = None
1481
        self.tde_lib_dir = None
1482
        self.kde_tdeioslave_lib_dir = None
1482
        self.tde_tdeioslave_lib_dir = None
1483
        self.kde_protocol_dir = None
1483
        self.tde_protocol_dir = None
1484
        self.qt_inc_dir = None
1484
        self.qt_inc_dir = None
1485
        self.qt_lib_dir = None
1485
        self.qt_lib_dir = None
1486
        self.sip_dir = None
1486
        self.sip_dir = None
Lines 1494-1503 Link Here
1494
            self.set_undefined_options('install', ('build_base', 'build_dir'),('install_application_data','data_dir'))
1494
            self.set_undefined_options('install', ('build_base', 'build_dir'),('install_application_data','data_dir'))
1495
1495
1496
            install = self.get_finalized_command('install')
1496
            install = self.get_finalized_command('install')
1497
            self.install_prefix = ask_kde_config('--prefix').strip()
1497
            self.install_prefix = ask_tde_config('--prefix').strip()
1498
1498
1499
            # KDE inc dir: find it!
1499
            # TDE inc dir: find it!
1500
            if self.kde_inc_dir is None:
1500
            if self.tde_inc_dir is None:
1501
                canidatepaths = []
1501
                canidatepaths = []
1502
                tdedir = os.getenv("TDEDIR")
1502
                tdedir = os.getenv("TDEDIR")
1503
                if tdedir!=None:
1503
                if tdedir!=None:
Lines 1505-1530 Link Here
1505
                canidatepaths.append(os.path.join(install.prefix,"include"))
1505
                canidatepaths.append(os.path.join(install.prefix,"include"))
1506
                canidatepaths.append(os.path.join(self.install_prefix,'include'))
1506
                canidatepaths.append(os.path.join(self.install_prefix,'include'))
1507
                canidatepaths.append(os.path.join(self.install_prefix,'include','tde'))
1507
                canidatepaths.append(os.path.join(self.install_prefix,'include','tde'))
1508
                self.kde_inc_dir = FindFileInPaths('tdeapplication.h',canidatepaths)
1508
                self.tde_inc_dir = FindFileInPaths('tdeapplication.h',canidatepaths)
1509
            if self.kde_inc_dir is None:
1509
            if self.tde_inc_dir is None:
1510
                raise SystemExit, "Failed to find the KDE header file directory."
1510
                raise SystemExit, "Failed to find the TDE header file directory."
1511
            if FindFileInPaths('tdeapplication.h',[self.kde_inc_dir]) is None:
1511
            if FindFileInPaths('tdeapplication.h',[self.tde_inc_dir]) is None:
1512
                raise SystemExit, "Failed to find KDE header files in: %s" % self.kde_inc_dir
1512
                raise SystemExit, "Failed to find TDE header files in: %s" % self.tde_inc_dir
1513
            self.announce("Using %s for KDE header files" % self.kde_inc_dir)
1513
            self.announce("Using %s for TDE header files" % self.tde_inc_dir)
1514
1514
1515
            # KDE lib dir
1515
            # TDE lib dir
1516
            if self.kde_lib_dir is None:
1516
            if self.tde_lib_dir is None:
1517
                self.kde_lib_dir = os.path.join(self.install_prefix,"lib")
1517
                self.tde_lib_dir = os.path.join(self.install_prefix,"lib")
1518
            self.announce("Using %s for KDE library files" % self.kde_lib_dir)
1518
            self.announce("Using %s for TDE library files" % self.tde_lib_dir)
1519
1519
1520
            # KDE tdeioslave lib dir
1520
            # TDE tdeioslave lib dir
1521
            if self.kde_tdeioslave_lib_dir is None:
1521
            if self.tde_tdeioslave_lib_dir is None:
1522
                self.kde_tdeioslave_lib_dir = os.path.join(self.kde_lib_dir,"trinity")
1522
                self.tde_tdeioslave_lib_dir = os.path.join(self.tde_lib_dir,"trinity")
1523
            if FindFileInPaths('tdeio_*.so',[self.kde_tdeioslave_lib_dir]) is None:
1523
            if FindFileInPaths('tdeio_*.so',[self.tde_tdeioslave_lib_dir]) is None:
1524
                raise SystemExit, "Failed to find KDE Tdeioslave library files in: %s" % self.kde_tdeioslave_lib_dir
1524
                raise SystemExit, "Failed to find TDE Tdeioslave library files in: %s" % self.tde_tdeioslave_lib_dir
1525
            self.announce("Using %s for KDE Tdeioslave library files" % self.kde_tdeioslave_lib_dir)
1525
            self.announce("Using %s for TDE Tdeioslave library files" % self.tde_tdeioslave_lib_dir)
1526
1526
1527
            # Qt inc dir
1527
            # TQt inc dir
1528
            if self.qt_inc_dir is None:
1528
            if self.qt_inc_dir is None:
1529
                canidatepaths = []
1529
                canidatepaths = []
1530
                qtinc = os.getenv("QTINC")
1530
                qtinc = os.getenv("QTINC")
Lines 1544-1556 Link Here
1544
            if self.qt_inc_dir is None:
1544
            if self.qt_inc_dir is None:
1545
                self.qt_inc_dir = FindFileInPaths('qstring.h',canidatepaths)
1545
                self.qt_inc_dir = FindFileInPaths('qstring.h',canidatepaths)
1546
            if self.qt_inc_dir is None:
1546
            if self.qt_inc_dir is None:
1547
                raise SystemExit,"Failed to find the Qt header file directory"
1547
                raise SystemExit,"Failed to find the TQt header file directory"
1548
            if FindFileInPaths('ntqstring.h',[self.qt_inc_dir]) is None:
1548
            if FindFileInPaths('ntqstring.h',[self.qt_inc_dir]) is None:
1549
                if FindFileInPaths('qstring.h',[self.qt_inc_dir]) is None:
1549
                if FindFileInPaths('qstring.h',[self.qt_inc_dir]) is None:
1550
                    raise SystemExit, "Failed to find Qt header files in: %s" % self.qt_inc_dir
1550
                    raise SystemExit, "Failed to find TQt header files in: %s" % self.qt_inc_dir
1551
            self.announce("Using %s for Qt header files" % self.qt_inc_dir)
1551
            self.announce("Using %s for TQt header files" % self.qt_inc_dir)
1552
1552
1553
            # Qt lib dir
1553
            # TQt lib dir
1554
            if self.qt_lib_dir is None:
1554
            if self.qt_lib_dir is None:
1555
                canidatepaths = []
1555
                canidatepaths = []
1556
                qtlib = os.getenv("TQTLIB")
1556
                qtlib = os.getenv("TQTLIB")
Lines 1584-1591 Link Here
1584
                canidatepaths.append("/opt/qt3/lib/"+get_libdir_name())
1584
                canidatepaths.append("/opt/qt3/lib/"+get_libdir_name())
1585
                self.qt_lib_dir = FindFileInPaths('libqt*',canidatepaths)
1585
                self.qt_lib_dir = FindFileInPaths('libqt*',canidatepaths)
1586
            if self.qt_lib_dir is None:
1586
            if self.qt_lib_dir is None:
1587
                raise SystemExit, "Failed to find Qt library files"
1587
                raise SystemExit, "Failed to find TQt library files"
1588
            self.announce("Using %s for Qt library files" % self.qt_lib_dir)
1588
            self.announce("Using %s for TQt library files" % self.qt_lib_dir)
1589
1589
1590
            # Python dir
1590
            # Python dir
1591
            if self.python_dir is None:
1591
            if self.python_dir is None:
Lines 1744-1751 Link Here
1744
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEDIR"))
1744
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEDIR"))
1745
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEPY"))
1745
            cmdlist.append("-I" + sysconfig.get_config_var("INCLUDEPY"))
1746
            cmdlist.append("-I" + self.python_inc_dir)
1746
            cmdlist.append("-I" + self.python_inc_dir)
1747
            cmdlist.append("-I" + self.kde_inc_dir)
1747
            cmdlist.append("-I" + self.tde_inc_dir)
1748
            cmdlist.append("-I" + self.kde_inc_dir + "/tde")
1748
            cmdlist.append("-I" + self.tde_inc_dir + "/tde")
1749
            cmdlist.append("-I" + self.qt_inc_dir)
1749
            cmdlist.append("-I" + self.qt_inc_dir)
1750
            cmdlist.append("-I/usr/include/tqt")
1750
            cmdlist.append("-I/usr/include/tqt")
1751
            cmdlist.append("-I.")
1751
            cmdlist.append("-I.")
Lines 1772-1778 Link Here
1772
            cmdlist.append("-export-dynamic")
1772
            cmdlist.append("-export-dynamic")
1773
            # object
1773
            # object
1774
            cmdlist.append(outputfile)
1774
            cmdlist.append(outputfile)
1775
            cmdlist.append("-rpath"); cmdlist.append(self.kde_tdeioslave_lib_dir)
1775
            cmdlist.append("-rpath"); cmdlist.append(self.tde_tdeioslave_lib_dir)
1776
            cmdlist.append("-o"); cmdlist.append(os.path.join(self.build_dir,stub_la_name))
1776
            cmdlist.append("-o"); cmdlist.append(os.path.join(self.build_dir,stub_la_name))
1777
            # Link libs
1777
            # Link libs
1778
            linklist = []
1778
            linklist = []
Lines 1792-1798 Link Here
1792
#            # PyTDE libs
1792
#            # PyTDE libs
1793
#            linklist.append("-L"+self.pytde_dir); linklist.append("-ltdecorecmodule"); linklist.append("-ltdeuicmodule")
1793
#            linklist.append("-L"+self.pytde_dir); linklist.append("-ltdecorecmodule"); linklist.append("-ltdeuicmodule")
1794
1794
1795
            linklist.append("-L"+self.kde_lib_dir); linklist.append("-L/opt/trinity/lib"); linklist.append("-ltdecore"); linklist.append("-lpythonize")
1795
            linklist.append("-L"+self.tde_lib_dir); linklist.append("-L/opt/trinity/lib"); linklist.append("-ltdecore"); linklist.append("-lpythonize")
1796
            linklist.append("-L"+self.qt_lib_dir); linklist.append("-lqt-mt")
1796
            linklist.append("-L"+self.qt_lib_dir); linklist.append("-lqt-mt")
1797
            linklist.append("-lm")
1797
            linklist.append("-lm")
1798
            linklist.append("-lc")
1798
            linklist.append("-lc")
Lines 1803-1809 Link Here
1803
            linklist.append("-R"); linklist.append(self.sip_dir)
1803
            linklist.append("-R"); linklist.append(self.sip_dir)
1804
            linklist.append("-R"); linklist.append(self.pyqt_dir)
1804
            linklist.append("-R"); linklist.append(self.pyqt_dir)
1805
            linklist.append("-R"); linklist.append(self.pytde_dir)
1805
            linklist.append("-R"); linklist.append(self.pytde_dir)
1806
            linklist.append("-R"); linklist.append(self.kde_lib_dir)
1806
            linklist.append("-R"); linklist.append(self.tde_lib_dir)
1807
1807
1808
            cmdlist.extend(linklist)
1808
            cmdlist.extend(linklist)
1809
            spawn(cmdlist) # Execute!!
1809
            spawn(cmdlist) # Execute!!
Lines 2038-2047 Link Here
2038
2038
2039
    def run(self):
2039
    def run(self):
2040
        if self.min_qt_version!=None:
2040
        if self.min_qt_version!=None:
2041
            qtver,kdever = get_qt_kde_versions()
2041
            qtver,tdever = get_qt_tde_versions()
2042
            if compare_versions(self.min_qt_version,qtver)==1:
2042
            if compare_versions(self.min_qt_version,qtver)==1:
2043
                raise SystemExit, "Your Qt version is too old. Version %s or higher is required, found %s." % (self.min_qt_version,qtver)
2043
                raise SystemExit, "Your TQt version is too old. Version %s or higher is required, found %s." % (self.min_qt_version,qtver)
2044
            self.announce("Found Qt version %s." % qtver)
2044
            self.announce("Found TQt version %s." % qtver)
2045
        try:
2045
        try:
2046
            self.announce("Checking for a working PyQt...")
2046
            self.announce("Checking for a working PyQt...")
2047
            import qt
2047
            import qt
Lines 2061-2074 Link Here
2061
        pass
2061
        pass
2062
2062
2063
    def finalize_options(self):
2063
    def finalize_options(self):
2064
        self.min_kde_version = self.distribution.min_kde_version
2064
        self.min_tde_version = self.distribution.min_tde_version
2065
2065
2066
    def run(self):
2066
    def run(self):
2067
        if self.min_kde_version!=None:
2067
        if self.min_tde_version!=None:
2068
            qtver,kdever = get_qt_kde_versions()
2068
            qtver,tdever = get_qt_tde_versions()
2069
            if compare_versions(self.min_kde_version,kdever)==1:
2069
            if compare_versions(self.min_tde_version,tdever)==1:
2070
                raise SystemExit, "Your KDE version is too old. Version %s or higher is required, found %s." % (self.min_kde_version,kdever)
2070
                raise SystemExit, "Your TDE version is too old. Version %s or higher is required, found %s." % (self.min_tde_version,tdever)
2071
            self.announce("Found KDE version %s." % kdever)
2071
            self.announce("Found TDE version %s." % tdever)
2072
        self.announce("Checking for a working PyTDE...")
2072
        self.announce("Checking for a working PyTDE...")
2073
2073
2074
        # Try to import modules one by one.
2074
        # Try to import modules one by one.
Lines 2078-2084 Link Here
2078
                exec('import ' + k_module)
2078
                exec('import ' + k_module)
2079
            except:
2079
            except:
2080
                raise SystemExit, "Error: Couldn't find module '" + k_module + "'. \n" + \
2080
                raise SystemExit, "Error: Couldn't find module '" + k_module + "'. \n" + \
2081
                    "Couldn't import KDE! Please make sure that PyTDE is installed and working.\n" + \
2081
                    "Couldn't import TDE! Please make sure that PyTDE is installed and working.\n" + \
2082
                    "PyTDE is available here: http://www.trinitydesktop.org"
2082
                    "PyTDE is available here: http://www.trinitydesktop.org"
2083
        self.announce("  ...PyTDE is working")
2083
        self.announce("  ...PyTDE is working")
2084
2084
Lines 2137-2149 Link Here
2137
2137
2138
###########################################################################
2138
###########################################################################
2139
2139
2140
def ask_kde_config(question):
2140
def ask_tde_config(question):
2141
    # Look for the tde-config program
2141
    # Look for the tde-config program
2142
    kdeconfig = find_executable("tde-config", os.environ['PATH'] + os.pathsep + \
2142
    tdeconfig = find_executable("tde-config", os.environ['PATH'] + os.pathsep + \
2143
        os.pathsep.join(['/bin','/usr/bin','/opt/trinity/bin','/opt/kde/bin','/usr/local/bin']))
2143
        os.pathsep.join(['/bin','/usr/bin','/opt/trinity/bin','/opt/kde/bin','/usr/local/bin']))
2144
    if kdeconfig!=None:
2144
    if tdeconfig!=None:
2145
        # Ask the tde-config program for the
2145
        # Ask the tde-config program for the
2146
        fhandle = os.popen(kdeconfig+' ' + question,'r')
2146
        fhandle = os.popen(tdeconfig+' ' + question,'r')
2147
        result = fhandle.read()
2147
        result = fhandle.read()
2148
        fhandle.close()
2148
        fhandle.close()
2149
        return result
2149
        return result
Lines 2223-2239 Link Here
2223
    return 0
2223
    return 0
2224
2224
2225
###########################################################################
2225
###########################################################################
2226
def get_qt_kde_versions():
2226
def get_qt_tde_versions():
2227
    versioninfo = ask_kde_config('--version')
2227
    versioninfo = ask_tde_config('--version')
2228
    qtver = None
2228
    qtver = None
2229
    kdever = None
2229
    tdever = None
2230
    if versioninfo!=None:
2230
    if versioninfo!=None:
2231
        for line in versioninfo.splitlines():
2231
        for line in versioninfo.splitlines():
2232
            if line.startswith("Qt: "):
2232
            if line.startswith("Qt: "):
2233
                qtver = line[4:]
2233
                qtver = line[4:]
2234
            elif line.startswith("TDE: "):
2234
            elif line.startswith("TDE: "):
2235
                kdever = line[5:]
2235
                tdever = line[5:]
2236
    return qtver,kdever
2236
    return qtver,tdever
2237
2237
2238
###########################################################################
2238
###########################################################################
2239
def compile_qtdesigner(ui_files,
2239
def compile_qtdesigner(ui_files,

Return to bug 1991