Neulingsfragen zu DOpus

Aktuelle Version: 12.7 (23.11.2017)
Alles zum Thema Directory Opus
Antworten
wazlaf
Beiträge: 52
Registriert: 18. Mär 2014 11:06
Betriebssystem: Win 8.1 Pro x64
Produkt: DOpus 11.1 x64
Version DOpus: Pro

Neulingsfragen zu DOpus

Beitrag von wazlaf » 8. Apr 2014 11:40

Hallo zusammen,

bin gerade dabei DOpus etwas genauer zu testen, und das was ich bisher getestet habe gefällt mir wirklich sehr gut.
Vor allem die enorme Anpassbarkeit und die Integration in Windows (Explorer Ersatz)

Als Umsteiger bzw. Neuling in DOopus hätte ich allerdings einige Fragen dazu und hoffe das Ihr mir diese beantworten könnt.

1) Filter (siehe evtl. Screenshot Filter.png)

Gibt es auch klassische "Anzeigefilter"? Bisher habe ich nur Filter für Dateioperationen gefunden.
Man kann zwar mittels + oder Quickfilter filtern muss dazu aber immer den Filter erneut eingeben.
Was ich suche ist ein einfacher Dialog in dem ein Filter ausgewählt werden kann und dann die Anzeige entsprechend danach gefiltert wird.
Oder evtl. wenn im Quickfilter auch selbst erstellte Filter ausgewählt werden könnten (Einstellungen/Dateioperationen/Filter), momentan finde ich dort nur
ein Auswahl der entsprechenden Dateiendungen

Bisher habe ich mir mit einem eigenem Menü/Buttons geholfen
z. B. Filter für Programme

Code: Alles auswählen

Select FILTER "Programme" FILTERFLAGS=hidenomatch
Select NONE
und Filter zum wieder zurückstellen

Code: Alles auswählen

Select NOPATTERN SHOWHIDDEN
Kann man die Beschriftung des Buttons an den aktuell ausgewählten Filter anpassen (dynamisch).
Bsp.: Anstelle das der Button nur Filter heißt Filter:Programme, Filter:Heute usw.

2) Focus (siehe evtl. Focus - Dateimanager.png / Focus - DOpus.png)

Wenn ich in meinem bisherigem Dateimanager Dateien markiert habe wurden diese farblich hervorgehoben zusätzlich
ist die Datei auf welcher sich der Focus befindet "intensiver" dargestellt"

Focus - Dateimanager.png
Focus befindet sich auf TCD94.tmp

Wenn ich in DOpus Dateien markieren werden dies ebenfalls farblich hervorgehoben, nur die fokussierte Datei
erhält lediglich einen kleinen Rahmen drum rum.

Focus - DOpus.png
Focus befindet sich auf TCD94.tmp

Kann man anstelle des Rahmens auch eine andere Farbe wählen?

Eine zusätzliche Frage bitte wenn ich in DOpus Enter auf markierte Dateien drücken (z. B. txt Dateien)
werden alle im Editor geöffnet kann ich auch einstellen das nur die fokussierte Datei geöffnet wird?
Habe etwas entsprechendes nur für den Powermodus gefunden.

3) Navigation Lock / Slave Tabs / Register Speeren(siehe evtl. Register Navigation Einschränken.png)

Der Navigation Lock bzw. die Slave Tabs sind wirklich eine feine Sache.
Allerdings komme ich mit dem Handling nicht ganz klar.
Folgendes Beispiel:

C:\Daten
C:\Daten.Backup

In beiden befindet sich jeweils dieselbe Unterstrucktur an Ordner.
Wenn ich nun in C:\Daten einen Ordner wechsle wird dieser Wechsel automatisch in C:\Daten.Backup ebenfalls vollzogen.
Wechsle ich nun versehentlich über C:\Daten hinaus auf C:\ und dann anschließend gleich wieder auf C:\Daten befindet sich auch
der Slave-Tab in C:\Daten eigentlich wollte ich ja C:\Daten.Backup.

