|
.dan.g. wrote: and thank-you for being part of the Beta 'program'
It's my pleasure and the least that I could do to help you raise the program to an even higher level of excellence.
|
|
|
|
|
Hi guys
I'm trying to use TDL on a project which I shared with the project responsible.
He was immediately in love with TDL ... duh!
Now before I 'sold' this to him, I didn't want him to need to install stuff, so I configured a Dropbox share in which I installed TDL software (my test of 6.3.a7 Unicode which worked fine) and also the .tdl file. In configured everything to use local paths.
I now see he must have downloaded (probably the latest released version - possibly non Unicode!) and installed that on his own PC ... him being fond of it now too I imagine.
But in doing so, I have the impression he unintentionally wrecked the ini file in my Dropbox.
What would need to be done to not get into that situation after I restore my ini?
Thanks for any and all suggestions!
Patrick
|
|
|
|
|
Unfortunately ini files are not currently backed up. Would that have solved the problem?
|
|
|
|
|
Wel, I do have an ini backup (from Dropbox).
But how can we 'confine' a version running on a computer to it's own ini or each TDL version to it's own?
Not sure what went wrong; I'll need to investigate further.
It may have been by running an old version on my PC (but on an other file because the old version is non Unicode so couldn't have possibly opened the Dropbox file, could it).
Maybe one clear statement: does TDL exe Always use the ini sitting next to it?
Thanks!
--------------------
Look what I see on an old version of the TDL after my colleague opened it:
--Start of ToDoList.ini
[FileStates\rkhd.tdl\ExpandedState]
Item3=44
Item2=40
Item1=3
Item0=1
SelItem=0
Count=4
[FileStates\rkhd.tdl\PLAIN_TEXT]
WordWrap=1
[FileStates\rkhd.tdl\SortState]
ListAscending3=0
ListAscending2=0
ListAscending=1
ListColumn3=0
ListColumn2=0
ListColumn=0
ListMulti=0
Multi=0
Ascending3=0
Ascending2=0
Ascending=0
Column3=0
Column2=0
Column=5
--End of ToDoList.ini
This is the complete file!!!
What could have provoked that?
Thx
|
|
|
|
|
I've had other reports about TDL losing its preferences but have never been able to reproduce it. maybe this time will be different.
pludikhu wrote: does TDL exe Always use the ini sitting next to it? Here's what TDL does:
1. First checks the commandline for the '-i' followed by an ini pathname
2. Then checks for an ini file having the same name as a tasklist on the commandline
3. Then checks for 'ToDoList.ini' in the current working directory
4. Finally checks for 'ToDoList.ini' in executable folder
|
|
|
|
|
Thanks for the info Dan
I'll try to monitor it in case it reoccurs.
If an ini with the same name as the tasklist on the commandline, does it store all/only settings relating to that tasklist in that ini file?
|
|
|
|
|
pludikhu wrote: does it store all/only settings relating to that tasklist in that ini file? All. It never occurred to me to just store the file-specific settings .
|
|
|
|
|
|
|
Now that the Unicode/Translation work is complete, we move on to the next step which is re-structuring ToDoList to separate the list view from the filtering code. This will make it much easier (for me) to create other properly integrated views such as a calendar and a gantt chart.
Additionally there will be space for some smallish new features, including;
1. Improved support for drag'n'drop from Outlook.
2. The option to display all subtasks for filtered tasks
3. The option to display the task path as a column in list view (promised ages ago )
*4. Add 'Calculate from start date' to the recurring task dialog.*
.dan.g.
AbstractSpoon Software
abstractspoon2_at_optusnet_dot_com_dot_au
modified on Tuesday, August 9, 2011 2:26 AM
|
|
|
|
|
If you call better Outlook support 'smallish', I'd like more smallish features
You run on Duracell by any chance?
|
|
|
|
|
pludikhu wrote: You run on Duracell by any chance? I call the Outlook support 'smallish' because I have already done the research that provides all the help that I think I will need.
|
|
|
|
|
Sounds great. I like the focus on the underlying structure to provide more flexibility for a 'view based' approach to the lists.
Thanks Dan!
|
|
|
|
|
Interestingly I often feel some anxiety when one version is released and another just about to start, especially when there's structural work to be done. It's kind of like replacing the foundations of a house and not being certain that the house will still be standing when it's done...
|
|
|
|
|
Dan,
Really looking forward to the outcomes of this.
I agree with some of the others here - your work-rate is mucho impressive.
|
|
|
|
|
Hi Dan,
I tried to solve this with ToDoList and Autohotkey but I couldn't find a way.
If the user minimizes e.g. WinWord to the taskbar by clicking on the minimize button in the title bar and maximizes Word again by clicking on the Word item in the taskbar he can start writing immediately.
If the user works in the 'comments field' of ToDoList, minimizes ToDoList to the taskbar and maximizes the ToDoList window again it's different. The focus is lost. The ToDoList window itself has a focus but the 'comments field' lost it.
To go on working in the 'comments field' after maximizing ToDoList the user has to use the mouse that is to say he has to click in the comments field. Then he can start writing.
[To compare that with Winword again: If WinWord would work in the same way as ToDoList does at the moment the user couldn't start writing after maximizing WinWord without clicking in the text part (the Word document) before.]
There is no direct way (at least I couldn't find one) to "activate" the 'comments field' after maximizing ToDoList with the keyboard.
It's the same if the user worked in the TaskTreeView or in the Listview before minimizing ToDoList and maximizing it again. The Focus is lost and therefore the user can't use the arrow keys to move in the tasklist before clicking with the mouse on one task.
- - -
I've done some testing that doesn't solve the problem but shows some interesting results that might help you.
[To see these results you might want to test the little AHK script that I've written for that (see below) ].
1.) Cursor is in the 'comments field' before minimizing ToDoList
Test:
Minimize ToDoList by clicking on the minimize button in the title bar but maximize ToDoList by using the script (= the hotkey).
Result:
ToDoList doesn't focus on the 'comments field' but on the tasklist. The user can use the arrow keys immediately to move the cursor.
2.) Cursor is in the tasklist before minimizing ToDoList
Test:
Same test as 1.)
Result:
Same result as 1.).
3.) Cursor is in the 'comments field' (CF) before minimizing ToDoList
Test:
Minimize ToDoList by using the script and maximize it again by using the script (no mouse clicks involved here).
Result:
ToDoList doesn't lose the focus. The cursor is still in the 'comments field'. It's getting better: The cursor remains excatly in the position he had before minimizig ToDoList even if the user works in other (non-ToDoList)windows in between. The cursor is not on position {home}.
The code:
#m::
; used [Win]+[m] because it does the same as [Win]+[d]. One Option to minimize all the windows is sufficient, isn't it?
SetTitleMatchMode 2
IfWinActive, AbstractSpoon
WinMinimize, AbstractSpoon
Else
WinMaximize, AbstractSpoon
return
The script minimizes only ToDoList and only if ToDoList's window is active but it maximizes ToDoList not matter where the user works at the moment (other app, desktop).
Thank you very much for you help in advance.
Cheers,
Jochen
|
|
|
|
|
|
Your speed is incredible !!!
Thank you very much. Works like a charm and makes life a lot easier.
Works btw not only for Comments, Task Tree and List View but also if an editing control had the focus before minimizing.
|
|
|
|
|
Hi Dan,
If I right-click in the comments field and choose 'Find' or 'Replace' I get "strange" highlighted letter combinations in the first field of the 'Find' resp. 'Replace' window.
For example:
Find: ?éš
Replace: ?§š
Cheers, Jochen
---
ToDoList 6.3.a7
OS: Win XP, SP3
P.S.
Sorry that I can't use the name of this first field in the Find or Replace window in English because it is shown in German although the header of the window is in English ???
|
|
|
|
|
I was going to blame it on the unicode port but i also get odd characters in my version of 6.2.
|
|
|
|
|
.dan.g. wrote: i also get odd characters in my version of 6.2.
True. I tested 6.2.8 too, but didn't mention it because you're heading with so much enthusiasm to 6.3 beta
|
|
|
|
|
Fixed in 6.3.b2
.dan.g.
AbstractSpoon Software
abstractspoon2_at_optusnet_dot_com_dot_au
modified on Saturday, August 6, 2011 7:43 AM
|
|
|
|
|
Thank you! Very good.
|
|
|
|
|
The 4 scripts below are meant as an addition to the 2 options ‘Toggle’.
Many thanks to 'capital H', who pointed me in the right direction and helped to improve the script with regard to content and the visual appearance
Preliminary notes:
* The 4 scripts work whether you choose to see the StatusBar or not (menu: View / ‘Show Status Bar’).
* The shortcuts/hotkeys can easily be changed but you shouldn’t use {F10} or {F11} without [Shift], [Ctrl], [Alt] or [Win] as a hotkey unless you want to kill the implemented ToDoList ‘Toggle’ options. BTW: {Shift}+{F10} (without using this hotkey for script 1) usually opens context menus. I do not need that. But if you do you can easily change the hotkey(s).
* Put the 4 little scripts in your "alwayson" script (=a script that gets launched with or before ToDoList and runs all day long)
* “foolish” assumption: you want to use the scripts while working with ToDoList
* the 4 scripts do not depend on each other.
* Abbreviations: Task Tree View = TTV, List View = LV, ‘Comments field’ = CF
* the scripts will need a little changing if ToDoList (Version 6.3 et seqq.) is localized. You'll find a 'how to' at the end of this message. It's not difficult.
The idea:
ToDoList offers two options to change the view (respectively to put the focus on TTV, LV or CF)
{F10} toggles between TTV and LV
{F11} toggles between Tasks and CF
One day I got the idea that it would be useful to have an alternative that allows me to address the views directly.
Dan introduced me to the fact that “the idea in well designed UI software is to reduce the number of choices so that the user is not overwhelmed”.
I thought about that and found a way to meet both requirements.
Description:
With the ‘Toggle’-option the user has to answer three questions:
Where am I? (=looking for the cursor) Where do I want to go? What do I have to do (in this special situation) to get there?
A single example:
(No mouse involved, because most of the users who are working fast aren’t using the mouse very often):
A user works in ListView and uses {F11} to toggle between the ListView and the ‘comments field’.
After working in the CF he decides to go to the TaskTreeView. Let’s assume he gets interrupted (very likely in a “modern” work environment) and gets back to work with his computer after some time. He will (hopefully) still remember that he finished working in the comments field.
His thoughts have to be:
Where am I? -> (He has to look on the screen) Still in the comments field.
Where do I want to go? -> TaskTreeView.
What do I have to do in this special situation to get there? -> First I have to use {F11} to go back to the ListView and then I have to use {F10} to toggle to the TaskTreeView.
My scripts (following the idea that the number of choices should be reduced) allow the user to reduce the number of questions to one: Where do I want to go? -> TaskTreeView -> One Hotkey. Done.
Last but not least: What happens if the user has already changed the view to TaskTreeView before he got interrupted, forgot that and presses the hotkey for TTV again? Nothing. He stays right there where he is: in TaskTreeView. (It’s the same with LV and CF, but as an exception not if you use script 4).
The Code:
; Script 1 – activates TASK TREE VIEW or stays there
SetTitleMatchMode 2
#IfWinActive, AbstractSpoon
+F10::
StatusBarGetText, StatusBar , 8, AbstractSpoon
if StatusBar = Tasks: Comments
{
PostMessage, 0x111, 33243,,, AbstractSpoon
StatusBarGetText, StatusBar , 8, AbstractSpoon
if StatusBar = List View
PostMessage, 0x111, 33238,,, AbstractSpoon
}
if StatusBar = Tasks: List View
PostMessage, 0x111, 33238,,, AbstractSpoon
return
#IfWinActive
; Script 2 - activates LIST VIEW or stays there
SetTitleMatchMode 2
#IfWinActive, AbstractSpoon
+F11::
StatusBarGetText, StatusBar , 8, AbstractSpoon
if StatusBar = Tasks: Comments
{
PostMessage, 0x111, 33243,,, AbstractSpoon
StatusBarGetText, StatusBar , 8, AbstractSpoon
if StatusBar = Task Tree
PostMessage, 0x111, 33238,,, AbstractSpoon
}
if StatusBar = Tasks: Task Tree
PostMessage, 0x111, 33238,,, AbstractSpoon
return
#IfWinActive
; Script 3 - activates ‘Comments field’ or stays there
SetTitleMatchMode 2
#IfWinActive, AbstractSpoon
+F9::
StatusBarGetText, StatusBar , 8, AbstractSpoon
if (StatusBar = "Tasks: Task Tree") or (StatusBar = "Tasks: List View")
PostMessage, 0x111, 33243,,, AbstractSpoon
return
#IfWinActive
; Script 4 - activates ‘Comments field’ or stays there and maximizes the ‘comments field’ resp. minimizes it again (and in this case sets the focus back to ListView or TaskTreeView)
SetTitleMatchMode 2
#IfWinActive, AbstractSpoon
^F9::
StatusBarGetText, StatusBar , 8, AbstractSpoon
if (StatusBar = "Tasks: Task Tree") or (StatusBar = "Tasks: List View")
PostMessage, 0x111, 33243,,, AbstractSpoon
SendMessage, 0x111, 33258,,, AbstractSpoon ; maximizes the comments resp. minimizes the comments
PostMessage, 0x111, 33243,,, AbstractSpoon
; This last command puts the focus back to TTV or LV. If you dislike this disable it with ‘;’ or delete it.
; I’m using script 4 if I’m working in TTV or LV and want to go directly to a maximized CF and back
; to the task list. Ctrl+Shift+m doesn’t put the cursor back in the task list.
return
#IfWinActive
As always:
Any idea how to improve the scripts is very welcome. Thanks for sharing your ideas / solutions.
P.S.
Localisation
Dan pointed out that that the scripts will need changing if TDL is localized (thanks Dan!).
The reason is that the script queries information that is shown in the 'Status Bar'.
If these informations in the 'Status Bar' are not shown in English, because ToDoList has been translated into another language the scripts won't work without modification.
To change the scripts look for 'if StatusBar =' in the text of the script.
In the English version you see 'Tasks: Task Tree', 'Tasks: Comments', 'Tasks: List View' or just 'Task Tree', 'Comments', 'List View'. This refers to what the 'Status Bar' of ToDoList shows.
To change the scripts you just have to change 'Tasks: Task Tree' etc. to the text that your 'Status Bar' shows. That's all!
|
|
|
|
|
Good job Jochen!
Some comments.
1)
It might be better in some instances to use sendMessage (to replace postmessage)
PostMessage sends the message tot he window you want, and immediately returns. SendMessage waits for its successful execution.
For example in Script4
PostMessage, 0x111, 33258,,, AbstractSpoon ; maximizes the comments resp. minimizes the comments
PostMessage, 0x111, 33243,,, AbstractSpoon
You might be better of with SendMessage here, especially on a slow computer or if the computer is busy with stuff in the background.
2)
if StatusBar = Tasks: Task Tree
PostMessage, 0x111, 33243,,, AbstractSpoon
if StatusBar = Tasks: List View
PostMessage, 0x111, 33243,,, AbstractSpoon
Can be replaced with
if (StatusBar = "Tasks: Task Tree") or (StatusBar = "Tasks: List View")
PostMessage, 0x111, 33243,,, AbstractSpoon
3) For your known issue, try
AutoFocus()
{
loop,9
{
ControlGet, isVisible, Visible, , SysTreeView32%A_Index%,AbstractSpoon ;is the control visible or not?
if isVisible
{
ControlFocus, SysTreeView32%A_Index%, AbstractSpoon ;Focus on TreeView
return "TreeView" ;Let caller know treeview has focus
}
ControlGet, isVisible, Visible, , SysListView%A_Index%, AbstractSpoon ;is the control visible or not?
if isVisible
{
ControlFocus, SysListView32%A_Index%, AbstractSpoon ;Focus on ListView
return "ListView" ;Let caller know Listview has focus
}
}
return ""
}
Note that the statusBar is not updated when this function is run, but it focus on the treeview or the listview (depending on which control is visible) and return this to you.
Known issue: It will only work for the first 9 controls, as I do not know how the controls will be named after 9, and am too lazy too test.
Hope this helps.
H
|
|
|
|
|