|
From: <nic...@us...> - 2014-05-06 21:54:38
|
Revision: 4797
http://sourceforge.net/p/mp-plugins/code/4797
Author: nicsergio
Date: 2014-05-06 21:54:35 +0000 (Tue, 06 May 2014)
Log Message:
-----------
Modified Paths:
--------------
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuterConfig.cs
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs 2014-05-04 20:12:54 UTC (rev 4796)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs 2014-05-06 21:54:35 UTC (rev 4797)
@@ -33,8 +33,8 @@
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// utilizzando l'asterisco (*) come descritto di seguito:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.0.6.0")]
-[assembly: AssemblyFileVersion("2.0.6.0")]
+[assembly: AssemblyVersion("2.1.0.0")]
+[assembly: AssemblyFileVersion("2.1.0.0")]
//Importante per la compatibilità con MediaPortal
[assembly: CompatibleVersion("1.1.6.27644")]
\ No newline at end of file
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj 2014-05-04 20:12:54 UTC (rev 4796)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj 2014-05-06 21:54:35 UTC (rev 4797)
@@ -6,7 +6,7 @@
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{20CEBE32-A39E-4A61-B2BD-90BF16E2AEE8}</ProjectGuid>
- <OutputType>WinExe</OutputType>
+ <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ProcessPlugins.ShortCuter</RootNamespace>
<AssemblyName>ShortCuter</AssemblyName>
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuterConfig.cs
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuterConfig.cs 2014-05-04 20:12:54 UTC (rev 4796)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuterConfig.cs 2014-05-06 21:54:35 UTC (rev 4797)
@@ -47,8 +47,8 @@
toolTip.SetToolTip(resetButton, "Reset actual settings and load the default configuration");
toolTip.SetToolTip(saveButton, "Save actual settings");
toolTip.SetToolTip(updateButton, "Save actual setting and close the application");
- toolTip.SetToolTip(capsLockComboBox, "Set forcing for Caps-Lock when Mediaportal starts (OFF is recommended)");
- toolTip.SetToolTip(numLockComboBox, "Set forcing for Num-Lock when Mediaportal starts");
+ toolTip.SetToolTip(capsLockComboBox, "Set forcing for Caps-Lock when MediaPortal starts (OFF is recommended)");
+ toolTip.SetToolTip(numLockComboBox, "Set forcing for Num-Lock when MediaPortal starts");
toolTip.SetToolTip(skinNavConfigButton, "Configure Skin Navigator");
toolTip.SetToolTip(infoPictureBox, "Version information");
@@ -108,7 +108,7 @@
windowIdColumn.Width = 70;
windowIdColumn.MaxInputLength = 10;
windowIdColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
- windowIdColumn.ToolTipText = "MediaPorta window ID for the shortcut's destination";
+ windowIdColumn.ToolTipText = "MediaPortal window ID for the shortcut's destination";
DataGridViewTextBoxColumn loadParameterColumn = new DataGridViewTextBoxColumn();
loadParameterColumn.DataPropertyName = "LoadParameter";
@@ -390,8 +390,7 @@
myShortCuts.Items.Add(sc);
shortCutsDataGridView.CurrentCell = shortCutsDataGridView[0, shortCutsDataGridView.RowCount - 1];
shortCutsDataGridView.Rows[shortCutsDataGridView.RowCount - 1].Selected = true;
- skinNavAddButton.Enabled = false;
- }
+ }
private void rowUpButton_Click(object sender, EventArgs e)
{
MoveItemList(true);
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2014-05-04 20:12:54 UTC (rev 4796)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2014-05-06 21:54:35 UTC (rev 4797)
@@ -157,6 +157,14 @@
return false; //--> comando non completato
}
}
+ public WindowLink Clone() //Clonazione collegamento
+ {
+ WindowLink lnk = new WindowLink();
+ lnk.Caption = _caption;
+ lnk.WindowID = _windowID;
+ lnk.LoadParameter = _loadParameter;
+ return lnk;
+ }
public void Reset() //Reset destinazione (invalidazione)
{
_windowID = InvalidID; //--> invalidazione Id finestra
@@ -245,7 +253,7 @@
public bool Shift { get { return this._shift; } set { this._shift = value; } }
#endregion
}
- internal class ShortCut : INotifyPropertyChanged //Classe shortcut (scorciatoia da tastiera) con notifica variazione proprietà
+ internal class ShortCut : INotifyPropertyChanged //Classe shortcut (scorciatoia da tastiera) con notifica variazione proprietà per binding su GridView
{
#region Dati
private string _caption; //Titolo link
@@ -345,6 +353,7 @@
public string SoundEffect { get { return this._soundEffect; } set { this._soundEffect = value; this.NotifyPropertyChanged("SoundEffect"); } }
#endregion
}
+
internal class Window //Classe finestra di MediaPortal
{
#region Dati
@@ -372,7 +381,7 @@
public string XmlFile { get { return this._xmlFile; } set { this._xmlFile = value; } }
#endregion
}
- internal class NavigatorItem //Classe elemento per navigazione
+ internal class NavItem //Classe elemento per navigazione
{
#region Dati
private string _caption; //Titolo link
@@ -381,13 +390,17 @@
#endregion
#region Costruttore
- public NavigatorItem() //Costruttore classe Window
+ public NavItem() //Costruttore classe Window
{
_caption = "Navigator Group"; //--> inizializzazione titolo
}
#endregion
-
+ #region Proprietà
+ public string Caption { get { return this._caption; } set { this._caption = value; } }
+ public BindingList<Window> Windows { get { return this._windows; } }
+ public BindingList<WindowLink> Destinations { get { return this._destinations; } }
+ #endregion
}
internal class ShortCuts //Classe di gestione degli shortcuts configurati
@@ -403,7 +416,8 @@
#region Dati
private readonly string SettingsFile; //File di salvataggio impostazioni
private GeneralSettings _general = new GeneralSettings(); //Impostazioni generali plugin
- private BindingList<ShortCut> _items = new BindingList<ShortCut>(); //Lista (con associazione dati) degli shortcuts configurati
+ private BindingList<ShortCut> _items = new BindingList<ShortCut>(); //Lista (con associazione dati) degli shortcuts configurati
+ private BindingList<NavItem> _navItems = new BindingList<NavItem>();
private bool _initialized; //Classe inizializzata
private WindowLink lastDestination = new WindowLink(); //Dati ultima destinazione attivata dal plugin
@@ -484,6 +498,19 @@
else
return false; //--> finestra attuale non corrispondente a destinazione shortcut
}
+ private void UpdateLastDestination(ShortCut sc)
+ {
+ lastDestination.WindowID = sc.WindowID; //--> memorizzazione id finestra
+ lastDestination.LoadParameter = sc.LoadParameter; //--> memorizzazione parametri di caricamento utilizzati
+ }
+
+
+ private void UpdateLastDestination(WindowLink lnk)
+ {
+ lastDestination.WindowID = lnk.WindowID; //--> memorizzazione id finestra
+ lastDestination.LoadParameter = lnk.LoadParameter; //--> memorizzazione parametri di caricamento utilizzati
+ }
+
#endregion
#region Metodi Pubblici
@@ -679,19 +706,57 @@
{
if (scList.Find(x => x.IsNavigator) != null) //Se combinazione di tasti corrispondente a Skin Navigator
{
-
+ if (Log != null)
+ Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, "Request Skin Navigator dialog menu"));
+
+ try
+ {
+ int actWindowID = (int)GUIWindowManager.ActiveWindow;
+ GUIDialogMenu dlgMenu = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);
+ dlgMenu.Reset();
+ dlgMenu.SetHeading("Skin Navigator");
+ dlgMenu.ShowQuickNumbers = false;
+
+ List<WindowLink> dlgLinks = new List<WindowLink>();
+ foreach (NavItem item in _navItems) //Iterazione per memorizzazione impostazioni shortcuts
+ {
+ if ((item.Windows.First(x => x.WindowID == actWindowID)) != null || item.Windows.Count == 0)
+ {
+ bool first = true;
+ foreach (WindowLink link in item.Destinations) //Iterazione per memorizzazione impostazioni shortcuts
+ {
+ if (first && dlgLinks.Count > 0)
+ {
+ dlgMenu.Add("---- ----");
+ dlgLinks.Add(null);
+ first = false;
+ }
+ dlgMenu.Add(link.Caption);
+ dlgLinks.Add(link);
+ }
+ }
+ }
+
+ if (dlgLinks.Count > 0)
+ {
+ dlgMenu.DoModal(actWindowID);
+ if (dlgMenu.SelectedLabel >= 0 && dlgMenu.SelectedLabel < dlgLinks.Count)
+ dlgLinks[dlgMenu.SelectedLabel].Go(Log);
+ else
+ if (Log != null)
+ Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, "No links selected from Skin Navigator dialog menu, ID = " + actWindowID));
+ }
+ else
+ if (Log != null)
+ Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, "No links found for Skin Navigator, window ID = " + actWindowID));
+ }
+ catch (Exception e)
+ {
+ if (Log != null)
+ Log(this, new LogEventArgs(LogEventArgs.LogLevels.Error, "Error opening Skin Navigator dialog menu", e));
+ }
- GUIDialogMenu dlgMenu = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);
- dlgMenu.Reset();
- dlgMenu.SetHeading("Skin Navigator");
- dlgMenu.ShowQuickNumbers = false;
- dlgMenu.Add("tega");
- dlgMenu.Add("nanda");
-
- dlgMenu.DoModal((int)GUIWindowManager.ActiveWindow);
- //if (dlgMenu.SelectedLabel >= 0)
-
}
else //Shortcuts normali
{
@@ -701,10 +766,7 @@
scList[0].GoPrevious(Log); //--> visualizzazione finestra precedente
else
if (scList[0].Go(Log)) //--> visualizzazione finestra di destinazione shortcut
- {
- lastDestination.WindowID = scList[0].WindowID; //--> memorizzazione id finestra
- lastDestination.LoadParameter = scList[0].LoadParameter; //--> memorizzazione parametri di caricamento utilizzati
- }
+ lastDestination.Get(scList[0].); //--> memorizzazione destinazione
}
else //Shortcut a destinazione multipla (ciclico)
{
@@ -730,7 +792,7 @@
Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, "Key not mapped: " + k.ToString()));
}
}
- public void WindowChanged(int windowID) //Evento di finestra attiva modificata
+ public void WindowChanged(int windowID) //Evento di finestra attiva modificata (richiamato dall'esterno)
{
if (lastDestination.WindowID != windowID) //Se attivata una finestra non corrispondente all'ultima destinazione della classe
lastDestination.Reset(); //--> invalidazione parametri memorizzati relativi all'ultima destinazione
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|