Kann man die Navigation der Tab's einschränken so dass ich gar nicht über C:\Daten hinaus komme, evtl. Analog
dem beigefügtem Screenshot (Register Speeren(siehe evtl. Register Navigation Einschränken.png)

Sorry für die vielen Fragen und den vielen Text. Sollte trotz des vielen Textes etwas unklar sein bitte nachfragen.
Vielen Dank bereits für Eure Antworten.

Freundliche Grüße
wazlaf

Betriebssystem:
Windows 8.1, 64bit Version (Professional)

Servicepacks:
aktueller Patchstand über Automatik.

Benutzte Version: (speziell bei Directory Opus)
Directory Opus Pro 11.1.5177 x64
OS 6.3 (B:9600 P:2 T:1) SP 0.0
Dateianhänge
Screenshots.zip
(40.73 KiB) 56-mal heruntergeladen

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von Kundal » 11. Apr 2014 09:52

Hallo wazlaf,
Bitte in Zukunft nur eine Frage pro Beitrag mit einem aussagekräftigen Titel stellen. Bei einer Ansammlung von Fragen sinkt meine Neigung, zu antworten spürbar, weil jede einzelne Frage einen gewissen Aufwand darstellt eine passende Lösung zu finden und ich mich evt. aus anderen Fragen lieber heraushalten möchte, weil ich da nicht der Experte bin. Dann entwickle ich die Tendenz abzuwarten, ob nicht jemand Anderes sich der Sache annimmt. Ausserdem ist es bei so einer Ansammlung schwierig für andere Mitglieder per Forumssuche ein Thema zu finden, das hier behandelt wird.

Zu1) Du kannst in deinen Schalter einfach eine Dialogbox einbauen, in der du einen Filter auswählen kannst. Den Filter-zurücksetzen-Befehl würde ich dabei in einem 3-Tasten-Schalter auf Rechtsklick legen.

Schalter mit Dialogbox

Code: Alles auswählen

Select FILTER "{dlgchoose|Filter auswählen|Programme=Programme+Mein Filter1=myfilter+Mein Filter2=blabla}" FILTERFLAGS=hidenomatch
Select NONE  

Vorlage Fertiger 3-Tasten-Schalter

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none" type="three_button">
	<label>Filter auswählen</label>
	<icon1>#default:recursivefilter</icon1>
	<button backcol="none" display="both" textcol="none">
		<label>Filter</label>
		<icon1>#default:recursivefilter</icon1>
		<function type="normal">
			<instruction>Select FILTER "{dlgchoose|Filter auswählen|Programme=Programme+Mein Filter1=myfilter+Mein Filter2=blabla}" FILTERFLAGS=hidenomatch</instruction>
			<instruction>Select NONE  </instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>Kein Filter</label>
		<icon1>#default:clearfilters</icon1>
		<function type="normal">
			<instruction>Select NOPATTERN SHOWHIDDEN</instruction>
		</function>
	</button>
</button>
Zu 2) Ich glaube nicht, dass sich an der Darstellung etwas ändern lässt.

Zu 3) Auch dazu fällt mir keine Lösung ein.

Es mag sein, dass sich in DOpus11 für die letzten beiden Dinge mit einem Script etwas machen ließe, ich habe aber keine Idee wie das umgesetzt werden könnte.

wazlaf
Beiträge: 52
Registriert: 18. Mär 2014 11:06
Betriebssystem: Win 8.1 Pro x64
Produkt: DOpus 11.1 x64
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von wazlaf » 11. Apr 2014 16:41

Vielen Dank für die Antworten, trotz meines unübersichtlichen Beitrags.
Werde in Zukunft nur eine Frage pro Beitrag incl aussagekräfitigen Titel stellen. :oops:

Zu 1)
Danke für den Schalter vor allem der Rechtsklick zum zurücksetzen ist klasse.

Zu 2)
Schade

Zu 3)
Nochmals Schade :)

Und nochmals Danke für die Antworten.

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von Kundal » 14. Apr 2014 10:05

Hallo wazlaf,
Für dein Problem mit dem Navigation Lock könnte dieses Script vielleicht hilfreich sein:
Locked tabs which can only navigate to sub folders
Ich habe es selbst nicht getested, aber es macht eigentlich genau das, was du willst. Vielleicht lässt es sich zusammen mit dem Navigation Lock verwenden.

wazlaf
Beiträge: 52
Registriert: 18. Mär 2014 11:06
Betriebssystem: Win 8.1 Pro x64
Produkt: DOpus 11.1 x64
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von wazlaf » 14. Apr 2014 18:47

Hallo Kundal,

super vielen Dank. Hab's grad getestet und es funktioniert wunderbar.
Vielen Dank für*s Suchen

Freundliche Grüße
wazlaf

