J'ai réaliser un soft de récupération de liens. Un gestionnaire de téléchargement en gros.
On ajoute X liens dans une liste chainée et on clique sur télécharger.
Les téléchargements se font un par un dans un thread que voici.
Je précise que sous windows le soft marche... Mais sous linux, lorsque je clique sur mon bouton telecharger.
Mon thread se lance mais j'ai une erreur dans ma proce.
Voilà les logs du débug et la proce en question.
Merci pour votre aide.
Code : Tout sélectionner
[22:43:23] Waiting for executable to start...
[22:43:23] Executable type: Linux - x64 (64bit, Unicode, Thread)
[22:43:23] Executable started.
[22:43:23] [WARNING] 6.2MAC.pb (Line: 1)
[22:43:23] [WARNING] GLib-GIO (DEBUG): _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for âgio-vfsâ
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GIO (DEBUG): _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for âgsettings-backendâ
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_take_string: assertion 'G_VALUE_HOLDS_STRING (value)' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): ../../../gobject/gtype.c:4268: type id '0' is invalid
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): can't peek value table for type '<invalid>' which is not currently referenced
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): ../../../gobject/gvalue.c:185: cannot initialize GValue with type '(null)', this type has no GTypeValueTable implementation
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_type_compatible: assertion 'src_type' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_copy: assertion 'g_value_type_compatible (G_VALUE_TYPE (src_value), G_VALUE_TYPE (dest_value))' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (CRITICAL): g_value_type_compatible: assertion 'src_type' failed
[22:43:50] [WARNING] 6.2MAC.pb (Line: 695)
[22:43:50] [WARNING] GLib-GObject (WARNING): unable to set property 'text' of type 'gchararray' from value of type '(null)'
[22:44:07] The Program was killed.
Code : Tout sélectionner
Procedure DDownload(*ldvm)
Protected LASTPATH$, PATH$
N = ListSize (link())
Debug ""
Debug " --- TELECH ---------------------"
Debug Str(n) + " liens détecté(s)"
DisableGadget(#BT_SUPPR,1)
DisableGadget(#BT_ADDLINK,1)
DisableGadget(#BT_DOWNLOAD,1)
If LASTPATH$ = "" : LASTPATH$ = GetCurrentDirectory() : EndIf
PATH$ = PathRequester("Choisissez un dossier de sauvegarde",LASTPATH$)
LASTPATH$ = PATH$ ; <--- Sous linux erreur ICI
ForEach LINK()
Q = 0
Fichier$ = LINK()\NAME
; ;Debut du téléchargement
F$ = GetFilePart(Fichier$,#PB_FileSystem_NoExtension)
Telechargement = ReceiveHTTPFile(Link()\DIRECTURL, PATH$+Fichier$, #PB_HTTP_Asynchronous)
Size = Val(link()\SIZE)
If Telechargement
Repeat
Progression = HTTPProgress(Telechargement)
Select Progression
Case #PB_HTTP_Success
Taille = FinishHTTP(Telechargement)
SetGadgetText(#info,"Téléchargement terminé (Taille: " + Taille + ") 100% " )
If PlayS = #True : PlaySound(#SON) : EndIf
SetGadgetState(#PBar1,100)
Q = 1
Case #PB_HTTP_Failed
SetGadgetText(#info,"Le téléchargement a échoué")
If PlayS = #True : PlaySound(#SON) : EndIf
SetGadgetState(#PBar1,0)
Q = 1
Case #PB_HTTP_Aborted
SetGadgetText(#info,"Le téléchargement a été interrompu")
SetGadgetState(#PBar1,0)
Q = 1
Default
If size <> 0
F$ = GetFilePart(Fichier$,#PB_FileSystem_NoExtension)
Progression$ = StrF((Progression / Size) * 100, 0)
SetGadgetText(#info, "Téléchargement de " + f$ +" "+ Progression$ + "%" )
SetGadgetState(#PBar1,(Progression / Size) * 100)
EndIf
EndSelect
;
Delay(500) ; Libérer le CPU
Until Q = 1
Else
Debug "Erreur de téléchargement"
EndIf
Next
ClearList(LINK())
ClearGadgetItems(#combo)
DisableGadget(#BT_ADDLINK,0)
UpdateCombo()
Off()
EndProcedure