diff options
Diffstat (limited to 'kdecore/kcheckaccelerators.h')
-rw-r--r-- | kdecore/kcheckaccelerators.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/kdecore/kcheckaccelerators.h b/kdecore/kcheckaccelerators.h new file mode 100644 index 000000000..a01d76051 --- /dev/null +++ b/kdecore/kcheckaccelerators.h @@ -0,0 +1,96 @@ +/* This file is part of the KDE libraries + Copyright (C) 1997 Matthias Kalle Dalheimer (kalle@kde.org) + Copyright (C) 1998, 1999, 2000 KDE Team + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. + */ + +#ifndef KCHECKACCELERATORS_H_ +#define KCHECKACCELERATORS_H_ + +#include <qguardedptr.h> +#include <qobject.h> +#include <qkeysequence.h> +#include <qmap.h> +#include <qstring.h> +#include <qtimer.h> + +class QMenuData; +class QTextView; + +#include "kdelibs_export.h" + +/** + @internal + This class allows translators (and application developers) to check for accelerator + conflicts in menu and widgets. Put the following in your kdeglobals (or the config + file for the application you're testing): + + \code + [Development] + CheckAccelerators=F12 + AutoCheckAccelerators=false + AlwaysShowCheckAccelerators=false + \endcode + + The checking can be either manual or automatic. To perform manual check, press + the keyboard shortcut set to 'CheckAccelerators' (here F12). If automatic checking + is enabled by setting 'AutoCheckAccelerators' to true, check will be performed every + time the GUI changes. It's possible that in certain cases the check will be + done also when no visible changes in the GUI happen or the check won't be done + even if the GUI changed (in the latter case, use manual check ). Automatic + checks can be anytime disabled by the checkbox in the dialog presenting + the results of the check. If you set 'AlwaysShowCheckAccelerators' to true, + the dialog will be shown even if the automatic check didn't find any conflicts, + and all submenus will be shown, even those without conflicts. + + The dialog first lists the name of the window, then all results for all menus + (if the window has a menubar) and then result for all controls in the active + window (if there are any checkboxes etc.). For every submenu and all controls + there are shown all conflicts grouped by accelerator, and a list of all used + accelerators. +*/ +class KDECORE_EXPORT KCheckAccelerators : public QObject +{ + Q_OBJECT +public: + /** + * Creates a KCheckAccelerators instance for the given object. + * @param parent the parent to check + */ + KCheckAccelerators( QObject* parent ); + /** + * Re-implemented to filter the parent's events. + */ + bool eventFilter( QObject * , QEvent * e); + +private: + void checkAccelerators( bool automatic ); + int key; + bool alwaysShow; + bool autoCheck; + bool block; + QTimer autoCheckTimer; + void createDialog(QWidget *parent, bool automatic); + QGuardedPtr<QDialog> drklash; + QTextView *drklash_view; + +private slots: + void autoCheckSlot(); + void slotDisableCheck(bool); +}; + +#endif |