wazlaf
Beiträge: 52
Registriert: 18. Mär 2014 11:06
Betriebssystem: Win 8.1 Pro x64
Produkt: DOpus 11.1 x64
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von wazlaf » 17. Apr 2014 19:37

Habe das Script aus Locked tabs which can only navigate to sub folders etwas angepasst bzw. neu geschrieben so das nun auch mehrere Ordner gespeert werden können.
Der Code ist allerdings nicht sehr schön und mehr geklaut als selbst geschrieben. (Würde also keine Plagiatsprüfung bestehen).

Schalter für die linke Maustate welche die Speerung aktiviert

Code: Alles auswählen

@language vbscript

Function OnClick(ByRef ClickData)
	Dim tab
	Set tab = ClickData.Func.Command.SourceTab 

	Dim path
	path = ClickData.Func.Command.SourceTab.Path

	WriteTab tab, path
	
	ClickData.Func.Command.RunCommand("Go TABLOCK=lockchanges")
	ClickData.Func.Command.RunCommand("BeforeFolderChange")
End Function


'Gespeerten Tab incl. Path in "file" speichern
Sub WriteTab(tab, path)
	Const ForReading = 1, ForWriting = 2, ForAppending = 8
	
	Dim fso, f, file, s
	Dim bOK
	
	bOK = False
	
	file = GetTempPath & "\" & "DOpusTabs.txt"
	
	Set fso = CreateObject("Scripting.FileSystemObject")

	'Zur Bereinigung beim ersten Aufruf "file" welche die gespeerten Tabs enthält löschen
	'Falls DOpus abstürzt oder sonstwas in der Art
	'Aber nur beim ersten Aufruf deshalb die Variable zur Überprüfung
	If Not DOpus.vars.Exists("DOpusTabs") Then
		DOpus.vars.Set "DOpusTabs", "True"
		fso.DeleteFile(file)
	End If

	If fso.FileExists(file) Then		
		Set f = fso.GetFile(file)
		
		If f.Size > 0 Then
			Set f = fso.OpenTextFile(file, ForReading)
			s = f.ReadAll
		
			If InStr(1, s, tab, 1) > 0 Then
				bOK = False
				f.Close
			Else
				bOK = True
			End If
		Else
			bOK = True
		End If
	Else
		bOK = True
	End If
	
	If bOK = True Then
		Set f = fso.OpenTextFile(file, ForAppending, True)
		f.Write(tab & " " & path & VbCrLf)
		f.Close
	End If
	
	Set fso = Nothing
	Set f = Nothing
End Sub

Function GetTempPath
	Dim TempPath
	TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
	GetTempPath = TempPath
End Function
Schalter für die rechte Maustaste welche die Speere wieder aufhebt

Code: Alles auswählen

@language vbscript

Function OnClick(ByRef ClickData)
	Dim tab
	Set tab = ClickData.Func.Command.SourceTab
	
	DelTab tab 
	ClickData.Func.Command.RunCommand("Go TABLOCK=off")
End Function

'Gespeerten Tab wieder aus "file" löschen
Sub DelTab(tab)
	Const ForReading = 1, ForWriting = 2, ForAppending = 8
	Dim fso, f, s, l, file
	
	file = GetTempPath & "\" & "DOpusTabs.txt"
	
	Set fso = CreateObject("Scripting.FileSystemObject")

	If fso.FileExists(file) Then
		Set f = fso.OpenTextFile(file, ForReading)
	
		Do While f.AtEndOfStream <> True
			l = f.Readline

			'Alle Tab die nicht dem gelöschten entsprechen wieder in "file" ablegen
			If InStr(1, l, tab, 1) = 0 Then
				s = s & l & VbCrLf 
			End If
		Loop

		Set f = fso.OpenTextFile(file, ForWriting)
		f.Write(s)
		f.Close

		Set f = Nothing
	End If
	
	Set fso = Nothing
End Sub

Function GetTempPath
	Dim TempPath
	TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
	GetTempPath = TempPath
End Function
Das eigentliche Script

Code: Alles auswählen

option explicit

' OnBeforeFolderChange
' 
' 
' This is a script for Directory Opus.
' See http://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information.
' 
' 
' 
' Called by Directory Opus to initialize the script
Function OnInit(initData)
	initData.name = "BeforeFolderChange"
	initData.desc = ""
	initData.copyright = ""
	initData.version = "1.0"
	initData.default_enable = True
	initData.config.DEBUG = True
	
	Dim cmd
	Set cmd = initData.AddCommand
    cmd.name = "BeforeFolderChange"
    cmd.method = "OnStart"
    cmd.label = "BeforeFolderChange"
