|
Downloads

Latest Update (5.7 Beta Release) After finally coming to understand that the removal of the tree filtering had a far greater effect than I anticipated, 5.7 is all about restoring Tree Filtering. This was a far from simple task and required the alteration of a lot of the underlying architecture of ToDoList to abandon the tree as the place where the tasklist structure is maintained. So now the tasklist structure is independently of the tree state and filtering could be restored. Sorts on the tree can now also be 'undone' by setting the sort attribute to 'unsorted'. Other than tree filtering (which took the majority of the time) other changes include: - New ToDoList Icon
 - Compressed rich text comments
- Outlook task importer
- Support for FreeMind 0.9.
- Start-date advances the same amount that due date does when a recurring task is completed.
- Quick Find - searches and highlights as you type. Located on the toolbar. F3 for next match, SHIFT+F3 for previous match
- Fixed GanttProject exporter
- Fixed copying of tasks so that interdependencies get updated correctly.
- New filter bar options checkbox droplist
- Added 'version' field to filter bar and dialog
- New 'Startup' wizard for first time users (rename your ini file to test)
Related Links
After finally compiling a FAQ of the most relevant questions asked about ToDoList I've moved all resources related to ToDoList to a new page on my website.
Introduction
You know how it is - you start work on one project and halfway through, you find one or two side-projects crop up that have to be solved before you can continue on the original project.
This is one such project with the added twist that it too started its life as a side-project. Here's what happened:
<Cue wavy screen effect>
I can only imagine that the planets must have been in (mis-)alignment or something, because at one point a few months ago, I was suddenly fielding emails on four or five separate articles I had previously submitted to CodeProject, some asking for features and others for bug fixes.
Foolishly or otherwise, I largely agreed with all the points raised, and subsequently found myself with fourteen or fifteen separate issues to resolve.
The situation was also made worse because I was trying to use CodeProject to keep track of all the things I had agreed to do, meaning that I had to continuously trawl the comments section of each article to remind myself of what I was supposed to be working on.
It even got to the stage where I was worrying that I'd fail to deliver on something - silly I know, but there you are!
Keeping a list on paper was a definite step in the right direction, but since I do all my coding on the same machine, it seemed somewhat inelegant, and anyway, we all know what happens to crucial bits of paper left lying around on desks and such.
The next step was to hunt around on the web for a tool to meet the following requirements:
- Simple interface
- Support for hierarchical data
- Numbered items/subitems
- Open file format
- Freeware
Simple, huh! not!
I will admit that I did not spend weeks searching, but I am still surprised at the general lack of software matching my needs.
On reflection, I think that the reason may be simple: people are so used to commercial software being 'feature-rich' that when they come to design software themselves, they (not unreasonably) think they too need to cram as much in as possible, often leading to software where a lot of essential functionality is hidden away in the menu bar.
So, surprise, surprise, I decided to write something myself.
However, it's fair to say that I did not originally intend to post it on CodeProject and am only really doing so because I had a heap of fun solving some very interesting problems and these are what I think make it worth it.
Using the Software
There's really very little I need to say here since every feature/function is explicitly visible in the interface.
Nevertheless, the following list of basic capabilities and omissions may go someway to answering any questions that arise:
- Files are stored in XML format with .xml file extension.
- Trying to load a non-tasklist file will generally fail (unless you read the code to see how to circumvent it).
- The number of items/subitems is limited only by memory (although performance may be the deciding factor before you exhaust memory).
- Marking a parent item as 'done' will also gray-out child items, but they are not disabled or automatically marked as 'done'.
- An ellipsis (...) indicates that an item has sub-items.
- All items can be expanded or collapsed (by double-clicking).
- Top-level items and sub-items are created using different toolbar buttons.
- There are task-specific context-menus.
- The previously open tasklists are re-opened on startup.
- The tasklist is automatically saved when closing the software or minimizing it to the system tray.
- The priority of a task is shown as a grayscale box to the left of the item.
Points of Interest
Here's where we come to the side-projects I was talking about, the first two of which I intend to work up into follow-up articles.
They are:
- The 'ordered' tree control, which incorporates a non-client gutter for displaying the item numbers.
The idea stemmed from research I did into alternative designs for a tree-list control, which did not solve it by creating a hybrid control incorporating a tree and a list.
The hybrid control seems such an obvious solution that I suspect few people have stopped to question it, but it has still always struck me as looking far too much like hard work to be truly elegant ('square pegs' and 'round holes' spring to mind).
One possible idea is to implement the 'list' portion entirely in the non-client area of the tree. I.e., shift the right hand client edge to the left and then render the list portion in the resulting non-client area.
Whilst I've yet to get round to building a proof of concept, it was nevertheless this ongoing mental debate which prompted me to try to solve the requirement for numbered items and subitems by rendering the item/subitem numbers in the non-client area.
Without going into too much detail (as this will subsequently be an article of its own), this is how I got it to work:
- Handle
TVM_INSERTITEM and TVM_DELETEITEM to know exactly when items are added and removed.
- In these handlers recalculate the width of the gutter required to display the widest 'dotted' item/subitem number. (Note: this is not necessarily simply the deepest subitem.)
- If the required gutter width changes, call
SetWindowPos(NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER) to force Windows to recalculate the non-client area of the control.
- Handle
WM_NCCALCSIZE when it does, and offset the left border by the required gutter width.
- Handle
WM_NCPAINT for painting the numbers.
This is necessarily an over-simplification, but it captures the essence of the solution, and all that essentially remains is lots of fiddling about to ensure the non-client area gets redrawn at the the right times to stay synchronized with the client area.
- Embedding .RC control definition data directly in a .cpp file to break the dependency on binary resources (a.k.a. 'Runtime Dialogs').
This is an idea that has been floating about for quite some time and which has only recently gelled into a workable solution.
The problem, put simply, is that if you want to take advantage of the resource editor in Visual Studio (and who doesn't), then you very quickly find yourself stuck with having to load dialog templates from resources compiled into the binary file.
This further means that if you want to make use of a dialog across multiple projects, then either you need to copy and paste the dialog template between project .RC files, or you need to build the dialog into a DLL from which it can be accessed.
'Runtime Dialogs' (a snappy title I coined myself) is a solution that neatly sidesteps both the nuisance of copying dialog resources between resource files and the extra work (and maintenance) involved in packaging dialogs in DLLs.
And it works like this:
- First, you design your dialog template in the resource editor, create a
CDialog derived class using class wizard, and wire up all the controls just as you normally would.
- Next, you
#include "runtimedlg.h" and change all instances of CDialog to CRuntimeDlg.
- Then, you cut and paste the control definition section from the appropriate section in the .RC file and embed it directly in the dialog's .cpp file as a static string (with a bit of tweaking to handle double quotes and such like).
- Finally, in the constructor of your dialog, you simply call
CRuntimeDlg::AddRCControls(...) passing the control definitions as a string.
- And
CRuntimeDlg takes care of the rest including, if required, auto-sizing the dialog to suit the control layout.
I'm certainly not suggesting that this is a 'win-win' solution for all situations but it certainly has merits in its closer coupling of dialog template to dialog code which makes sharing dialogs across multiple projects a breeze.
P.S.: In case it's not clear here, I used CRuntimeDlg to create CToDoCtrl which encapsulates the ordered tree together with the priority, date and comments controls as a single simple-to-instantiate control.
I'm also proposing to use them in the .NET port of my ProjectZip add-in for VC6.
- Embedding the XML file in a web page.
This is possibly the most satisfying aspect of the whole project because it was completely unexpected.
What I mean is that, until recently, my knowledge of DOM and XMLDOM was virtually non-existent, as it's only since I've become more interested in the presentation of AbstractSpoon that I've been forced to get to grips with the various implementations of DOM and XMLDOM out there.
I'm pleased to say that the code on my site works under IE 6.0, Netscape 7.1, and Mozilla, although custom code was required to achieve this.
Generic MFC Classes that may prove Useful to You
The following table lists a wide range of utility classes written for this project. They can all be included in any MFC project provided you include any class dependencies too. Feel free to ask any questions relating to these specific classes and how to use them.
|
Class Name
|
Description
|
Class Dependencies (apart from MFC)
|
|
CAboutDlg
|
Customizable "About…' dialog not requiring a dialog resource. Supports html encoded text
|
CRuntimeDlg, CRCCtrlParser
|
|
CAutoComboBox
|
Adds only unique items to the drop list and shuffles the list so that the last added item is at the top
|
CHoldRedraw
|
|
CAutoFlag
|
Encapsulates the setting and unsetting of a boolean variable thru the lifetime of the class instance
|
|
|
CColorButton
|
Non-ownerdraw button that displays the selected colour on the button face and displays the colour dialog when clicked
|
CEnColorDialog
|
|
CColorComboBox
|
Owner-draw combobox for displaying and selecting user defined colours
|
|
|
CDateHelper
|
Encapsulation of various rountines for calculating date spans and for formatting
|
|
|
CDeferWndMove
|
Encapsulation of the Win32 API
|
|
|
CDialogHelper
|
Re-implementation of the CDialog DDX/DDV rountines to avoid the MFC error messages when the user clears a number edit (for instance)
|
|
|
CDlgUnits
|
Encapsulates the MapDialogRect Win32 API
|
|
|
CDockManager
|
Class for managing the docking of one popup window to another.
|
*CSubclassWnd, CHoldRedraw, CAutoFlag
|
|
CDriveInfo
|
Encapsulates various rountines for querying about drives, files and disk space
|
|
|
CEnBitmap
|
Adds support to CBitmap for loading non-bmp files and resources.
|
|
|
CEnBitmapEx, CColorReplacer, CImageBlurrer, CImageColorizer, CImageContraster, CImageEmbosser, CImageFlipper, CImageGrayer, CImageLightener, CImageNegator, CImageResizer, CImageRotator, CImageSharpener, CImageShearer, CImageSysColorMapper, CImageTinter
|
Adds image manipulation funationality to CEnBitmap
|
CEnBitmap
|
|
CEnColorDialog
|
Adds saving and restoring of custom colours to CColorDialog
|
|
|
CEnCommandLineInfo
|
Adds functions for extracting and querying commandline switches
|
|
|
CEnEdit
|
Adds user-defined button capabilities to CEdit
|
CMaskEdit, CThemed, CDlgUnits
|
|
CEnToolBar
|
Adds support for using alternative resource or file images
|
|
|
CFileEdit
|
Adds buttons for browsing and displaying the file represented by the text in the edit control. Also shows the file's small icon.
|
CEnEdit, CFolderDialog, CMaskEdit, CDlgUnits, CThemed, CSysImageList
|
|
CHoldRedraw
|
Encapsulates WM_SETREDRAW
|
|
|
CHotKeyCtrlEx
|
Fixes a number of behavioural problems including the handling of certain keypresses
|
|
|
CHotTracker
|
Tracks the cursor movement over user-defined windows and posts event messages as necessary
|
*CSubclassWnd,
|
|
CLimitSingleInstance
|
Provides simple method to detect if another instance of an app is running
|
|
|
CMaskEdit
|
Adds simple character masking to CEdit
|
|
|
CNcGutter
|
Allows the UI of standard windows controls to be extended by supporting any number of columns to be added to the non-client area of the window. Favours tabular controls like lists, trees, etc
|
*CSubclassWnd, CHoldRedraw, CThemed, CDlgUnits
|
|
COrderedTreeCtrl
|
CTreeCtrl implementation of CNcGutter displaying a single column showing the hierarchical position of each tree item in '1.2.3.4' notation.
|
CHoldRedraw, CThemed
|
|
CPasswordDialog
|
Very simple password dialog not requiring a dialog resource
|
CRuntimeDlg, CRCCtrlParser
|
|
CPropertyPageHost
|
Simpler replacement for CPropertySheet allowing easier creation as a child window
|
|
|
CRCCtrlParser
|
Used by CRuntimeDlg for parsing dialog resource-like text
|
|
|
CRuntimeDlg
|
Adds support to CDialog for building dialogs at runtime ie. dialogs do not require a dialog resource
|
CRCCtrlParser
|
|
CShortcutManager
|
Class for handling application keyboard shortcuts.
|
*CSubclassWnd, CWinClasses
|
|
CSpellCheckDlg
|
Spellcheck dialog not requiring a dialog resource, which interfaces with ISpellCheck (interface to Open Office dictionaries)
|
CRuntimeDlg, CRCCtrlParser, ISpellCheck
|
|
CSysImageList
|
Encapsulates the Windows system image list (file/folder images)
|
|
|
CTabCtrlEx
|
Adds post rendering callback for the tabs without using owner-draw
|
|
|
CThemed
|
Encapsulates themed (XP) and non-themed (the rest) drawing of windows controls
|
|
|
CTimeEdit
|
Adds a button for specifying time units and provided routines for converting time to and from different time units
|
CEnEdit, CMaskEdit, CThemed, CDlgUnits
|
|
CToolbarHelper
|
Adds support for dialog toolbar tooltips, multiline tooltips and dropbuttons with menus
|
*CSubclassWnd, CEnBitmap, CEnBitmapEx
|
|
CTrayIcon
|
Encapsulates the Shell_NotifyIcon Win32 API. Also provides balloon tips and animation
|
*CSubclassWnd,
|
|
CUrlRichEditCtrl
|
Adds support for recognizing urls, clicking them and setting custom url callbacks
|
|
|
CWinClasses
|
Encapsulates the ::GetClassName Win32 functions
|
|
|
CXmlFile, CXmlItem
|
Non-Unicode class for reading and writing xml files
|
|
|
CXmlFileEx
|
Adds encryption capabilities to CXmlFile
|
CXmlFile, IEncryption
|
* CSubclassWnd was originally written by Paul DiLascia for MSJ magazine. The version I use has been heavily extended to suit my specific needs. The classes that depend on it here need this extended version.
License
 This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Further Work
Whilst this tool was originally intended for my personal use only, it is now a 'community' project, so if you find it useful and want to make suggestions for enhancements or bug fixes, then post below.
History
- 5.7.b3 (19 Nov 2008)
- Fixed task title edit bug when minimizing to tray
- Fixed Various filter bar UI issues
- Fixed various dialog tab dis-orders
- Tweaked the Welcome dialog and fixed a typo in the Introduction tasklist
- Various menu tweaks, including moving 'Delete' menu into 'Edit' menu, renaming 'Send To' to 'Email Tasks', moving 'Spellcheck Active Tasklist' to 'Edit' menu, clarifying 'Import/Export Preferences'.
- Removed Outlook exporter (not implemented)
- 5.7.b2 (15 Nov 2008)
- Fix for task-scrolling bug
- Fix for task-move causing scroll reset
- Possible fix for redraw bug when switching tasklists
- 5.7 Beta Release (15 Nov 2008)
- New ToDoList Icon
- Tree filtering restored
- Compressed rich text comments
- Outlook task importer
- Support for FreeMind 0.9.
- Start-date advances the same amount that due date does when a recurring task is completed.
- Quick Find
- Fixed GanttProject exporter
- Fixed copying of tasks so that interdependencies get updated correctly.
- New filter bar options checkbox droplist
- Added 'version' field to filter bar and dialog
- New 'Startup' wizard for first time users
- 5.6.6 (25 Sep 2008)
- Fixed RTF2HTML conversion bug
- Fixed bug causing completed tasks to be marked as overdue
- Fixed bug causing comments changes to be lost when switching from tree to list view
- 5.6.5 (02 Sep 2008)
- Fixed rare crash when closing ToDoList before it has finished initializing itself
- Removed blank lines between tasks in csv export
- Fixed task ordering bug when pasting copied tasks as text
- Fixed todolist hanging when HTML exporting tasklists with images
- 5.6.4 (21 Aug 2008)
- Remove changes made in 5.6.3 - Other more significant changes need to be made before this will work correctly.
- 5.6.3 (17 Aug 2008)
- Filtering and Find Tasks now takes user attribute calculation preferences into account
- 5.6.2 (15 Aug 2008)
- Fixed bug exporting selected tasks from task tree
- Fixed list view auto-resort bug
- 5.6.1 (11 Aug 2008)
- 5.6 Feature Release (09 Aug 2008)
- List view added for filtering and sorting
- Improved performance when scrolling using the cursor keys
- Improved performance when editing comments containing images
- Items removed from the default droplist preferences are now also removed from the droplists in the main interface
- Preference added for users of 3rd part source control to aid in merging differences
- Time
formatting changed so that 8 hours (or whatever you day length is) will
appear as '1d' instead of '1d0h'. Likewise, 5 days will appear as '1w'
not '1w0d'
- 5.5.7 (14 Jun 2008)
- Fixed crash when performing finds with '%'
- Fixed multibyte language cut/paste bug
- Prevent Windows beeping when cancelling a Find Tasks edit
- Fixed Find dialog clipping bug with Chinese input
- Hide/restore calendars when minimizing to the system tray
- Fixed occasional filter merge bug
- 5.5.6 (30 May 2008)
- Rolls back a change in 5.5.5 that prevents some encrypted tasklists being opened
- 5.5.5 (29 May 2008)
- Fixed bug where leading comments whitespace was being removed
- Fixed bug where the richedit comments scrollbar would appear disabled
- 5.5.4 (22 May 2008)
- Minor tweaks to source code to compile on VS2005
- 5.5.4 (19 May 2008)
- Fixed crash in 'File | Send To...'
- Fixed minor incompatibility with FolderView [^]
- Auto-complete rule edit when saving a search
- 5.5.3 (15 May 2008)
- Fixed crash when completing tasks with filtered out dependencies.
- Changes to default categories, etc are now reflected immediately in the filter bar
- Fixed broken comments spell-checking
- Fixed recurring tasks incorrectly acquiring a due task time
- Fixed various minor UI issues with auto-droplists (category, status, etc)
- 5.5.2 (09 May 2008)
- Find Tasks dialog displays completed task results using user preferences
- Fixed bug in text 'equals' rule in Find dialog
- Fixed About box for Asian users (and other minor font changes)
- 5.5.1 (02 May 2008)
- Fixed various font droplists issues
- Removed cancelled new task from undo history
- Fixed flicker when selecting task in calendar plugin
- 5.5 Feature Release (30 Apr 2008)
- New Find Tasks dialog
- Due Time field
- Task colouring extends to attribute columns
- Better control of what attributes get exported/printed/etc
- Multiple task dependencies (delimited by your regional list delimiter)
- Various minor UI 'improvements'
- Undo/redo now concatenates edits of same type (within 5 second window)
- Fixed multi-selected task display bug
- Fixed filter bug
- Fixed iCal exporter bugs
- Fixed recurring task bug when completing via date or percent fields
- 5.4.11 (04 Apr 2008)
- Fix for task multi-selection display bug
- Fix for iCal exporter to support Google Calendars
- 5.4.10 (12 Mar 2008)
- Fix for task selection bug when selected colour is black.
- 5.4.9 (10 Mar 2008)
- Various fixed relating to the handling of UI extension plugins (eg. calendar)
- Time spent now exported for completed tasks
- 5.4.8 (21 Feb 2008)
- Various selection related fixes
- 5.4.7 (21 Feb 2008)
- Fix for broken 5.4.6 (caused by the filter related fix).
- 5.4.6 (20 Feb 2008)
- Fix for text and html exporters not exporting costs
- Fix for completed parent tasks appearing in 'Due ...' filters
- Selected tasks retain selected appearance when the focus is not on the task tree
- 5.4.5 (09 Feb 2008)
- Fix for csv exporter not resetting columns
- Fix for spurious content appearing in html due task notifications
- Box drawn around selected tasks when the focus is not on the task tree
- 5.4.4 (01 Feb 2008)
- Fix for auto-sorting new tasks above completed tasks
- 5.4.3 (31 Jan 2008)
- Fix for Alloc-To column showing incorrect data
- Fix for '&' in tasklist columns
- Fix for non-working tabstops in rich text comments
- 5.4.2 (25 Jan 2008)
- Fix for incorrect undo when focus is on certain edit fields
- Fix for ToDoList not updating calendar after filter change
- 5.4.1 (23 Jan 2008)
- Fix for ini file access when setting category colours
- Drag'n'Drop honours user subtask placement settings
- Fix for erroneous visibility of task position column
- Fix for selection bug after drag'n'drop
- Fix for erroneous downward scroll when moving tasks up
- 5.4 Feature Release (19 Jan 2008)
- Undo/Redo
- Unified Import/Export dialogs
- Import tasks from clipboard
- Simple backup
- FreeMind import/export plugin (by Guru Ramnath Kathiresan)
- Word wrap button on RTF comments toolbar
- Plain text importer now remembers it's settings
- Editing any other task attribute while the task title is being edited causes the title edit to end
- When a task is completed, it's subtasks are no longer evaluated when calculated percentage completion
- The colour field now displays its colour in its background when the preference to use a task's colour for it's background is set
- Placeholder for the selected task's file link has been added to the 'Tools' preferences page
- Fix for the background text colour not being cleared from the RTF comments field when switching to a (new) task with no comments
- Improved UI clean-up after drag-drop aborted
- Fix for handling the rendering of '&' correctly
- Fix for the handling of non-integer numeric preferences (default cost, time estimate, etc)
- Simple text comments now only copies simple text (if that makes sense)Fix for bug with inherited task attributes
- 1.1-5.3 (removed by .dan.g.)
- 1.0 (4 Nov 2003)
| You must Sign In to use this message board. |
|
| | Msgs 1 to 25 of 12,268 (Total in Forum: 12,268) (Refresh) | FirstPrevNext |
|
 |
|
|
Hi Dan,
I'm getting a crash in 5.7b3 when using keyboard shortcuts
1) open a tdl file and filter in tree view so that you only see tasks due on or before today
2) use alt-u to get to the due-date field
3) press space to remove the due-date
now you change your mind and want to put the due-date back, so....
4) press alt-u a couple times to get back to the due-date field (note that just hitting space w/o doing this won't restore the due-date)
5) press space to restore the due-date.
code will crash on step 4 or sometimes on step 5.
It's not critical, but thought you'd like to know about it.
carlos
P.S. It seems like it might be something related to the fact that items seem to disappear from tree-view as soon as the date is changed, but then perhaps some remnant of it is still accessible. So the above steps are perhaps trying to write into some object that is no longer accessible (since it vanished from the filter view as soon as the due-date was removed in step3)
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
Hi Dan,
This is really a nice work!!!...The tool looks and works great...thank you for this.
Guru raj kumar J.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
Hi Dan,
I've got serious problems with TDL 5.7-Series (all published 5.7 versions yet - I nearly tested all versions): Starting the 5.7 TDL with my old configuration, it does show no response anymore (application is not responding - only application frame with white background - I have to kill the process). Switching back to pre-5.7 version (i.e. 5.6) and using the same INI-File, TDL starts without problem ...
If you're interested I can send you my INI-File
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
Hoppfrosch wrote: If you're interested I can send you my INI-File
Yes Please.
Also, what happens if you rename your ini file and restart?
If that works, what happens if you remove the [Pos] section from the ini file?
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
1. Start new task (in new name - "Task" with cursor) 2. Press by mouse in minimize button (TDL will minimise in tray) 3. Open again TDL. 4. in new task(from step 1) has edit's border and no one task enable to rename(for example).
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
This works fine for me on 5.6.6. There is no edit border or anything weird, and the new task's name is remembered correctly. Works with minimize button as well as the global hotkey.
What version are you using?
Cheers [d3m0n] Email (replace "***" with "key")
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
Hi Dan,
A little while back I mentioned having the quickfind work as a filter, and optionally include comments in the search, and I know you've got those on your list of cool things to do.
As an easier quicker thing to do in the meantime, could we have a 'title contains' box in the Filter bar? It would be magic on my current project where I'm up to 419 tasks and counting!
Cheers mate. Are you off the crutches yet?
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
Hi, It looks like Outlook(2003) import works well though export does not seem to do anything? Is this implemented if so how do you do it?
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
augustynr wrote: though export does not seem to do anything?
Thanks for finding this. Unfortunately it is currently not implemented and I will remove it for 5.7.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
 |
