summaryrefslogtreecommitdiff
authorsandman <sandman>2002-12-23 03:24:31 (UTC)
committer sandman <sandman>2002-12-23 03:24:31 (UTC)
commite91351d2c22ab041b85f49e243e1f510edf7984e (patch) (side-by-side diff)
treec068e1a8ad21db9995f2a3c5a2d97bb983fa04a9
parent8bd190d162b538e4226e830f442450f5a95f4434 (diff)
downloadopie-e91351d2c22ab041b85f49e243e1f510edf7984e.zip
opie-e91351d2c22ab041b85f49e243e1f510edf7984e.tar.gz
opie-e91351d2c22ab041b85f49e243e1f510edf7984e.tar.bz2
small bugfixes and speedup
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/settings/button/buttonsettings.cpp8
-rw-r--r--core/settings/button/buttonsettings.h1
-rw-r--r--core/settings/button/buttonutils.cpp10
-rw-r--r--core/settings/button/remapdlg.cpp27
-rw-r--r--core/settings/button/remapdlg.h4
5 files changed, 42 insertions, 8 deletions
diff --git a/core/settings/button/buttonsettings.cpp b/core/settings/button/buttonsettings.cpp
index c71514c..8b0b0a8 100644
--- a/core/settings/button/buttonsettings.cpp
+++ b/core/settings/button/buttonsettings.cpp
@@ -57,12 +57,13 @@ struct buttoninfo {
ButtonSettings::ButtonSettings ( )
: QDialog ( 0, "ButtonSettings", false, WStyle_ContextHelp )
{
const QValueList <ODeviceButton> &buttons = ODevice::inst ( )-> buttons ( );
+ (void) ButtonUtils::inst ( ); // initialise
setCaption ( tr( "Button Settings" ));
QVBoxLayout *toplay = new QVBoxLayout ( this, 3, 3 );
QLabel *l = new QLabel ( tr( "<center>Press or hold the button you want to remap.</center>" ), this );
@@ -130,12 +131,13 @@ ButtonSettings::ButtonSettings ( )
m_infos. append ( bi );
}
toplay-> addStretch ( 10 );
m_last_button = 0;
+ m_lock = false;
m_timer = new QTimer ( this );
connect ( m_timer, SIGNAL( timeout ( )), this, SLOT( keyTimeout ( )));
updateLabels ( );
@@ -205,12 +207,16 @@ void ButtonSettings::keyTimeout ( )
}
void ButtonSettings::edit ( buttoninfo *bi, bool hold )
{
qDebug ( "remap %s for %s", hold ? "hold" : "press", bi-> m_button-> userText ( ). latin1 ( ));
+ if ( m_lock )
+ return;
+ m_lock = true;
+
RemapDlg *d = new RemapDlg ( bi-> m_button, hold, this );
d-> showMaximized ( );
if ( d-> exec ( ) == QDialog::Accepted ) {
qDebug ( " -> %s %s", d-> message ( ). channel ( ). data ( ), d-> message ( ). message ( ). data ( ));
@@ -224,12 +230,14 @@ void ButtonSettings::edit ( buttoninfo *bi, bool hold )
}
updateLabels ( );
}
delete d;
+
+ m_lock = false;
}
void ButtonSettings::accept ( )
{
for ( QListIterator <buttoninfo> it ( m_infos ); *it; ++it ) {
buttoninfo *bi = *it;
diff --git a/core/settings/button/buttonsettings.h b/core/settings/button/buttonsettings.h
index f571825..d41a209 100644
--- a/core/settings/button/buttonsettings.h
+++ b/core/settings/button/buttonsettings.h
@@ -64,11 +64,12 @@ private:
private:
QTimer *m_timer;
buttoninfo *m_last_button;
QList <buttoninfo> m_infos;
+ bool m_lock;
};
#endif
diff --git a/core/settings/button/buttonutils.cpp b/core/settings/button/buttonutils.cpp
index bb70047..91d2af3 100644
--- a/core/settings/button/buttonutils.cpp
+++ b/core/settings/button/buttonutils.cpp
@@ -99,21 +99,29 @@ void ButtonUtils::insertActions ( QListViewItem *here )
}
void ButtonUtils::insertAppLnks ( QListViewItem *here )
{
QStringList types = m_apps-> types ( );
+ QListViewItem *typeitem [types. count ( )];
+ int i = 0;
for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) {
QListViewItem *item = new QListViewItem ( here, m_apps-> typeName ( *it ));
item-> setPixmap ( 0, m_apps-> typePixmap ( *it ));
+ typeitem [i++] = item;
+ }
+
for ( QListIterator <AppLnk> appit ( m_apps-> children ( )); *appit; ++appit ) {
AppLnk *l = *appit;
+ int i = 0;
+ for ( QStringList::Iterator it = types. begin ( ); it != types. end ( ); ++it ) {
if ( l-> type ( ) == *it ) {
- QListViewItem *sub = new QListViewItem ( item, l-> name ( ), QString ( "QPE/Application/" ) + l-> exec ( ), "raise()" );
+ QListViewItem *sub = new QListViewItem ( typeitem [i], l-> name ( ), QString ( "QPE/Application/" ) + l-> exec ( ), "raise()" );
sub-> setPixmap ( 0, l-> pixmap ( ));
}
+ i++;
}
}
}
diff --git a/core/settings/button/remapdlg.cpp b/core/settings/button/remapdlg.cpp
index 511d0e7..a251bd4 100644
--- a/core/settings/button/remapdlg.cpp
+++ b/core/settings/button/remapdlg.cpp
@@ -1,9 +1,10 @@
#include <qlistview.h>
#include <qlabel.h>
#include <qcombobox.h>
+#include <qtimer.h>
#include "remapdlg.h"
#include "buttonutils.h"
using namespace Opie;
@@ -44,41 +45,53 @@ private:
RemapDlg::RemapDlg ( const Opie::ODeviceButton *b, bool hold, QWidget *parent, const char *name )
: RemapDlgBase ( parent, name, true, WStyle_ContextHelp )
{
setCaption ( tr( "%1 %2", "(hold|press) buttoname" ). arg( hold ? tr( "Held" ) : tr( "Pressed" )). arg ( b-> userText ( )));
+ m_current = 0;
+
+ static const char * const def_channels [] = { "QPE/Application/", "QPE/Launcher", "QPE/System", "QPE/TaskBar", "QPE/", 0 };
+ w_channel-> insertStrList ((const char **) def_channels );
+
m_msg = hold ? b-> heldAction ( ) : b-> pressedAction ( );
m_msg_preset = hold ? b-> factoryPresetHeldAction ( ) : b-> factoryPresetPressedAction ( );
m_map_none = new NoSortItem ( w_list, 0, tr( "No mapping" ));
m_map_preset = new NoSortItem ( w_list, 1, tr( "Default" ), m_msg_preset. channel ( ), m_msg_preset. message ( ));
((NoSortItem *) m_map_preset )-> setDefault ( true );
m_map_custom = new NoSortItem ( w_list, 2, tr( "Custom" ), m_msg. channel ( ), m_msg. message ( ));
QListViewItem *it = new NoSortItem ( w_list, 3, tr( "Actions" ));
ButtonUtils::inst ( )-> insertActions ( it );
it-> setOpen ( true );
- it = new NoSortItem ( w_list, 4, tr( "Show" ));
- ButtonUtils::inst ( )-> insertAppLnks ( it );
+ m_map_show = new NoSortItem ( w_list, 4, tr( "Show" ));
m_current = m_map_custom;
w_list-> setCurrentItem ( m_current );
- static const char * const def_channels [] = {
- "QPE/Application/", "QPE/Launcher", "QPE/System", "QPE/TaskBar", "QPE/", 0
- };
-
- w_channel-> insertStrList ((const char **) def_channels );
+ QTimer::singleShot ( 0, this, SLOT( delayedInit ( )));
}
RemapDlg::~RemapDlg ( )
{
}
+void RemapDlg::delayedInit ( )
+{
+ bool b = w_list-> viewport ( )-> isUpdatesEnabled ( );
+ w_list-> viewport ( )-> setUpdatesEnabled ( false );
+
+ ButtonUtils::inst ( )-> insertAppLnks ( m_map_show );
+
+ w_list-> viewport ( )-> setUpdatesEnabled ( b );
+
+ m_map_show-> repaint ( );
+}
+
void RemapDlg::itemChanged ( QListViewItem *it )
{
bool enabled = false;
OQCopMessage m;
m_current = it;
diff --git a/core/settings/button/remapdlg.h b/core/settings/button/remapdlg.h
index 8c9cc02..046a22f 100644
--- a/core/settings/button/remapdlg.h
+++ b/core/settings/button/remapdlg.h
@@ -18,18 +18,22 @@ public:
Opie::OQCopMessage message ( );
public slots:
virtual void itemChanged ( QListViewItem * );
virtual void textChanged ( const QString & );
+private slots:
+ void delayedInit ( );
+
private:
Opie::OQCopMessage m_msg;
Opie::OQCopMessage m_msg_preset;
QListViewItem *m_current;
QListViewItem *m_map_none;
QListViewItem *m_map_preset;
QListViewItem *m_map_custom;
+ QListViewItem *m_map_show;
};
#endif