End Function

Dim path0, path1
Dim tab0, tab1, tabs
	
Function OnStart(ClickData)
	logMsg("OnStart")
End Function
	
' Called when a new tab is opened
Function OnOpenTab(openTabData)
	logMsg("OnOpenTab")
End Function

' Called when a tab is closed
Function OnCloseTab(closeTabData)
	logMsg("OnCloseTab")
End Function

' Called when a tab is activated
Function OnActivateTab(activateTabData)
	logMsg("OnActivateTab")
	
	'Tab zu dem gewechselt werden soll
	Set tab1 = activateTabData.new
	
	'Prüfen ob Tab zu dem gewechselt werden soll gespeert ist =
	'nachschauen in "file" welche die gespeerten Tab's enthält
	If CheckTab(tab1) = True Then
		'Wenn ja geht bitte wieder zum letzten Ordner der aktiv war und nicht
		'zum Ursprungspfad von dem aus die Speerung erfolgte
		RunDOpusCommand("Go Back")
	End If
End Function

' Called before a new folder is read in a tab
Function OnBeforeFolderChange(beforeFolderChangeData)
	logMsg("OnBeforeFolderChange")
	
	'Tab zu dem gewechslet werden soll
	Set tab1 = BeforeFolderChangeData.tab
	
	'Prüfen ob Tab zu dem gewechselt werden soll gespeert ist =
	'nachschauen in "file" welche die gespeerten Tab's enthält
	If CheckTab(tab1) = True Then
		'Path zudem gewechslet werden soll
		path1 = BeforeFolderChangeData.path
		'Prüfen ob der Pfad nach unten führt = länger wird; = Im Ursprungspfad enthalten ist
		If CheckPath(tab1, path1) = True Then
			'Wenn ja erlaube wechsel
			OnBeforeFolderChange = False
		Else
			'Wenn nein verbiete wechsel
			OnBeforeFolderChange = True
		End If
	End If
End Function

' Subroutine to allow toggling of the global DEBUG variable to control whether logging is performed or not
Sub logMsg(ByRef message)
   If (Script.config.DEBUG) Then DOpus.OutputString(message)
End Sub

Sub RunDOpusCommand(cmd)
	Dim DopusCmd

	logMsg(cmd)

	Set DopusCmd = DOpus.CreateCommand
	DopusCmd.RunCommand(cmd)
End Sub

Function CheckTab(tab)
	logMsg("CheckTab")
	
	'Schaue in "file" nach ob der Tab gespeert ist
	tab0 = GetTab(tab)
	tab1 = tab
	
	'Wenn ja (tab in "file" enthalten" sowie tab zu dem gewechselt werden soll sind die selben)
	If tab0 = tab1 Then
		'Tab gespeert
		CheckTab = True
		Exit Function
	Else
		'Tab nicht gespeert
		CheckTab = False
		Exit Function
	End If
End Function

'Prüfen ob der übergeben Tab in "file" für gespeerte Tab's enthalten ist
'Wenn ja gib die TabNr zurück
Function GetTab(tab)
	logMsg("GetTab")
	Const ForReading = 1, ForWriting = 2, ForAppending = 8
	
	Dim fso, f, file, l
	file = GetTempPath & "\" & "DOpusTabs.txt"
	
	Set fso = CreateObject("Scripting.FileSystemObject")

       If Not fso.FileExists(file) Then
		GetTab = ""
		Exit Function
	End If

	Set f = fso.OpenTextFile(file, ForReading)
	
	Do While f.AtEndOfStream <> True
	
		l = f.Readline
		
		If InStr(l, tab) > 0 Then
			Dim pos
			pos = InStr(l, " ")
			tab1 = Mid(l, 1, pos)
			path1 = Mid(l, pos+1)
			
			GetTab = tab1
			Exit Function
		End If
	Loop
	
	GetTab = ""
	Exit Function
End Function

