Refresh breakpoints correctly even if the breakpoint tab is hidden.

[DEVELOPMENT ENVIRONMENT]
* BUG: Refresh breakpoints correctly even if the breakpoint tab is hidden.
This commit is contained in:
gambas 2018-03-15 16:23:31 +01:00
parent d6b8c451c9
commit c9e2c34081
3 changed files with 116 additions and 104 deletions
app/src/gambas3

View file

@ -222,7 +222,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gambas3 3.10.90\n"
"POT-Creation-Date: 2018-03-10 14:11 UTC\n"
"POT-Creation-Date: 2018-03-14 21:53 UTC\n"
"PO-Revision-Date: 2018-03-10 14:02 UTC\n"
"Last-Translator: benoit <benoit@benoit-kubuntu>\n"
"Language: fr\n"
@ -346,7 +346,7 @@ msgstr "Cette classe se comporte comme un tableau accessible en &1."
msgid "write-only"
msgstr "écriture seule"
#: CClassInfo.class:692 Project.module:1804
#: CClassInfo.class:692 Project.module:1811
msgid "read-only"
msgstr "lecture seule"
@ -979,11 +979,11 @@ msgstr "Extension de l'EDI"
#: FPublish.class:273 FReportBorderChooser.form:48
#: FReportBoxShadowChooser.form:27 FReportBrushChooser.form:36
#: FReportCoordChooser.form:26 FReportPaddingChooser.form:75 FSave.form:28
#: FSaveProjectAs.form:81 FSearch.class:896 FSelectComponent.form:39
#: FSaveProjectAs.form:81 FSearch.class:890 FSelectComponent.form:39
#: FSelectExtraFile.form:43 FSelectIcon.form:87 FSelectLibrary.form:66
#: FSnippet.form:57 FSoftwareFarm.class:538 FTableChooser.form:68 FText.form:41
#: FTranslate.class:631 FVersionControl.form:77 FWebFontChooser.form:129
#: Project.module:532 VersionControl.module:376
#: Project.module:546 VersionControl.module:376
msgid "Cancel"
msgstr "Annuler"
@ -1164,19 +1164,19 @@ msgstr "La police Gambas est publiée sous licence « SIL Open Font License »."
msgid "This program is published under the GNU General Public License."
msgstr "Ce programme est publié sous la « Licence Publique Générale GNU »."
#: Design.module:216 Project.module:2387
#: Design.module:216 Project.module:2394
msgid "first"
msgstr "premier"
#: Design.module:218 Project.module:2389
#: Design.module:218 Project.module:2396
msgid "second"
msgstr "deuxième"
#: Design.module:220 Project.module:2391
#: Design.module:220 Project.module:2398
msgid "third"
msgstr "troisième"
#: Design.module:314 Project.module:2450
#: Design.module:314 Project.module:2457
msgid "in &1:&2."
msgstr "dans &1:&2."
@ -1292,7 +1292,7 @@ msgstr "Afficher les composants dépréciés"
#: FComponentChooser.form:104 FConflictEditor.form:293
#: FConnectionEditor.form:118 FEditor.form:351 FForm.form:434
#: FHelpBrowser.form:66 FImageEditor.form:374 FMain.form:363
#: FTextEditor.form:348 FTranslate.form:77 Project.module:821
#: FTextEditor.form:348 FTranslate.form:77 Project.module:835
msgid "Reload"
msgstr "Recharger"
@ -1426,7 +1426,7 @@ msgstr "Résoudre"
msgid "Close"
msgstr "Fermer"
#: FConflictEditor.class:961 FEditor.class:2685 FTextEditor.class:1122
#: FConflictEditor.class:961 FEditor.class:2688 FTextEditor.class:1122
msgid "(Declarations)"
msgstr "(Déclarations)"
@ -1851,7 +1851,7 @@ msgstr "Déselectionner tout"
msgid "Gambas 3 project conversion"
msgstr "Conversion en projet Gambas 3"
#: FCrash.class:73 FTranslate.class:225 Project.module:4684
#: FCrash.class:73 FTranslate.class:225 Project.module:4691
msgid "The '&1' command has failed."
msgstr "La commande '&1' a échoué."
@ -2156,7 +2156,7 @@ msgstr "Rechercher de nouveau"
msgid "Show search window"
msgstr "Afficher la fenêtre de recherche"
#: FDebugInfo.form:337 FSearch.class:505 FTranslate.class:593
#: FDebugInfo.form:337 FSearch.class:497 FTranslate.class:593
msgid "Search string cannot be found."
msgstr "La chaîne recherchée est introuvable."
@ -2393,7 +2393,7 @@ msgid "This file has not been modified since the last commit."
msgstr "Ce fichier est inchangé depuis le dernier envoi vers le réferentiel."
#: FFileProperty.class:144 FMakeInstall.class:345 FProjectVersion.class:211
#: FSave.form:21 Project.module:3677 VersionControl.module:376
#: FSave.form:21 Project.module:3684 VersionControl.module:376
msgid "Continue"
msgstr "Continuer"
@ -3275,7 +3275,7 @@ msgstr "Choisissez un fichier"
msgid "This file is located inside the project."
msgstr "Le fichier est situé à l'intérieur du projet."
#: FMain.class:2691 Project.module:821
#: FMain.class:2691 Project.module:835
msgid ""
"The file has been modified.\n"
"\n"
@ -4037,7 +4037,7 @@ msgstr "Selectionnez l'archive source"
msgid "*.gz;*.bz2;*.xz"
msgstr "-"
#: FMakePatch.form:98 Project.module:4723
#: FMakePatch.form:98 Project.module:4730
msgid "Source packages"
msgstr "Paquets sources"
@ -4077,7 +4077,7 @@ msgstr "Nom de groupe incorrect !"
msgid "This menu is too deep !"
msgstr "Ce menu est trop profond !"
#: FMenu.class:1056 Project.module:5574
#: FMenu.class:1056 Project.module:5581
msgid "modified"
msgstr "modifié"
@ -5221,23 +5221,23 @@ msgstr "Nouveau nom du projet"
msgid "Take screenshot"
msgstr "Capture d'écran"
#: FSearch.class:507
#: FSearch.class:499
msgid "Search string replaced once."
msgstr "La chaîne de caractères recherchée à été remplacée une fois."
#: FSearch.class:509
#: FSearch.class:501
msgid "Search string replaced &1 times."
msgstr "La chaîne de caractères a été remplacée &1 fois."
#: FSearch.class:606
#: FSearch.class:598
msgid "One match"
msgstr "Une correspondance"
#: FSearch.class:608
#: FSearch.class:600
msgid "&1 matches"
msgstr "&1 correspondances"
#: FSearch.class:896
#: FSearch.class:890
msgid "Do you really want to replace every string?"
msgstr "Voulez-vous vraiment remplacer l'ensemble des chaînes ?"
@ -5773,7 +5773,7 @@ msgstr "Nouveau projet..."
msgid "Recent projects"
msgstr "Projets récents"
#: FWelcome.class:72 Project.module:6365
#: FWelcome.class:72 Project.module:6372
msgid "Installed software"
msgstr "Logiciels installés"
@ -7369,15 +7369,15 @@ msgstr "Multimedia"
msgid "Web"
msgstr "Web"
#: Project.module:383
#: Project.module:397
msgid "File not found!"
msgstr "Fichier introuvable !"
#: Project.module:495
#: Project.module:509
msgid "This project does not exist."
msgstr "Ce projet n'existe pas."
#: Project.module:507
#: Project.module:521
msgid ""
"Unable to find Gambas IDE executable in directory:\n"
"\n"
@ -7387,19 +7387,19 @@ msgstr ""
"\n"
"&1"
#: Project.module:526
#: Project.module:540
msgid "This is not a Gambas project."
msgstr "Ce n'est pas un projet Gambas."
#: Project.module:529
#: Project.module:543
msgid "This is a Gambas 1.0 project. Use Gambas 2 to convert it."
msgstr "Ceci est un projet Gambas 1.0. Utilisez Gambas 2 pour le convertir."
#: Project.module:532
#: Project.module:546
msgid "Convert"
msgstr "Convertir"
#: Project.module:532
#: Project.module:546
msgid ""
"This is a Gambas 2.0 project.\n"
"\n"
@ -7409,15 +7409,15 @@ msgstr ""
"\n"
"Désirez-vous le convertir ?"
#: Project.module:550
#: Project.module:564
msgid "Do not open"
msgstr "Ne pas ouvrir"
#: Project.module:550
#: Project.module:564
msgid "Open after all"
msgstr "Ouvrir malgré tout"
#: Project.module:550
#: Project.module:564
msgid ""
"This project seems to be already opened.\n"
"\n"
@ -7427,75 +7427,75 @@ msgstr ""
"\n"
"Ouvrir le même projet deux fois peut provoquer des pertes de données."
#: Project.module:556
#: Project.module:570
msgid "It cannot be converted."
msgstr "Il ne peut être converti."
#: Project.module:556
#: Project.module:570
msgid "This project is read-only."
msgstr "Le projet est en lecture seule."
#: Project.module:573
#: Project.module:587
msgid "Copying project inside a temporary directory..."
msgstr "Copie du projet dans un répertoire temporaire..."
#: Project.module:576
#: Project.module:590
msgid "Unable to create temporary directory"
msgstr "Impossible de créer le répertoire temporaire"
#: Project.module:606
#: Project.module:620
msgid "Converting project structure..."
msgstr "Conversion de la structure du projet..."
#: Project.module:637
#: Project.module:651
msgid "Applying conversion..."
msgstr "Application de la conversion..."
#: Project.module:643
#: Project.module:657
msgid "Unable to apply conversion"
msgstr "Impossible d'appliquer la conversion"
#: Project.module:763
#: Project.module:777
msgid "Some libraries used by the project are missing."
msgstr "Des bibliothèques utilisées par le projet sont manquantes."
#: Project.module:782
#: Project.module:796
msgid "Cannot open project file :\n"
msgstr "Impossible d'ouvrir le projet :\n"
#: Project.module:834
#: Project.module:848
msgid "Cannot reload file."
msgstr "Impossible de recharger le fichier."
#: Project.module:1813
#: Project.module:1820
msgid "ALPHA VERSION, USE AT YOUR OWN RISK!"
msgstr "VERSION ALPHA, À UTILISER À VOS RISQUES ET PÉRILS !"
#: Project.module:1815
#: Project.module:1822
msgid "DEVELOPMENT VERSION, USE AT YOUR OWN RISK!"
msgstr "VERSION DE DÉVELOPPEMENT, À UTILISER À VOS RISQUES ET PÉRILS !"
#: Project.module:2206
#: Project.module:2213
msgid "Cannot open a binary file."
msgstr "Impossible d'ouvrir un fichier binaire."
#: Project.module:2243
#: Project.module:2250
msgid "Cannot open file."
msgstr "Impossible d'ouvrir le fichier."
#: Project.module:2393
#: Project.module:2400
msgid "&1th"
msgstr "&1ème"
#: Project.module:2446
#: Project.module:2453
msgid "in form definition"
msgstr "dans la définition du formulaire"
#: Project.module:2453
#: Project.module:2460
msgid "in &1."
msgstr "dans &1."
#: Project.module:2614
#: Project.module:2621
msgid ""
"Some project source files are in conflict.\n"
"Please solve them if you want to compile the project."
@ -7503,183 +7503,183 @@ msgstr ""
"Certains fichiers sources du projet sont en conflit.\n"
"Veuillez résoudre ces conflits pour pouvoir compiler le projet."
#: Project.module:2618
#: Project.module:2625
msgid "Compiling project"
msgstr "Compilation du projet"
#: Project.module:2869
#: Project.module:2876
msgid "File already exists."
msgstr "Ce fichier existe déja."
#: Project.module:2901
#: Project.module:2908
msgid "Directory already exists."
msgstr "Le répertoire existe déja."
#: Project.module:2913
#: Project.module:2920
msgid "Cannot link template file."
msgstr "Impossible de créer le lien vers le fichier modèle."
#: Project.module:2919
#: Project.module:2926
msgid "Cannot copy template file."
msgstr "Impossible de copier le fichier modèle."
#: Project.module:3125
#: Project.module:3132
msgid "The contents of VERSION file is incorrect."
msgstr "Le contenu du fichier VERSION est incorrect."
#: Project.module:3147
#: Project.module:3154
msgid "Cannot install library in &1."
msgstr "Impossible d'installer la bibliothèque dans &1."
#: Project.module:3185
#: Project.module:3192
msgid "Making executable..."
msgstr "Génération de l'exécutable..."
#: Project.module:3238
#: Project.module:3245
msgid "Cannot make executable."
msgstr "Impossible de créer l'exécutable."
#: Project.module:3676
#: Project.module:3683
msgid "Some components are missing: &1"
msgstr "Certains composants ne sont pas installés : &1"
#: Project.module:3862
#: Project.module:3869
msgid "Cannot write project file."
msgstr "Impossible d'écrire le fichier projet."
#: Project.module:3911
#: Project.module:3918
msgid "Unable to create desktop shortcut."
msgstr "Imposible de créer le raccourci sur le bureau."
#: Project.module:4175
#: Project.module:4182
msgid "The directory will be removed at the next commit."
msgstr "Le répertoire sera supprimé au prochain 'commit'."
#: Project.module:4192
#: Project.module:4199
msgid "You must define a startup class or form!"
msgstr "Vous devez définir une classe ou un formulaire de démarrage !"
#: Project.module:4223
#: Project.module:4230
msgid "Please type a name."
msgstr "Veuillez saisir un nom."
#: Project.module:4227
#: Project.module:4234
msgid "This name contains a forbidden character:"
msgstr "Ce nom contient un caractère interdit:"
#: Project.module:4231
#: Project.module:4238
msgid "The name cannot begins with a dot."
msgstr "Le nom ne peut pas commencer par un point."
#: Project.module:4235
#: Project.module:4242
msgid "This name is already used. Choose another one."
msgstr "Ce nom est déjà utilisé. Choisissez-en un autre."
#: Project.module:4271
#: Project.module:4278
msgid "A class name must begin with a letter or an underscore, followed by any letter or digit."
msgstr "Un nom de classe doit commencer par une lettre ou un caractère '_', et être suivi par des lettres ou des chiffres. "
#: Project.module:4314
#: Project.module:4321
msgid "Destination already exists."
msgstr "La destination existe déjà."
#: Project.module:4491
#: Project.module:4498
msgid "Unable to rename '&1'"
msgstr "Impossible de renommer « &1 »"
#: Project.module:4607
#: Project.module:4614
msgid "Please type a project name."
msgstr "Veuillez saisir un nom de projet."
#: Project.module:4615
#: Project.module:4622
msgid "The project name cannot begin with a dot."
msgstr "Un nom de projet ne peut commencer par un point."
#: Project.module:4618
#: Project.module:4625
msgid "Non-ASCII characters are forbidden in a project name."
msgstr "Un nom de projet ne peut contenir que des caractères ASCII."
#: Project.module:4619
#: Project.module:4626
msgid "The following characters are forbidden in a project name: ? * / \\ SPACE"
msgstr "Les caractères suivants sont interdits dans un nom de projet : ? * / \\ ESPACE"
#: Project.module:4626
#: Project.module:4633
msgid "This project already exists."
msgstr "Ce projet existe déjà."
#: Project.module:4629
#: Project.module:4636
msgid "The project directory already exists."
msgstr "Le répertoire du projet existe déjà."
#: Project.module:4631
#: Project.module:4638
msgid "The project directory cannot be created because a file with the same name already exists."
msgstr "Le répertoire du projet ne peut être créé car un fichier avec le même nom existe déjà."
#: Project.module:4695
#: Project.module:4702
msgid "Unable to create source archive."
msgstr "Impossible de créer l'archive source."
#: Project.module:4722
#: Project.module:4729
msgid "Create source package"
msgstr "Générer une archive des sources du projet"
#: Project.module:4979
#: Project.module:4986
msgid "Cannot copy file &1."
msgstr "Impossible de copier le fichier &1."
#: Project.module:5027
#: Project.module:5034
msgid "Cannot create link &1."
msgstr "Impossible de créer le lien &1."
#: Project.module:5042
#: Project.module:5049
msgid "Cannot move a directory inside itself."
msgstr "Impossible de déplacer un répertoire à l'intérieur de lui-même."
#: Project.module:5106
#: Project.module:5113
msgid "Cannot move file &1."
msgstr "Impossible de déplacer le fichier &1."
#: Project.module:5319
#: Project.module:5326
msgid "The following files couldn't be removed:"
msgstr "Les fichiers suivants n'ont pu être supprimés :"
#: Project.module:5785
#: Project.module:5792
msgid "Project cleanup..."
msgstr "Nettoyage du projet..."
#: Project.module:5791
#: Project.module:5798
msgid "Project files conversion..."
msgstr "Conversion des fichiers du projet..."
#: Project.module:5821
#: Project.module:5828
msgid "Unable to convert &1"
msgstr "Impossible de convertir &1"
#: Project.module:6059
#: Project.module:6066
msgid "Unable to update forms."
msgstr "Impossible de mettre à-jour les formulaires."
#: Project.module:6149
#: Project.module:6156
msgid "The &1 program is not installed on your system."
msgstr "Le programme &1 n'est pas installé sur votre système."
#: Project.module:6151
#: Project.module:6158
msgid "The following programs are not installed on your system: &1."
msgstr "Les programmes suivants ne sont pas installés sur votre système : &1."
#: Project.module:6243
#: Project.module:6250
msgid "Unable to read component description file."
msgstr "Impossible de lire le fichier de description du composant."
#: Project.module:6304
#: Project.module:6311
msgid "Cannot write component description file."
msgstr "Impossible d'écrire le fichier de description du composant."
#: Project.module:6365
#: Project.module:6372
msgid "Project templates"
msgstr "Modèles de projet"
#: Project.module:6411
#: Project.module:6418
msgid "Unable to run terminal."
msgstr "Impossible de démarrer le terminal."

