viewgit/index.php:465 Only variables should be passed by reference [2048]

viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]

  1.  
  2. using System;
  3. using Gtk;
  4. using System.Collections.Generic;
  5.  
  6. namespace Dizzy
  7. {
  8.  
  9. /*
  10. * Problema: Supponiamo di avere un thread disperso per il programma
  11. * che ad un certo punto decide che deve comunicare all'utente che è
  12. * successo un gran casino. Come va?
  13. *
  14. * Soluzione 1: Emette un evento che da qualche altra parte è stato
  15. * collegato ad una funzione che crea un dialog. Questo crea problemi
  16. * con il fatto che le chiamate alle gtk vengono fatte dal thread sbagliato.
  17. *
  18. * Soluzione attuale: Riceviamo le chiamate qua dentro. Questo oggetto
  19. * inserisce le chiamate corrette nel thread principale.
  20. */
  21.  
  22. public class EventManager
  23. {
  24.  
  25. public static MessageDialog searchInProgress = null;
  26. public static MessageDialog listUpdate = null;
  27.  
  28. // Gestione dei file e dei task. Questi devono essere inizializzati
  29. // Appena sono creati.
  30. public static FileTreeView fileTreeView = null;
  31. public static TaskTreeView taskTreeView = null;
  32. public static void RegisterFileTreeView (ref FileTreeView f) { fileTreeView = f; }
  33. public static void RegisterTaskTreeView (ref TaskTreeView t) { taskTreeView = t; }
  34.  
  35. public EventManager () {}
  36.  
  37. protected static Dictionary<string,TreeIter> iters = new Dictionary<string, TreeIter> ();
  38.  
  39. // Metodo generico per segnalare un'errore dell'applicazione.
  40. public static void ErrorMessage (string message) {
  41.  
  42. GLib.Idle.Add(delegate {
  43. Log.Error (message);
  44.  
  45. MessageDialog d = new Gtk.MessageDialog(null,
  46. Gtk.DialogFlags.DestroyWithParent,
  47. Gtk.MessageType.Error,
  48. Gtk.ButtonsType.Ok, "");
  49. d.Markup = message;
  50. d.Run ();
  51. d.Destroy ();
  52. return false;
  53. });
  54. }
  55.  
  56. // Metodi per gestire la ricerca
  57. public static void SearchStarted () {
  58.  
  59. // Questo significa che stiamo già effettuando una ricerca
  60. if (searchInProgress != null)
  61. return;
  62.  
  63. searchInProgress = new MessageDialog(null,
  64. DialogFlags.Modal,
  65. MessageType.Info,
  66. ButtonsType.None,
  67. true, "");
  68. searchInProgress.Markup = "Ricerca in corso, attendere.";
  69. GLib.Idle.Add (delegate {
  70. if (EventManager.searchInProgress != null)
  71. EventManager.searchInProgress.Run ();
  72. return false;
  73. });
  74. }
  75.  
  76. public static void SearchFinished () {
  77. if (searchInProgress == null)
  78. {
  79. Log.Warning ("Sembra che la ricerca sia già morta di per sè");
  80. return;
  81. }
  82. else
  83. {
  84. GLib.Idle.Add(delegate {
  85. searchInProgress.Destroy ();
  86. searchInProgress = null;
  87. return false;
  88. });
  89. }
  90. }
  91.  
  92. // Metodi per gestire l'update della lista
  93. public static void ListUpdateStarted () {
  94.  
  95. // Questo significa che stiamo già effettuando una ricerca
  96. if (listUpdate != null)
  97. return;
  98.  
  99. listUpdate = new MessageDialog(null,
  100. DialogFlags.Modal,
  101. MessageType.Info,
  102. ButtonsType.None,
  103. true, "");
  104. listUpdate.Markup = "Aggiornamento della lista in corso";
  105. GLib.Idle.Add (delegate {
  106. if (EventManager.listUpdate != null)
  107. EventManager.listUpdate.Run ();
  108. return false;
  109. });
  110. }
  111.  
  112. public static void ListUpdateFinished () {
  113. if (listUpdate == null)
  114. return;
  115. else
  116. {
  117. GLib.Idle.Add(delegate {
  118. listUpdate.Destroy ();
  119. Log.Info ("Aggiornamento completato");
  120. EventManager.listUpdate = null;
  121. return false;
  122. });
  123. }
  124. }
  125.  
  126. public static void FileTreeViewAddFile(File f)
  127. {
  128. if (fileTreeView == null) { return; }
  129. GLib.Idle.Add(delegate {
  130. fileTreeView.AddFile (f);
  131. return false;
  132. });
  133. }
  134.  
  135. public static void FileTreeViewClear() {
  136. if (fileTreeView == null) { return; }
  137. GLib.Idle.Add(delegate {
  138. fileTreeView.Clear ();
  139. return false;
  140. });
  141. }
  142.  
  143. public static void TaskTreeViewAddTask (string filename, int perc)
  144. {
  145. if (taskTreeView == null)
  146. return;
  147. GLib.Idle.Add (delegate {
  148. EventManager.AddIter(filename, taskTreeView.AddTask (filename, perc));
  149. return false;
  150. });
  151.  
  152. }
  153.  
  154. public static void TaskTreeViewSetProgress (TreeIter iter, int perc)
  155. {
  156. if (taskTreeView == null)
  157. return;
  158. GLib.Idle.Add(delegate {
  159. taskTreeView.SetProgress (iter, perc);
  160. return false;
  161. });
  162. }
  163.  
  164. public static void TaskTreeViewRemove (TreeIter iter)
  165. {
  166. if (taskTreeView == null)
  167. return;
  168. GLib.Idle.Add (delegate {
  169. taskTreeView.DeleteRow (iter);
  170. return false;
  171. });
  172. }
  173.  
  174. public static void AddIter (string filename, TreeIter iter)
  175. {
  176. iters.Add(filename, iter);
  177. }
  178.  
  179. public static TreeIter GetIter (string filename)
  180. {
  181. try {return iters[filename];}
  182. catch (Exception e)
  183. {
  184. // Aspettiamo nella speranza che le cose vadano meglio
  185. Log.Warning ("Sto richiamando GetIter () per ottenre l'iter (" + e.Message + ")");
  186. System.Threading.Thread.Sleep(200);
  187. }
  188. return GetIter(filename);
  189. }
  190.  
  191. }
  192. }