'Vom übergeben Tab den dazugehörigen Path (= Path ab dem die Speerung wirken soll und nicht höher) 
Function GetPath(tab)
	logMsg("GetPath")
	Const ForReading = 1, ForWriting = 2, ForAppending = 8
	
	Dim fso, f, file, l, tab1, path1
	file = GetTempPath & "\" & "DOpusTabs.txt"
	
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set f = fso.OpenTextFile(file, ForReading)
	
	Do While f.AtEndOfStream <> True
	
		l = f.Readline
		
		If InStr(l, tab) > 0 Then
			Dim pos
			pos = InStr(l, " ")
			tab1 = Mid(l, 1, pos)
			path1 = Mid(l, pos+1)
			
			GetPath = path1
			Exit Function
		End If
	Loop
	
	GetPath = ""
	Exit Function
End Function

Function CheckTabIsLocked(tab)
	logMsg("CheckTabIsLocked")
	Dim DopusCmd
	
	Set DopusCmd = DOpus.CreateCommand
	
    DopusCmd.SetSourceTab(tab)
    If DopusCmd.IsSet("TABLOCK=lockchanges") Then
		logMsg("Locked")
        CheckTabIsLocked = True
		Exit Function
    Else
		logMsg("unlocked")
		CheckTabIsLocked = False
		Exit Function
    End If
	
    Set DopusCmd = Nothing
End Function

'Prüfen ob der Pfad zudem gewechselt werden soll nach unten führt = länger wird; = Im Ursprungspfad enthalten ist
Function CheckPath(tab, path)
		'Vom übergeben Tab den dazugehörigen Path (= Path ab dem die Speerung wirken soll und nicht höher)
		path0 = GetPath(tab)
		'Neuer Pfad zudem gewechselt werden soll
		path1 = path
		
		if len(path1) >= len(path0) then
			If InStr(1, path1, path0, 1) > 0 Then
				CheckPath = True
				Exit Function
			End If
		Else
			CheckPath = False
			Exit Function
		End If
End Function

Function GetTempPath
	Dim TempPath
	TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
	GetTempPath = TempPath
End Function
Freundliche Grüße
wazlaf

Benutzeravatar
Nobmen
Boardbetreuer
Beiträge: 2827
Registriert: 26. Jun 2004 08:48
Betriebssystem: Win 10 Home/Pro 32/64bit
Produkt: DOpus 12.x + Betas
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von Nobmen » 19. Apr 2014 13:33

das Thema sollte etwas korrigiert/übersichtlicher werden, bzw. eventuell neu unter der passenden Sektion "Scripte" erstellt werden.
speere = sperre

wazlaf
Beiträge: 52
Registriert: 18. Mär 2014 11:06
Betriebssystem: Win 8.1 Pro x64
Produkt: DOpus 11.1 x64
Version DOpus: Pro

Re: Neulingsfragen zu DOpus

Beitrag von wazlaf » 19. Apr 2014 14:26

Hallo Nobmen,

das Script war ja mehr eine Fingerübung und noch dazu mein erstes. Dieses Script ist es mit Sicherheit nicht Wert das es gleich in die Sektion "Scripte" gepostet werden muss.
Kundal hat mir eine wesentlich bessere Möglichkeit aufgzeigt hat in der ich ohne "Hilfsdatei" auskomme.

Das Script enstand eigentlich aus dem Wunsch heraus bei einem Slave-Register nicht die Verbindung zu verlieren wenn im Master-Register in einen Ordner praktisch über die Sperre hinaus gewechselt wird.

Bsp.:
Master C:\Daten
Slave C:\Daten.Backup

Wenn ich nun versehenlicht im Master nach C:\ wechsle danach aber gleich wieder in C:\Daten gehe bin ich im Slave leider auch in C:\Daten und nicht wie eigentlich ursprünglich gewünscht in C:\Daten.Backup

Leider mußte ich feststellen das die Verbindung zum Slave immer dann verloren geht wenn im Master generell in einen Ordner gewechselt wird der im Slave nicht vorhanden ist.

An der Lösung mit Navlock gefällt mir nicht
1) Der dezente Hinweis mit "Die beiden Ordner sind nicht mehr synchron."
2) Das sich Navlock nicht nur auf ein einzelnes Register auswirkt.

Evlt. ist ja auch gar kein Script erforderlich und Du kennst evlt. eine andere Lösung dafür.
Falls nicht werde ich noch ewas an dem Script basteln und nach einer Lösung suchen. Wenn das Script dann fertig ist kann ich es gerne unter "Scripte" posten.

Freundliche Grüße
wazlaf

P. S. Dank für den dezenten Hinweis :)
speere = sperre

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste