Frameworks/Epics/Reduce class duplication
< Frameworks | Epics
Reducing class duplication with Qt
Some of the splitting for kdelibs are easily blocked by classes mentionned here. The goal of this epic, is to determine for each class what it will become. Possible solutions are:
- go straight in hel^Wkde4support if it is obsoleted completely by a class in Qt;
- have its features ported to the corresponding class in Qt 5, then moved to kde4support (in which case a corresponding task has to be opened in one of the Qt 5 epics;
- if it provides a valid feature on its own on top of Qt (real novelty, not just some addon cramed into a subclass), decide on which framework it goes to;
- if it's purely about integration among KDE applications, go straight to the upcoming kde "consistency" framework (Tier 4).
A row is marked as "done" when the investigation is done and TODOs have been added to the Qt-5.1 or kdelibs_cleanups pages. Not when the job itself is done.
Status | Description | Comment | |
---|---|---|---|
IN PROGRESS | KApplication : public QApplication | kde4support is the plan, but we should check for specifics
| |
IN PROGRESS | KComboBox : public QComboBox, public KCompletionBase | major features on top of Qt (completion), plus lots of small API things that should go into QComboBox (contains, ...). Final destination: a framework with the completion stuff?
| |
IN PROGRESS | KLineEdit : public QLineEdit, public KCompletionBase | major features on top of Qt (completion), plus lots of small API or behaviors that should go into QLineEdit (see Qt 5.1 merging). Final destination: a framework with the completion stuff?
| |
DONE | KRestrictedLine : public KLineEdit | Move to kde4support. Very few users, and a validator can be used instead.
| |
DONE | KDialog : public QDialog | Mostly convenience and consistency -> tier4, after porting the rest of kdelibs away from it (except tier4 and kde4support/kde3support)
| |
DONE | KDialogButtonBox : public QDialogButtonBox | Deprecate, move to kde4support, using QDialogButtonBox directly takes 2 or 3 lines of code (when using KGuiItem).
| |
DONE | KDoubleValidator : public QDoubleValidator | Deprecate, move to kde4support, the merging of the locale stuff makes it obsolete.
| |
DONE | KIcon : public QIcon | Discussed on kde-frameworks-devel, replace with one method.
| |
TO DO | KLibrary : public QLibrary | (probably kde4support, but let's wait for final plugin framework in Qt) | <{{{3}}}> |
TO DO | KPluginLoader : public QPluginLoader | (probably kde4support, but let's wait for final plugin framework in Qt) | <{{{3}}}>
|
DONE | KListWidget : public QListWidget | only adds auto-select support, which was mainly meant for filemanagers. Port kdelibs to QListWidget, then move KListWidget to kde4support.
| |
TO DO | KMainWindow : public QMainWindow | ?? | <{{{3}}}>
|
TO DO | KMenu : public QMenu | ?? | <{{{3}}}>
|
TO DO | KMenuBar : public QMenuBar | ?? | <{{{3}}}>
|
TO DO | KProcess : public QProcess | Code should be ported to QProcess (except kpty). | <{{{3}}}>
|
DONE | KPushButton : public QPushButton | DnD support, only used in KUrlRequester in kdelibs -> create a helper class based on event filtering. Auth support -> rename to KAuthPushButton. Delayed menu support -> add to Qt 5.1..
| |
DONE | KSplashScreen : public QSplashScreen | Only exists for KDE Xinerama settings, which are gone. -> kde4support
| |
TO DO | KStatusBar : public QStatusBar | ?? | <{{{3}}}>
|
TO DO | KSystemTrayIcon : public QSystemTrayIcon | ?? | <{{{3}}}>
|
TO DO | KTabBar: public QTabBar | ?? | <{{{3}}}>
|
TO DO | KTabWidget : public QTabWidget | ?? | <{{{3}}}>
|
TO DO | KTextBrowser : public QTextBrowser | ?? | <{{{3}}}>
|
TO DO | KTextEdit : public QTextEdit | ?? | <{{{3}}}>
|
TO DO | KToolBar : public QToolBar | ?? | <{{{3}}}>
|
DONE | KUndoStack : public QUndoStack | Could become two methods in a namespace, no subclass needed.
| |
DONE | KUrl : public QUrl | Finish porting to QUrl, then move to kde4support
| |
TO DO | KAction : public QWidgetAction | ?? | <{{{3}}}>
|
TO DO | KDateTime | ?? | <{{{3}}}>
|
DONE | KLocale | Already part of jlayt's plans
| |
TO DO | KColorDialog | ?? | <{{{3}}}>
|
TO DO | KMessageBox | ?? | <{{{3}}}>
|
TO DO | KInputDialog | ?? | <{{{3}}}>
|
TO DO | KFileDialog | ?? | <{{{3}}}>
|
TO DO | KProgressDialog | ?? | <{{{3}}}>
|