PureFileMaster ein TotalCMD-Clone Released! (Version 3)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Ein neues update ist ab sofort verfügbar!
V2.76

- Das LIG wird nun während des Directory einlesens gesperrt.
- Das Hauptfenster wird nun auf eine minimum grösse beschränkt.
- Hardlinks folgen nun den korrekten pfad.
- Leere SD, MMC-Karten Slots usw. können nun auch ausgeblendet werden. (Prefs)
- Die Sortierrichtung wird nun in den Spalten angezeigt.
- Einige änderungen bei den FTP-Routinen.
- Einige fixes.
Pure FileMaster Setup v2.76

Pure FileMaster ZIP v2.76
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Ein neues update ist ab sofort verfügbar!
V2.77

- Bug Fixed: Ein Refresh problem beim überwachen der Drives wurde behoben.
- Bug Fixed: Ein Refresh problem bei FTP-Directorys wurden behoben.
- Einige Änderungen.
Pure FileMaster Setup v2.77

Pure FileMaster ZIP v2.77
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Ein neues update ist ab sofort verfügbar!
V2.78

- Hinzugefügt: Interner Drag'n Drop support.
- Bug Fixed: Die Datums-Spalte wird nun korrekt sortiert.
- Bug Fixed: Nach DriveButton clicks wird nun wieder das ListIconGadget aktiviert.
- Bug Fixed: LaufWerks angaben in der CMD-Line aktualisiert nun wieder die Drive-ButtonBar.
- Einige Änderungen.
Pure FileMaster Setup v2.78

Pure FileMaster ZIP v2.78
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

al90 hat geschrieben: - Hinzugefügt: Interner Drag'n Drop support.
Dumme Frage: Warum nur Intern. PB unterstützt doch Drag & Drop von
Files. Das Beispiel in der Hilfe brauchste nur einbauen.

Gruß

Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

sehr schönes Programm :D
Noch eine Idee:
- Wenn man in einer Liste einen Pfad hat und man ändert in der anderen
Liste das Laufwerk und das Laufwerk ist dasselbe das in der anderen Liste
angezeigt wird, könntest du die zweite Liste mit dem selben Pfad öffnen und
nicht im Grundverzeichnis.

(konnte man mich verstehen?)
Win11 x64 | PB 6.20
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

ts-soft hat geschrieben: Dumme Frage: Warum nur Intern. PB unterstützt doch Drag & Drop von
Files. Das Beispiel in der Hilfe brauchste nur einbauen.
Weil ich echte probleme habe es am laufen zu bekommen. :freak:
Immer wenn ich z.b. nach dem TC droppen will, wird mir ein Gesperrtes
Maus-Icon angezeigt. Zum anderen wenn ich vom PFM aus einen Eintrag
nur kurz ziehe und wieder im ListIcon von PFM los lasse, wird ein Hit
zum TC geworfen. Ich verstehe das ganze einfach nicht mehr. :freak:

Hier mal mein versuchs Code.:

Code: Alles auswählen

;
;  Drag & Drop Aktion durchführen.
;

If Event=#PB_Event_Gadget
  If EventGadget()=35
    If EventType() = #PB_EventType_DragStart
      If DragPrivate(2)=#PB_Drag_Copy
        CopyFiles(1,ShowBytes,HideSystemFiles)
        While WindowEvent():Wend
      EndIf
    EndIf
  EndIf
  If EventGadget()=36
    If EventType() = #PB_EventType_DragStart
      If DragPrivate(1)=#PB_Drag_Copy
        CopyFiles(2,ShowBytes,HideSystemFiles)
        While WindowEvent():Wend
      EndIf
    EndIf
  EndIf
EndIf

