summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--KDE2PORTING.html925
1 files changed, 0 insertions, 925 deletions
diff --git a/KDE2PORTING.html b/KDE2PORTING.html
deleted file mode 100644
index 181a5bccb..000000000
--- a/KDE2PORTING.html
+++ /dev/null
@@ -1,925 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Level 2//EN//2.0">
-<HTML>
-<HEAD>
- <TITLE>Guide to Porting Applications to KDE 2.0</TITLE>
-</HEAD>
-<BODY>
-
-<H2>Porting Applications to KDE 2.0</H2>
-<H3>Last Modified on November 28, 2000</H3>
-This document contains the changes you have to apply to programs written for
-KDE1.1 when you want to port them to KDE2.0.<P>
-
-As a start you should have a look at doc/porting.doc in the Qt package,
-or <a href="http://doc.trolltech.com/porting.html">this page online</a>.<P>
-
-<H3><A NAME="TOC">Table of Contents</A></H3>
-
-<UL>
-<LI><A HREF="#gettingstarted">Getting Started</A></LI>
-<LI><A HREF="#general">Global changes</A></LI>
-<LI><A HREF="#automoc">automoc/am_edit, Makefile.am tags</A></LI>
-<LI><A HREF="#TDEApplication">TDEApplication</A></LI>
-<LI><A HREF="#TDECmdLineArgs">TDECmdLineArgs</A></LI>
-<LI><A HREF="#TDELocale">TDELocale</A></LI>
-<LI><A HREF="#TDEGlobal">TDEGlobal: access to KDE global objects.</A></LI>
-<LI><A HREF="#TDEIconLoader">TDEIconLoader</A></LI>
-<LI><A HREF="#KTMainWindow">KTMainWindow</A></LI>
-<LI><A HREF="#KHelpMenu">KHelpMenu</A></LI>
-<LI><A HREF="#TDEToolBar">TDEToolBar</A></LI>
-<LI><A HREF="#launching">Starting other programs</A></LI>
-<LI><A HREF="#tdehtmlw">tdehtmlw</A></LI>
-<LI><A HREF="#KIntegerLine">KIntegerLine, KIntLineEdit</A></LI>
-<LI><A HREF="#KDNDIcon">KDNDIcon, KDNDDropZone, KDNDWidget, tdecore/drag.h</A></LI>
-<LI><A HREF="#TDEConfigBase">TDEConfigBase, TDEConfig, KSimpleConfig</A></LI>
-<LI><A HREF="#libkfm">libkfm</A></LI>
-<LI><A HREF="#KDialog">KDialog</A></LI>
-<LI><A HREF="#kcharsets">kcharsets</A></LI>
-<LI><A HREF="#KWizard">KWizard, KNoteBook</A></LI>
-<LI><A HREF="#KSpinBox">KSpinBox, KNumericSpinBox</A></LI>
-<LI><A HREF="#TDEClipboard">TDEClipboard</A></LI>
-<LI><A HREF="#KPanner">KPanner, KNewPanner</A></LI>
-<LI><A HREF="#KTreeList">KTreeList, KTreeListItem</A></LI>
-<LI><A HREF="#KMsgBox">KMsgBox</A></LI>
-<LI><A HREF="#KCombo">KCombo</A></LI>
-<LI><A HREF="#KQuickHelp">KQuickHelp</A></LI>
-<LI><A HREF="#KPixmapgradientFill">KPixmap::gradientFill</A></LI>
-<LI><A HREF="#KTabListBox">KTabListBox</A></LI>
-<LI><A HREF="#TDEToolBarButton">TDEToolBarButton &amp; TDERadioGroup</A></LI>
-<LI><A HREF="#TDEAccel">TDEAccel</A></LI>
-<LI><A HREF="#kstring">kstring.h / KString</A></LI>
-<LI><A HREF="#ktopwidget">ktopwidget.h / KTopWidget</A></LI>
-<LI><A HREF="#kbutton">kbutton.h / KButton</A></LI>
-<LI><A HREF="#kbuttonbox">kbuttonbox.h / KButtonBox</A></LI>
-<LI><A HREF="#kcolorgroup">kcolorgroup.h / KColorGroup</A></LI>
-<LI><A HREF="#kled">kled.h, kledlamp.h / KLed, KLedLamp</A></LI>
-<LI><A HREF="#KDockWidget">KDockWidget</A></LI>
-<LI><A HREF="#KPixmap">KPixmap, KPixmapEffect</A></LI>
-<LI><A HREF="#KControlCenter">Trinity Control Center</A></LI>
-<LI><A HREF="#KWMModuleApplication">KWMModuleApplication libtdeui/kwmmapp.h</A></LI>
-<LI><A HREF="#KDebug">KDebug</A></LI>
-<LI><A HREF="#KFileDialog">KFileDialog - General Stuff</A></LI>
-<LI><A HREF="#KFileDialogPreview">KFileDialog - Preview Mode</A></LI>
-<LI><A HREF="#ImageEffects">Image Effects</A></LI>
-<LI><A HREF="#KAudio">KAudio (kaudio.h)</A></LI>
-<LI><A HREF="#KImageIO">KImageIO (kimgio.h)</A></LI>
-</UL>
-
-<H3><A NAME="gettingstarted">Getting started</A></H3>
-
- The first step to get your KDE application to compile under KDE 2.0,
- is to detect KDE 2.0 and Qt 2.x at configure time. The easiest way to
- get a working autoconf/automake framework, is to either use
- <a href="http://www.kdevelop.org">KDevelop</a> or
- <a href="http://home.earthlink.net/~granroth/kapptemplate/index.html">kapptemplate</a>
- (available in CVS under the module "tdesdk"), to generate a new
- application template. Replace the generated source files by yours
- and adapt Makefile.am accordingly.
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="general">Global changes</A></H3>
-
- We did our best to clean up the header files of tdelibs, so they do
- not include unnecessary bloat for your application. As a consequence, you
- may notice that some header files are missing from your source files as
- they have been included before by kapp.h for example. There is a script
- in tdesdk/scripts called "fixheaders" that takes care of most of these
- cases. Just call "make -k 2&gt;&amp;1 | perl .../fixheaders" and it will try
- to look after the error messages and add includes as it recognize the
- errors.<P>
-
- Also, if your code does not compile and complains about missing member
- functions, you should check for methods that started with get...().
- These methods have been renamed to xy*() for consistency.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="automoc">automoc/am_edit, Makefile.am tags</A></H3>
-
- On the subject of the compilation framework, automoc has been removed from
- the admin directory. It has been replaced by am_edit which provides a lot of
- additional features.<P>
- METASOURCES=AUTO still does the job of generating the appropriate moc files,
- but in addition, you should use KDE_ICON for the icons representing the application
- (and naming those icons conforming to lo16-app-&lt;appname&gt;.png), and install
- the application-specific icons under $(kde_datadir)/&lt;appname&gt;/pics.
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEApplication">TDEApplication</A></H3>
-
- doesn't hold any longer a TDELocale instance. With this getLocale()
- and isLocaleInstantiated are now replaced by TDEGlobal::locale()<P>
-
- it also doesn't hold a KiconLoader instance. As this also getIconLoader()
- has been removed. Replace kapp-&gt;getIconLoader()-&gt;loadIcon() with
- BarIcon() or use TDEGlobal::iconLoader() instead of getIconLoader()<P>
-
- kde_*dir() have been removed as they require a unique top level directory
- for all applications (TDEDIR). This concept doesn't exist in KDE 2.0
- any more, it has been replaced with "multiple levels of directories",
- set in TDEDIRS, so that it's possible to have global settings and
- group settings, applied before user settings.<P>
-
- Replace code that uses kde_*dir() + filename with calls to
- locate(filetype, filename) where filetype is what * used to be
- in kde_*dir(). locate is defined as function in kstddirs.h to call
- TDEGlobal::dirs()-&gt;findResource.<P>
-
- Use locateLocal to get the path of a writable file. For instance,
- TDEApplication::localconfigdir()+filename is now locateLocal( "config", filename ),
- but for most cases, simply using TDEGlobal::config() is enough, if you're happy
- with saving the application's configuration into appnamerc, or
- KSimpleConfig cfg("anothercfgfile") to create a config file with another name.<P>
-
- generalFont() and fixedFont() are deprecated and will be removed soon.
- Please use TDEGlobalSettings::generalFont() and TDEGlobalSettings::fixedFont() instead.<P>
-
- appName() is deprecated. Please use TQApplication::name() or instanceName
- instead.<P>
-
- The methods tempSaveName() and checkRecoverFile() return QString
- now. The returned values must _not_ be free()d.<P>
-
- helpMenu() has been moved to TDEMainWindow. aboutKDE(), aboutApp() and
- appHelpActivated() have all been removed See section for TDEMainWindow
- for more info.<P>
-
- The TDEApplication constructor has changed. Command line arguments and
- program name should no longer be passed to TDEApplication but to
- TDECmdLineArgs. TDECmdLineArgs performs command line parsing and a command
- line help. See below for more info.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDECmdLineArgs">TDECmdLineArgs</A></H3>
-
- TDECmdLineArgs is a new class that handles command line parsing and
- command line help. It is now required that your application
- specifies at least:<P>
- <UL>
- <LI>Its name.
- <LI>A short description what it does. (e.g. 1 line)
- <LI>A version.
- <LI>All command line options that it supports.
- </UL>
-
- TDECmdLineArgs itself will add the command line options supported by Qt
- and TDEApplication.<P>
-
- You can also use the TDEAboutData class to specify name, description and
- version.<P>
-
- In return for this information you can query TDECmdLineArgs whether an
- certain option was specified on the command line and your application
- now automatically supports --help and --version. It aborts with a
- useful error message when the command line contains a syntax error.
- See tdelibs/tdecore/tdecmdlineargs.h for more info.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDELocale">TDELocale</A></H3>
-
- i18n is no longer a macro<P>
-
- TDEApplication::getApplication()-&gt;getLocale()-&gt;translate<P>
-
- but a function on its own. klocale is obsolete and replace every call
- to klocale-&gt;translate with i18n.<P>
-
- The return value of i18n is also no longer a const char*,
- but a unicode TQString.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEGlobal">TDEGlobal: access to KDE global objects.</A></H3>
-
-TDEGlobal allows centralized access to KDE global objects without including
-extraneous headers. object creation is deferred if possible.<P>
-
-All methods are static and headers for returned types are not included. You
-must have created a TDEApplication object before the methods can be used.<P>
-<TABLE BORDER="0">
-<TR>
- <TD COLSPAN="2">
- <PRE>
- #include &lt;tdeglobal.h&gt;
- #include &lt;tdeconfig.h&gt; // Needed to use TDEConfig
- #include &lt;tdelocale.h&gt; // Needed to use TDELocale
- #include &lt;kiconloader.h&gt; // Needed to use TDEIconLoader
- </PRE>
- </TD>
-</TR>
-<TR>
- <TD>
- <PRE>
- ...
- TDEConfig *appcfg = TDEGlobal::config();
- TQString mystr = i18n( "This is a string" );
-
-
- TDEIconLoader *loader = TDEGlobal::iconLoader();
- </PRE>
- </TD>
-</TR>
-</TABLE>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEIconLoader">TDEIconLoader</A></H3>
-
-TDEIconLoader in 1.1 used to mix icons for applications and for toolbars.
-This has changed, so you may notice that your application doesn't find
-the right icons. loadIcon (used by BarIcon) returns only toolbar icons.<P>
-If you need icons for applications, use loadApplicationIcon.<P>
-loadMiniIcon and loadApplicationMiniIcon have been removed, instead
-loadApplicationIcon now takes a "size" argument where you can specify the
-size of the icon (small, medium, large).<P>
-The other big change you may notice, is that ICON and Icon have been
-removed as they caused big confusion for not loading application icons
-(see above). For this we added BarIcon which does the same as ICON before.
-The third change in this row is that loadIcon doesn't need the extension
-anymore, but looks for standard extensions (png, xpm) itself. If you hard-
-coded .xpm, loadIcon will issue a warning at runtime, but will still work
-in stripping off the .xpm part<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KTMainWindow">KTMainWindow</A></H3>
-
-KTMainWindow has been replaced with TDEMainWindow.<p>
-
-The TDEMainWindow constructor needs a parent widget as first argument.
-You can use 0 for this.<p>
-setView() has been replaced with setCentralWidget().<p>
-view() has been replaced with centralWidget().<p>
-addToolBar() has been removed, it is not needed any more.<p>
-setMenu(...) has been removed, it is not needed any more.<p>
-setStatusBar(...) has been removed, it is not needed any more.<p>
-updateRects() has been removed, it is not needed any more.<p>
-enableStatusBar(...) has been removed, use statusBar()-&gt;show() and/or
-statusBar()-&gt;hide() instead.<p>
-enableToolBar(...) has been removed, use toolBar()-&gt;show() and/or
-toolBar()-&gt;hide() instead. <p>
-
-view_* public variables do no longer exist. There is really no reason
-for an app to use this information. If you do need it anyway, use
-mainViewGeometry() instead.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KHelpMenu">KHelpMenu</A></H3>
-
-helpMenu() has been moved to TDEMainWindow from TDEApplication (kapp).<P>
-
-Both the "About KDE" and the "About &lt;Application&gt;" dialog boxes
-are now modeless. "About KDE" is a completely new widget.<P>
-
-If you used in the toplevel window (that is derived from TDEMainWindow)
-"kapp-&gt;helpMenu( bool, TQString )" to get the help menu
-you must now change this to "helpMenu( TQString )". The TQString defaults
-to TQString::null so it is sufficient to write helpMenu().<P>
-
-The old aboutKDE(), aboutApp() and appHelpActivated() of TDEApplication
-have all been removed. If you need direct access to these or need
-access to a help menu in a class that is not derived from
-TDEMainWindow then allocate an instance of the new class KHelpMenu.
-See KDE 2.0 API reference or khelpmenu.h (tdeui) for additional info.<P>
-Espen Sand &lt;<A HREF="mailto:espen@kde.org">espen@kde.org</A>&gt;<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEToolBar">TDEToolBar</A></H3>
-
-enable(...) is depreciated, use show()/hide() instead.<p>
-enableFloating(...) has been removed, use enableMoving() instead.<p>
-setMaxHeight() is depreciated, use setMaximumHeight() instead.<p>
-maxHeight() is depreciated, use maximumHeight() instead.<p>
-setMaxWidth() is depreciated, use setMaximumWidth() instead.<p>
-maxWidth() is depreciated, use maximumWidth() instead.<p>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="launching">Starting other programs</A></H3>
-
-In KDE 2.0 there are several ways to start other programs from within
-your application. Here is a short summary of your options with reasons why
-you should or should not use them.
-<H4>1. fork + exec</H4>
-<P>
-You never want to use this unless you have a very good reason why it is
-impossible to use TDEProcess.
-</P>
-<H4>2. TDEProcess</H4>
-<P>
-You want to use this if you need to start a new process which needs to be a
-child of your process, e.g. because you want to catch stdout/stderr or need
-to send it data via stdin. You should never use this to start other KDE
-applications unless your application is called kgdb :-) If you need to
-send/receive text like data to/from the process, you are probably better
-off with KProcIO
-</P>
-
-<H4>3. KProcIO</H4>
-<P>
-Like TDEProcess. Unlike TDEProcess, this class actually makes it easy to
-send data to and receive data from the process.
-
-</P>
-<H4>4. startServiceByDesktopPath</H4>
-<P>
-Preferred way to launch desktop (KDE/Gnome/X) applications or KDE services.
-The application/service must have a .desktop file. It will make use of
-KDEinit for increased startup performance and lower memory usage. These
-benefits only apply to applications available as KDEinit loadable module (KLM)
-</P>
-<H4>5. KRun</H4>
-<P>
-Generic way to open documents/applications/shell commands. Uses
-startServiceBy.... where applicable. Offers the additional
-benefit of startup-notification.<BR>
-KRun can start any application, from the binary or the desktop file,
-it will determine the mimetype of a file before running the
-preferred handler for it, and it can also start shell commands.
-This makes KRun the recommended way to run another program in KDE 2.
-</P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="tdehtmlw">tdehtmlw</A></H3>
-
-tdehtmlw has been replaced with tdehtml.<BR>
-<UL>
- <LI>TDEHTMLView has vanished. Just use TDEHTMLWidget, which does scrollbar
- managing for free.
-
- <LI>A lot of the API has changed. If you just want to open a file/URL,
- you just need to do:<P>
- <PRE>
- TDEHTMLWidget *w = new TDEHTMLWidget();
- w-&gt;openURL(myURL);
- </PRE>
-
- <LI>tdehtml uses QString's instead of char *'s now. This means, that most
- of the api has changed. In all functions:<P>
- <PRE>
- const char * -&gt; QString
- TQStrList -&gt; QStringList
- </PRE>
- The only exception for the moment is TDEHTMLWidget::write(), which does
- also exist in a const char * version.<P>
-
-
-<LI>you won't need the getTDEHTMLWiget function anymore. Just replace
- getTDEHTMLWidget-&gt;xxx() with xxx()<P>
-<LI>xxx(TQString) -&gt; xxx(const TQString &amp;)<P>
-<LI>consistent naming. All getXyz() functions are renamed to xyz()<P>
-<LI>replaced/changed functions:<P>
-<TABLE BORDER="1">
-<TR>
-<TD>TDEHTMLWidget::setDefaultFontBase()</TD>
-<TD>-&gt; setFontSizes()</TD>
-</TR>
-<TR>
-<TD>x/yOffset()</TD>
-<TD>-&gt; contentsX/Y()</TD>
-</TR>
-<TR>
-<TD>getSelectedText(TQString &amp;)</TD>
-<TD>-&gt; TQString selectedText()</TD>
-</TR>
-<TR>
-<TD COLSPAN="2" ROWSPAN="0">findTextEnd() has vanished. just remove the call from your code</TD>
-</TR>
-<TR>
-<TD>gotoXY(x, y)</TD>
-<TD>-&gt; setContentsPos(x, y)</TD>
-</TR>
-<TR>
-<TD>docWidth()</TD>
-<TD>-&gt; contentsWidth()</TD>
-</TR>
-<TR>
-<TD>docHeight()</TD>
-<TD>-&gt; contentsHeight()</TD>
-</TR>
-</TABLE><P>
-
-<LI>Don't forget to change the link-flags! (-ltdehtml -lkjava instead of -ltdehtmlw)
-</UL>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KIntegerLine">KIntegerLine, KIntLineEdit</A></H3>
-
- KIntegerLine and KIntLineEdit have been replaced by KIntNumInput.
- The new header file is called knuminput.h.<P>
-
- The new KIntNumInput can have an optional slider attached, ensures
- that the entered value is in a given range (use MAX_INT or similar
- if you don't care about the range) and can maintain a descriptive
- label and also a unit for the edited value.<P>
-
- The API is almost the same and it simplifies existing code a bit,
- so give it a try. If you need more functionality, please contact
- me, Dirk A. Mueller &lt;<A HREF="mailto:mueller@kde.org">mueller@kde.org</A>&gt;.<P>
-
- The additional class KDoubleNumInput gives you the same look &amp; feel,
- but allows you to edit floating point numbers.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KDNDIcon">KDNDIcon, KDNDDropZone, KDNDWidget, tdecore/drag.h</A></H3>
-
-KDE Drag and Drop is Dead. Long live Qt Xdnd.<P>
-
-Xdnd is better anyway, because it has been adopted by all the other
-major GUI toolkits still under active development (this precludes
-Motif, but maybe we can convince the lesstif guys!). Some changes
-are necessary to convert your old KDND-based stuff to Qt DND.<P>
-<UL>
-<LI>Remove drag.h from all of your sources / header files.<P>
-<LI>Remove KDNDDropZone object creations. Instead of creating an
- object of this type and then connecting it to some arbitrary slot
- to handle drops, call "setAcceptDrops(true)" in your widget
- constructor and then override the protected methods dragEnterEvent,
- dragMoveEvent, dragLeaveEvent, and dropEvent.<P>
-<LI>You should be aware that to handle drops, you will either have to
- inherit a widget and then override the methods mentioned above,
- or install an event handler for the widget in that widget's parent,
- and then handle TQEvent::DragMove or TQEvent::Drop inside there (if
- you want to avoid inheritance).<P>
-<LI>You can emulate the old DndURL drop-type behavior with the Qt
- Drag Object type QUriList.<P>
-<LI>You can start a drag from inside your widget's mouseMoveEvent
- method if you wish.<P>
-<LI>Qt includes a Drag and Drop tutorial. We suggest you read that
- now if you are confused.<P>
-<LI>TQMultiLineEdit has already a DnD interface that accepts text/*
- If you want to add support for other mimetypes, you need to
- re-implement all DnD-methods (also dragMoveEvent()) and pass
- QTextDrag's to the parent methods.<P>
-<LI>TQTextDrag also accepts text/uri-list, which means that you
- always need to check for TQUriDrag first if you want to get
- both working.<P>
-<LI>The mimetype for Uri's is now text/uri-list. If you've used
- the proprietary Qt 1.x url/url, you need to adjust that.
-</UL>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEConfigBase">TDEConfigBase, TDEConfig, KSimpleConfig</A></H3>
-
- These classes have been largely re-implemented. The external API
- remains mostly the same, with the single notable change that
- the groupIterator and entryIterator methods have been removed and
- instead replaced by groupList (which returns a TQStringList of groups)
- and entryMap(const TQString &amp;group) (which returns a TQMap of entries
- in the specified group). This is due to internal changes in TDEConfig
- which would make providing iterators possibly rather difficult.<P>
-
- Much more extensive documentation on the TDEConfig and friends API can
- be found in the kdoc generated documentation from the header files,
- and in tdecore/KCONFIG_DESIGN.<P>
-
- To use the new iterator, you will probably want to do something like
- this:<P>
- <PRE>
-
- TQMap&lt;TQString, TQString&gt; tmpMap = config-&lt;entryMap(myGroup);
- TQMap&lt;TQString, TQString&gt;::Iterator aIt(tmpMap.begin());
-
- for (; aIt != tmpMap.end(); ++aIt) {
- // body here. Access iterator key as aIt.key(),
- // data as *aIt.
- }
- </PRE>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="libkfm">libkfm has disappeared</A></H3>
-
- Lots of other functionalities have been taken out of kfm, some being
- now in libtdeio, some in libkonq.<P>
- <STRONG> Replacement table :</STRONG><P>
-<TABLE BORDER="1">
-
-<TR><TD>KFM::download </TD><TD>-&gt; TDEIO::NetAccess::download (tdelibs/tdeio/netaccess.h)</TD></TR>
-<TR><TD>KFM::removeTempFile </TD><TD>-&gt; TDEIO::NetAccess::removeTempFile</TD></TR>
-<TR><TD COLSPAN="2" ROWSPAN="0">refreshDesktop, sortDesktop, selectRootIcons : removed; kdesktop handles it</TD></TR>
-<TR><TD>KFM::configure </TD><TD>-&gt; see konqueror DCOP interface</TD></TR>
-<TR><TD>KFM::openURL </TD><TD>-&gt; "(void) new KRun (url)" (tdelibs/tdeio/krun.h)</TD></TR>
-<TR><TD>KFM::refreshDirectory </TD><TD>-&gt; not needed anymore since konqy/kdesktop use KDirWatch</TD></TR>
-<TR><TD>KFM::openProperties </TD><TD>-&gt; "(void) new KPropertiesDialog (url)" (tdelibs/tdefile/kpropsdlg.h)</TD></TR>
-<TR><TD>KFM::exec </TD><TD>-&gt; "(void) new KRun (url)" (tdelibs/tdeio/krun.h)</TD></TR>
-<TR><TD>KFM::copy, KFM::move </TD><TD>-&gt; TDEIO::Job (async, see tdeio/job.h)<BR>
- or TDEIO::NetAccess (sync, see tdeio/netaccess.h)</TD></TR>
-<TR><TD>DlgLocation </TD><TD>-&gt; Use KLineEditDlg (tdeui/klineeditdlg.h) instead</TD></TR>
-</TABLE>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KDialog">KDialog</A></H3>
-
-KDialog is no longer defined in kwizard.h. Include kdialog.h instead.<P>
-Note that the best way to write new dialogs is to use KDialogBase (see kdialogbase.h)<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-
-<H3><A NAME="kcharsets">kcharsets</A></H3>
-
-The kcharsets class has been completely rewritten, and most of it has
-vanished, since support for it moved to Qt.<P>
-
-Most applications will only need to replace kapp-&gt;getKCharsets() with
-TDEGlobal::charsets().<P>
-
-For conversion of various input formats to QStrings, please have a
-look at TQTextCodec and classes derived from it.<P>
-
-Character entities are now converted from and to QChars. The name has
-changed from convertTag to fromEntity and toEntity.<P>
-
-To get a font, which can display a certain charset (if such a font
-exists), you can use the KCharsets::setQFont methods. Input is a font and
-a charset. Kcharsets tries to find an output font, which matches the
-input font most closely, but can display the given charset.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KWizard">KWizard, KNoteBook</A></H3>
-
-KWizard is based on TQWizard now. The API has changed. Consult Qt's
-documentation and tdelibs/kdetest/kwizardtest.cpp for an example use.<P>
-KNoteBook (deeply entwined with the former KWizard) has been removed until
-someone is willing to port it to work with the new wizard. If you want to
-use it you'll find the necessary files in tdegraphics/tdeiconedit.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KSpinBox">KSpinBox, KNumericSpinBox</A></H3>
-
-These classes have been replaced by TQSpinBox. API is almost the same
-HINTS:<P>
-<UL>
- <LI>valueincreased()/valuedecreased -&gt; valueChanged()
-<LI>getValue() -&gt; value()
-</UL>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEClipboard">TDEClipboard</A></H3>
-
-TDEClipboard has been removed. In case you've been using TDEClipboard,
-QClipboard is the way to go now, as it has all the functionality the K
-version had, and more.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KPanner">KPanner, KNewPanner</A></H3>
-
-KPanner and KNewPanner have been removed. TQSplitter does everything
-KPanner did and more. The api is similar, but not compatible.
-Basically to set it up so that you have a vertical splitter between a
-listbox, a listview and multi line editor, you would do something like
-this:<P>
-<TABLE><TR><TD>
- TQSplitter *split = new TQSplitter( parent );<BR>
- TQListBox *lb = new TQListBox( split );<BR>
- TDEListView *lv = new TDEListView( split );<BR>
- TQMultiLineEdit *ed = new TQMultiLineEdit( split );
-</TD></TR></TABLE>
-
-As you can see you are not limited to two children. Additionally, you
-do not have to call activate when you are done, and opaque resizing is
-possible if you call setOpaqueResize(true).<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KTreeList">KTreeList, KTreeListItem</A></H3>
-
-Use TDEListView, TQListViewItem instead. API is almost the same, you only
-need to add a Column (TDEListView::addColum) before TDEListView is useable.<P>
-
-TDEListView has no addChild(), insertItem() and removeItem() calls. Inserting
-a root item is done by constructing a TQListViewItem with the TDEListView
-passed as the parent widget. adding a child item is done by constructing
-a TQListViewItem with the parent item as parameter. removeItem() should
-be replaced by delete &lt;pointer to item&gt;.<P>
-
-The root items are not shown in a tree fashion by default. to get this,
-use TDEListView::setDecorativeRoot(true).<P>
-
-Expanding and collapsing can by done by using TQListViewItem::setOpen(bool).<P>
-
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KMsgBox">KMsgBox</A></H3>
-
-KMsgBox has been superseded by TQMessageBox. Which has been superseded
-by KMessageBox.<P>
-<UL>
-<LI>KMsgBox had return codes starting with 1 for the first button, 2 for
- the second, and so on. KMessageBox defines an enum which you should
- use instead.
-<LI>Please note that you shouldn't add the name of your application
- to the caption argument. It is already added automatically.
-</UL>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KCombo">KCombo</A></H3>
-
-KCombo has been removed. Use KComboBox instead, it is completely
-compatible with the old KCombo API. The method that you may have problems
-with is the old KCombo::setText. This has been renamed to
-KComboBox::setEditText.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KQuickHelp">KQuickHelp</A></H3>
-
-KQuickHelp, the "super-tooltip" widget, has been replaced by TQWhatsThis.
-It provides a compatible API and almost the same look and feel, in addition
-to some new functionality.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KPixmapgradientFill">KPixmap::gradientFill</A></H3>
-
-Instead of old KPixmap::gradientFill, use:<P>
-
-KPixmapEffect::gradient(KPixmap&amp;, TQColor, TQColor, enum KPixmapEffect::GradientType, int)<P>
-
- Hence:<P>
-
-pix.gradientFill(ca, cb, direction, ncols)<P>
-
-becomes, for direction == true :<P>
-
-KPixmapEffect::gradient(pix, ca, cb, KPixmapEffect::VerticalGradient, ncols)<P>
-
-There are now:<P>
-<TABLE><TR><TD align=top>
-KPixmapEffect::<BR></TD>
-<TD> [Vertical,<BR>
- Horizontal,<BR>
- Diagonal,<BR>
- CrossDiagonal,<BR>
- Rectangle,<BR>
- Pyramid,<BR>
- PipeCross,<BR>
- Elliptic]</TD></TR></TABLE>
-
-Gradients. See tdelibs/kdetest/kgradienttest &amp; kunbalancedgradienttest for
-information on how they actually look.<P>
-
-Look further in this document for other info about pixmap effect code
-reorganization (essentially, all effects are now in libtdeui.so: gradient(),
-unbalancedGradient(), hash(), desaturate(), pattern(), fade(), blend() etc.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KTabListBox">KTabListBox</A></H3>
-
-This widget has been replaced by the almighty TDEListView. Everything said
-about KTreeList could be repeated here. The good thing is, that you now
-can combine TreeView's and normal Tablists without problems.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEToolBarButton">TDEToolBarButton &amp; TDERadioGroup</A></H3>
-
-If you need to do anything with TDEToolBarButton you now need to include
-&lt;tdetoolbarbutton.h&gt; TDERadioGroup has been renamed to TDEToolBarRadioGroup and
-requires you to include &lt;tdetoolbarradiogroup.h&gt;<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="TDEAccel">TDEAccel</A></H3>
-
-The functions keyToString() and stringToKey() which were previously
-declared globally in tdeaccel.h are now static methods in TDEAccel.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="kstring">kstring.h / KString</A></H3>
-
-The KString class is obsolete and is not defined in
-kstring.h anymore. The header file only existed for compatibility reasons.
-The file has been removed completely, use TQString instead. (<A HREF="mailto:mirko@kde.org">mirko@kde.org</A>)<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="ktopwidget">ktopwidget.h / KTopWidget</A></H3>
-
-TDEMainWindow replaces this class completely. ktopwidget.h does not
-exist in KDE 2. (<A HREF="mailto:mirko@kde.org">mirko@kde.org</A>)<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="kbutton">kbutton.h / KButton</A></H3>
-
-Since Qt 2.0, the class TQToolButton provides the functionality of
-buttons that raise when the mouse is moved over them, so there is no
-reason to have a class providing the same feature in KDE libs. All
-occurrences of KButton in the KDE CVS have been replaced by QToolButtons,
-but for applications not in the CVS it has to be done by the respective
-developer. (<A HREF="mailto:mirko@kde.org">mirko@kde.org</A>)<P>
-
-<H3><A NAME="kbuttonbox">kbuttonbox.h / KButtonBox</A></H3>
-
-KButtonBox::Orientation has been removed in favor of Qt::Orientation.
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="kcolorgroup">kcolorgroup.h / KColorGroup</A></H3>
-
-KColorGroup was not used in sources in the KDE CVS, and its
-functionality is provided by Qt. It has been removed. (<A HREF="mailto:mirko@kde.org">mirko@kde.org</A>)<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="kled">kled.h, kledlamp.h / KLed, KLedLamp</A></H3>
-
-There where two different classes for showing an LED lamp. Both are
-merged to the KLed class, but THE USER INTERFACE IS DIFFERENT, as both
-where more or less broken.<P>
-Please adjust your code accordingly.<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KDockWidget">KDockWidget</A></H3>
-
-KDockWidget inherits form TDEMainWindow instead of KTMainWindow now.
-See <A HREF="KTMainWindow">KTMainWindow</A> for more details.
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KPixmap">KPixmap, KPixmapEffect</A></H3>
-
-KPixmap::gradientFill, KPixmap::patternFill, KPixmap::tile and
-KPixmap::mapFill have been moved to KPixmapEffect, which is now part
-of libtdeui.<P>
-
-KPixmap::tile() has been renamed to KPixmapEffects::createTile().<P>
-
-Dirk A. Mueller &lt;<A HREF="mailto:mueller@kde.org">mueller@kde.org</A>&gt;<P>
-
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KControlCenter">Trinity Control Center</A></H3>
-
-The format for modules for the Trinity Control Center has changed quite
-a bit. If you want to port your module to the new schema, please
-consult<P>
-
-tdebase/kcontrol/README<P>
-
-which explains what needs to be done.<P>
-
-Matthias Hoelzer-Kluepfel &lt;<A HREF="mailto:hoelzer@kde.org">hoelzer@kde.org</A>&gt;<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-
-<H3><A NAME="KWMModuleApplication">KWMModuleApplication libtdeui/kwmmapp.h</A></H3>
-
-The KWMModuleApplication has been removed. Instead, use the class
-KWinModule in libtdecore. The API is a bit cleaner but very similar,
-so you will feel comfortable immediately. One of the advantages of
-KWinModule is that it doesn't require a special TDEApplication
-subclass. This lead to many problems and misunderstandings in the
-past. KWinModule is now just an object that emits fancy signals (and
-provides some useful lists, like the list of all managed windows).
-(<A HREF="mailto:ettrich@kde.org">ettrich@kde.org</A>)<P>
-
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KDebug">kDebug</A></H3>
-
-Use kdDebug, kdWarning, kdError, kdFatal to log debug output, warnings and
-errors in a very flexible way. kdebug has been improved, and the API simplified.
-tdesdk/scripts/kDebug2kdDebug.sh provides a script for automating the conversion.
-Note that enabling/disabling debug output can now be done with tdedebugdialog,
-which can be found in tdebase. The hidden dialog on C+S+F12 no longer exists.
-<P>
-Also, note that tqDebug and fprintf aren't disabled by -DNDEBUG, whereas kdDebug is.
-One more reason to use kdDebug !
-(<A HREF="mailto:faure@kde.org">faure@kde.org</A>)<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KFileDialog">KFileDialog - General Stuff</A></H3>
-
-The new (rewritten) KFileDialog (KFD) is a lot more like the new QFileDialog
-but still looks quite different. Normally you may want to use the static
-methods provided for convenience (getOpenFileName and getSaveFileName).
-If you need special features you can configure the dialog extensively. Just
-create an object and use the different methods. <P>
-Werner Trobin &lt;<A HREF="mailto:wtrobin@carinthia.com">wtrobin@carinthia.com</A>&gt;<P>
-
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KFileDialogPreview">KFileDialog - Preview Mode</A></H3>
-There is also a new preview mode which is quite different to the one we had in
-the KDE 1.x KFD. There are no preview modules you have to register but there
-is a single method you can use to set a preview widget. This widget has to
-inherit TQWidget and you have to implement a slot (showPreview(const KURL &amp;))
-in this class. This slot is called each time the selected file/dir changes.
-In this slot you have to react appropriate (i.e. show the preview :). The
-easiest way this can be done is to derive your class from TQWidgetStack and
-add a Object (derived from TQWidget) for each file type. In the showPreview
-method you just raise the matching widget. If you can't find an appropriate
-widget just hide() the widget stack.<P>
-If you need some "inspiration" on how that could be done, please have a look
-at koffice/lib/kofficecore/koFilterManager.cc (PreviewStack).<P>
-Werner Trobin &lt;<A HREF="mailto:wtrobin@carinthia.com">wtrobin@carinthia.com</A>&gt;<P>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="ImageEffects">Image effects</A></H3>
-
-The kFSDither class is now gone. Its functionality was moved to
-KImageEffect::dither(). Whereas before, you would done:<P>
-<TABLE>
- <TR>
- <TD>
- <PRE>
- kFSDither dither(palette, ncols);
- image = dither.dither(image);
- </PRE>
- </TD>
- </TR>
-</TABLE>
-<P>
-Now do:<BR>
-<TABLE>
- <TR>
- <TD>
- <PRE>
- KImageEffect::dither(image, palette, ncols);
- </PRE>
- </TD>
- </TR>
-</TABLE>
-<P>
-
-Kurt Granroth &lt;<A HREF="mailto:granroth@kde.org">granroth@kde.org</A>&gt;
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KAudio">KAudio (kaudio.h)</A></H3>
-The KAudio class no longer exists. Here are your options for porting.
-<p>
-<ul>
-<li>notifications like "you have got new mail"
-<p>
-The way to go for this one is to use the KNotify API, which will allow
-users to reconfigure how your application should sound. On the other hand,
-they will also be able to disable specific sounds, rather let the events
-log to a file, and so on. You can provide an rc file with the default
-configuration. (Include "knotifyclient.h" and use the KNotifyClient class).
-<p>
-<li>very simple cases
-<p>
-On the other hand, if you just want a really small solution, there is the
-KAudioPlayer class (declared kaudioplayer.h), which has a static member
-function for playing, like
-<p>
-<pre>
- KAudioPlayer::play("/var/samples/foo.wav");
-</pre>
-<p>
-<li>multimedia apps
-<p>
-If you are writing "real multimedia apps", you may also have a look at the
-even more advanced sound/multimedia support, that using the aRts/MCOP
-libraries directly can offer you.
-</ul>
-Stefan Westerfeld <A HREF="mailto:stefan@space.twc.de">stefan@space.twc.de</A>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-<H3><A NAME="KImageIO">KImageIO (kimgio.h)</A></H3>
-<p>
-KImageIO has moved from 'kimgio.h' to 'kimageio.h'. LIB_KIMGIO does no longer
-exists, you need to link against LIB_TDESYCOCA instead.
-</p>
-<p>
-kimgioRegister() has been replaced by KImageIO::registerFormats().
-</p>
-
-<p>
-Waldo Bastian <A HREF="mailto:bastian@kde.org">bastian@kde.org</A>
-
-<H4><P ALIGN="RIGHT"><A HREF="#TOC">Return to the Table of Contents</A></P></H4>
-
-</BODY>
-</HTML>