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. |