If Event = #PB_Event_Gadget
  If EventGadget()=35
    If EventType() = #PB_EventType_DragStart
      If DragFiles("!!!")=#PB_Drag_Copy
        MessageRequester("Info", "Drop to TotalCommander", #MB_OK|#MB_ICONINFORMATION)
      EndIf
    EndIf
  EndIf
EndIf


If Event=#PB_Event_GadgetDrop
  If EventDropType()=#PB_Drop_Files
    If EventGadget()=35
      If EventDropAction()=#PB_Drag_Copy
        files$=EventDropFiles()
        MessageRequester("Info", "Drop to PureFileMaster", #MB_OK|#MB_ICONINFORMATION)
      EndIf
    EndIf
  EndIf
EndIf
Hab mich dabei an der PB-Hilfe gehalten, geht aber dennoch nicht. :(

Was mache ich falsch ?
Andesdaf hat geschrieben:konnte man mich verstehen?
Ich denke schon. Du meinst wohl das das selbe verzeichniss dann auch
links bzw. recht angezeigt wird, so wie im echten TC ?

Die idee hatte ich zwar auch schon, aber ich empfand es schon immer
eher unangenehm in TC. Wenn ich z.b. wirklich nur C:\ listen möchte,
muss man sich erst mühsam wieder zurückklicken oder den Verlauf aufrufen.
Finde das ist kein vorteil. Eher ein nachteil.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

If Event = #PB_Event_Gadget
  If EventGadget()=35
    If EventType() = #PB_EventType_DragStart
      If DragFiles("file1.txt" + #LF$ + "file2.txt", #PB_Drag_Copy)
        MessageRequester("Info", "Drop to TotalCommander", #MB_OK|#MB_ICONINFORMATION)
      EndIf
    EndIf
  EndIf
EndIf
so ungefähr wird da ein Schuh draus. Wenn schon auf für mehrere Dateien :wink:
DragPrivate brauchste nicht.

PS: Die bösen While WindowEvent() : Wend, hab ich besser nicht gesehen :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Andesdaf hat geschrieben:(konnte man mich verstehen?)
In TC hab ich eingestellt: Allways to Root :mrgreen:
Dieses Antifeature mag ich auch nicht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

ts-soft hat geschrieben: so ungefähr wird da ein Schuh draus. Wenn schon auf für mehrere Dateien :wink:
Hab jetzt mal alles einkommentiert, ausser dein vorschlag. Klappt zwar
soweit gut, (In TC kopieren geht jetzt) aber es kopiert gleichzeitig auch
in den anderen Browser vom PFM. Wie kann ich eine abfrage machen
damit nur eine aktion ausgeführt wird ? (Also entweder Intern oder Extern)
DragPrivate brauchste nicht.
Habe ich nur verwendet damit ich per ID-Nummer (typ) erfragen kann
von welchem Browser zum anderen kopiert werden soll. (Intern)
DragFiles() ergibt hier einfach keinen sinn, da zwangsläufig ein String
mit Files zurückgegeben werden muss. Aber ich lese den inhalt ja
selbst mit GetGadgetItems aus und rufe die CopyFiles() Procedure auf.
Ganz schön verwirrend dieser Drag&Drop kram. :freak:

PS: Die bösen While WindowEvent() : Wend, hab ich besser nicht gesehen :mrgreen:


Hab sie auch nur in dem Testcode benutzt, um eventuelle Massen-Hits
zu verhindern. :mrgreen:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

> aber es kopiert gleichzeitig auch in den anderen Browser vom PFM. Wie Kann ich eine abfrage machen damit nur eine aktion ausgeführt wird
Verstehe ich nicht, das Drop-Ereignis kommt entweder auf einer Deiner
Listen, dann ist es für Dich oder es landet woanders, dann brauchste Dich
doch nicht drum kümmern.

Hier mal die entscheidenden passagen:

Code: Alles auswählen

  Case #PB_EventType_DragStart
    text = ""
    For i = 0 To CountGadgetItems(#listLinks) - 1
      If GetGadgetItemState(#listLinks, i) & #PB_ListIcon_Selected
        text + GetPathPart(GetGadgetText(#txtPathLinks)) + GetGadgetItemText(#listLinks, i) + Chr(10)
      EndIf
    Next i                 
    If GetAsyncKeyState_(#VK_SHIFT)
      DragFiles(text, #PB_Drag_Move)
    Else
      DragFiles(text, #PB_Drag_Copy)
    EndIf
    
  Case #PB_Event_GadgetDrop
    Dim dest.s(0)
    text = EventDropFiles()
    j = CountString(text, Chr(10)) + 1
    Dim source.s(j - 1)
    If EventGadget() = #listLinks
      dest(0) = GetPathPart(GetGadgetText(#txtPathLinks))
      For i = 1 To j
        source(i - 1) = StringField(text, i, Chr(10))
      Next i
      If EventDropAction() = #PB_Drag_Move
        FilesMove(source(), dest(), #FOF_SIMPLEPROGRESS)
        If Einstellungen\autorefresh = 0
          FillList(#listLinks, GetPathPart(GetGadgetText(#txtPathLinks)), "")
          FillList(#listRechts, GetPathPart(GetGadgetText(#txtPathRechts)), "")
        EndIf
      ElseIf EventDropAction() = #PB_Drag_Copy
        FilesCopy(source(), dest(), #FOF_SIMPLEPROGRESS)
        If Einstellungen\autorefresh = 0
          FillList(#listLinks, GetPathPart(GetGadgetText(#txtPathLinks)), "")
          FillList(#listRechts, GetPathPart(GetGadgetText(#txtPathRechts)), "")
        EndIf
      EndIf

    ElseIf EventGadget() = #listRechts
      dest(0) = GetPathPart(GetGadgetText(#txtPathRechts))
      For i = 1 To j
        source(i - 1) = StringField(text, i, Chr(10))
      Next i
      If EventDropAction() = #PB_Drag_Move
        FilesMove(source(), dest(), #FOF_SIMPLEPROGRESS)
        If Einstellungen\autorefresh = 0
          FillList(#listLinks, GetPathPart(GetGadgetText(#txtPathLinks)), "")
          FillList(#listRechts, GetPathPart(GetGadgetText(#txtPathRechts)), "")
        EndIf          
      ElseIf EventDropAction() = #PB_Drag_Copy
        FilesCopy(source(), dest(), #FOF_SIMPLEPROGRESS)
        If Einstellungen\autorefresh = 0
          FillList(#listLinks, GetPathPart(GetGadgetText(#txtPathLinks)), "")
          FillList(#listRechts, GetPathPart(GetGadgetText(#txtPathRechts)), "")
        EndIf          
      EndIf
    EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten