summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpemenubar.cpp16
-rw-r--r--library/qpemenubar.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/library/qpemenubar.cpp b/library/qpemenubar.cpp
index 39f8fd6..bb3ad8d 100644
--- a/library/qpemenubar.cpp
+++ b/library/qpemenubar.cpp
@@ -261,48 +261,64 @@ bool QPEMenuToolFocusManager::eventFilter( QObject *object, QEvent *event )
} else if ( object->inherits( "QToolBar" ) && ce->child()->isWidgetType() ) {
removeWidget( (QWidget *)ce->child() );
}
}
return FALSE;
}
void QPEMenuToolFocusManager::deactivate()
{
setActive( FALSE );
}
/*!
\class QPEMenuBar qpemenubar.h
\brief The QPEMenuBar class is obsolete. Use QMenuBar instead.
\obsolete
This class is obsolete. Use QMenuBar instead.
\sa QMenuBar
*/
/*!
Constructs a QPEMenuBar just as you would construct
a QMenuBar, passing \a parent and \a name.
*/
QPEMenuBar::QPEMenuBar( QWidget *parent, const char *name )
: QMenuBar( parent, name )
{
}
/*!
\reimp
*/
QPEMenuBar::~QPEMenuBar()
{
}
/*!
\internal
*/
void QPEMenuBar::keyPressEvent( QKeyEvent *e )
{
QMenuBar::keyPressEvent( e );
}
+
+void QPEMenuBar::activateItem( int index )
+{
+ activateItemAt( index );
+}
+
+void QPEMenuBar::goodbye()
+{
+ activateItemAt(-1);
+ for ( unsigned int i = 0; i < count(); i++ ) {
+ QMenuItem *mi = findItem( idAt(i) );
+ if ( mi->popup() ) {
+ mi->popup()->hide();
+ }
+ }
+}
diff --git a/library/qpemenubar.h b/library/qpemenubar.h
index 736b12b..5bfbe83 100644
--- a/library/qpemenubar.h
+++ b/library/qpemenubar.h
@@ -20,52 +20,54 @@
#ifndef QPEMENUBAR_H
#define QPEMENUBAR_H
#include <qmenubar.h>
#include <qguardedptr.h>
#include <qvaluelist.h>
class QPEMenuToolFocusManager : public QObject
{
Q_OBJECT
public:
QPEMenuToolFocusManager();
void addWidget( QWidget *w );
void removeWidget( QWidget *w );
void setActive( bool a );
bool isActive() const;
void moveFocus( bool next );
static QPEMenuToolFocusManager *manager();
static void initialize();
protected:
void setFocus( QWidget *w, bool next=TRUE );
bool eventFilter( QObject *object, QEvent *event );
private slots:
void deactivate();
private:
typedef QGuardedPtr<QWidget> GuardedWidget;
QValueList<GuardedWidget> list;
GuardedWidget inFocus;
GuardedWidget oldFocus;
static QPEMenuToolFocusManager *me;
};
class QPEMenuBar : public QMenuBar
{
Q_OBJECT
public:
QPEMenuBar( QWidget *parent=0, const char* name=0 );
~QPEMenuBar();
protected:
virtual void keyPressEvent( QKeyEvent *e );
+ void activateItem( int index );
+ void goodbye();
};
#endif