Difference between revisions of "Policies/API to Avoid"

Jump to: navigation, search
m (Text replace - "</code>" to "</syntaxhighlight>")
 
(2 intermediate revisions by 2 users not shown)
Line 10: Line 10:
 
Use KNotification for better KDE integration.
 
Use KNotification for better KDE integration.
  
==== QHttp ====
+
=== QHttp ===
  
 
QHttp does not respect desktop settings such as the user's proxy settings or resource restrictions. Always use KIO to access network resources.
 
QHttp does not respect desktop settings such as the user's proxy settings or resource restrictions. Always use KIO to access network resources.
Line 21: Line 21:
  
 
Either use QWidget::setWindowState() in the following way
 
Either use QWidget::setWindowState() in the following way
<code cppqt>
+
<syntaxhighlight lang="cpp-qt">
 
widget->setWindowState(widget->windowState() | Qt::WindowFullScreen); // set
 
widget->setWindowState(widget->windowState() | Qt::WindowFullScreen); // set
 
widget->setWindowState(widget->windowState() & ~Qt::WindowFullScreen); // reset
 
widget->setWindowState(widget->windowState() & ~Qt::WindowFullScreen); // reset
</code>
+
</syntaxhighlight>
 
or use KDE API - KToggleFullScreenAction has setFullScreen() helper function, and KWindowSystem has calls for changing window state.
 
or use KDE API - KToggleFullScreenAction has setFullScreen() helper function, and KWindowSystem has calls for changing window state.
  
 
== Further Links ==
 
== Further Links ==
 
For further programming tips, please read the article about [[Development/Tutorials/Common_Programming_Mistakes|common programming mistakes]].
 
For further programming tips, please read the article about [[Development/Tutorials/Common_Programming_Mistakes|common programming mistakes]].

Latest revision as of 21:50, 29 June 2011

There are classes and functions that should be avoided in KDE applications, but KDE has no direct control over them (for example, they are part of Qt).

Contents

[edit] API that has KDE replacements

[edit] Qt classes that have their KDE versions

KDE applications should not use Qt classes that have their KDE replacements. Examples include QFileDialog, QDialog, QMainWindow. KDE versions of these classes provide better integration with KDE.

[edit] QSystemTrayIcon::showMessage()

Use KNotification for better KDE integration.

[edit] QHttp

QHttp does not respect desktop settings such as the user's proxy settings or resource restrictions. Always use KIO to access network resources.

[edit] API that is considered broken

[edit] QWidget::showFullScreen/Maximized/Minimized/Normal()

Try to avoid calls to QWidget::showFullScreen(), QWidget::showMaximized(), QWidget::showMinimized() and QWidget::showNormal(), use them only if you understand what they do and you really want that. These calls do not only change the relevant window state as most people expect, but they also have other effects. For example, showFullScreen() among other things also removes the maximized state (see bug #157941), the same way showNormal() is not an inverse call to showFullScreen().

Either use QWidget::setWindowState() in the following way

widget->setWindowState(widget->windowState() | Qt::WindowFullScreen); // set
widget->setWindowState(widget->windowState() & ~Qt::WindowFullScreen); // reset

or use KDE API - KToggleFullScreenAction has setFullScreen() helper function, and KWindowSystem has calls for changing window state.

[edit] Further Links

For further programming tips, please read the article about common programming mistakes.


This page was last modified on 29 June 2011, at 21:50. This page has been accessed 10,502 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal