&kfilereplace; is currently part of &kdewebdev; package, so, in order to install it, you have to get a copy of &kdewebdev;. Note that if you are using a &kde; installation provided by your OS vendor, probably you already have &kdewebdev; installed; in this case, you can use &kfilereplace; either by opening &quantaplus; Web editor, or by calling it directly (unless you have an old &kde; version). Else you can download the &kdewebdev; package from the Internet: please refer to <ulink url="http://kdewebdev.org">&kdewebdev; home site</ulink> for more information.
&kfilereplace; is currently part of &tdewebdev; package, so, in order to install it, you have to get a copy of &tdewebdev;. Note that if you are using a &kde; installation provided by your OS vendor, probably you already have &tdewebdev; installed; in this case, you can use &kfilereplace; either by opening &quantaplus; Web editor, or by calling it directly (unless you have an old &kde; version). Else you can download the &tdewebdev; package from the Internet: please refer to <ulink url="http://tdewebdev.org">&tdewebdev; home site</ulink> for more information.
@ -88,7 +88,7 @@ Do NOT change these in the translation. -->
<!-- Abstract about this handbook -->
<!-- Abstract about this handbook -->
<abstract>
<abstract>
<para>These docs have been partially complete for years, but not always available or easy to find. Since around 2002 little spurts of effort on &kommander; have produced dramtic results. &kommander; is a new approach to development and there have been modifications in approach and features. Consequently much of this documentation is out of date, however still useful due to legacy support. Please refer to our web site at <ulink url="http://kommander.kdewebdev.org">http://kommander.kdewebdev.org</ulink> for up to date information, news on KDE4 development, new tools, plugins, tips and tutorials.</para>
<para>These docs have been partially complete for years, but not always available or easy to find. Since around 2002 little spurts of effort on &kommander; have produced dramtic results. &kommander; is a new approach to development and there have been modifications in approach and features. Consequently much of this documentation is out of date, however still useful due to legacy support. Please refer to our web site at <ulink url="http://kommander.tdewebdev.org">http://kommander.tdewebdev.org</ulink> for up to date information, news on KDE4 development, new tools, plugins, tips and tutorials.</para>
<para>
<para>
&kommander; is a set of tools that allow you to create dynamic &GUI; windows that has been used as a front end for command line programs, database front ends, simple program extentions and much more. The best part of it all? You aren't required to write a single line of code! Okay, that was old text... You can actually use the function browser and even with the new parser write almost none of the code. The inherent difference between &kommander; and other &GUI; scripting tools is that &kommander; doesn't care about how the window gets drawn. &kommander; was designed from the GUI down to the language elements and can embrace multiple languages. &kommander; does not use scripting to draw a window on the screen like other &GUI; scripting tools. As Kommander matures it will expose all it's internals to any scripting language people want to enable. We welcome anyone wishing to enhance support for any scripting language.
&kommander; is a set of tools that allow you to create dynamic &GUI; windows that has been used as a front end for command line programs, database front ends, simple program extentions and much more. The best part of it all? You aren't required to write a single line of code! Okay, that was old text... You can actually use the function browser and even with the new parser write almost none of the code. The inherent difference between &kommander; and other &GUI; scripting tools is that &kommander; doesn't care about how the window gets drawn. &kommander; was designed from the GUI down to the language elements and can embrace multiple languages. &kommander; does not use scripting to draw a window on the screen like other &GUI; scripting tools. As Kommander matures it will expose all it's internals to any scripting language people want to enable. We welcome anyone wishing to enhance support for any scripting language.
These examples reflect the most recent development state of &kommander;. In its current state &kommander; has few limitations for developing small to medium applications. It certainly is not suitable for building a KWord clone, but for a simple editor, database frontend, GUI for commandline programs or any application in the spirit of Unix/Linux small applications it is a good choice. The examples presented here are intended to show the potential as well as how to work around limitations. There are some useful tricks included in these if you want to do a more capable small application with &kommander;. Remember &kommander; is not intended to do everything, but to do most things. For this concession you should be able to build something in &kommander; faster than other alternatives ad add GUI to scripting languages not otherwise supported in KDE.
These examples reflect the most recent development state of &kommander;. In its current state &kommander; has few limitations for developing small to medium applications. It certainly is not suitable for building a KWord clone, but for a simple editor, database frontend, GUI for commandline programs or any application in the spirit of Unix/Linux small applications it is a good choice. The examples presented here are intended to show the potential as well as how to work around limitations. There are some useful tricks included in these if you want to do a more capable small application with &kommander;. Remember &kommander; is not intended to do everything, but to do most things. For this concession you should be able to build something in &kommander; faster than other alternatives ad add GUI to scripting languages not otherwise supported in KDE.
</para>
</para>
<note><para>
<note><para>
The examples are installed to <command>$KDEDIR/share/apps/kmdr-editor/editor</command>. In case you do not have them there, get from <ulink url="http://kommander.kdewebdev.org">our home page</ulink>, by downloading the latest release.
The examples are installed to <command>$KDEDIR/share/apps/kmdr-editor/editor</command>. In case you do not have them there, get from <ulink url="http://kommander.tdewebdev.org">our home page</ulink>, by downloading the latest release.
</para>
</para>
</note>
</note>
@ -334,7 +334,7 @@ There is a quick help dialog this editor launches that discusses in depth what i
<sect2 id="example-key-value">
<sect2 id="example-key-value">
<title>kevaluecombo.kmdr</title>
<title>kevaluecombo.kmdr</title>
<para>
<para>
&kommander; can be used with databases and has an optional <ulink url="http://kommander.kdewebdev.org/releases.php#plugins">database plugin</ulink>. One shortcoming is not being able to store key/value pairs in the ComboBox. An ingenious trick was realized for this. It requires only that the content of the ComboBox not be changed unless it is done using the arrays that go with it. As this is commonly used with SQL in small data sets it's quite fast even to reload the whole Combobox. The inherent problem is that &kommander; does not have internally indexed arrays by default. This is compounded by the fact that to accommodate shell commands that return lines separated by newlines &kommander;'s array functions will load what is effectively an array of keys. Such an array can only be accessed with a foreach loop. This is the reason new indexed array functions were added. It is important to remember that these arrays are not self maintaining, but their insert and delete functions will help you.
&kommander; can be used with databases and has an optional <ulink url="http://kommander.tdewebdev.org/releases.php#plugins">database plugin</ulink>. One shortcoming is not being able to store key/value pairs in the ComboBox. An ingenious trick was realized for this. It requires only that the content of the ComboBox not be changed unless it is done using the arrays that go with it. As this is commonly used with SQL in small data sets it's quite fast even to reload the whole Combobox. The inherent problem is that &kommander; does not have internally indexed arrays by default. This is compounded by the fact that to accommodate shell commands that return lines separated by newlines &kommander;'s array functions will load what is effectively an array of keys. Such an array can only be accessed with a foreach loop. This is the reason new indexed array functions were added. It is important to remember that these arrays are not self maintaining, but their insert and delete functions will help you.
</para>
</para>
<para>
<para>
Getting back to the ComboBox, it will return selected text, but it also will return the current index. It does rigidly maintain a contiguous zero based array. That's the key. We loop through a data set with a zero based index counter and create two arrays, as &kommander; also cannot create arrays of arrays. It can however use an array value to represent a key just like any value could. .If you look at the included dialog the code actually managing this is in <quote>ScriptObject36</quote>. We will extract the key code here.
Getting back to the ComboBox, it will return selected text, but it also will return the current index. It does rigidly maintain a contiguous zero based array. That's the key. We loop through a data set with a zero based index counter and create two arrays, as &kommander; also cannot create arrays of arrays. It can however use an array value to represent a key just like any value could. .If you look at the included dialog the code actually managing this is in <quote>ScriptObject36</quote>. We will extract the key code here.
AboutDialog2.setDescription("This is a demo of what can be done with kommander 1.3\nYou are running "+_VERSION+" now. This is not intended to\nbe of use for any specific tasks. We hope you enjoy it.")
AboutDialog2.setDescription("This is a demo of what can be done with kommander 1.3\nYou are running "+_VERSION+" now. This is not intended to\nbe of use for any specific tasks. We hope you enjoy it.")
<p>Test this <a href="ScriptLink2">link</a> text.<br />Add a new line with Ctrl-Enter or Enter. Note the links are correctly parsed.</p>
<p>Test this <a href="ScriptLink2">link</a> text.<br />Add a new line with Ctrl-Enter or Enter. Note the links are correctly parsed.</p>
<p>New paragraph. Look! <a href="ScriptLink3">another internal link</a> to try out.</p>
<p>New paragraph. Look! <a href="ScriptLink3">another internal link</a> to try out.</p>
<p>Although this widget does not give visual feedback on links it does allow them to execute scripts or call a web site as you can see below. </p>
<p>Although this widget does not give visual feedback on links it does allow them to execute scripts or call a web site as you can see below. </p>
<p>Functionality on this window may be incomplete. It is for demo purposes only. Look for new examples and tools on our <a href="http://kommander.kdewebdev.org">website</a>.</p>
<p>Functionality on this window may be incomplete. It is for demo purposes only. Look for new examples and tools on our <a href="http://kommander.tdewebdev.org">website</a>.</p>
AboutDialog2.setDescription("This is a demo of what can be done with kommander 1.3\nYou are running "+_VERSION+" now. This is not intended to\nbe of use for any specific tasks. We hope you enjoy it.")
AboutDialog2.setDescription("This is a demo of what can be done with kommander 1.3\nYou are running "+_VERSION+" now. This is not intended to\nbe of use for any specific tasks. We hope you enjoy it.")
<p><spanclass="firstchar">P</span>lease use our <ahref="http://bugs.kde.org">bug reporting</a> site for bugs, wishes and the <ahref="http://kdewebdev.org">project home page</a> for support, further information, and other useful features.</p>
<p><spanclass="firstchar">P</span>lease use our <ahref="http://bugs.kde.org">bug reporting</a> site for bugs, wishes and the <ahref="http://tdewebdev.org">project home page</a> for support, further information, and other useful features.</p>
@ -138,14 +138,14 @@ Just go to <b>Settings > Configure Shortcuts</b>.
<tip category="Information">
<tip category="Information">
<html>
<html>
<p>...that we have additional mailing lists to support our users? Lists include Kommander and web development help.<b><a href="http://mail.kdewebdev.org/mailman/listinfo">Click here to see</a></b>.
<p>...that we have additional mailing lists to support our users? Lists include Kommander and web development help.<b><a href="http://mail.tdewebdev.org/mailman/listinfo">Click here to see</a></b>.
</p>
</p>
</html>
</html>
</tip>
</tip>
<tip category="Information">
<tip category="Information">
<html>
<html>
<p>...that you can help to financially support our program of sponsoring developers? <b><a href="http://kdewebdev.org/donate.php">Click here to help</a></b>.
<p>...that you can help to financially support our program of sponsoring developers? <b><a href="http://tdewebdev.org/donate.php">Click here to help</a></b>.
</p>
</p>
</html>
</html>
</tip>
</tip>
@ -236,7 +236,7 @@ Just go to <b>Settings > Configure Shortcuts</b>.
<tip category="Application">
<tip category="Application">
<html>
<html>
<p>...that Quanta comes with a number of applications that run a plug ins? Quanta can also load other programs if they are installed including HTML Tidy, Cervisia and Kompare. Make sure you have HTML Tidy and the kdesdk module installed to use them all.
<p>...that Quanta comes with a number of applications that run a plug ins? Quanta can also load other programs if they are installed including HTML Tidy, Cervisia and Kompare. Make sure you have HTML Tidy and the tdesdk module installed to use them all.
</p>
</p>
</html>
</html>
</tip>
</tip>
@ -362,7 +362,7 @@ Just go to <b>Settings > Configure Shortcuts</b>.
<tip category="Application">
<tip category="Application">
<html>
<html>
<p>...that you can contribute to <b>Quanta's public repository</b> of resources? Just <a href="mailto:submissions@kdewebdev.org?subject=Quanta%20Resource">email it here</a>.
<p>...that you can contribute to <b>Quanta's public repository</b> of resources? Just <a href="mailto:submissions@tdewebdev.org?subject=Quanta%20Resource">email it here</a>.
@ -72,7 +72,7 @@ is the future of software, but it is no guarantee of success. How many open sour
<div align="center"><h3>Could Quanta die without your support?</h3></div>&nbsp;&nbsp;&nbsp;&nbsp;We'd like to think not! But from February 2001 to June 2002 there was very little activity and many months with no work done at all. This came about because of cash flow problems which led to the original developers leaving to do a commercial project. The fact remains that our most productive volunteer developers, as much as we think they're wonderful, go long periods where they just can't make time to code on the project. We estimate our active users number well over a million, yet we have only a few dozen people a year supporting the project. In fact 3-4 people account for over half of our current support. Clearly the actions of a few people make a huge difference, and yours can make a difference too.
<div align="center"><h3>Could Quanta die without your support?</h3></div>&nbsp;&nbsp;&nbsp;&nbsp;We'd like to think not! But from February 2001 to June 2002 there was very little activity and many months with no work done at all. This came about because of cash flow problems which led to the original developers leaving to do a commercial project. The fact remains that our most productive volunteer developers, as much as we think they're wonderful, go long periods where they just can't make time to code on the project. We estimate our active users number well over a million, yet we have only a few dozen people a year supporting the project. In fact 3-4 people account for over half of our current support. Clearly the actions of a few people make a huge difference, and yours can make a difference too.
<br><div align="center"><h3>Will you help make a difference?</h3></div>
<br><div align="center"><h3>Will you help make a difference?</h3></div>
&nbsp;&nbsp;&nbsp;&nbsp;If you wish to donate through PayPal
&nbsp;&nbsp;&nbsp;&nbsp;If you wish to donate through PayPal
(online money transfer or credit card), visit our <a href="http://kdewebdev.org/donate.php">donation page</a>.
(online money transfer or credit card), visit our <a href="http://tdewebdev.org/donate.php">donation page</a>.
<br>&nbsp;&nbsp;&nbsp;&nbsp;If you are outside the PayPal area or wish to discuss corporate sponsorship contact the project manager:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Eric Laffoon, <a href="mailto:sequitur@kde.org?subject=Quanta%20sponsorship%20inquiry">sequitur@kde.org</a></string>
<br>&nbsp;&nbsp;&nbsp;&nbsp;If you are outside the PayPal area or wish to discuss corporate sponsorship contact the project manager:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Eric Laffoon, <a href="mailto:sequitur@kde.org?subject=Quanta%20sponsorship%20inquiry">sequitur@kde.org</a></string>
</property>
</property>
</widget>
</widget>
@ -133,7 +133,7 @@ is the future of software, but it is no guarantee of success. How many open sour
<enum>Raised</enum>
<enum>Raised</enum>
</property>
</property>
<property name="text">
<property name="text">
<string><a href="http://kdewebdev.org/donate.php">Donate</a> through PayPal now.</string>
<string><a href="http://tdewebdev.org/donate.php">Donate</a> through PayPal now.</string>
The Node class handle the pointers to the parent, next, previous and first child Node. *Each* Node has a valid pointer to a Tag. The Tag takes care to remember all the information concerning the Tag itself, like the attributes, the type, etc...)
The Node class handle the pointers to the parent, next, previous and first child Node. *Each* Node has a valid pointer to a Tag. The Tag takes care to remember all the information concerning the Tag itself, like the attributes, the type, etc...)
One QTag per Element is created from the .tag files when Quanta is started. Each QTag contains all the DTD information about the Tag. E.g. the "IMG" Qtag says that it is a single Tag, and what are its attributes. You can get a QTag with QuantaCommon::tagFromDTD, but don't delete the QTag!
One QTag per Element is created from the .tag files when Quanta is started. Each QTag contains all the DTD information about the Tag. E.g. the "IMG" Qtag says that it is a single Tag, and what are its attributes. You can get a QTag with QuantaCommon::tagFromDTD, but don't delete the QTag!
Now to khtml. The class KHTMLPart is the HTML renderer widget of konqueror. It internally works with a Node Tree (another? Yep!) but these Nodes are real DOM::Nodes. (From now, I will call it the DOM::Node tree) Each of the DOM Nodes is khtml-internally linked to a rendering Node i.e. a change made to one DOM::Node will update the HTML rendering cf /path/to/kde/include/dom/*.h and also in the kdelibs cvs module, cf the nice kdelibs/khtml/DESIGN.html. WARNING about DOM::Nodes, they are just interfaces!!
Now to khtml. The class KHTMLPart is the HTML renderer widget of konqueror. It internally works with a Node Tree (another? Yep!) but these Nodes are real DOM::Nodes. (From now, I will call it the DOM::Node tree) Each of the DOM Nodes is khtml-internally linked to a rendering Node i.e. a change made to one DOM::Node will update the HTML rendering cf /path/to/kde/include/dom/*.h and also in the tdelibs cvs module, cf the nice tdelibs/khtml/DESIGN.html. WARNING about DOM::Nodes, they are just interfaces!!
@ -6,9 +6,9 @@ Description: Powerful markup and script language editor for KDE3
Keywords: HTML,JS,PHP,Embeded Preview,KDE,Quanta
Keywords: HTML,JS,PHP,Embeded Preview,KDE,Quanta
Author: Eric Laffoon & Andras Mantia <sequitur@kde.org,amantia@kde.org>; originally by Dmitry Poplavsky & Alexander Yakovlev <dima@kde.org,yshurik@kde.org>
Author: Eric Laffoon & Andras Mantia <sequitur@kde.org,amantia@kde.org>; originally by Dmitry Poplavsky & Alexander Yakovlev <dima@kde.org,yshurik@kde.org>
Maintained-by: Eric Laffoon & Andras Mantia <sequitur@kde.org,amantia@kde.org>
Maintained-by: Eric Laffoon & Andras Mantia <sequitur@kde.org,amantia@kde.org>
<li>Contact the appropriate Quanta script and template maintainer or a member of our team when you have new releases so we can include them. As we plan to build a huge repository we have to rely on you here.</li></ul>
<li>Contact the appropriate Quanta script and template maintainer or a member of our team when you have new releases so we can include them. As we plan to build a huge repository we have to rely on you here.</li></ul>
<p>The additional information serves as a backup. Any time a user wants they can click the link to go to your site and get updates, docs or whatever they require. Thank you for helping us to make this a great feature</p>
<p>The additional information serves as a backup. Any time a user wants they can click the link to go to your site and get updates, docs or whatever they require. Thank you for helping us to make this a great feature</p>
<p align="center">Quanta Resource Maintainer - (none at this time)<br />Lead Developer - Andras Mantia <a href="mailto:amantia@kde.org?subject=ScriptInfo">amantia@kde.org</a><br />Kommander - Michal Rudolf <a href="mailto:mrudolf@kdewebdev.org?subject=ScriptInfo">mrudolf@kdewebdev.org</a><br />Project Lead - Eric Laffoon <a href="mailto:sequitur@kde.org?subject=ScriptInfo">sequitur@kde.org</a></p>
<p align="center">Quanta Resource Maintainer - (none at this time)<br />Lead Developer - Andras Mantia <a href="mailto:amantia@kde.org?subject=ScriptInfo">amantia@kde.org</a><br />Kommander - Michal Rudolf <a href="mailto:mrudolf@tdewebdev.org?subject=ScriptInfo">mrudolf@tdewebdev.org</a><br />Project Lead - Eric Laffoon <a href="mailto:sequitur@kde.org?subject=ScriptInfo">sequitur@kde.org</a></p>