mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-18 17:50:06 +02:00
LnLauncher: fix editing settings.
* While rebuilding the menu is not needed, we still must update it with the current settings each time it is open.
This commit is contained in:
@@ -126,16 +126,17 @@ index 38622e3..34f6da5 100644
|
||||
2.2.2
|
||||
|
||||
|
||||
From 2b15cabcd06ae85b2af80aa2611989586f048c3c Mon Sep 17 00:00:00 2001
|
||||
From c8eeace21e37cf80782c5bb43a978e40bfcce511 Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Tue, 10 Nov 2015 14:08:30 +0100
|
||||
Subject: Remove rescue, add autostart
|
||||
|
||||
* remove "rescue" menu, as launch daemon takes care of that now
|
||||
* add "autostart" menu to allow LnLauncher to not autostart
|
||||
* only build the menu once instead of each time it is invoked.
|
||||
|
||||
diff --git a/source/HandleView.cpp b/source/HandleView.cpp
|
||||
index 3c46b49..cdef440 100644
|
||||
index 3c46b49..04c58b3 100644
|
||||
--- a/source/HandleView.cpp
|
||||
+++ b/source/HandleView.cpp
|
||||
@@ -45,9 +45,6 @@ static const char* kPanelRemove = B_TRANSLATE_MARK("Remove This");
|
||||
@@ -194,7 +195,27 @@ index 3c46b49..cdef440 100644
|
||||
case 'PSTE':
|
||||
{ // color drop
|
||||
rgb_color * col;
|
||||
@@ -462,11 +469,12 @@ HandleView::ShowPopup( BPoint pos )
|
||||
@@ -418,19 +425,6 @@ HandleView::MessageReceived( BMessage * msg )
|
||||
{ // Hide replicants
|
||||
BDragger::HideAllDraggers();
|
||||
} break;
|
||||
- case 'reTR':
|
||||
- case 'reDB':
|
||||
- case 'reTE':
|
||||
- { // rescue menu
|
||||
- BRoster roster;
|
||||
- if (msg->what == 'reTR')
|
||||
- roster.Launch("application/x-vnd.Be-TRAK");
|
||||
- if (msg->what == 'reDB')
|
||||
- roster.Launch("application/x-vnd.Be-TSKB");
|
||||
- if (msg->what == 'reTE')
|
||||
- roster.Launch("application/x-vnd.Haiku-Terminal");
|
||||
- }
|
||||
- break;
|
||||
case kMsgShutdownSystem:
|
||||
case kMsgRebootSystem:
|
||||
{
|
||||
@@ -462,147 +456,134 @@ HandleView::ShowPopup( BPoint pos )
|
||||
{
|
||||
PanelWindow * panel = (PanelWindow*)Window();
|
||||
|
||||
@@ -210,128 +231,276 @@ index 3c46b49..cdef440 100644
|
||||
+ false // label from marked
|
||||
+ );
|
||||
|
||||
BMenu * sub_menu;
|
||||
|
||||
@@ -492,7 +500,7 @@ HandleView::ShowPopup( BPoint pos )
|
||||
sub_menu->FindItem(B_TRANSLATE(kSmallIco))->SetMarked(true);
|
||||
- BMenu * sub_menu;
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kIcoSize) );
|
||||
- // check if large
|
||||
- bool large_icons = false;
|
||||
- if ( Bounds().Width() > Bounds().Height() )
|
||||
- {
|
||||
- if ( Bounds().Width() > 20 )
|
||||
- large_icons = true;
|
||||
- } else
|
||||
- {
|
||||
- if ( Bounds().Height() > 20 )
|
||||
- large_icons = true;
|
||||
- }
|
||||
+ fIconSizeMenu = new BMenu( B_TRANSLATE(kIcoSize) );
|
||||
// create items
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kLargeIco), new BMessage('Lico')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kSmallIco), new BMessage('Sico')) );
|
||||
- // set mark
|
||||
- if ( large_icons )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kLargeIco))->SetMarked(true);
|
||||
- else
|
||||
- sub_menu->FindItem(B_TRANSLATE(kSmallIco))->SetMarked(true);
|
||||
+ fIconSizeMenu->AddItem( new BMenuItem(B_TRANSLATE(kLargeIco), new BMessage('Lico')) );
|
||||
+ fIconSizeMenu->AddItem( new BMenuItem(B_TRANSLATE(kSmallIco), new BMessage('Sico')) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kThickness));
|
||||
// check if thick
|
||||
@@ -511,7 +519,7 @@ HandleView::ShowPopup( BPoint pos )
|
||||
sub_menu->FindItem(B_TRANSLATE(kThickThin))->SetMarked(true);
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kThickness));
|
||||
- // check if thick
|
||||
- bool thin_handle = false;
|
||||
- if ( Bounds().Width() == 1 || Bounds().Height() == 1 )
|
||||
- {
|
||||
- thin_handle = true;
|
||||
- }
|
||||
+ fIconSizeMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem(fIconSizeMenu);
|
||||
+
|
||||
+ fThicknessMenu = new BMenu( B_TRANSLATE(kThickness));
|
||||
// create items
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kThickNormal), new BMessage('THno')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kThickThin), new BMessage('THth')) );
|
||||
- // set mark
|
||||
- if ( !thin_handle )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kThickNormal))->SetMarked(true);
|
||||
- else
|
||||
- sub_menu->FindItem(B_TRANSLATE(kThickThin))->SetMarked(true);
|
||||
+ fThicknessMenu->AddItem( new BMenuItem(B_TRANSLATE(kThickNormal), new BMessage('THno')) );
|
||||
+ fThicknessMenu->AddItem( new BMenuItem(B_TRANSLATE(kThickThin), new BMessage('THth')) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kScrollspeed));
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedSlow), new BMessage('SCsl')) );
|
||||
@@ -529,7 +537,7 @@ HandleView::ShowPopup( BPoint pos )
|
||||
sub_menu->FindItem(B_TRANSLATE(kSpeedInstant))->SetMarked(true);
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kScrollspeed));
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedSlow), new BMessage('SCsl')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedNormal), new BMessage('SCno')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedFast), new BMessage('SCfa')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedInstant), new BMessage('SCin')) );
|
||||
- // check mark
|
||||
- if ( panel->AnimationDelay() == 500000 )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kSpeedSlow))->SetMarked(true);
|
||||
- if ( panel->AnimationDelay() == 100000 )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kSpeedNormal))->SetMarked(true);
|
||||
- if ( panel->AnimationDelay() == 20000 )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kSpeedFast))->SetMarked(true);
|
||||
- if ( panel->AnimationDelay() == 0 )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kSpeedInstant))->SetMarked(true);
|
||||
+ fThicknessMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem(fThicknessMenu);
|
||||
+
|
||||
+ fScrollSpeedMenu = new BMenu( B_TRANSLATE(kScrollspeed));
|
||||
+ fScrollSpeedMenu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedSlow), new BMessage('SCsl')) );
|
||||
+ fScrollSpeedMenu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedNormal), new BMessage('SCno')) );
|
||||
+ fScrollSpeedMenu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedFast), new BMessage('SCfa')) );
|
||||
+ fScrollSpeedMenu->AddItem( new BMenuItem(B_TRANSLATE(kSpeedInstant), new BMessage('SCin')) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kExpOnMouseOver));
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kOn), new BMessage('Semo')) );
|
||||
@@ -541,7 +549,7 @@ HandleView::ShowPopup( BPoint pos )
|
||||
sub_menu->FindItem(B_TRANSLATE(kOff))->SetMarked(true);
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kExpOnMouseOver));
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kOn), new BMessage('Semo')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kOff), new BMessage('Semf')) );
|
||||
- // set mark
|
||||
- if ( panel->IsExpandOnMouseOver() )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kOn))->SetMarked(true);
|
||||
- else
|
||||
- sub_menu->FindItem(B_TRANSLATE(kOff))->SetMarked(true);
|
||||
+ fScrollSpeedMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem(fScrollSpeedMenu);
|
||||
+
|
||||
+ fExpandMenu = new BMenu( B_TRANSLATE(kExpOnMouseOver));
|
||||
+ fExpandMenu->AddItem( new BMenuItem(B_TRANSLATE(kOn), new BMessage('Semo')) );
|
||||
+ fExpandMenu->AddItem( new BMenuItem(B_TRANSLATE(kOff), new BMessage('Semf')) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kFloating));
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kOn), new BMessage('Sfly')) );
|
||||
@@ -553,7 +561,7 @@ HandleView::ShowPopup( BPoint pos )
|
||||
sub_menu->FindItem(B_TRANSLATE(kOff))->SetMarked(true);
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kFloating));
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kOn), new BMessage('Sfly')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kOff), new BMessage('Sfln')) );
|
||||
- // set mark
|
||||
- if ( Window()->Feel() == B_FLOATING_ALL_WINDOW_FEEL )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kOn))->SetMarked(true);
|
||||
- else
|
||||
- sub_menu->FindItem(B_TRANSLATE(kOff))->SetMarked(true);
|
||||
+ fExpandMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem(fExpandMenu);
|
||||
+
|
||||
+ fFloatMenu = new BMenu( B_TRANSLATE(kFloating));
|
||||
+ fFloatMenu->AddItem( new BMenuItem(B_TRANSLATE(kOn), new BMessage('Sfly')) );
|
||||
+ fFloatMenu->AddItem( new BMenuItem(B_TRANSLATE(kOff), new BMessage('Sfln')) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kPanel));
|
||||
@@ -561,9 +569,9 @@ HandleView::ShowPopup( BPoint pos )
|
||||
-
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kPanel));
|
||||
+ fFloatMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem(fFloatMenu);
|
||||
+
|
||||
+ BMenu* sub_menu;
|
||||
+ sub_menu = new BMenu( B_TRANSLATE(kPanel));
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kPanelNew), new BMessage('Npan')) );
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kPanelRemove), new BMessage('Rpan')) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
-
|
||||
- menu->AddSeparatorItem();
|
||||
+ fMenu->AddSeparatorItem();
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kReplicants));
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kRepShow), new BMessage('REsh')) );
|
||||
@@ -575,34 +583,26 @@ HandleView::ShowPopup( BPoint pos )
|
||||
sub_menu->FindItem(B_TRANSLATE(kRepHide))->SetMarked(true);
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kReplicants));
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kRepShow), new BMessage('REsh')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kRepHide), new BMessage('REhi')) );
|
||||
- // set mark
|
||||
- if ( BDragger::AreDraggersDrawn() )
|
||||
- sub_menu->FindItem(B_TRANSLATE(kRepShow))->SetMarked(true);
|
||||
- else
|
||||
- sub_menu->FindItem(B_TRANSLATE(kRepHide))->SetMarked(true);
|
||||
- // set target
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kRescue));
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kRescueTracker), new BMessage('reTR')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kRescueDeskbar), new BMessage('reDB')) );
|
||||
- sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kStartTerminal), new BMessage('reTE')) );
|
||||
- // set target
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
+
|
||||
+ fMenu->AddSeparatorItem();
|
||||
+
|
||||
+ fReplicantsMenu = new BMenu( B_TRANSLATE(kReplicants));
|
||||
+ fReplicantsMenu->AddItem( new BMenuItem(B_TRANSLATE(kRepShow), new BMessage('REsh')) );
|
||||
+ fReplicantsMenu->AddItem( new BMenuItem(B_TRANSLATE(kRepHide), new BMessage('REhi')) );
|
||||
// set target
|
||||
- sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
sub_menu = new BMenu( B_TRANSLATE(kShutdown));
|
||||
-
|
||||
- sub_menu = new BMenu( B_TRANSLATE(kShutdown));
|
||||
+ fReplicantsMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem(fReplicantsMenu);
|
||||
+
|
||||
+ sub_menu = new BMenu( B_TRANSLATE(kShutdown));
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kShutdownReboot), new BMessage(kMsgRebootSystem)) );
|
||||
sub_menu->AddItem( new BMenuItem(B_TRANSLATE(kShutdownPoweroff), new BMessage(kMsgShutdownSystem)) );
|
||||
// set target
|
||||
sub_menu->SetTargetForItems( this );
|
||||
- menu->AddItem( sub_menu );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
|
||||
-
|
||||
- menu->AddSeparatorItem();
|
||||
+ fMenu->AddSeparatorItem();
|
||||
|
||||
-
|
||||
- menu->AddItem( new BMenuItem(B_TRANSLATE(kQuit), new BMessage('Quit')) );
|
||||
+ fMenu->AddItem( fAutoStartMenu = new BMenuItem(B_TRANSLATE("Autostart"), new BMessage('Auto')) );
|
||||
+ fMenu->AddItem( new BMenuItem(B_TRANSLATE(kQuit), new BMessage('Quit')) );
|
||||
|
||||
- menu->SetTargetForItems( this );
|
||||
+ fMenu->SetTargetForItems( this );
|
||||
+ fMenu->AddItem( sub_menu );
|
||||
+
|
||||
+ fMenu->AddSeparatorItem();
|
||||
+
|
||||
+ fMenu->AddItem( fAutoStartMenu = new BMenuItem(B_TRANSLATE("Autostart"), new BMessage('Auto')) );
|
||||
+ fMenu->AddItem( new BMenuItem(B_TRANSLATE(kQuit), new BMessage('Quit')) );
|
||||
+
|
||||
+ fMenu->SetTargetForItems( this );
|
||||
+ }
|
||||
|
||||
- menu->SetTargetForItems( this );
|
||||
+ // check if large
|
||||
+ bool large_icons = false;
|
||||
+ if ( Bounds().Width() > Bounds().Height() )
|
||||
+ {
|
||||
+ if ( Bounds().Width() > 20 )
|
||||
+ large_icons = true;
|
||||
+ } else
|
||||
+ {
|
||||
+ if ( Bounds().Height() > 20 )
|
||||
+ large_icons = true;
|
||||
+ }
|
||||
+ // set mark
|
||||
+ fIconSizeMenu->FindItem(B_TRANSLATE(kLargeIco))->SetMarked(large_icons);
|
||||
+ fIconSizeMenu->FindItem(B_TRANSLATE(kSmallIco))->SetMarked(!large_icons);
|
||||
|
||||
- menu->Go(
|
||||
+ fMenu->Go(
|
||||
pos,
|
||||
true, // delivers msg
|
||||
true // open anyway
|
||||
);
|
||||
- pos,
|
||||
- true, // delivers msg
|
||||
- true // open anyway
|
||||
- );
|
||||
-
|
||||
- delete menu;
|
||||
+ // check if thick
|
||||
+ bool thin_handle = false;
|
||||
+ if ( Bounds().Width() == 1 || Bounds().Height() == 1 )
|
||||
+ {
|
||||
+ thin_handle = true;
|
||||
+ }
|
||||
+ // set mark
|
||||
+ fThicknessMenu->FindItem(B_TRANSLATE(kThickNormal))->SetMarked(thin_handle);
|
||||
+ fThicknessMenu->FindItem(B_TRANSLATE(kThickThin))->SetMarked(!thin_handle);
|
||||
+
|
||||
+ // check mark
|
||||
+ int delay = panel->AnimationDelay();
|
||||
+ fScrollSpeedMenu->FindItem(B_TRANSLATE(kSpeedSlow))->SetMarked(delay == 500000);
|
||||
+ fScrollSpeedMenu->FindItem(B_TRANSLATE(kSpeedNormal))->SetMarked(delay == 100000);
|
||||
+ fScrollSpeedMenu->FindItem(B_TRANSLATE(kSpeedFast))->SetMarked(delay == 20000);
|
||||
+ fScrollSpeedMenu->FindItem(B_TRANSLATE(kSpeedInstant))->SetMarked(delay == 0);
|
||||
+
|
||||
+ // set mark
|
||||
+ bool floating = Window()->Feel() == B_FLOATING_ALL_WINDOW_FEEL;
|
||||
+ fFloatMenu->FindItem(B_TRANSLATE(kOn))->SetMarked(floating);
|
||||
+ fFloatMenu->FindItem(B_TRANSLATE(kOff))->SetMarked(!floating);
|
||||
+
|
||||
+ // set mark
|
||||
+ bool expand = panel->IsExpandOnMouseOver();
|
||||
+ fExpandMenu->FindItem(B_TRANSLATE(kOn))->SetMarked(expand);
|
||||
+ fExpandMenu->FindItem(B_TRANSLATE(kOff))->SetMarked(!expand);
|
||||
+
|
||||
+ // set mark
|
||||
+ bool dragger = BDragger::AreDraggersDrawn();
|
||||
+ fReplicantsMenu->FindItem(B_TRANSLATE(kRepShow))->SetMarked(dragger);
|
||||
+ fReplicantsMenu->FindItem(B_TRANSLATE(kRepHide))->SetMarked(!dragger);
|
||||
+
|
||||
+ fMenu->Go(
|
||||
+ pos,
|
||||
+ true, // delivers msg
|
||||
+ true // open anyway
|
||||
+ );
|
||||
}
|
||||
diff --git a/source/HandleView.h b/source/HandleView.h
|
||||
index 86d84a6..02c3c9f 100644
|
||||
index 86d84a6..b143738 100644
|
||||
--- a/source/HandleView.h
|
||||
+++ b/source/HandleView.h
|
||||
@@ -3,6 +3,9 @@
|
||||
@@ -3,6 +3,10 @@
|
||||
|
||||
#include <View.h>
|
||||
|
||||
+class BMenu;
|
||||
+class BMenuItem;
|
||||
+class BPopUpMenu;
|
||||
+
|
||||
class HandleView : public BView
|
||||
{
|
||||
public:
|
||||
@@ -25,6 +28,9 @@ class HandleView : public BView
|
||||
@@ -25,6 +29,15 @@ class HandleView : public BView
|
||||
bool m_mouse_down;
|
||||
bool m_moving_panel;
|
||||
int32 m_buttons;
|
||||
+
|
||||
+ BPopUpMenu* fMenu;
|
||||
+ BMenu* fIconSizeMenu;
|
||||
+ BMenu* fThicknessMenu;
|
||||
+ BMenu* fScrollSpeedMenu;
|
||||
+ BMenu* fExpandMenu;
|
||||
+ BMenu* fFloatMenu;
|
||||
+ BMenu* fReplicantsMenu;
|
||||
+ BMenuItem* fAutoStartMenu;
|
||||
|
||||
void ShowPopup( BPoint );
|
||||
|
||||
Reference in New Issue
Block a user