add Shift+Ctrl+F2 shortcut for reloading overlay screens (and metrics)
This commit is contained in:
@@ -13,6 +13,10 @@ _____________________________________________________________________________
|
|||||||
sm-ssc v1.2 | 201012xx
|
sm-ssc v1.2 | 201012xx
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
20101222
|
||||||
|
--------
|
||||||
|
* Added Shift+Ctrl+F2 shortcut for reloading overlay screens (and metrics) [freem]
|
||||||
|
|
||||||
20101221
|
20101221
|
||||||
--------
|
--------
|
||||||
* SM5SVN r28586: Only unload fonts if not used by the next screen. [shakesoda]
|
* SM5SVN r28586: Only unload fonts if not used by the next screen. [shakesoda]
|
||||||
|
|||||||
@@ -1675,6 +1675,7 @@ W5=Boo
|
|||||||
Reloaded metrics=Reloaded metrics
|
Reloaded metrics=Reloaded metrics
|
||||||
Reloaded metrics and textures=Reloaded metrics and textures
|
Reloaded metrics and textures=Reloaded metrics and textures
|
||||||
Reloaded scripts=Reloaded scripts
|
Reloaded scripts=Reloaded scripts
|
||||||
|
Reloaded overlay screens=Reloaded overlay screens
|
||||||
|
|
||||||
[WorkoutManager]
|
[WorkoutManager]
|
||||||
You must supply a name for your workout.=You must supply a name for your workout.
|
You must supply a name for your workout.=You must supply a name for your workout.
|
||||||
|
|||||||
@@ -307,6 +307,28 @@ void ScreenManager::ThemeChanged()
|
|||||||
this->RefreshCreditsMessages();
|
this->RefreshCreditsMessages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenManager::ReloadOverlayScreens()
|
||||||
|
{
|
||||||
|
// unload overlay screens
|
||||||
|
for( unsigned i=0; i<g_OverlayScreens.size(); i++ )
|
||||||
|
SAFE_DELETE( g_OverlayScreens[i] );
|
||||||
|
g_OverlayScreens.clear();
|
||||||
|
|
||||||
|
// reload overlay screens
|
||||||
|
RString sOverlays = THEME->GetMetric( "Common","OverlayScreens" );
|
||||||
|
vector<RString> asOverlays;
|
||||||
|
split( sOverlays, ",", asOverlays );
|
||||||
|
for( unsigned i=0; i<asOverlays.size(); i++ )
|
||||||
|
{
|
||||||
|
Screen *pScreen = MakeNewScreen( asOverlays[i] );
|
||||||
|
LuaThreadVariable var2( "LoadingScreen", pScreen->GetName() );
|
||||||
|
pScreen->BeginScreen();
|
||||||
|
g_OverlayScreens.push_back( pScreen );
|
||||||
|
}
|
||||||
|
|
||||||
|
this->RefreshCreditsMessages();
|
||||||
|
}
|
||||||
|
|
||||||
Screen *ScreenManager::GetTopScreen()
|
Screen *ScreenManager::GetTopScreen()
|
||||||
{
|
{
|
||||||
if( g_ScreenStack.empty() )
|
if( g_ScreenStack.empty() )
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ public:
|
|||||||
|
|
||||||
void RefreshCreditsMessages();
|
void RefreshCreditsMessages();
|
||||||
void ThemeChanged();
|
void ThemeChanged();
|
||||||
|
void ReloadOverlayScreens();
|
||||||
|
|
||||||
/* Return true if the given screen is in the main screen stack, but not the
|
/* Return true if the given screen is in the main screen stack, but not the
|
||||||
* bottommost screen. If true, the screen should usually exit by popping
|
* bottommost screen. If true, the screen should usually exit by popping
|
||||||
|
|||||||
+15
-4
@@ -1277,6 +1277,7 @@ static LocalizedString SERVICE_SWITCH_PRESSED ( "StepMania", "Service switch pre
|
|||||||
static LocalizedString RELOADED_METRICS( "ThemeManager", "Reloaded metrics" );
|
static LocalizedString RELOADED_METRICS( "ThemeManager", "Reloaded metrics" );
|
||||||
static LocalizedString RELOADED_METRICS_AND_TEXTURES( "ThemeManager", "Reloaded metrics and textures" );
|
static LocalizedString RELOADED_METRICS_AND_TEXTURES( "ThemeManager", "Reloaded metrics and textures" );
|
||||||
static LocalizedString RELOADED_SCRIPTS( "ThemeManager", "Reloaded scripts" );
|
static LocalizedString RELOADED_SCRIPTS( "ThemeManager", "Reloaded scripts" );
|
||||||
|
static LocalizedString RELOADED_OVERLAY_SCREENS( "ThemeManager", "Reloaded overlay screens" );
|
||||||
bool HandleGlobalInputs( const InputEventPlus &input )
|
bool HandleGlobalInputs( const InputEventPlus &input )
|
||||||
{
|
{
|
||||||
// None of the globals keys act on types other than FIRST_PRESS
|
// None of the globals keys act on types other than FIRST_PRESS
|
||||||
@@ -1312,23 +1313,33 @@ bool HandleGlobalInputs( const InputEventPlus &input )
|
|||||||
// re-added for StepMania 3.9 veterans, plus it's just plain old faster
|
// re-added for StepMania 3.9 veterans, plus it's just plain old faster
|
||||||
// than the debug menu. However, this is without the LShift capability
|
// than the debug menu. However, this is without the LShift capability
|
||||||
// that was in 3.9; if we get enough requests, we'll re-add it, but meh. -aj
|
// that was in 3.9; if we get enough requests, we'll re-add it, but meh. -aj
|
||||||
|
bool bIsShiftHeld = INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_LSHIFT), &input.InputList) ||
|
||||||
|
INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_RSHIFT), &input.InputList);
|
||||||
|
bool bIsCtrlHeld = INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_LCTRL), &input.InputList) ||
|
||||||
|
INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_RCTRL), &input.InputList);
|
||||||
if( input.DeviceI == DeviceInput(DEVICE_KEYBOARD, KEY_F2) )
|
if( input.DeviceI == DeviceInput(DEVICE_KEYBOARD, KEY_F2) )
|
||||||
{
|
{
|
||||||
if( INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_LSHIFT), &input.InputList) ||
|
if( bIsShiftHeld && !bIsCtrlHeld )
|
||||||
INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_RSHIFT), &input.InputList))
|
|
||||||
{
|
{
|
||||||
// Shift+F2: refresh metrics and CodeDetector cache only
|
// Shift+F2: refresh metrics and CodeDetector cache only
|
||||||
THEME->ReloadMetrics();
|
THEME->ReloadMetrics();
|
||||||
CodeDetector::RefreshCacheItems();
|
CodeDetector::RefreshCacheItems();
|
||||||
SCREENMAN->SystemMessage( RELOADED_METRICS );
|
SCREENMAN->SystemMessage( RELOADED_METRICS );
|
||||||
}
|
}
|
||||||
else if(INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_LCTRL), &input.InputList) ||
|
else if( bIsCtrlHeld && !bIsShiftHeld )
|
||||||
INPUTFILTER->IsBeingPressed( DeviceInput(DEVICE_KEYBOARD, KEY_RCTRL), &input.InputList))
|
|
||||||
{
|
{
|
||||||
// Ctrl+F2: reload scripts only
|
// Ctrl+F2: reload scripts only
|
||||||
THEME->UpdateLuaGlobals();
|
THEME->UpdateLuaGlobals();
|
||||||
SCREENMAN->SystemMessage( RELOADED_SCRIPTS );
|
SCREENMAN->SystemMessage( RELOADED_SCRIPTS );
|
||||||
}
|
}
|
||||||
|
else if( bIsCtrlHeld && bIsShiftHeld )
|
||||||
|
{
|
||||||
|
// Shift+Ctrl+F2: reload overlay screens (and metrics, since themers
|
||||||
|
// are likely going to do this after changing metrics and be lazy.)
|
||||||
|
THEME->ReloadMetrics();
|
||||||
|
SCREENMAN->ReloadOverlayScreens();
|
||||||
|
SCREENMAN->SystemMessage( RELOADED_OVERLAY_SCREENS );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// F2 alone: refresh metrics, textures, noteskins, codedetector cache
|
// F2 alone: refresh metrics, textures, noteskins, codedetector cache
|
||||||
|
|||||||
@@ -99,9 +99,7 @@ public:
|
|||||||
|
|
||||||
static RString GetBlankGraphicPath();
|
static RString GetBlankGraphicPath();
|
||||||
|
|
||||||
//
|
|
||||||
// For self-registering metrics
|
// For self-registering metrics
|
||||||
//
|
|
||||||
static void Subscribe( IThemeMetric *p );
|
static void Subscribe( IThemeMetric *p );
|
||||||
static void Unsubscribe( IThemeMetric *p );
|
static void Unsubscribe( IThemeMetric *p );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user