summaryrefslogtreecommitdiff
authorskyhusker <skyhusker>2005-04-24 17:50:42 (UTC)
committer skyhusker <skyhusker>2005-04-24 17:50:42 (UTC)
commit883d2f517fe0aaab83d820e1413edffc1471bb4e (patch) (side-by-side diff)
treedc7255faf24d909bf0ca8f0afc05202459615414
parentceaea9869115287b48781fabc938bd51cb67625c (diff)
downloadopie-883d2f517fe0aaab83d820e1413edffc1471bb4e.zip
opie-883d2f517fe0aaab83d820e1413edffc1471bb4e.tar.gz
opie-883d2f517fe0aaab83d820e1413edffc1471bb4e.tar.bz2
Sort applications alphabetically. Fixes bug #1476.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/startmenu.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/core/launcher/startmenu.cpp b/core/launcher/startmenu.cpp
index 66f665f..ce7840e 100644
--- a/core/launcher/startmenu.cpp
+++ b/core/launcher/startmenu.cpp
@@ -69,2 +69,3 @@ StartMenu::StartMenu(QWidget *parent) : QLabel( parent )
launchMenu = 0;
+ currentItem = 0;
refreshMenu();
@@ -153,4 +154,14 @@ void StartMenu::createAppEntry( QPopupMenu *menu, QDir dir, QString file )
+ // Insert items ordered lexically
+ int current, left = 0, right = currentItem;
+ while( left != right ) {
+ current = ( left + right ) / 2;
+ if ( menu->text(menu->idAt( ( current ) ) ) < applnk->name() )
+ left = ++current;
+ else
+ right = current;
+ }
+
menu->insertItem( test, applnk->name(),
- currentItem + APPLNK_ID_OFFSET );
+ currentItem + APPLNK_ID_OFFSET, current );
appLnks.insert( currentItem + APPLNK_ID_OFFSET, applnk );