View file

@ -22,6 +22,7 @@ Private $sCmdStart As String
Private $aBreakpoint As String[]
Private $cDisabledBreakpoint As Collection
Private $cClassHasBreakpoint As Collection
Private $sAddBreakpoint As String
Private $sRemoveBreakpoint As String
@ -1279,16 +1280,17 @@ Public Sub SetBreakpoint(sBreakpoint As String, bOn As Boolean, Optional bDisabl
If bOn Then
$aBreakpoint.Add(sBreakpoint)
$aBreakpoint.Sort()
$aBreakpoint.Sort(gb.Natural)
If bDisabled Then $cDisabledBreakpoint[sBreakpoint] = True
Endif
aBreak = Split(sBreakpoint, ".")
$cClassHasBreakpoint[aBreak[0]] = $aBreakpoint.Exist(aBreak[0] & ".*", gb.Like)
FDebugInfo.RefreshBreakpointView
If $iState = STATE_RUNNING Then Return
aBreak = Split(sBreakpoint, ".")
' Update editor
sPath = Project.FindPath(aBreak[0])
@ -1313,6 +1315,7 @@ Public Sub ClearBreakpoints()
$aBreakpoint = New String[]
$cDisabledBreakpoint = New Collection
$cClassHasBreakpoint = New Collection
FDebugInfo.RefreshBreakpointView
End
@ -1376,7 +1379,7 @@ Public Sub RefreshBreakpointFromEditor(hEditor As FEditor)
Next
End With
$aBreakpoint.Sort()
$aBreakpoint.Sort(gb.Natural)
FDebugInfo.RefreshBreakpointView()
@ -1443,3 +1446,8 @@ Public Sub SetBalloon(hCtrl As Control, Optional X As Integer = -1, Y As Integer
End
Public Sub HasBreakpoint(sClass As String) As Boolean
Return $cClassHasBreakpoint[sClass]
End

View file

@ -526,11 +526,16 @@ Public Sub btnShowMe_Click()
End
Public Sub RefreshBreakpoint(sClass As String)
Dim hEditor As FEditor
hEditor = Project.Files[Project.FindPath(sClass)]
If Not hEditor Then Return
If hEditor.GetEditor().Breakpoints.Count = 0 And If Not Design.HasBreakpoint(sClass) Then Return
$cRefreshBreakpoint[sClass] = sClass
If wizDebug.Index = TAB_BREAK Then
timBreakpoint.Restart
Endif
timBreakpoint.Restart
'timBreakpoint.Start
End
@ -541,8 +546,7 @@ Public Sub timBreakpoint_Timer()
Dim hEditor As FEditor
For Each sClass In $cRefreshBreakpoint
hEditor = Null
Try hEditor = Project.Files[Project.FindPath(sClass)]
hEditor = Project.Files[Project.FindPath(sClass)]
If Not hEditor Then Continue
Design.RefreshBreakpointFromEditor(hEditor)
Next