|
|
< warning comment="ToDoList newbie" / >
Is there a way to remove items from "Categories"?
I was trying out how this could be used, so just added "One", "Two", "Three". Now that I see how it works, I'd like to get rid of these. I don't see a "safe direct" way to do this, but perhaps I don't know where to look.
I did find where this is done in the MyTasks.tdl file, but I'm reluctant to change this file directly, since I might break something.
I think this issues applies to other "free form dropdown lists" like "Allocated To:".
With hindsight, I should have used a separate "MySandbox.tdl" for this rather than experimenting directly with MyTasks.tld. Drat.
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
 |
|
|
Thanks. Worked great, including removal of that value from existing tasks.
I was able to manually edit the .tdl (with fingers crossed and hands folded in prayer).
I suppose you have checks for the integrity of the .tdl? ToDoList seems to have pretty much all the bases covered.
LA
|
| Sign In·View Thread·PermaLink | |
|
|
|
 |
|
|
Hey Dan,
I'm a long-time SDK developer (from the early 90s). On top of this app being incredibly useful for its footprint, I find the use of Windows' SDK in there absolutely tops.
In the last 10 years, I've been managing development projects and teams. We live in a painter's world, in a world of lets-make-classes-for-the-fun-of-it, where printf-hello-world consists of 60 classes, 2 months and 3 developers (and even then, will memory leak in C or not be compatible in Java). Said programmers are usually primadonnas too, who still think they're in the Y2K bubble.
Good resources, that understand that development is the tool to an end, and not the end itself, are rare nowadays.
Anyways, great stuff again. I now log in Codeproject every week just to see what next you will come up with.
Cheers, PC.
|
| Sign In·View Thread·PermaLink | 5.00/5 (1 vote) |
|
|
|
 |
| | |