From kde-commits Fri Oct 10 22:44:45 2014
From: Dirk Mueller Available announcements: DATELINE JULY 9, 2001 FOR IMMEDIATE RELEASE Konqueror Embraces ActiveX, Plays Shockwave Movies July 9, 2001 (The INTERNET).
+Nikolas Zimmermann and
+Malte Starostik today announced
+the availability of reaktivate for
+Konqueror, KDE's web browser.
+Reaktivate enables Konqueror to embed
+ActiveX cont=
rols,
+such as the popular
+Shockwave
+movies, for which no native Linux/Unix solution exists. Reaktivate relies
+on the
+WINE libraries to load and run
+ActiveX controls.
+
+With this addition, Konqueror now enables KDE users to take optimal advant=
age
+of sophisticated websites that make use of Microsoft Internet Explorer plu=
gins,
+Netscape Communicator
+plugins for Lin=
ux and Java applets,
+as well as KDE plugins designed using KDE's
+KPart=
s
+technology.
+
+According to Malte, the reason he and Nikolas implemented reaktivate
+is rather simple: it broadens the spectrum of web sites accessible
+to Konqueror, and it was possible.
+ Theoretically,
+Reaktivate can eventually be used to embed any ActiveX control into Konque=
ror.
+Currently, however, not all ActiveX controls are compatible with reaktivat=
e.
+In particular, the Micros=
oft
+Windows Media Player cannot be installed using reaktivate (though it i=
s not known if a player which is already installed will work with
+reaktivate). Thus it is likely there exist other ActiveX controls which
+will not yet work with reaktivate.
+Work is ongoing to increase compatability with other ActiveX controls,
+including the
+Apple QuickTime plugin.
+
+So far, however, reaktivate has been successfully tested with the
+following ActiveX controls:
+
+Install ActiveX controls only from sites that you
+trust.
+Microsoft's ActiveX technology has often been criticized for weak security.
+Those controls are dynamic libraries that are executed exactly like any
+other piece of code installed on the user's system. This means they have
+full access to the file system, the system registry etc. As a means to
+establish the users' trust in the controls a web site wishes to install,
+every ActiveX control is cryptographically signed and carries a certificate
+issued by an authority known to the web browser (like
+VeriSign). A control
+that has no signature or no certificate or if they are invalid will not be
+installed.
+
+With reaktivate the situation is similar: the installed controls can call
+every WinAPI function provided by the WINE libraries and therefore have
+access to WINE's registry and all files visible to the WINE installation.
+The current implementation of reaktivate will ask the user for
+confirmation to install a new control, but it will not check the embedded
+certificate and signature. This is due to technical reasons as well as
+limited time. Therefore we strongly advise to install controls only from
+sites that you trust. To save your files from malicious controls, you mig=
ht
+also consider using this feature only from a seperate user account that
+has no access to your main user's files. Reaktivate will not run for the
+root account.
+
+Source code for reaktivate is freely available under a Free, Open Source
+license from the
+kdenonbeta
+module in
+KDE's CVS repository
+and its mirrors.
+See the KDE website for
+information about how to get a module from CVS. You only need
+the toplevel, admin and reaktivate directories from kdenonbeta. Before
+compiling, get the latest CVS
+version of WINE (a snapshot will likely not be new enough). Next,
+apply all patches from reaktivate/patches-for-wine/ against the WINE
+sources and build/install WINE. Finally, you can build and install
+reaktivate.
+
+Disclaimer: reaktivate is not in any manner sponsored or endorsed
+by, affiliated with, or otherwise related to,
+Microsoft Corporation.
+
+Thanks to Andreas "Dre" Pour and
+Navindra Umanee for assisting in
+drafting this release.
+
+Trademarks Notices.
+KDE, K Desktop Environment and Konqueror are trademarks of KDE e.V.
+Linux is a registered trademark of Linus Torvalds.
+Unix is a registered trademark of The Open Group.
+Microsoft, ActiveX, Microsoft Internet Explorer and Windows Media Player
+are registered trademarks or trademarks of Microsoft Corporation.
+Shockwave is a trademark or registered trademark of Macromedia, Inc. in
+the United States and/or other countries.
+Netscape and Netscape Communicator are trademarks or registered trademarks
+of Netscape Communications Corporation in the United States and other
+countries and JavaScript is a trademark of Netscape Communications Corpora=
tion.
+Apple and Quicktime are trademarks of Apple Computer, Inc., registered in
+the U.S. and other countries.
+All other trademarks and copyrights referred to in this announcement are t=
he property
+of their respective owners.
+ DATELINE MAY 2, 2000 FOR IMMEDIATE RELEASE New Website Dedicated to Users of KDE's Next-Generation
+File Manager/Browser/Universal Viewer May 2, 2000 (New York, New York). The K=
DE
+Team is pleased
+to announce the launch of Konqueror.o=
rg,
+a website devoted to Konqueror, KDE's next-generation, full-featured,
+powerful, flexible, modular and Internet-transparent
+file manager,
+web browser and
+universal document
+viewer. Konqueror, which has been widely acclaimed as a technological
+break-through for the Linux desktop, has a component-based architecture
+which combines the features and functionality of Internet
+Explorer®/Netscape Communicator® and
+Windows Explorer®. Konqueror supports
+all major Internet technologies, including JavaScriptTM,
+Java®, HTML 4.0, CSS-2 (Cascading Style Sheets), SSL
+(Secure Socket Layer for secure communications) and, in the near
+future, Netscape® plugins (for viewing FlashTM,
+RealAudioTM, RealVideoTM and similar technologies).
+In addition,
+Konqueror's network transparency offers seamless support for browsing
+Linux® NFS shares, Windows® SMB shares
+and FTP directories. Konqueror will ship as part of the highly
+anticipated release of KDE 2.0, targeted for mid-summer 2000. Konqueror's developers created
+Konqueror.org to serve as
+Konqueror's official website. There
+users can learn about Konqueror's many powerful features, keep abreast
+of the latest Konqueror news and developments, learn how to download and i=
nstall
+Konqueror and submit comments and questions to Konqueror developers.
+Developers can learn how they can use Konqueror to web-enable their
+applications, how they can enable their applications to serve as a
+Konqueror component and how they can contribute to Konqueror's
+ongoing development. "While the site offers rich content already - including a number of
+mouth-watering screenshots - it is a work in progress and we will certainly
+continually improve it",
+said Chris Lee,
+webmaster and principal architect of the site. "We plan to add tutorials
+and FAQs for users, include a plug-in and component directory and
+supplement the developer's news and tutorials. This will be the
+site to go to for official, as well as unofficial, Konqueror news and
+information." "Konqueror is an extremely promising technology which is poised to
+revolutionize Linux not only on the corporate and consumer desktops but
+also on networked appliances and personal digital assistants", said
+Andreas Pour, President
+of MieTerra LLC. "With the new web site, the Konqueror developers are
+again demonstrating their deep commitment to support their users,
+assist third-party developers and create the world's premier browser." KDE is a collaborative project by hundreds of developers worldwide to
+create a sophisticated, customizable and stable desktop environment
+employing a network-transparent, intuitive user interface. Currently
+development is focused on KDE 2, which will for the first time offer a
+free, open source, fully-featured office suite and which promises to
+make the Linux desktop as easy to use as Windows® and
+the Macintosh®
+while remaining loyal to open standards and empowering developers and users
+with open source software. KDE is working proof of how the open source
+software development model can create technologies on par with and superior
+to even the most complex commercial software. For more information about KDE, please visit KDE's web site. If your country is not listed in the above list please use the form bel=
ow to submit details. No banks known for selected country. Thank you for your submission, it will be checked and will appear on th=
e site shortly.
+This tutorial will demonstrate how to convert an existing KDE application =
(the aKtion! video player) into a component suitable for embedding inside o=
f the Konqueror browser. This is accomplished in four simple steps with cop=
ious code listings and explanations.
+
+This tutorial is Copyright (C) 2000 Kurt Granroth
+<granroth@kde.org>.
+All rights reserved.
+
+1.0 (Jan 03, 2000) - Initial Version
+Most steps in the tutorial will have at least four sections:
+Line By Line
+Visible Result
+Practical Matters
+Every now and then, a point will come up that the author thinks is
+very important to remember. This information will often be repeated
+in a small box like so:
+
+Most sections will have quite a bit of code listed. Individual lines
+will usually be listed like so:
+
+Listings that exceed a few lines of code (entire files, for instance)
+will be displayed in a box as shown below. The lines that the author
+feels are important will be highlighted in bold.
+
+ Listing Description
+
+If you have used konqueror at all, you have no doubt noticed its
+ability to "embed" components for viewing certain types of files. The
+two best known examples are viewing images using the embedded kview
+and viewing postscript or PDF files using kghostview.
+
+The technology behind the embedding is pretty impressive... but the
+authors took great pains to make the API as easy to use as possible.
+In fact, this tutorial will show you just how incredibly easy it is to
+convert an existing application into an embedded component. It will
+take exactly four tiny steps!
+
+The four steps are as follows:
+
+It took this author exactly 15 minutes to convert the example
+application to an embedded component.. and it took that long only
+because of some quirks in the existing app. The conversion to
+KParts was trivial.
+
+The application that this tutorial will use as it's example is
+'aKtion!' aKtion is a KDE video player based on xanim. It can play
+most common forms of animation (AVI, Quicktime, MPEG, etc). With the
+conclusion of this tutorial, it will be able to play those animations
+inside of Konqueror!
+
+There is one small catch to this: you must start with the version of
+aKtion supplied with this tutorial. There are two "official" versions
+of aKtion. One is still based on KDE 1.x and is not suitable for
+KParts. The other is in kdemultimedia and is already converted to
+KParts! So, if you want to follow along, use
+this version.
+
+The first step is to get the aKtion source package compiled and
+installed just to test what it currently does. This assumes that you
+have a working KDE2 development system. If you do not, read this
+first!
+
+Follow these steps:
+
+Now find an animation file somewhere -- either on your local hard
+drive or on the web and click on it. You should see that Konqueror
+will download the file (if it is remote) and pass it to aKtion to
+play. Pretty standard, huh?
+
+The first real step to converting an existing application to an
+embedded component is to turn it into a shared library. An important
+thing to keep in mind is that this will not change the way you use the
+program currently. There will still be a standalone executable called
+aktion that you can run. The only difference at this point
+is that the aktion executable won't have all of its code
+compiled in -- it will load it all dynamically.
+
+A second important thing to note is that this does not require
+any code changes. The only changes necessary are are a few
+simple lines in the Makefile. To be specific, the file to modify
+isn't Makefile -- it is Makefile.am. This is
+because aKtion, like all good KDE programs, uses the automake/autoconf
+system to automate Makefile creation. In this system,
+Makefile.in and Makefile are both created based on
+Makefile.am
+
+Here are the lines from the Makefile that you will need to change.
+
+Those lines basically say "to create the binary program 'aktion', use
+the source files specified with aktion_SOURCES, the link flags
+specified with aktion_LDFLAGS, and the libraries specified with
+aktion_LDADD"
+
+As mentioned earlier, you need to change this so that the Makefile
+generates a shared library instead of one standalone executable.
+
+Here is the result of the replacement:
+
+What is happening in the above lines? Here is what each group means:
+
+These two lines detail what are the outputs. Specifically, they
+are an executable (specified with 'bin_PROGRAMS') called aktion and
+a shared library (specified with 'lib_LTLIBRARIES') called
+libaktion.la.
+
+All Makefile variables after these will depend on those names. For
+instance, all variables that pertain to the executable will be in
+the form 'aktion_SOMEVARIABLE' and all variables that apply to the
+shared library will look like 'libaktion_la_SOMEVARIABLE'
+
+You may notice that there are only three changes to the variables,
+here.
+
+First: They are all preceded with libaktion_la_ instead of aktion_.
+Second: The LDFLAGS variable has the additional '-version-info
+ 1:0:0 -module'
+Third: The LDADD variable is now called LIBADD
+Since all of the code is now in a shared library, the standalone
+executable now needs only a main() function (found in main.cpp in
+aKtion) and a pointer to the shared library.
+
+That's it. If you build and install this, you'll notice that it works
+exactly the same as before. The only differences you should see is
+that the 'aktion' file is much smaller than before and there is an
+additional library in $KDEDIR/lib
+
+
+
+If your own application uses a standard automake like the one above,
+then converting it to a shared library uses exactly the same steps
+(and code). There is nothing specific to aKtion in this procedure.
+
+In this step, you will convert aKtion into an embedded component using
+"standard" boilerplate code. After this step, when you click on an
+animation file, it will embed aKtion instead of spawning it off in a
+separate process. Since no aKtion specific code is used in this step,
+it won't actually play the animation -- that's reserved for
+step 3.
+
+The code in this step is completely generic. You can drop it into any
+application with no modifications!
+
+You will do this in three baby steps:
+
+Add the following two files to your project with no modifications.
+
+All KParts components need to construct two classes: A factory
+class derived from KLibFactory and a view class derived from
+KParts::ReadOnlyPart. In this tutorial, they are:
+
+The factory object is responsible for instantiating the components and
+returning a pointer to them. This is how Konqueror gets a reference
+to your component.
+
+The entire process start here:
+
+This is the first function that is called in the loading process. The
+form of the name is void *init_libyourapp() Keep the
+part after init_ in mind -- that is the string you will use in the
+X-KDE-Library entry later on. This function
+always returns a new instance of your factory object
+
+You also need to overload two functions in the factory class:
+create() and instance().
+
+
+The create() function is called each time your component is
+needed. It is responsible for instantiating a new view object and
+returning it.
+
+The instance() function returns an instance of type
+KInstance. The above code is very standard. Just use it.
+
+There are six methods that you need to overload for your view class...
+but a lot of the code is very cut and paste. The code in
+bold (related to QLabel) is the only application specific
+code in the view class! Here is what each function is doing:
+
+The constructor is responsible for initializing your internal
+variables as well as your "workhorse" object. Typically, you do not
+do much processing inside of your KParts derived class. Rather,
+you have an existing class that has all of the functionality and you
+just use that inside of your view class. In this example, a QLabel
+label is used just so there is something displayed when you
+run it.
+
+Notice that a blank "canvas" is the main widget. This is because
+Konqueror will resize the component to the full width of the view. In
+many cases, you will want to control the size of your component;
+both the QLabel and the actual aKtion component are examples of this.
+In this case, you set a blank widget as the resized widget and just
+use that as the parent of your "real" class.
+
+The openFile method is arguably the most important method in
+this class. It is what is called when Konqueror wants your
+application to display a file. There is a lot going on behind the
+scenes of this function, though. The KParts framework itself handles
+all file downloads. That means that by the time openFile is
+called, the file to play is already local.
+
+Note that if your application can handle remote URLs already, then you
+can overload the openURL function instead of
+openFile
+
+The m_file variable is set by the KParts framework. It is a
+QString with a path (not a URL) to a local file. If the original URL
+was a local file, then it will be a path to the actual file. If it
+the original URL was remote, then the path will likely be in the /tmp
+directory.
+
+The two parts files that you just added to the project need to be added
+to the Makefile just like any other file.. and are done so above. You
+also need to link to the KParts library since we make extensive use of
+it now.
+
+So far, you've made all the changes necessary to make aKtion an
+embedded component (albeit one that doesn't do much).. but there is no
+way (yet) for Konqueror to know that when it clicks on a Quicktime
+file, it should embed the component instead of spawning an external
+viewer.
+
+This is where the aktion.desktop file comes in to play. When you
+install the desktop file, the KDE mimetypes system becomes aware of
+all of its fields (if it doesn't do it immediately, you can force a
+reload by running the kbuildsycoca command). The three that
+matter in this case or the MimeType, ServiceTypes, and
+X-KDE-Library entries.
+These lines tell the mimetypes system that aKtion can handle the
+mimetypes specified in MimeType; it implements an embedded component
+of type Browser/View; and the name of the component is libaktion.
+When Konqueror is asked to execute a Quicktime file, it asks the
+mimetype system for a corresponding app that can handle
+video/quicktime. It also asks if the app can handle
+"Browser/View" embedding. When a pointer to aKtion is returned, it
+uses X-KDE-Library to tell it that the component it needs to load is
+'libaktion'.
+
+If your own application uses a standard automake like the one above,
+then converting it to a shared library uses exactly the same steps
+(and code). There is little specific to aKtion in this procedure.
+
+You're on the home stretch now. You have a fully working embedded
+component -- you just need to make it do something!
+
+This step is one of the shortest ones in this tutorial but will likely
+be the hardest in real use. This is where you need to connect your
+applications functionality to the KParts interface.
+
+In the case of aKtion, nearly all of the actual "playing" code is
+encapsulated in the KXAnim class. This made it very easy to use in a
+KParts interface. All that was needed was to replace the QLabel
+example with KXAnim and everything worked (mostly).
+
+And this actually plays the file. Some hackery needed to be done to
+get it to play due to some timing problems with KXAnim.
+
+And that's pretty much it!
+
+
+As said earlier, this is one of the shorted and simplest steps in this
+example.. but could easily be the hardest in your own application. It
+all depends on how much functionality is encapsulated in your "main"
+view object.
+
+The key to this step is to have one view object already in your
+application in which all processing of the file takes place. If you
+have several classes that all depend on each other with no central
+"viewing" object, then you will have problems.
+
+As a case study, KGhostView was one of the hardest programs to port to
+the KParts system. The reason for this was that all of the UI
+elements were scattered all over the application. There was no one
+coherent interface to the UI aspects -- essentially no way for a third
+party app to "view" the same thing that KGhostView was.
+
+The solution to this was to create a view class that combined most of
+the required UI elements in one place. After this was done, it was
+trivial to plug this view into the KParts system.
+
+This is done by creating "actions" corresponding to those, well,
+actions. The resulting actions (encapsulated in the KAction class)
+can then be "plugged" or unplugged into toolbar or menubars or pretty
+much anywhere else. The location of these actions will be described
+in an XML file.
+
+As with everything else, this takes only a few lines of code.
+
+Here is the aktion_part.h file with the necessary changes in bold:
+
+ aktion_part.h
+
+
+Here is the aktion_part.cpp file with changes in bold:
+
+
+1. Create a KAction (or derived class) for each real action
+
+Text to display - "Play"
+As a side note, KDE has a number of standard actions available for
+use. They take advantage of the fact that certain actions (like
+"quit", "open document", etc) have standard text, icons, and keyboard
+accelerators. These parameters are encapsulated into KStdAction
+actions. You, as a developer using them, need only supply a SLOT to
+connect to. aKtion does not use any standard actions, hence they are
+not used here.
+
+The second step (connecting the action to our widgets) is accomplished
+with in this file:
+
+
+ aktion_part.rc
+
+You can see that each action has a corresponding Action item in the
+XML. The names for the Menu and ToolBars are either specific or
+generic depending on what you want them to do. If you use a reserved
+name like "view" or "edit", then your actions will be plugged into an
+existing menu or toolbar. If you use a new name like
+"Aktion-ToolBar", then you will get a new toolbar.
+
+You'll also need to add the following lines to your Makefile.am:
+
+That's pretty much it!
+
+
+
+
+
+
+To recap, the four stages are:
+
+
+ This requires only a change to the Makefile.am file
+
+
+
+ This requires two files to be added to the project, and two minor
+ changes to the Makefile.am and your application's .desktop file
+
+
+
+ This is probably the hardest step.. where you integrate your
+ existing code into the KParts interface.
+
+
+
+ This is where you insert items into the toolbar and edit menu to
+ allow the user to control your component.
+
+
+In general, you can copy over the files and just change all references
+to 'aktion' and 'Aktion' to your own app naming convention.
+
+The only thing that is totally app specific is in the AktionPart
+class. Wherever you see references to the widget object,
+that's where you need to insert your app specific things.
+
+
+
+
+
+ If you wonder why Konqueror isn't embedding your app, it's almost
+ surely because something is wrong with your .desktop file. Pay
+ close attention to that section in the tutorial.
+
+
+
+ This is probably the most important point in this tutorial. If
+ you app already has a existing view class that provides a
+ coherent interface to your apps UI functionality, then everything
+ is trivial. If your code is ad-hoc, then this could be a
+ nightmare.
+
+
+Original location of this tutorial:
+
+Tutorial pages packaged up (no source)
+
+Source package for the base aKtion 1.99:
+
+Source package for the finished (component) aKtion 1.99:
+
+Official aKtion! homepage
+
+Sample AVI file for testing (needs to be unzipped)
+
+Plugins needed for xanim/aktion to play sample AVI file (Intel
+Indeo 4.1)
+
+
+
diff --git a/css/index.php b/css/index.php
new file mode 100644
index 0000000..79b7158
--- /dev/null
+++ b/css/index.php
@@ -0,0 +1,676 @@
+
+
+ Compiled by Allan Sandfeld.
+ Konqueror uses OpenSSL, Copyright © 1995-1998 Eric Young (eay crypts=
oft.com),
+ see www.openssl.org.
+
+ For any question about Konqueror, please mail
+the developer's mailing list, kfm-devel (mention whether you're subscr=
ibed to the
+list when posting to it, see here for subscribing)
+instead of the individual developers.
+
+ There's an archive of the developer's
+ mailing list.
+
+ Note that for bug reports or feature requests, you should rather
+ use the bug-tracking system.
+ Konqueror is part of KDE's "kdebase" package. The HTML render=
ing engine khtml is
+together with all other needed KDE libraries contained in KDE's "kdel=
ibs" package. To install Konqueror please refer to the
+pages on how to install KDE.
+ The Konqueror/Embedded project attempts to build up a special version o=
f the
+web browsing component of the KDE browser Konqueror (in particular its html
+rendering engine khtml and its io subsystem) . Konqueror/Embedded runs on =
the
+Qt/Embedded platform for embedded devices, in an environment without a KDE
+installation or a X windowing system, as one static binary, being as small=
as
+possible while still providing all essential features of a web browser, =
+including =
+
+Another key feature is the fact that Konq/E is not a fork of the
+browser components of KDE but it is part of the actual build process
+to copy over the original sources of the rendering engine, the HTTP client
+implementation and various support classes and compile them without =
+modification. This is accomplished by providing drop-in replacement classe=
s,
+providing source compatibility to the original code, while being optimized
+in size and functionality for Konq/E . This has the tremendous advantage of
+being able to gain from the latest bugfixes and improvements of the
+original browser, for free!
+KDE Web Browser Konqueror Gets Activ(eX)ated
+Successes and Limitations
+
+
+Control Status
+ Test-URL Screenshots =
tr>
+
+
+ Macromedia
+Shockwave Flash 5
+ No known problems.
+ Click here
+ [1], [2], [3], [4], and [5]
+
+
+
+Macromedia
+Shockwave Player 8
+ Some files require the use of a native msvcrt.dll instead of the
+ one provided by winelib. The post-installation dialog is function=
al
+ but hard to decipher due to drawing problems. Some movies do not
+ display properly (only black stripes and rects are shown)
+ Click here
+ [1]
+
+
+LivePics
+ Clicking the "info" button in the toolbar has no result, everythi=
ng
+ else works fine.
+ Click here
+ [1] and [2]
+ Note on Security
+Installing Reaktivate
+
+
+Konqueror.org Launches
+About KDE
+
+
+
+
+
+
diff --git a/banking/admin.php b/banking/admin.php
new file mode 100644
index 0000000..2af2fb0
--- /dev/null
+++ b/banking/admin.php
@@ -0,0 +1,61 @@
+
+
+
+" . $row['country'] . " - " . $row['name'] . "";
+?>
+
+
+
+
+
diff --git a/banking/authorise.inc b/banking/authorise.inc
new file mode 100644
index 0000000..bea84d7
--- /dev/null
+++ b/banking/authorise.inc
@@ -0,0 +1,38 @@
+
diff --git a/banking/common.inc b/banking/common.inc
new file mode 100644
index 0000000..5533d7c
--- /dev/null
+++ b/banking/common.inc
@@ -0,0 +1,58 @@
+
diff --git a/banking/edit.php b/banking/edit.php
new file mode 100644
index 0000000..22cd93e
--- /dev/null
+++ b/banking/edit.php
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+Press Contacts:
+
+
+United States:
+
+Kurt Granroth
+granroth@kde.org
+(1) 480 732 1752
+
+
+Europe (French and English):
+
+David Faure
+faure@kde.org
+(44) 1225 471 300
+Replace the following details...
+
+\n";
+ echo "\n \n";
+ $sql =3D "SELECT banks.id, banks.country, banks.url, banks.name, compat.c=
omment, compat.kde30, compat.kde31, compat.kde32 FROM banks, compat WHERE b=
anks.id =3D '$selected' AND compat.bank =3D '$selected'";
+ $query =3D mysql_query($sql);
+ $row =3D mysql_fetch_array($query);
+ echo " \nBank
\nComment
\nKDE 3.0
\nKDE 3.1
\nKDE 3=
.2
\n";
+ echo " \n";
+ echo "\n";
+?>
+
+" . stripslas=
hes($row['name']) . " \n";
+ echo "" . stripslashes($row['comment']) . " \n";
+ echo "" . parseCompat($row['kde30']) . " \n";
+ echo "" . parseCompat($row['kde31']) . " \n";
+ echo "" . parseCompat($row['kde32']) . " \n";
+ echo "...with the new details
+
+
+
+
+
diff --git a/banking/index.php b/banking/index.php
new file mode 100644
index 0000000..eff572e
--- /dev/null
+++ b/banking/index.php
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+Country Selection
+
+
+
+Statistics
+
+
+
+
+
+
+
+
+";
+ $sql =3D "";
+ if ($selected =3D=3D "all")
+ {
+ $sql =3D "SELECT DISTINCT country FROM banks ORDER BY country";
+ }
+ else
+ {
+ $sql =3D "SELECT DISTINCT country FROM banks WHERE country =3D '$selecte=
d'";
+ }
+ $query =3D mysql_query($sql);
+ $num =3D mysql_num_rows($query);
+
+ if ($num =3D=3D 0)
+ {
+ echo "
+
+
+
+
+
+Version
+
+
+Does not work
+
+
+UA change
+
+
+Works mostly
+
+
+Works perfectly
+
+
+
+
+
+
+Konqueror 3.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \n";
+ echo "" . country($row['country']) . "
<=
/td>\n \n";
+ $sql2 =3D "SELECT banks.id, banks.country, banks.url, banks.name, compat=
.comment, compat.kde30, compat.kde31, compat.kde32 FROM banks, compat WHERE=
banks.id =3D compat.bank AND country =3D '$country' ORDER BY banks.name";
+ $query2 =3D mysql_query($sql2);
+ $alternate =3D false;
+ while($row2 =3D mysql_fetch_array($query2))
+ {
+ $alternate =3D !$alternate;
+ if ($alternate)
+ {
+ $color =3D "newsbox2";
+ }
+ else
+ {
+ $color =3D "newsbox1";
+ }
+ echo " \nBank
\nComment
\nKDE 3.0
\nKDE 3.1
\nKDE =
3.2
\nEdit
\n";
+ echo " \n";
+ }
+ }
+ echo "\n";
+?>
+
+
+
+" . strips=
lashes($row2['name']) . " \n";
+ echo "" . stripslashes($row2['comment']) . " \n";
+ echo "" . parseCompat($row2['kde30']) . " \n";
+ echo "" . parseCompat($row2['kde31']) . " \n";
+ echo "" . parseCompat($row2['kde32']) . " \n";
+ echo "Edit=
\n";
+ echo "Add New Entry
+
+
+
+
diff --git a/banking/submit.php b/banking/submit.php
new file mode 100644
index 0000000..f6a8f4d
--- /dev/null
+++ b/banking/submit.php
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+Preface: Tutorial Conventions
+
+Copyright
+Version History
+
+1.1 (Jan 25, 2000) - Converted to KParts
+1.2 (Mar 03, 2000) - Change to new KParts::BrowserExtension
+Sections
+
+The Plan
+This section tells you what you will be doing in this step
+
+This section will go into the important lines of code in some detail.
+It will address only those lines of code that need explaining.
+This section contains a screenshot of the example app as it should
+appear after the current step
+If you are reading this tutorial, it is likely because you want to use
+this knowledge in your own application. Tutorials are necessarily
+very dependent on one example application, however. This section
+tries to bring to light any practical matters that you should keep in
+mind when transferring the procedure used for the example app to to
+your own app.Things to Remember
+
+
+
+
+
+
+Thing To Remember:
+Important points will often appear in boxes like this
+Code Listing
+
+some_code =3D new IndividualLine(of_code);
+
+
+
+
+
+
diff --git a/componentstutorial/menu.inc b/componentstutorial/menu.inc
new file mode 100644
index 0000000..9d15318
--- /dev/null
+++ b/componentstutorial/menu.inc
@@ -0,0 +1,9 @@
+appendLink("Part 1", "index.php");
+$this->appendLink("Part 2", "page2.php");
+$this->appendLink("Part 3", "page3.php");
+$this->appendLink("Part 4", "page4.php");
+$this->appendLink("Part 5", "page5.php");
+$this->appendLink("Part 6", "page6.php");
+$this->appendLink("Part 7", "page7.php");
+?>
diff --git a/componentstutorial/page2.php b/componentstutorial/page2.php
new file mode 100644
index 0000000..a6abd57
--- /dev/null
+++ b/componentstutorial/page2.php
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+class ExampleClass: public ParentClass
+{
+ Q_OBJECT
+public:
+ ExampleClass(QWidget *parent, const char *name);
+ virtual ~AktionKonqView();
+
+ virtual void someImportantMethod();
+
+private:
+ QWidget *widget;
+
+ NewWidget *m_newWidget;
+};
+
+Introducing aKtion!
+
+Introduction
+
+
+
+Introducing aKtion!
+Getting Started
+
+
+
+
+
+% gzip -dc aktion-1.99.tar.gz | tar xvpf -
+
+
+
+% cd aktion-1.99 && ./configure && make && make in=
stall
+
+Converting aKtion to a Shared Library
+
+The Plan
+
+
+
+
+
+
+Thing To Remember:
The only file that you need to
+change is Makefile.am
+
+
+
+
+
+
+
+# this is the program that gets installed. it's name is used for all
+# of the other Makefile.am variables
+bin_PROGRAMS =3D aktion
+
+aktion_SOURCES =3D main.cpp aktionConf.cpp capture.cpp \
+ aktionVm.cpp kxanim.cpp principal.cpp
+aktion_LDFLAGS =3D $(all_libraries) $(KDE_RPATH)
+aktion_LDADD =3D $(LIB_KFILE) $(LIBVM)
+
+
+
+
+
+
+
+
+
+
+
+
+# since the "real" aktion is a library, we start constructing the
+# stuff for it
+lib_LTLIBRARIES =3D libaktion.la
+bin_PROGRAMS =3D aktion
+
+libaktion_la_SOURCES =3D main.cpp aktionConf.cpp capture.cpp \
+ aktionVm.cpp kxanim.cpp principal.cpp
+libaktion_la_LDFLAGS =3D $(all_libraries) -version-info 1:0:0 -module
+libaktion_la_LIBADD =3D $(LIB_KFILE) $(LIBVM)
+
+aktion_LDFLAGS =3D $(KDE_RPATH)
+aktion_SOURCES =3D main.cpp
+aktion_LDADD =3D libaktion.la
+
+
+Line by Line Analysis
+
+
+
+
+bin_PROGRAMS =3D aktion
+lib_LTLIBRARIES =3D libaktion.la
+
+
+
+
+libaktion_la_SOURCES =3D main.cpp aktionConf.cpp capture.cpp \
+ aktionVm.cpp kxanim.cpp principal.cpp
+libaktion_la_LDFLAGS =3D $(all_libraries) -version-info 1:0:0 -module
+libaktion_la_LIBADD =3D $(LIB_KFILE) $(LIBVM) -lkparts
+
+
+
+Reason: Everything is a shared library, now.
+
+Reason: Those are standard flags that are needed to create the
+ shared library. You shouldn't have to change them.
+
+Reason: Same reason as the first -- this is a shared library now
+
+
+aktion_LDFLAGS =3D $(KDE_RPATH)
+aktion_SOURCES =3D main.cpp
+aktion_LDADD =3D libaktion.la
+
+
+
+Visible Result
+Practical Matters
+Add Boilerplate KParts Code
+
+The Plan
+
+
+
+
+Add KParts Files
+
+
+
+aktion_part.cpp
+
+
+
+
+#ifndef __aktion_part_h__
+#define __aktion_part_h__
+
+#include <kparts/browserextension.h>
+#include <klibloader.h>
+
+class KInstance;
+class AktionBrowserExtension;
+class QLabel;
+
+class AktionFactory : public KLibFactory
+{
+ Q_OBJECT
+public:
+ AktionFactory();
+ virtual ~AktionFactory();
+
+ virtual QObject* create(QObject* parent =3D 0, const char* name =3D 0,
+ const char* classname =3D "QObject",
+ const QStringList &args =3D QStringList());
+
+ static KInstance *instance();
+
+private:
+ static KInstance *s_instance;
+};
+
+class AktionPart: public KParts::ReadOnlyPart
+{
+ Q_OBJECT
+public:
+ AktionPart(QWidget *parent, const char *name);
+ virtual ~AktionPart();
+
+protected:
+ virtual bool openFile();
+
+private:
+ QLabel *widget;
+ AktionBrowserExtension *m_extension;
+};
+
+class AktionBrowserExtension : public KParts::BrowserExtension
+{
+ Q_OBJECT
+ friend class AktionPart;
+public:
+ AktionBrowserExtension(AktionPart *parent);
+ virtual ~AktionBrowserExtension();
+};
+
+#endif
+
+
+
+
+
+
+
+
+
+#include "aktion_part.h"
+
+#include <kinstance.h>
+#include <klocale.h>
+#include <kaboutdata.h>
+
+#include <qlabel.h>
+
+extern "C"
+{
+ /**
+ * This function is the 'main' function of this part. It takes
+ * the form 'void *init_lib<library name>() It always returns a
+ * new factory object
+ */
+ void *init_libaktion()
+ {
+ return new AktionFactory;
+ }
+};
+
+/**
+ * We need one static instance of the factory for our C 'main'
+ * function
+ */
+KInstance *AktionFactory::s_instance =3D 0L;
+
+AktionFactory::AktionFactory()
+{
+}
+
+AktionFactory::~AktionFactory()
+{
+ if (s_instance)
+ delete s_instance;
+
+ s_instance =3D 0;
+}
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const ch=
ar*,
+ const QStringList& )
+{
+ QObject *obj =3D new AktionPart((QWidget*)parent, name);
+ emit objectCreated(obj);
+ return obj;
+}
+
+KInstance *AktionFactory::instance()
+{
+ if ( !s_instance )
+ {
+ KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+ s_instance =3D new KInstance(&about);
+ }
+ return s_instance;
+}
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+ : KParts::ReadOnlyPart(parent, name)
+{
+ setInstance(AktionFactory::instance());
+
+ // create a canvas to insert our widget
+ QWidget *canvas =3D new QWidget(parent);
+ canvas->setFocusPolicy(QWidget::ClickFocus);
+ setWidget(canvas);
+
+ m_extension =3D new AktionBrowserExtension(this);
+
+ // as an example, display a blank white widget
+ widget =3D new QLabel(canvas);
+ widget->setText("aKtion!");
+ widget->setAutoResize(true);
+ widget->show();
+}
+
+AktionPart::~AktionPart()
+{
+ closeURL();
+}
+
+bool AktionPart::openFile()
+{
+ widget->setText(m_file);
+
+ return true;
+}
+
+bool AktionPart::closeURL()
+{
+ return true;
+}
+
+AktionBrowserExtension::AktionBrowserExtension(AktionPart *parent)
+ : KParts::BrowserExtension(parent, "AktionBrowserExtension")
+{
+}
+
+AktionBrowserExtension::~AktionBrowserExtension()
+{
+}
+
+Line By Line: Factory
+
+#include <kparts/browserextension.h>
+#include <klibloader.h>
+class AktionFactory : public KLibFactory
+class AktionPart : public KParts::ReadOnlyPart
+
+
+ void *init_libaktion()
+ {
+ return new AktionFactory;
+ }
+
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const ch=
ar*,
+ const QStringList& )
+{
+ QObject *obj =3D new AktionPart((QWidget*)parent, name);
+ emit objectCreated(obj);
+ return obj;
+}
+
+
+KInstance *AktionFactory::instance()
+{
+ if ( !s_instance )
+ {
+ KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+ s_instance =3D new KInstance(&about);
+ }
+ return s_instance;
+}
+
+
+
+
+
+
+
+Things To Remember:
+From a practical point of view, all of the factory code is cut and
+paste. Change the references to aktion and Aktion to your own naming
+convention and you are set (e.g., s/aktion/yourapp,
+s/Aktion/YourApp)
+Line By Line: View
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+ : KParts::ReadOnlyPart(parent, name)
+{
+ setInstance(AktionFactory::instance());
+
+ // create a canvas to insert our widget
+ QWidget *canvas =3D new QWidget(parent);
+ canvas->setFocusPolicy(QWidget::ClickFocus);
+ setWidget(canvas);
+
+ m_extension =3D new AktionBrowserExtension(this);
+
+ // as an example, display a blank white widget
+ widget =3D new QLabel(this);
+ widget->setText("aKtion!");
+ widget->setAutoResize(true);
+ widget->show();
+}
+
+
+bool AktionPart::openFile()
+{
+ widget->setText(m_file);
+
+ return true;
+}
+
+
+ widget->setText(m_file);
+
+
+
+
+
+
+
+Things To Remember:
+Most of the parts code is cut and paste, also. Just rename the
+references to "aktion" and "Aktion" and insert your own widget in the
+place of widget and you're set.
+Building the Component
+Makefile.am
+
+
+
+
+
+
+# since the "real" aktion is a library, we start constructing the
+# stuff for it
+bin_PROGRAMS =3D aktion
+lib_LTLIBRARIES =3D libaktion.la
+
+libaktion_la_SOURCES =3D main.cpp aktionConf.cpp capture.cpp \
+ aktionVm.cpp kxanim.cpp principal.cpp \
+ aktion_part.cpp
+libaktion_la_LDFLAGS =3D $(all_libraries) -version-info 1:0:0 -module
+libaktion_la_LIBADD =3D $(LIB_KFILE) $(LIBVM) -lkparts
+
+aktion_SOURCES =3D main.cpp
+aktion_LDADD =3D libaktion.la
+
+# these are the headers for your project
+noinst_HEADERS =3D principal.h aktionConf.h kxanim.h capture.h aktionVm.h \
+ aktion_part.h
+
+
+
+
+
+
+
+Things To Remember:
+To build an embedded component, you need only to add:
+1. Your "parts" files to _SOURCES and _HEADERS
+2. The -lkparts library to _LIBADD
+Letting "The System" Know of the Component
+aktion.desktop
+
+
+
+
+
+
+[Desktop Entry]
+Name=3DaKtion!
+Exec=3Daktion %i %m -caption "%c"
+Icon=3Daktion
+MimeType=3Dvideo/mpeg;video/x-msvideo;video/quicktime;video/x-flic;
+Type=3DApplication
+DocPath=3Daktion/aktion.html
+Comment=3DVideo Player
+Comment[es]=3DReproductor de videos
+Terminal=3D0
+ServiceTypes=3DBrowser/View
+X-KDE-Library=3Dlibaktion
+
+
+MimeType=3Dvideo/mpeg;video/x-msvideo;video/quicktime;video/x-flic;
+ServiceTypes=3DBrowser/View
+X-KDE-Library=3Dlibaktion
+
+
+
+
+
+
+
+Things To Remember:
+To "enable" your embedded component, you need to have a .desktop
+file with:
+1. A MimeType entry with your supported mimetypes
+2. A ServiceTypes=3DBrowser/View entry (exactly like that)
+3. A X-KDE-Library=3Dlibyourapp entry
+Visible Result
+
+
+Practical Matters
+Making the Component Functional
+
+The Plan
+The Files
+ aktion_part.h
+
+
+
+ aktion_part.cpp
+
+
+
+
+#ifndef __aktion_part_h__
+#define __aktion_part_h__
+
+#include <kparts/browserextension.h>
+#include <klibloader.h>
+
+class KInstance;
+class KXAnim;
+class AktionBrowserExtension;
+
+class AktionFactory : public KLibFactory
+{
+ Q_OBJECT
+public:
+ AktionFactory();
+ virtual ~AktionFactory();
+
+ virtual QObject* create(QObject* parent =3D 0, const char* name =3D 0,
+ const char* classname =3D "QObject",
+ const QStringList &args =3D QStringList());
+
+ static KInstance *instance();
+
+private:
+ static KInstance *s_instance;
+};
+
+class AktionPart: public KParts::ReadOnlyPart
+{
+ Q_OBJECT
+public:
+ AktionPart(QWidget *parent, const char *name);
+ virtual ~AktionPart();
+
+ virtual bool closeURL();
+
+protected:
+ virtual bool openFile();
+
+protected slots:
+ void slotPlay();
+ void slotStop();
+
+private:
+ KXAnim *widget;
+};
+
+#endif
+
+
+
+
+
+
+
+
+
+#include "aktion_part.h"
+
+#include <kinstance.h>
+#include <klocale.h>
+#include <kaboutdata.h>
+
+#include "kxanim.h"
+#include <qtimer.h>
+
+extern "C"
+{
+ /**
+ * This function is the 'main' function of this part. It takes
+ * the form 'void *init_lib<library name>()'. It always returns=
a
+ * new factory object
+ */
+ void *init_libaktion()
+ {
+ return new AktionFactory;
+ }
+};
+
+/**
+ * We need one static instance of the factory for our C 'main'
+ * function
+ */
+KInstance *AktionFactory::s_instance =3D 0L;
+
+AktionFactory::AktionFactory()
+{
+}
+
+AktionFactory::~AktionFactory()
+{
+ if (s_instance)
+ delete s_instance;
+
+ s_instance =3D 0;
+}
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const ch=
ar*,
+ const QStringList& )
+{
+ QObject *obj =3D new AktionPart((QWidget*)parent, name);
+ emit objectCreated(obj);
+ return obj;
+}
+
+KInstance *AktionFactory::instance()
+{
+ if ( !s_instance )
+ {
+ KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+ s_instance =3D new KInstance(&about);
+ }
+ return s_instance;
+}
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+ : KParts::ReadOnlyPart(parent, name)
+{
+ setInstance(AktionFactory::instance());
+
+ // create a canvas to insert our widget
+ QWidget *canvas =3D new QWidget(parent);
+ canvas->setFocusPolicy(QWidget::ClickFocus);
+ setWidget(canvas);
+
+ // create our animation widget
+ widget =3D new KXAnim(canvas);
+ widget->setLoop(true);
+ widget->show();
+}
+
+AktionPart::~AktionPart()
+{
+ slotStop();
+}
+
+bool AktionPart::openFile()
+{
+ widget->setFile(m_file);
+ widget->stop();
+ widget->show();
+ QTimer::singleShot(2000, this, SLOT(slotPlay()));
+
+ return true;
+}
+
+bool AktionPart::closeURL()
+{
+ slotStop();
+ return true;
+}
+
+void AktionPart::slotPlay()
+{
+ widget->play();
+}
+
+void AktionPart::slotStop()
+{
+ widget->stop();
+}
+
+Line by Line
+
+There isn't much non-aKtion specific stuff to show in this step. The
+two major chunks of code are in the constructor and in the
+openFile method.
+
+
+// create our animation widget
+widget =3D new KXAnim(canvas);
+widget->setLoop(true);
+widget->show();
+
+
+This creates our animation widget and sets some default parameters.
+
+
+widget->setFile(m_file);
+widget->stop();
+widget->show();
+QTimer::singleShot(2000, this, SLOT(slotPlay()));
+
+
+Visible Result
+
+
+
+Practical Matters
+
+
+
+
+
+
+Things To Remember:
+The ease of integrating your application into the KParts
+architecture depends almost entirely on how encapsulated your UI
+elements are into one coherent interface. The less coherent, the more
+problems you will have.
+Finishing Off With KAction
+
+The Plan
+The aKtion embedded component needs only one thing, now -- it's Play,
+Stop, Forward, and Backward buttons displayed on Konqueror's toolbar
+and View menu.
+
+
+
+
+
+
+
+#ifndef __aktion_part_h__
+#define __aktion_part_h__
+
+#include <kparts/browserextension.h>
+#include <klibloader.h>
+
+class KInstance;
+class KXAnim;
+class AktionBrowserExtension;
+class KAction;
+
+class AktionFactory : public KLibFactory
+{
+ Q_OBJECT
+public:
+ AktionFactory();
+ virtual ~AktionFactory();
+
+ virtual QObject* create(QObject* parent =3D 0, const char* name =3D 0,
+ const char* classname =3D "QObject",
+ const QStringList &args =3D QStringList());
+
+ static KInstance *instance();
+
+private:
+ static KInstance *s_instance;
+};
+
+class AktionPart: public KParts::ReadOnlyPart
+{
+ Q_OBJECT
+public:
+ AktionPart(QWidget *parent, const char *name);
+ virtual ~AktionPart();
+
+ virtual bool closeURL();
+
+protected:
+ virtual bool openFile();
+
+protected slots:
+ void slotPlay();
+ void slotStop();
+ void slotForward();
+ void slotBackward();
+
+private:
+ KXAnim *widget;
+ AktionBrowserExtension *m_extension;
+
+ KAction *m_playAction;
+ KAction *m_stopAction;
+ KAction *m_forwardAction;
+ KAction *m_backwardAction;
+};
+
+class AktionBrowserExtension : public KParts::BrowserExtension
+{
+ Q_OBJECT
+ friend class AktionPart;
+public:
+ AktionBrowserExtension(AktionPart *parent);
+ virtual ~AktionBrowserExtension();
+};
+
+#endif
+
+
+
+
+
+
+
+Thing To Remember:
+Each real action ("play", "cut", "quit") in your application
+should have exactly one corresponding KAction
+
+
+ aktion_part.cpp
+
+
+
+
+
+
+
+#include "aktion_part.h"
+
+#include <kinstance.h>
+#include <klocale.h>
+#include <kaboutdata.h>
+#include <kaction.h>
+
+#include "kxanim.h"
+#include <qtimer.h>
+
+extern "C"
+{
+ /**
+ * This function is the 'main' function of this part. It takes
+ * the form 'void *init_lib<library name>()'. It always returns=
a
+ * new factory object
+ */
+ void *init_libaktion()
+ {
+ return new AktionFactory;
+ }
+};
+
+/**
+ * We need one static instance of the factory for our C 'main'
+ * function
+ */
+KInstance *AktionFactory::s_instance =3D 0L;
+
+AktionFactory::AktionFactory()
+{
+}
+
+AktionFactory::~AktionFactory()
+{
+ if (s_instance)
+ delete s_instance;
+
+ s_instance =3D 0;
+}
+
+QObject *AktionFactory::create(QObject *parent, const char *name, const ch=
ar*,
+ const QStringList& )
+{
+ QObject *obj =3D new AktionPart((QWidget*)parent, name);
+ emit objectCreated(obj);
+ return obj;
+}
+
+KInstance *AktionFactory::instance()
+{
+ if ( !s_instance )
+ {
+ KAboutData about("aktion", I18N_NOOP("aKtion"), "1.99");
+ s_instance =3D new KInstance(&about);
+ }
+ return s_instance;
+}
+
+AktionPart::AktionPart(QWidget *parent, const char *name)
+ : KParts::ReadOnlyPart(parent, name)
+{
+ setInstance(AktionFactory::instance());
+
+ // create a canvas to insert our widget
+ QWidget *canvas =3D new QWidget(parent);
+ canvas->setFocusPolicy(QWidget::ClickFocus);
+ setWidget(canvas);
+
+ m_extension =3D new AktionBrowserExtension(this);
+
+ // create our animation widget
+ widget =3D new KXAnim(this);
+ widget->setLoop(true);
+ widget->show();
+
+ // create and connect our actions
+ m_playAction =3D new KAction(i18n("Play"), QIconSet(BarIcon("tocar",
+ AktionFactory::instance())), 0, this,
+ SLOT(slotPlay()), actionCollection(),
+ "play");
+
+ m_stopAction =3D new KAction(i18n("Stop"), QIconSet(BarIcon("parar",
+ AktionFactory::instance())), 0, this,
+ SLOT(slotStop()), actionCollection(),
+ "stop");
+
+ m_backwardAction =3D new KAction(i18n("Backward"),
+ QIconSet(BarIcon("retroceder",
+ AktionFactory::instance())), 0, this,
+ SLOT(slotBackward()), actionCollection(=
),
+ "backward");
+
+ m_forwardAction =3D new KAction(i18n("Forward"), QIconSet(BarIcon("ava=
nzar",
+ AktionFactory::instance())), 0, this,
+ SLOT(slotForward()), actionCollection(),
+ "forward");
+
+ setXMLFile("aktion_part.rc");
+}
+
+AktionPart::~AktionPart()
+{
+ slotStop();
+}
+
+bool AktionPart::openFile()
+{
+ widget->setFile(m_file);
+ widget->stop();
+ widget->show();
+ QTimer::singleShot(2000, this, SLOT(slotPlay()));
+
+ return true;
+}
+
+bool AktionPart::closeURL()
+{
+ slotStop();
+ return true;
+}
+
+void AktionPart::slotPlay()
+{
+ widget->play();
+ m_playAction->setEnabled(false);
+ m_stopAction->setEnabled(true);
+ m_forwardAction->setEnabled(true);
+ m_backwardAction->setEnabled(true);
+}
+
+void AktionPart::slotStop()
+{
+ widget->stop();
+ m_playAction->setEnabled(true);
+ m_stopAction->setEnabled(false);
+ m_forwardAction->setEnabled(false);
+ m_backwardAction->setEnabled(false);
+}
+
+void AktionPart::slotForward()
+{
+ widget->stepForward();
+}
+
+void AktionPart::slotBackward()
+{
+ widget->stepBack();
+}
+
+AktionBrowserExtension::AktionBrowserExtension(AktionPart *parent)
+ : KParts::BrowserExtension(parent, "AktionBrowserExtension")
+{
+}
+
+AktionBrowserExtension::~AktionBrowserExtension()
+{
+}
+
+Line By Line
+Using actions always follow the same steps:
+
+
+
+
+
+
+
+
+
+Thing To Remember:
+There are only two necessary steps to use actions with KParts
+2. Connect the KAction to the toolbar/menubars in an XML file
+
+
+m_playAction =3D new KAction(i18n("Play"), QIconSet(BarIcon("tocar",
+ AktionFactory::instance())), 0, this,
+ SLOT(slotPlay()), actionCollection(),
+ "play");
+
+
+This creates a new action with the following parameters:
+Icon to display - tocar.png
+Keyboard accel - none
+SLOT parent - current widget
+SLOT - slotPlay()
+Action parent - the KParts action collection
+action name - used to match XML description with action
+
+
+
+
+
+
+
+<!DOCTYPE kpartgui>
+<kpartgui name=3D"aktion">
+<MenuBar>
+ <Menu name=3D"view">
+ <Action name=3D"play"/>
+ <Action name=3D"stop"/>
+ <Action name=3D"backward"/>
+ <Action name=3D"forward"/>
+ </Menu>
+</MenuBar>
+<ToolBar name=3D"Aktion-ToolBar">
+ <Action name=3D"play"/>
+ <Action name=3D"stop"/>
+ <Action name=3D"backward"/>
+ <Action name=3D"forward"/>
+</ToolBar>
+<StatusBar/>
+</kpartgui>
+
+
+# this is where the menu and toolbar description file goes
+partdir =3D $(kde_datadir)/aktion
+part_DATA =3D aktion_part.rc
+
+Visible Result
+
+
+Practical Matters
+As you saw, this code was pretty straight-forward. There really
+wasn't anything specific to aKtion, here. Do check the KStdAction
+actions before creating your own, however. Using those actions are
+strongly encouraged.
+
+
diff --git a/componentstutorial/page7.php b/componentstutorial/page7.php
new file mode 100644
index 0000000..ce54f05
--- /dev/null
+++ b/componentstutorial/page7.php
@@ -0,0 +1,116 @@
+
+
+
+
+Final Thoughts
+
+The Steps to a Component: Recap
+You may have noticed that converting an application to an embedded
+component is pretty easy. In fact, this tutorial could have easily
+condensed the four steps into one or two with no loss of clarity.
+That said, you will likely do your conversion in the four stages
+outlined, so maybe that wasn't such a bad idea.
+
+
+
+
+What is Boilerplate? What is App-Specific?
+Whenever you do a tutorial, the question is what of the tutorial can
+you use in your own and what is specific to the app itself. Well,
+you're in luck for this tutorial -- nearly all of the code in this
+tutorial was boilerplate, cut-and-paste type code!
+"Gotcha"s. What to Look Out For
+Most of the things to look out for were mentioned in the steps of the
+tutorial. Two things that stand out, though, are these:
+
+
+
+
+
+Links
+Here are some links that you may find useful:
+
+http://developer.kde.org/documentation/tutorials/components/index.html=
+
+http://developer.kde.org/documentation/tutorials/components/components-tut=
orial.tar.bz2
+
+http://developer.kde.org/documentation/tutorials/components/aktion-1.99-ba=
se.tar.gz
+
+http://developer.kde.org/documentation/tutorials/components/aktion-1.99-fi=
nal.tar.gz
+
+http://www.geocities.com/SiliconValley/Haven/3864/aktion.html
+
+http://cmg.simplenet.com/avi_clips/pepe_pen.zip
+
+http://xanim.va.pubnix.com/xa_dlls.html
+
+
+
diff --git a/developers/index.php b/developers/index.php
new file mode 100644
index 0000000..b70f28f
--- /dev/null
+++ b/developers/index.php
@@ -0,0 +1,234 @@
+
+
+
+
+
+ CSS Property
+
+ Supported?
+
+ Comments
+
+
+
+ 'background'
+
+ yes
+
+
+
+
+
+ 'background-attachment'
+
+ yes
+
+
+
+
+
+ 'background-color'
+
+ yes
+
+
+
+
+
+ 'background-image'
+
+ yes
+
+
+
+
+
+ 'background-position'
+
+ yes
+
+
+
+
+
+ 'background-repeat'
+
+ yes
+
+
+
+
+
+ 'border'
+
+ yes
+
+
+
+
+
+ 'border-collapse'
+
+ yes
+
+
+
+
+
+ 'border-color'
+
+ yes
+
+
+
+
+
+ 'border-spacing'
+
+ yes
+
+
+
+
+
+ 'border-style'
+
+ yes
+
+
+
+
+
+ 'border-top' 'border-right' 'border-bottom' 'border-left'
+
+ yes
+
+
+
+
+
+ 'border-top-color' 'border-right-color' 'border-bottom-color' =
'border-left-color'
+
+ yes
+
+
+
+
+
+ 'border-top-style' 'border-right-style' 'border-bottom-style' =
'border-left-style'
+
+ yes
+
+
+
+
+
+ 'border-top-width' 'border-right-width' 'border-bottom-width' =
'border-left-width'
+
+ yes
+
+
+
+
+
+ 'border-width'
+
+ yes
+
+
+
+
+
+ 'bottom'
+
+ yes
+
+
+
+
+
+ 'box-sizing'
+
+ yes
+
+ CSS 3 UI: only KHTML and Opera, but also supported with -moz- =
in Gecko
+
+
+
+ 'caption-side'
+
+ yes
+
+ Only top and bottom, left and right was deprecated in CSS 2.1<=
/td>
+
+
+
+ 'clear'
+
+ yes
+
+
+
+
+
+ 'clip'
+
+ yes
+
+
+
+
+
+ 'color'
+
+ yes
+
+
+
+
+
+ 'content'
+
+ yes
+
+ KHTML is one of the only browsers to support generated quotes =
and counters.
+
+
+
+ 'counter-increment'
+
+ yes
+
+
+
+
+
+ 'counter-reset'
+
+ yes
+
+
+
+
+
+ 'cursor'
+
+ yes
+
+
+
+
+
+ 'direction'
+
+ yes
+
+
+
+
+
+
+ 'display'
+
+ yes
+
+
+
+
+
+ 'empty-cells'
+
+ yes
+
+
+
+
+
+ 'float'
+
+ yes
+
+
+
+
+
+ 'font'
+
+ yes
+
+
+
+
+
+ 'font-family'
+
+ yes
+
+
+
+
+
+ 'font-size'
+
+ yes
+
+
+
+
+
+ 'font-style'
+
+ yes
+
+
+
+
+
+ 'font-variant'
+
+ yes
+
+
+
+
+
+ 'font-weight'
+
+ yes
+
+
+
+
+
+ 'height'
+
+ yes
+
+
+
+
+
+ 'left'
+
+ yes
+
+
+
+
+
+ 'letter-spacing'
+
+ yes
+
+
+
+
+
+ 'line-height'
+
+ yes
+
+
+
+
+
+ 'list-style'
+
+ yes
+
+ All CSS 2.1 styles plus box. With -kthml- extension also diamo=
nd, upper-greek, persian, urdu and arabic-indic from CSS 3 List
+
+
+
+ 'list-style-image'
+
+ yes
+
+
+
+
+
+ 'list-style-position'
+
+ yes
+
+
+
+
+
+ 'list-style-type'
+
+ yes
+
+
+
+
+
+ 'margin'
+
+ yes
+
+
+
+
+
+ 'margin-top' 'margin-right' 'margin-bottom' 'margin-left'
+
+ yes
+
+
+
+
+
+ 'marker-offset'
+
+ no
+
+ Deprecated in CSS3
+
+
+
+ 'max-height'
+
+ yes
+
+
+
+
+
+ 'max-width'
+
+ yes
+
+
+
+
+
+ 'min-height'
+
+ yes
+
+
+
+
+
+ 'min-width'
+
+ yes
+
+
+
+
+
+ 'opacity'
+
+ no
+
+ CSS 3 Color: Implemented by WebCore and Gecko
+
+
+
+ 'outline'
+
+ yes
+
+
+
+
+
+ 'outline-color'
+
+ yes
+
+
+
+
+ 'outline-offset'
+
+ no
+
+ CSS 3 UI: Implemented by WebCore
+
+
+
+ 'outline-style'
+
+ yes
+
+
+
+
+
+ 'outline-width'
+
+ yes
+
+
+
+
+
+ 'orphans'
+
+ no
+
+ Paged media.
+
+
+
+ 'overflow'
+
+ partial
+
+ except value scroll, auto
+
+
+
+ 'padding'
+
+ yes
+
+
+
+
+
+ 'page-break-before'
+
+ partial
+
+ Paged media.Only auto and always
+
+
+
+ 'page-break-after'
+
+ partial
+
+ Paged media. Only auto and always
+
+
+
+ 'page-break-inside'
+
+ no
+
+ Paged media
+
+
+
+ 'padding-top' 'padding-right' 'padding-bottom' 'padding-left'<=
/td>
+
+ yes
+
+
+
+
+
+ 'position'
+
+ yes
+
+
+
+
+
+ 'quotes'
+
+ yes
+
+
+
+
+
+ 'right'
+
+ yes
+
+
+
+
+
+ 'table-layout'
+
+ yes
+
+
+
+
+
+ 'text-align'
+
+ yes
+
+
+
+
+
+ 'text-decoration'
+
+ yes
+
+ value blink not supported, it is =
optional in css2
+
+
+
+ 'text-indent'
+
+ yes
+
+
+
+
+ 'text-shadow'
+
+ yes
+
+ CSS 3 Text: Only implemented by KHTML and WebCore
+
+
+
+ 'text-transform'
+
+ yes
+
+
+
+
+
+ 'top'
+
+ yes
+
+
+
+
+
+ 'unicode-bidi'
+
+ yes
+
+
+
+
+
+ 'vertical-align'
+
+ yes
+
+
+
+
+
+ 'visibility'
+
+ partial
+
+ except value collapse
+
+
+
+ 'white-space'
+
+ yes
+
+ KHTML is the only browser that supports all CSS 2.1 values suc=
h as pre-line and pre-wrap
+
+
+ 'widows'
+
+ no
+
+ Paged media.
+
+
+
+ 'width'
+
+ yes
+
+
+
+
+
+ 'word-spacing'
+
+ yes
+
+
+
+
+ 'z-index'
+
+ yes
+
+
+
+
+
+
+
+
+
+ David Faure
+ framework, parts, Javascript, I/O lib and maintainer
+ faure kde.org
+
+
+
+ Simon Hausmann
+ framework, parts
+ hausmann kde.org
+
+
+
+ Michael Reiher
+ framework
+ michael.reiher gmx.de
+
+
+
+ Matthias Welk
+ framework
+ welk fokus.gmd.de
+
+
+
+ Alexander Neundorf
+ List views
+ neundorf kde.org
+
+
+
+ Michael Brade
+ List views, I/O lib
+ brade kde.org
+
+
+
+ Lars Knoll
+ HTML rendering engine
+ knoll kde.org
+
+
+
+ Dirk Mueller
+ HTML rendering engine
+ mueller kde.org
+
+
+
+ Waldo Bastian
+ HTML rendering engine, I/O lib
+ bastian kde.org
+
+
+
+ Germain Garand
+ HTML rendering engine
+ germain ebooksfrance.org
+
+
+
+ Leo Savernik
+ HTML rendering engine
+ l.savernik aon.at
+
+
+
+ Stephan Kulow
+ HTML rendering engine, I/O lib, regression test framework
+ coolo kde.org
+
+
+
+Antti Koivisto
+ HTML rendering engine
+ koivisto kde.org
+
+
+
+Zack Rusin
+HTML rendering engine
+zack kde.org
+
+
+
+Tobias Anton
+HTML rendering engine
+anton stud.fbi.fh-darmstadt.de
+
+
+
+Lubos Lunak
+HTML rendering engine
+l.lunak kde.org
+
+
+
+ Allan Sandfeld Jensen
+HTML rendering engine
+kde carewolf.com
+
+
+
+ Apple Safari Developers
+ HTML rendering engine, Javascript
+
+
+
+
+ Harri Porten
+ Javascript
+ porten kde.org
+
+
+
+ Koos Vriezen
+ Java applets and other embedded objects
+ koos.vriezen xs4all.nl
+
+
+
+ Matt Koss
+ I/O lib
+ koss napri.sk
+
+
+
+ Alex Zepeda
+ I/O lib
+ jazepeda pacbell.net
+
+
+
+ Peter Kelly
+ Javascript, HTML rendering engine
+ pmk post.com
+
+
+
+ Carsten Pfeiffer
+ framework
+ pfeiffer kde.org
+
+
+
+ Wynn Wilkes
+ Java 2 security manager support, and other major improvements to app=
let support
+ wynnw calderasystems.com
+
+
+
+ Richard Moore
+ Java applet support
+ rich kde.org
+
+
+
+ Dima Rogozin
+ Java applet support
+ dima mercury.co.il
+
+
+
+ Stefan Schimanski
+ Netscape plugin support
+ 1Stein gmx.de
+
+
+
+ George Staikos
+ SSL support
+ staikos kde.org
+
+
+
+ Dawit Alemayehu
+ I/O lib, Authentication support
+ adawit kde.org
+
+
+
+ Torben Weis
+ kfm author
+ weis kde.org
+
+
+
+ Chris Lee
+ web site
+ webmaster konqueror.org
+
+
+
+Stephan Binner
+ Misc bug fixing and improvements
+ binner kde.org
+
+
+Mini FAQ
+
+addQuestion("How can I make Konq/E pick up the Qt/Embedded library i=
nstead of the normal Qt lib?",
+"If you want to compile with Qt/Embedded support, then you have to configu=
re
+it with the --enable-qt-embedded
configure switch. Also make =
sure
+the QTDIR
is set correctly.
+");
+
+$faq->addQuestion("I heard there's special support for the Qt Palmtop Envi=
ronment?",
+"There is a --enable-qpe configure switch which will make Konq/E link
+against the Qt Palmtop Environment libraries (and use them) . The support
+involves inherittance of the QPEApplication
base application
+class and use of the QPE shared status message feature (re-using the
+task-bar for status messages, to avoid wasting screen space with an
+application status bar) . Make sure to have QPEDIR
set then
+using this switch.
+");
+
+$faq->addQuestion("Where can I find this Qt Palmtop Environment?",
+"
+Here's the official website:
+http://qpe.sourceforge.net/
+and here's the project page, where you can get the latest development
+version:
+http://www.sourcefo=
rge.net/projects/qpe/ .
+Note that Konq/E requires at least QPE version 1.3.1.
+");
+
+$faq->addQuestion("The startup time of Konq/E is very slow when using Qt/E=
mbedded. Is there
+a hidden turbo-boost configure switch to accelerate it to lightspeed?",
+"
+A lot of time on startup is spend on parsing the available fonts. To optim=
ize
+this make sure Qt/E only uses the .qpf font files for fonts and no .bdf or
+.ttf fonts . This will decrease startup time dramatically and reduce memory
+usage. See the Qt documentation of details about .qpf font files and how to
+generate them.
+
+");
+
+$faq->addQuestion("How do things look like after a make install?",
+"
+Basically an installation consists of three components:
+
konq
binary, installed into $prefix
konqueror
startup script, installed into $prefix
+
as well. This startup script sets some environment variables to
+ensure Konq/E finds its data files and knows where to temporarily store da=
ta
+on the filesystem. Note that you don't need this startup script if you have
+the appropriate environment variables set globally in your system already<=
/li>
+share/
subdirectory, installed into
+$prefix/share
, containing some data files (in particular cha=
rset
+information and the default stylesheet) . Note that these files are
+absolutely required for running Konq/E
+");
+
+$faq->addQuestion("Is there support for HTTP proxy servers?",
+"
+Sure, although this is currently a bit rudimentary, with regard to
+configurability. If you want to use a HTTP proxy server make sure to
+set the HTTP_PROXY
environment variable appropriately. Like f=
or
+example HTTP_PROXY=3D"http://proxy.foo.com:3128/"
.
+In addition the NO_PROXY_FOR
environment variable is supporte=
d.
+Set it up to a list of servers for which you do not want to use a HTTP pro=
xy
+server.
+
+There is work in progress for a nice configuration dialog for this, combin=
ed
+with storing these settings in a persistent way, not using environment
+variables.
+");
+
+$faq->addQuestion("Is there support for caching, to speed up browsing?",
+"
+There are two caches in Konq/e.
+
+The memory cache. Primarily used for caching images and stylesheets. The
+maximum size is 512 kbyte.
+
+The disk cache. This is disabled by default, however you can turn it on
+and control it using the following environment variables:
+
KIO_HTTP_USECACHE
- (set to any value to turn on caching)=
KIO_HTTP_MAXCACHEAGE
- Maximum age of cache in seconds (d=
efault 14 Days)KIO_HTTP_MAXCACHESIZE
- Maximum cache size in Kilobytes (=
default 5Mb)+"); + +$faq->addQuestion("Are there more environment variables konq/e reads?", +" +Yes, here are three: +
+KIO_HTTP_PROXY_CONNECT_TIMEOUT
- default 10 secondsKIO_HTTP_CONNECT_TIMEOUT
- default 20 secondsKIO_HTTP_RESPONSE_TIMEOUT
- default 60 seconds
+");
+
+$faq->addQuestion("Can I make the home toolbar button load www.mycompany.c=
om instead of
+the KDE website?",
+"
+Yes, the URL loaded when pressing the home button is configurable.
+Just provide a konq-embedrc
file in $prefix/share/confi=
g
+and specify a HomeURL=3Dhttp://your.site.org/
in the
+[General]
group.
+");
+
+$faq->addQuestion("Is there a way to make Konq/E load an initial document =
on startup, instead
+of the blank page?",
+"Just put a html document called start.html
into
+$prefix/share/apps/konq-embed
.
+");
+
+$faq->addQuestion("I'm having trouble with images in html documents. Or Ko=
nq/E crashes for
+me when loading JPEG Images",
+"
+Here's how to get optimal image support and how to get rid of crashes rela=
ted
+to jpegs. For GIF and PNG support you can easily use the builtin Qt suppor=
t.
+For MNG the -system-libmng switch for Qt works fine. For JPEG you don't ha=
ve
+to enable the qt builtin jpeg support. Konq/E comes with its own increment=
al
+jpeg loader. In fact the qt jpeg support won't be used. You need to use an
+external jpeg library (well, the one and only popuplar libjpeg which you m=
ost
+likely already have anyway) . To convince configure to pick up your jpeg
+library you might probably need the
+--with-extra-libs=3D/path/to/your/jpeg/lib
and
+--with-extra-includes=3D/path/to/your/jpeg/includes
configure
+switches.
+");
+
+$faq->addQuestion("Is it possible to internationalize Konq/E, to make the =
menus show
+for instance German text instead of the default English?",
+"
+Run make messages
in the konq-embed directory. This will crea=
te
+a konqueror.pot file which you can use with standard GNU i18n tools. Like =
for
+example use msgmerge
to merge it with your existing translati=
ons.
+For translating the actual POT files I strongly recomment using
+KBabel , it's certainl=
y one of
+the very best translation applications out there.
+
+To actually use a POT file with Konq/E you have to convert it
+to a Qt message file. This is done easily using the msg2qm
ut=
ility,
+shipped with your Qt distribution, in \$QTDIR/tools/msg2qm
. =
Run
+it like:
+
+ \$QTDIR/tools/msg2qm/msg2qm konqueror_de.pot konqueror_de.qm ++
+To make Konq/E use the correct Qt message file, install the .qm file into
+\$prefix/share/locale
. The filename has to be in the format
+konqueror_<languagecode>qm
. The choice of the language=
is done on
+the basis of the LANG
environment variable.
+
+So for example if you have a german translation installed as
+konqueror_de.qm
in
+/path/where/you/installed/konqueror/share/locale/konqueror_de.qm ,
+then just make sure the
LANG
environment variable is set to
+"de" . Konq/E will then automatically load the message file and
+utilize the translations.
+
+Last but not least: Translation support works only if Qt is compiled with
+translation support!! So double-check your qconfig-local to NOT contain
+QT_NO_TRANSLATION
.
+");
+
+$faq->addQuestion("How do I run Flash plugins with Konqueror/Embedded?",
+"
+You have to enable the Flash add-on (via --enable-add-ons=3Dkflashpart) wh=
ich
+is based on the flash library written by Olivier Debon. This add-on does n=
ot
+require X but only implements Flash 3 features and a few of the Flash 4.
+
+Other efforts are on the way to port the Netscape plugin support to Konq/E
+(which will require X).
+");
+
+$faq->addQuestion("Is there a mailing list where I can ask question about =
Konq/E or participate
+with development?",
+"
+Yes! Help is needed and more than appreciated! More information about the
+dedicated mailinglist can be found at
+http://mail.kde.=
org/mailman/listinfo/konq-e
+
Please keep in mind that I in particular am working on this in my spare=
free
+time. I'm doing it for the fun of it, I don't get any money. So please bea=
r with
+me if I don't answer to emails within 5 minutes.
+");
+
+$faq->addQuestion("There are tons of special configure options and the lik=
e. I'm getting
+confused. How does your configuration look like?",
+"
+Here's what I use for cross-compiling for the iPAQ:
+Qt:
+
+./configure -gif -qt-libpng -no-jpeg -no-mng -no-thread -no-opengl -release + -shared -no-g++-exceptions -I/usr/local/arm-linux/include -depths 16 + -qconfig local -no-qvfb -xplatform linux-ipaq-g++ ++
+Konq/E: +
++../xconfigure --disable-debug --enable-static --disable-shared + --enable-qt-embedded --enable-qpe --with-extra-libs=3D\$PWD/../lib/ + --with-extra-includes=3D\$PWD/../include -without-ssl + --prefix=3D\$PWD/../install ++
+xconfigure
is a configure wrapper script I found on the net.
+It's handy when cross-compiling for ARM-Linux, as it sets up all necessary
+special configure switches to get things right. I put up a copy of it
+here .
+");
+
+$faq->addQuestion("How can I add support for an external application handl=
ing the foo: protocol?",
+"
+Edit $prefix/share/config/konq-embedrc and add a section like this
+
+[External Protocols] +mailto=3Dfoomailer +myfooprotocol=3Dspecialxzyplayer ++
+(this feature is available as of CVS >=3D 20010625)
+");
+
+$faq->addQuestion("Where can I download Konqueror/Embedded?",
+"
+Although there is a 0.1 release available I strongly recommend for grabbing
+one of the latest snapshots instead. Have a look at
+http://devel-=
home.kde.org/~hausmann/snapshots/.
+Please note these snapshots are based on the KONQE_1_0_BRANCH and require
+Qt version 2.3.x to compile - they won't work with any Qt 3.x version!
+
+And if you're interesting in bleeding edge stuff then you can also check
+out the source from the KDE =
CVS Repository ,
+in the kdenox
module. Note that besides this module you will =
also
+need the kdelibs
module for building. Make sure your copy of =
kdelibs
+resides in the same directory as the kdenox module.
+
+Also note that the CVS version is development code . This means i= t can +happen that it crashes, does not compile or refuses to brew your coffee! +
+
+There also exists a binary package of a konq/e snapshot (more or less regu=
larly
+updated) for the iPAQ (cross-compiled as arm-linux) , for use with the
+Familiar Linux ipkg packa=
ge
+system. Just add http://bolug.uni-bonn.de/files/konq-e/
as so=
urce
+to your /etc/ipkg.conf
and after a 'ipkg update' a 'konqueror'
+package should be available for download/upgrade on your iPAQ. (note that =
it
+requires Qtopia >=3D 1.5)
+
+Thanks to the BoLUG for the ho= sting! +"); + +$faq->show(); + +?> + + diff --git a/faq/index.php b/faq/index.php new file mode 100644 index 0000000..d556472 --- /dev/null +++ b/faq/index.php @@ -0,0 +1,394 @@ + + +addQuestion("Konqueror refuses to login into netscape mail. Is there= a fix for that ?", +"By default konqueror does not accept cookies that originate from a site o= ther than the one you +are currently visiting. This is done to protect your privacy. Unfortunatel= y, the netscape mail +site requires that you accept cookies that come from sites other than thei= r own. Hence, the +only way to make konqueror work with that site is to disable the option th= at activates the = +feature mentioned above. To disable this option do the following:
+
+");
+
+$faq->addQuestion("Is there a way to change the default Accept-Charset/Acc=
ept-Language HTTP headers in konqueror ?",
+"Yes. By default konqueror automatically uses the settings configured when=
you installed your
+desktop. You can manually override this behavior by adding the following s=
ettings to either
+\$KDEHOME/share/config/kioslaverc
or \$KDEHOME/share/config/k=
io_httprc
:
+
+Languages=3D<comma-separated-list-of-languages> +Charsets=3D<comma-separated-list-of-charsets> ++
+If you add the settings to the first \"kioslaverc\", then the options are = available to all KDE ioslaves that support = +changing these settings. On the other hand, if you want the settings to be= applicable to a specific io-slave, e.g. = +kio_httprc, then you want to add them to the protocol specific config file= s. You can also specify these = +settings on a per-site basis. To do that, instead of adding the settings t= o the top of the file (global section), +you need to add them to a specific site section. For example to change the= settings sent to all kde.org +sites you would do the following: +
++[kde.org] +Languages=3Den +Charsets=3Diso-8859-1 ++
+After making these changes you need to issue the following command to make= the settings = +take immediate effect: +
++dcop konqueror-* KIO::Scheduler reparseSlaveConfiguration \"http\"; ++
+"); // Last paragraph is a dummy paragraph for XHTML validation
+
+$faq->addQuestion("How do I tell Konqueror to forget all the cached logins=
and passwords?",
+"When you successfully login to a web site (using the login/password dialo=
g, not using a form),
+or to an FTP/SMB/SSH/... site, Konqueror caches the username and password =
in the
+kdesud daemon. This information remains alive as long as kdesud runs, but =
isn't
+saved to any file. To ask it to forget all the currently cached logins and=
passwords,
+simply run
+
+kdesu -s
+");
+
+$faq->addQuestion("Where does Konqueror store its history, and how do I er=
ase it?",
+"There are several kinds of \"history\" stored by Konqueror.
+
+File locations (~/.kde
is only an indication. Your distributo=
r, or \$KDEHOME, could have modified that value) :
+
~/.kde/share/config/konq_history
~/.kde/share/apps/konque=
ror/konq_history
(binary file)~/.kde/share/cache/http/
(previously in ~/.kde/share/apps/kio_http/cache/
)+"); // Last paragraph is a dummy paragraph for XHTML validation + +$faq->addQuestion("Why does KDE ignore the system wide proxy settings? (KD= E 2.2.2 or earlier)", +"This is due to a bug in a script used by the configuration update program= . It +has been fixed for 3.x release. For KDE 2.2.2 or earlier you can workarou= nd +the problem by simply replacing the last line of +\$KDEDIR/share/apps/kconf_update/proxytype.pl with the following: +
++print \"ProxyType=3D\$proxytype\n\" if \$proxytype; ++
+Another solution is to remove kioslave.upd located in the same
+directory mentioned above. Note that you do not want to do this right aft=
er
+upgrading KDE and before you have had a chance to start the new version for
+the first time. Otherwise, you might loose your exisiting configuration. =
Also
+note that this does not apply to upgrading to KDE 3.x since the problem has
+already been fixed.
+");
+
+$faq->addQuestion("Why does Konqueror 2.2 crash on every page with JavaScr=
ipt?",
+"There are two cases where this is known to happen:
+
+If you're using the SuSE i686 RPM's of KDE2.2 release you will experience
+that almost every page with JavaScript either does not work or crashes
+Konqueror. This is a bug in the objprelinking that was used to build the
+RPMs. Please use the non-experimentally marked RPMs instead, they will wor=
k.
+
+Please do not report bugs if you are using these packages.
+
+If you see a message about an undefined symbol on the konsole output,
+you hit the binutils bug. Exact reason for this is unknown, but upgrading
+to a recent binutils (>=3D 2.10) and recompiling kjs helped in every ca=
se up to now.
+If you installed from RPM you shouldn't be affected.
+");
+
+$faq->addQuestion("Why does Konqueror crash on every page with Flash?",
+"This is a result of a clashing symbol in both the flash plugin and the
+XFree86 libGLU (OpenGL utility lib). Upon closing an embedded flash view,
+the wrong function is called which heavily corrupts memory and leads to
+either immediately or delayed crashes, lockups and worse.
+
+The only solution that is currently known is either to install Qt without
+OpenGL support or to not use the Flash plugin. You can't combine both
+until this symbol clash is somehow solved. Unfortunately we cannot do
+much about this issue, unless Macromedia is willing to help.
+
+Another reason for Konqueror to crash on every page using a Netscape plugin
+is the use of gcc3. Plugins can't work with gcc3 because they are linked to
+gcc2's libstdc++, which is incompatible with gcc3's libstdc++.
+");
+
+$faq->addQuestion("Does Konqueror support automatic ftp logins via \".netr=
c\" files",
+"Starting with version 2.2 beta1 konuqeror does indeed support automatic
+logins as specified in the \".netrc\" file. However, there is no graphical
+front end to enable this feature ; so you have to do it manually using the
+following procedure:
+
Note that \$KDEHOME referes to your personal kde config direct=
ory (usually
+~/.kde).
dcop konqueror-* KIO::Scheduler reparseConfiguration \"\"
++Please note that the support for the \"macro\" keyword is very limited in = the current +implementation. In fact, we only honor the \"cd\" command. Furthermore, = eventhough +this nominal \"macro\" support was left ON by default for the 2.2 beta1 re= lease, you +will have to be manually enable it in subsequent releases by adding a \"En= ableAutoLoginMacro=3D\" +entry following the same procedure outlined above. +"); + +$faq->addQuestion("I'm using an NVidia driver for X, and Konqueror hangs t= he system", +"Add
+Option \"NvAgp\" \"2\"+
to the \"Device\" section for the NVidia card, in XF86Config.
+The above option just says to use the Linux agpgart module instead of Nvid=
ia's own.
+Thanks to Scott Lanham for this advice.
+");
+
+$faq->addQuestion("My wheel mouse sometimes does not work with Konqueror",
+"Disable imwheel, at least for Konqueror (you can add this to the Exclude =
section in ~/.imwheelrc).
+You might consider not using imwheel at all, because it causes more proble=
ms than they solve
+with applications these days.
+");
+
+$faq->addQuestion("Where does the name Konqueror come from?",
+"It's a word play on the other browsers' names. After the Navigator and the
+Explorer comes the Conqueror; it's spelled with a K to show that it's part=
of
+KDE. The name change also moves away from \"kfm\" (the KDE file manager,
+Konqueror's predecessor) which represented only file management.
+");
+
+$faq->addQuestion("Why doesn't KHTML show the contents of an image's ALT t=
ag in a tooltip?",
+"There's no standard that says an ALT tag should appear when you
+hover over an image. Some browsers do so, but that's all.
+Most of the time the ALT tag contains some useless description
+like \"foo.jpg (231432 bytes)\" as Frontpage does by default; besides, the
+specification for the ALT property calls for ALT to be displayed in place =
of
+the image, as in text-mode-only browsers such as lynx or w3m. It is not me=
ant
+to be used as a tooltip. Tooltips for images are supposed to come from the=
TITLE attribute,
+and this is being implemented.
+");
+
+$faq->addQuestion("When trying to authenticate to a proxy, I get \"unknown=
authorization method\" (KDE 2.1.1)",
+"Unfortunately a bug was introduced when the code that deals with authenti=
cation
+was being revamped for the 2.1.1 release. The bug has now been fixed in b=
oth
+the development as well as the current stable branches.
+
+If you compiled KDE 2.1.1 from source code through anoncvs.kde.org, please=
update
+kdelibs/kio/http to the current version of 2.1.1 using
cvs upd -r KDE_2_1_BRANCH+
in that directory.
+
+We apologize for the inconvenience.
+");
+
+$faq->addQuestion("What is Konqueror's User Agent string?",
+"There is no definite answer to this question.
+
+The HTTP_USER_AGENT
http header and the properties of the
+window.navigator JavaScript object have been subject to change during
+the last KDE releases. Additionally, the user can modify the UA
+information on a domain-by-domain basis pretending to have any other
+browser in existence.
+
+If you are reading this because you wanted to uniquely identify
+Konqueror on your website see the answer to the next question.
+");
+
+$faq->addQuestion("As an author of a web site, how can I identify Konquero=
r from other
+browsers?",
+"We are working very hard on making all the differences go away thus
+making any differentiation impossible - or rather needless.
+
+In case you experience a bug or missing feature in Konqueror (let's
+say the JavaScript function document.foo() is not working as expected)
+we recommend to test for features rather than the browsers brand.
+
+Rather than writing code like
+ if (navigator.userAgent.indexOf(\"Konqueror\") >=3D 0) + IEorMozilla =3D false; ++we recommend to perform direct checks such as +
+ var workingFoo =3D (foo(\"bar\") =3D=3D 42); // doing what it's supposed= to do ? + var DOM =3D !!document.getElementById; // basic DOM support ? + var documentALL =3D !!document.all; // Microsoft extension available ? +
"); // Last paragraph is a dummy paragraph for XHTML validation
+
+$faq->addQuestion("How do I set my 'home' page - the page loaded on startu=
p?",
+"Start Konqueror with the \"Web Browser\" button, open the page that you w=
ant
+to be loaded in any new \"Web Browser\" window, and select \"Save View Pro=
file Web Browsing\"
+in the Window menu. To have Konqueror start up with no page loaded (as it =
did in KDE 2.0),
+use \"about:blank\".
+");
+
+$faq->addQuestion("Is there a way to change the timeout values in Konquero=
r?",
+"Beginning with 2.2 beta series, you can change the timeout settings
+in the control panel under \"Network->Preferences\"
.
+
+If you are using the 2.1 series, however, you have to manipulate the config
+file manually to adjust these values to your liking. Here is the procedure
+for doing that:
+
ReadTimeout=3Dx // length of time to wait for a= rrival of requested data +ResponseTimeout=3Dx // length of time to wait for a resp= onse after sending a request +ConnectTimeout=3Dx // length of time to wait for respon= se after attempting to connect +ProxyConnectTimeout=3Dx // same a above except it is used fo= r proxy servers. ++
DEFAULT_READ_TIMEOUT 15 // 15 SECONDS +DEFAULT_RESPONSE_TIMEOUT 60 // 1 MINUTE +DEFAULT_CONNECT_TIMEOUT 20 // 20 SECONDS +DEFAULT_PROXY_CONNECT_TIMEOUT 10 // 10 SECONDS+
dcop konqueror-* KIO::Scheduler reparseConfiguration \"\"
+If you are running older than version 2.1 of KDE, upgrade.
+");
+
+$faq->addQuestion("Can I run Konqueror without running KDE?",
+"Yes. Just install Qt, kdelibs and kdebase, and from your favourite
+window manager, just launch Konqueror. It should work just fine,
+but if it doesn't (KDE developers don't test that case often), report it
+to http://bugs.kde.org and try running \"kdeinit\" before running Konquero=
r,
+it usually helps.
+
+This is of course the same for any other KDE application.
+");
+
+$faq->addQuestion("What is the format of addresses in the \"No proxy for\"=
dialog box?",
+"The \"No Proxy For\" field under \"Settings->Configure->Proxies\" accepts=
any
+number of comma or space separated hostnames or fully qualified
+addresses. You can mix and match the use of these separators as well as
+have any number of them b/n the specified hostnames in the list.
+
+Example: 1.) kde.org,,,,,,, mycompanyintranet.com + 2.) kde.org mycompanyintranet.com + 3.) kde.org, mycompanyintranet.com ++
+Do not however use the asterisk (*) to indicate multiple matches under
+a specific domain. That will not work. Instead only enter the common =
part of
+the addresses you want to exclude. For example, to exclude all KDE sites =
from
+using proxy enter \".kde.org\" (without the quotation) rather than \"*.kde=
.org\"
+in the \"No Proxy For\" field.
+Also note that this is only supported for HTTP proxies currently, not
+for FTP proxies.
+");
+
+
+// CH: does this still apply to KDE 3? It can be resurrected from the Attic
+//http://webcvs.kde.org/cgi-bin/cvsweb.cgi/~checkout~/www/konqueror/conten=
t/Attic/i18n.html?rev=3D1.3&content-type=3Dtext/plain&hideattic=3D0
+//if so
+//$faq->addQuestion("How can I browse web sites using non latin scripts in=
Konqueror?",
+//"Detailed instructions can be found here.
+//");
+
+$faq->addQuestion("How can I connect to an FTP site that requires a login =
and password?",
+"Simply type ftp://user@host/ and Konqueror will prompt you for a=
password.
+If your username contains the '@' sign, replace it with %40.
+");
+
+$faq->addQuestion("Konqueror crashes when viewing PNGs (e.g. in the image =
preview)",
+"All KDE applications are affected by an incompatibility between Qt 2.2.1 =
and
+libpng 1.0.8, when they try to display PNGs.
+This applies to Konqueror, but also to ksnapshot and many other KDE applic=
ations.
+Either upgrade libpng to 1.0.9, or Qt to 2.2.2 or 2.2.3.
+See the libpng hom=
e page.
+");
+
+$faq->addQuestion("I get many problems / crashes with the beta releases or=
with KDE 2.0",
+"Update to the latest KDE, many bugs have been fixed, and Konqueror is muc=
h more stable
+than it used to be. See the KDE web site<=
/a> for instructions
+on installing binaries and source.
+");
+
+$faq->addQuestion("How do I add bookmarks to the bookmark toolbar?",
+"Under the Bookmarks menu, select Edit Bookmarks.
+This will bring up a new window, showing the contents of the bookmarks dir=
ectory.
+From there, you can copy bookmarks into the Toolbar sub-directory,
+and every bookmark you copy there will appear in the bookmark toolbar.
+
+ Konqueror is not only a very responsive and agile filemanager,
+ as well as a web browser/universal document viewer; but it is also
+ a fully customizable application which anybody can configure to
+ suit their own needs. As can be seen from the various screenshots
+ hosted on this site, there are many different ways to configure
+ Konqueror - too many to list here. However, just because there are
+ a myriad of configuration possibilities, that's no reason to rule
+ out the basics of what can be changed exactly.
+
+ All of the KDE
+ core applications adhere to a KDE-based XML configuration file.
+ This file determines what items will be displayed on a toolbar,
+ what items will be displayed in the menu options, and how to
+ display them - with icons alone, or icons with short descriptions
+ beneath them, or with simply text descriptions of the functions
+ that they provide.
+
+Using the \"Edit toolbars\" dialog for this won't work, it even tends to c=
rash.
+Sorry about that, this toolbar shouldn't even appear there.
+
+There is no way to control the order of bookmarks, in the toolbar or in th=
e menu, in KDE 2.0.,
+but this has been done in CVS (will be in KDE 2.1)
+");
+
+$faq->addQuestion("How do I enable SSL support?",
+"Most binary distributions come with SSL support enabled, but if you compi=
le
+from sources, you need to install a recent openssl, remove config.cache
+and re-run configure, in kdelibs.
+");
+
+$faq->addQuestion("How do I enable support for Netscape plugins?",
+"Most binary distributions come from Netscape plugins support enabled, but=
if you compile
+from sources, you need to install lesstif, remove config.cache
+and re-run configure, in kdebase (check that it compiles the contents of
+kdebase/nsplugins/). If the auto-detection of the plugins fails, try
+running \"nspluginscan\" from the command line.
+");
+
+$faq->addQuestion("Java Applets only show up as grey rectangles, what's wr=
ong?",
+"Most like you are using Sun's 1.3 JRE. There is a know problem that prev=
ents KJAS from
+working with that version of Java. Please use Blackdown's 1.3 release, IB=
M's 1.3 release,
+or Sun's 1.2.2 release. Each of those is known to work. Hopefully this i=
ssue will be
+resolved in a 1.3.1 release from Sun.
+");
+
+$faq->show();
+
+?>
+
+
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..5893015
Binary files /dev/null and b/favicon.ico differ
diff --git a/features/application.php b/features/application.php
new file mode 100644
index 0000000..5e86c91
--- /dev/null
+++ b/features/application.php
@@ -0,0 +1,80 @@
+
+
+
+ Now, as noted above, the XML configuration files for Konqueror + make it easy and simple to change the entire style of the program; + since the entire KDE suite of applications is also configurable + by XML, this means that laptop users can have configurations that fit + laptops (small icons, low-color-count configurations and so forth); people + who really miss Windows9x (c) can choose to use a Qt theme that looks very + similar. They can also use the graphical configuration tool to set + up Konqueror's toolbar to look just like Internet Explorer or Netscape Na= vigator. +
+ + diff --git a/features/browser.php b/features/browser.php new file mode 100644 index 0000000..e9cf3cf --- /dev/null +++ b/features/browser.php @@ -0,0 +1,92 @@ + + ++Konqueror uses a very capable HTML rendering engine called KHTML. +This engine is implemented as a KPart and as such, it can be +easily used by other KDE programs. KHTML is also used by the Apple browser= Safari. +
+ ++Features of the HTML rendering component in KDE 3.4: +
+ +At a first glance, Konqueror looks just like a normal file manager:
+ ++ + | +
+ +This screenshot demonstrates that Konqueror has all of the simple +and standard functionality of the other "modern" +filemanagers. It is a single window with an icon view. + + |
+
+ + | +
+ A Konqueror window +is not limited to simply being a "filemanager" window, or a "web browser" +window - it is possible to view a presentation, a spreadsheet, a local +directory, a web page, and more... + |
+
+ + + | +
+ Of course, it also makes a very nice preview program for +all of the KOffice modules, as well... + + |
+
One other interesting feature of Konqueror is that it +provides automatic updating of directories - if a file is +created in a directory which is currently being viewed, it +is not necessary to refresh or reload the directory; +Konqueror automatically shows the new content. The same +situation occurs with files which have been deleted - they +simply disappear, without any refreshing/reloading necessary.
+ + diff --git a/features/index.php b/features/index.php new file mode 100644 index 0000000..25db07a --- /dev/null +++ b/features/index.php @@ -0,0 +1,12 @@ + + +Konqueror is a versatile application. Use the links on the left to take= a look at its features.
+ + diff --git a/features/menu.inc b/features/menu.inc new file mode 100644 index 0000000..f1b64b6 --- /dev/null +++ b/features/menu.inc @@ -0,0 +1,6 @@ +appendLink("Browser","browser.php"); +$this->appendLink("File Manager","filemanager.php"); +$this->appendLink("Universal Viewer","viewer.php"); +$this->appendLink("Customizable Application","application.php"); +?> diff --git a/features/viewer.php b/features/viewer.php new file mode 100644 index 0000000..f69fae3 --- /dev/null +++ b/features/viewer.php @@ -0,0 +1,83 @@ + + ++ Konqueror can also serve as a viewer for a lot of file types. + Click on an image and it will display the image in the current view. + Click on a text file, it will show its contents. Same for postscript + and DVI files, KOffice files, and others. +
+ ++ = a> + | +
+ + Right after clicking on a file containing an image, it gets embedded + into Konqueror. + + |
+
+ + | +
+ + Here you can see an embedded + KPresenter document from a presentation by David Faure. + + |
+
+ + | +
+ + Click on a KWord document to see its contents. + You don\'t need to install a KWord viewing application -- Konqueror= and KWord + do it automatically. + + |
+
+ On the technical side, the very nice thing about this is that + those viewers are not part of Konqueror and haven't been developed + specifically for it. +
+ ++ Konqueror embeds components (parts) provided by other applications. + The image-viewing part is KView, the text-viewing part is KWrite, + the DVI viewer KDVI, the PostScript viewer KGhostview, and of course + all KOffice documents are shown by their originating application. +
+ ++ Any new type of file you want to be able to display inside Konqueror, + you just need to write a part and register it with a desktop file. + No need to touch Konqueror in any case. + Embedding parts from other applications is provided by the library + called KParts. +
+ + diff --git a/index.php b/index.php new file mode 100644 index 0000000..c9a0181 --- /dev/null +++ b/index.php @@ -0,0 +1,54 @@ + + ++ | +Konqueror is the file manager<= /a> +for the K Desktop Environment. It supports basic file management on local +UNIX filesystems, from simple cut/copy and paste operations to advanced +remote and local network file browsing. + | +
+ | +Konqueror is the canvas for all the latest KDE technology, from +KIO slaves (which provide mechanisms for file access) to component +embedding via the KParts object interface, and it is one of the most +customizable applications availab= le. + | +
+ | +Konqueror is an Open Source web +browser with HTML 4.01 compliance, supporting Java applets, +JavaScript, CSS 1, CSS 2.1, as well as Netscape plugins (for +example, Flash or RealVideo plugins). + | +
+ | +Konqueror is a universal viewing +application, capable of embedding read-only viewing components in +itself to view documents without ever launching another application. + | +
Here is some information about how to investigate a Konqueror bug, to +gather as much information as possible before reporting the bug. Doing this +helps the developers a great deal, because they directly know where the +problem is, without having to do all the investigation themselves.
+ +Unfortunately due to the large number of bug reports received, and t= he +large amount of time that it takes developers to identify issues, +reports which do not include a testcase or are not described in reproducea= ble +steps will get a low priority of fixing.
+ +This page is about bugs in the web browser only. For bugs in the +file manager, or about any other KDE application, jump directly to +the generic How to report a= bug in +KDE.
+ +Please always test the latest version available. For browser bugs +this means the latest development +version, which can be very different from the latest stable release.= p> + +
Also, always give a quick look at the Konqueror FAQ= +to see if the bug is a well-known bug, possibly with a known fix or workar= ound.
+ +The first step is finding out the type of bug this is about. +The second step is to follow the instructions for this type of bug +(follow the links relating to the type of problem). +And the third step is to find out the right package to report the bug to.<= /p> + +
This could be a problem at many levels (HTML, HTTP, Javascript...).
+ +First check that you have Javascript activated, some sites use Javascri= pt +to do redirections etc.
+ +Use wget
to download the page, and see if konqueror can
+view the local page. If yes, then it's an HTTP problem=
a>.
+Also try changing the user agent (in "Configure Konqueror"), to see if the=
site
+isn't giving different results depending on the browser.
If you can't use wget (https site, etc.), try to view the HTML source +from konqueror itself. If it's empty, then it's an HTTP = problem, +if not then it's an HTML/CSS problem or a Javascript +problem.
+ + +This is very probably an HTTP problem, see the HTTP b= ug +section.
+ +If something doesn't appear as it should (not the right position +in the page, not the right font, etc.), see the HTML/CSS= problem +section.
+ + +After checking that you have activated Javascript (in "Configure Konque= ror"), +go to the Javascript problem section.
+ + +The most useful information you can provide in that case is a
+backtrace, but you need to compile KDE yourself (preferrably with
+--enable-debug
) so the backtrace is useful, or to use
+development packages. Official binary packages are "stripped", so
+they don't contain any useful information for a backtrace. Simply
+paste the backtrace from DrKonqi, into the bugreport.
Very important: a backtrace is good, but it's not enough. You +must also describe on which site it happened, and which steps one should +follow to reproduce the crash.
+ + +First try other HTTPS sites. If the problem happens only on one, +then try activating different ciphers in the SSL control module, some +sites don't work well with SSLv3, some need TLS, etc. If the problem +happens on all the https sites you try, then it could be an +installation problem.
+ +A common case of problems (such as "the protocol https died +unexpectedly") is if you don't have openssl at all (install it!) or +when your binary packages were built with a certain version of +openssl (for instance 0.9.5a) and you are using openssl 0.9.6. Those +two versions are binary incompatible, so you have to use the same +version as the one your packager used.
+ +If this still doesn't help, follow the instructions for +HTTP-related problems, to get some debug output +out of kio_http before reporting the bug.
+ + +If the tips on this page don't seem related to your problem, +jump to the next step, finding the right package.=
+ +Your bug is related to HTML and/or CSS. You need to know a bit +HTML and follow these steps to build a test case:
+ ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head><title>konqi test</title></head> +<body> + +<p>insert the problematic HTML here</p> + +</body> +</html> ++
Here's how to debug an HTTP problem, +if you have compiled KDE from sources (otherwise there is no debug +output to look into, since binary packages disable it).
+ +The goal here is to generate and access debug output messages, +so first we have to make sure where it will end up.
+ +startx 2>&1 | tee ~/xsession.log
, and the debug
+ output will go into ~/xsession.log.Now we can generate the debug output:
+ +kdebugdialog
, locate the areas 7103 and 7113,
+ and activate them (check the checkbox). Then press Ok.Now, actually digging info out of the debug output requires to know the +HTTP protocol. If you don't, try to reduce the debug output to what starts +with kio_http, and send it as part of the bug report.
+ +A very useful piece of information (besides a reduced test case that +shows the bug) is the debug output from konqueror, since any javascript +error is printed there (assuming you're not using RPMs with disabled +debug output).
+ +Simply start "konqueror" from a terminal, and open the web page in ques= tion. +The lines startings with "JS:" are those printed by the javascript interpr= eter. +If you see any errors, report them as part of the bug report.
+ +Once you have gathered the required information, +find the right package to which the bug should be reported to :
+ +Package | +Problem | +
---|---|
konqueror | +Any bug that is not inside the "view", but part of the + framework, e.g. the toolbar | +
khtml | +Rendering/layouting bugs, crashes that don't go a away when you vis= it a html + page and have Javascript and Java disabled | +
kjs | +Any dynamic Javascript thingie not working or crashing. Might be a = bug in + khtml, but as it's difficult to judge for the user this package line is= fine | +
kjava | +Java related problems | +
kssl | +https (SSL) related problems | +
kio_http | +Problems with the http communication itself. | +
kcookiejar | +Cookie related problems | +
Now go to the KDE bug system +to send in a bug report. Thanks!
+ + diff --git a/javahowto/index.php b/javahowto/index.php new file mode 100644 index 0000000..97ab9ee --- /dev/null +++ b/javahowto/index.php @@ -0,0 +1,92 @@ + + ++ This document is a small HOWTO that will explain how to + configure Konqueror to take advantage of its Java support. The Java supp= ort + relies on the KDE Java Applet Server( KJAS ), which was begun by + Richard Moore and was finished + and is currently maintained by + Wynn Wilkes. + + KJAS uses an external jvm which runs in a different process than Konquero= r. + This has the advantage of developers being able to use Konqueror as a + deployment platform for the latest java technologies without having to wo= rry + about plugins. However, some applets out there were designed for older j= vm's. + Some of these may fail to run correctly with the current jvm's required b= y KJAS. A general + rule is: if your jdk's appletviewer can show the applet, then KJAS should= . Please + verify that before submitting bug reports. +
+ +Software Requirements ++ KJAS requires a Java 2 compatible jvm to operate correctly. This new rel= ease + has a built in Security Manager that will not work on the Java 1.1 platfo= rm. + You do not need a complete JDK for KJAS to work- you just need a JRE. +
++ KJAS has been tested against IBM's and Blackdown's 1.3 releases, and Sun'= s 1.2.2 release. + Currently, Sun's 1.3 jvm is not supported, but work is going on to fix th= e problems with + that version. Hopefully Sun's 1.3.1 release will work. + = + It's been found that KJAS seems to work best under Blackdown's jvm. + Kaffe and IBM's 1.1.8 will probably not work- they are not officially sup= ported. +
+ + =
+ Blackdown's JVM can be obtained from http://www.blackdown.org.
+ IBM's Java products can be found at http://www.ibm.com/developer/java/.
+ Sun's Java products can be found at http://java.sun.com/products/.
+
+ Konqueror will default to using 'java' to start the Applet Server. If yo= u need to use a + different jvm, or your system does not have 'java' in it's path, you can = use the KControl + Module for Konqueror to configure the correct java to use. For example, = if you install + IBM's IBMJava2-SDK-1.3-5.0.i386.rpm, the rpm will install to /opt/IBMJava= 2-13. From + a konqueror window, choose the Settings->Configure Konqueror Menu option.= In the + Konqueror Browser module, choose the Java Tab. In the edit box for 'Path= to java executable', + type /opt/IbmJava2-13/bin/java. Konqueror will now use the IBM jvm. +
+ +Getting HTTPS support for Applets ++ You can get applets to work over https with konqueror using Sun Microsyst= em's JSSE + (Java Secure Sockets Extension classes). These are available at + http://java.sun.com/products/jsse. You will need to download JSSE ve= rsion 1.0.3 (Sun requires + a free registration to do so). You will get a zip file that will contain= 3 jar files: jcert.jar, jnet.jar, and jsse.jar. + Simply copy those to your $KDEDIRS/share/apps/kjava/ directory and KJAS w= ill automatically use them. + If you don't have write access to your $KDEDIRS directory, then copy the = three jar files to your + $KDEHOME/share/apps/kjava/ directory. Then copy the $KDEDIRS/share/apps/= kjava/kjava.jar to + $KDEHOME/share/apps/kjava/. Konqueror will then look here instead of the= KDEDIRS directory. +
++ Please Note that you do NOT need to edit your java.security file or do an= y of the steps outlined + in the JSSE installation howto. Simply copy the jar files and KJAS will = make use of them. +
+ +It still doesn't work, what should I do? ++It depends on the error.... + +If applets fail to show up, please enable the Java console to make sure th= at your java process starts. +If the console does not show up, verify that the path that the Konqueror B= rowser Control Module has set +for the Java executable leads to an actual java executable. + +If applets fail to load and the java console spits out ClassFormatExceptio= ns errors, then there is a problem +with the applet. Most likely it has not been tested on the latest jvm's. = Check the site with the appletviewer +from your jdk. If the appletviewer shows the applet, then KJAS has a bug- = otherwise please talk +to the applet owner and ask them to support Java 2 with their applets. + +If you do find an applet that should work, but doesn't, by all means enter= a bug report. Please report +what jvm you're using when you do so. +
+ + diff --git a/menu.inc b/menu.inc new file mode 100644 index 0000000..5baeedc --- /dev/null +++ b/menu.inc @@ -0,0 +1,24 @@ +setName ("Konqueror Homepage"); + +$section =3D& $this->appendSection("Inform"); +$section->appendLink("Home",""); +$section->appendLink("KDE Home","http://www.kde.org/",false); +$section->appendDir("Announcements", "announcements"); +$section->appendLink("News","news.php"); +$section->appendDir("Features", "features"); +$section->appendLink("Konqueror Embedded", "embedded"); + +$section =3D& $this->appendSection("Technical"); +$section->appendLink("Konqueror FAQ", "faq"); +$section->appendLink("Java HOWTO", "javahowto"); +$section->appendLink("CSS Support", "css"); + +$section =3D& $this->appendSection("Download"); +$section->appendLink("Download Konqueror", "download"); + +$section =3D& $this->appendSection("Develop"); +$section->appendLink("Developers", "developers"); +$section->appendLink("Investigating Bugs", "investigatebug"); +$section->appendDir("Embedded Components Tutorial", "componentstutorial"); +?> diff --git a/news.php b/news.php new file mode 100644 index 0000000..f39970b --- /dev/null +++ b/news.php @@ -0,0 +1,14 @@ + + + + + diff --git a/news.rdf b/news.rdf new file mode 100644 index 0000000..7c042c4 --- /dev/null +++ b/news.rdf @@ -0,0 +1,277 @@ + + +