-rw-r--r-- | core/launcher/startmenu.cpp | 13 |
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 @@ -66,8 +66,9 @@ StartMenu::StartMenu(QWidget *parent) : QLabel( parent ) setFocusPolicy( NoFocus );
useWidePopupMenu = true;
launchMenu = 0;
+ currentItem = 0;
refreshMenu();
}
@@ -150,10 +151,20 @@ void StartMenu::createAppEntry( QPopupMenu *menu, QDir dir, QString file ) test.convertFromImage(
img.smoothScale(
AppLnk::smallIconSize(), AppLnk::smallIconSize() ), 0 );
+ // 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 );
currentItem++;
}
}
|