Development
From den4b Wiki
This article needs to be expanded!
|
This article contains development notes, e.g. ideas, features, issues, etc. It is in no way a roadmap for future development, do not be misguided. The main purpose of this document is to keep track of the outstanding issues and potential features which might be worth considering.
Article is created and maintained solely by Denis Kozlov, author of these applications.
Contents |
Wiki
- Add some sort of navigation template, with simple up/prev/next links
- Convert forums scripts to ReNamer:Scripts
- Figure out Localization
- Check all pages in Wiki, finish and cleanup
- Rethink article naming conventions:
- Usage of double ":" sections: ReNamer:Rules:Insert can be ReNamer:Rule Insert
- Capitalization of articles? Capitalize every word?
- Add pricing examples in Commercial License
ReNamer
- Consider adding shortcuts to Mark Only Changed:
- - Mark Only Changed (Inc. Case) (Shift+I)
- - Mark Only Changed (Exc. Case) (Shift+E)
- http://den4b.com/forum/viewtopic.php?pid=2341#p2341
- When folders are added, display a popup asking how folders should be added, a.k.a filter settings?
- Analyze window should always stay on top of the main window.
- Allow user to select multiple rules, with ability to move and delete the selection.
- Ability to change common font size for the text in the Rules and Files panes.
- Add functions to PascalScript to access the whole list of files, e.g:
- - AppFilesCount: Integer;
- - AppFileName(Index: Integer): WideString;
- - AppFilePath(Index: Integer): WideString;
- - AppFileNewName(Index: Integer): WideString;
- - AppFileMarked(Index: Integer): Boolean;
- Columns resize to equal width when auto-resize mode is OFF. Allow user to set the width of each individual column. ReNamer should remember those widths (narayan).
- GUI improvements suggested by narayan:
- 1) Adjustable font size and type face for Rules and Files pane.
- 2) Use combo boxes for items in PascalScript and Translit instead of popup menu.
- Change the way default filter settings are recorded. Save filter settings as default when "Save as Default" button clicked. Reset filter settings to default ones when "New Project" is initiated.
- Extract "Skip Extension" option from individual rules and put a general rule-wide option to the "Add Rule" dialog? Possible integrate together with an option to skip extension for files only, not folders.
- AVI date attribute as a meta tag. Too much effort has already been put into this. Very vague and not defined. Not worth it.
- Serialize Alphanumeric: add ability to enter serialization symbols in order in which they will be cycled through.... consider?
- Add character map to translit rule? No for now, but consider for future. (Suggestion from Narayan)
- Import / Export of global files is done via F:TextFile. Should really change to F:TFileStream?
- An option to apply rules ONLY during Rename process?? Theoretically, it would solve a lot of problems with scripts, e.g. modify date of files. But rules are not applied during Rename process.
- Meta tags to read ZIP header: read number of file, use name of first file, etc...
- http://www.pkware.com/documents/casestudies/APPNOTE.TXT
- http://www.example-code.com/perl/bytearray_binaryStructure.asp
- Add "Whole words only" option to Replace and Remove rules
- Add "Comment" rule, to put comments into the rules list.
- Add option to disable effect of "skip extension" for folders?
- Validation process: while checking if new path results in already existing path, it will be useful to check if that existing file is also on the list for renaming, and if it will be renamed first - there will be no collision!
- Shortcut for switching filter modes, i.e. "files" and "folders"? Filters can now be saved with presets!
- VISTA: "send to" or "\enqueue" doesn't work for >1 files (unverified/bogus!!)
- VISTA: Presets Directory in VirtualStore
- VISTA: Save presets in %APPDATA%\ReNamer ??
- VISTA: Beep when rules added/edited, more info:
- Rule-based padding options, add leading zeros to existing numbers (already added as a script)
- UPDATE Hashing functions!! SHA1 bug on 1 unique file!
- Remember N last values for each text field in the rules configurations, and change Edit components to ComboBox components. Does not seem logical for these kind of inputs.
- Create separate AfterRename procedure, with RenStatsInfo record.. ???
- When importing list of files, consider handling relative names
- Display the reason for failed renaming?
- "Prompt before renaming files" option, for example: "Are you sure?"
- Make rule descriptions localizables
- Option to automatically create a *.BAT file for the undo operation. Example of format:
-------undo.bat----------- ren "namenew1" "namenOld1" ren "namenew2" "namenOld2" ren "namenew3" "namenOld3"
- Drop box is the way to go. I can add a button beside Options button, above the files table. Once user clicks it, main window will hide and drop box will appear. Drop box will be about 80x80 in size, always on top of other windows, and possibly alpha-blended (configurable). It will display how many items are currently in the files table, and how many items have been recently dropped into the box. User is able to drag it around the screen, obviously. Double-clicking on the drop box will hide it and will bring back the main window. -- discussion from emails or forum??
- Copy files on rename, as opposed to move/rename (dangerous!!)
- Add rule based Filtering/Selecting for editing files table vis rules
- PascalScript: enable droping of files to the code field?
- PascalScript: highlight the keywords??
- Maybe rename TRenFile.FPreview to FNewName?
- Convert all OnClick events into Action List??
- Option to accept dropped files as list of new names? In UserInput rule?
- View Undo buffer before proceeding with Undo???
- Threaded Rename/Preview operations. Huge amount of rework and redesign! Create panel/form "Please wait... Action: Blah-Blah-Blah", to appear when processing more then 100,200,500 files.
- Log renaming operation
Shutter
- When events are "armed" many controls are disabled but do not visually appear as disabled. It may appears to the user that Shutter has stopped responding.
- "Free Disk Space" event, using GetDiskFreeSpace/GetDiskFreeSpaceEx API or SysUtils.DiskFree helper function.
- "Shutter is a multipurpose task launcher" not just a "shutdown utility", also icon needs to be updated. (narayan)
- "Run Preset" action (think about)
http://www.den4b.com/forum/viewtopic.php?pid=4375#p4375
- Events logic problem! Change the way Events are signifying "triggered" state. It might be better to not let event stop it-self, instead, continuously monitor and then signal planner when the state of event changes ("triggered" <-> "not triggered"), which will make planner check states of all events. This will fix the problem for logic "ALL".
http://www.den4b.com/forum/viewtopic.php?pid=3148#p3148
http://www.den4b.com/forum/viewtopic.php?pid=3591#p3591
- Event: CPU Usage monitoring for Process!
- CPU usage for particular process via:
- "GetSystemTimes" available since Windows XP SP1
- "GetProcessTimes" available since Windows XP (including Windows 2000 Professional)
- Executing sequentially "Logoff" and "Sleep" crashes Windows, maybe should give warning when putting otgether BAD combinations of actions??
- Editable web interface pages...?
- I have only been successful in getting the program to launch at startup when I turn of UAC within Vista. If UAC is enabled, then the program is blocked from running at startup.
- Shutter does not shut the PC down if multiple users are logged onto the PC. I think it tries to, but is not able to overcome the Vista messages asking for confirmation because multiple people are logged on.
http://den4b.com/forum/viewtopic.php?id=404
- "Terminate Process" and "Wait OR Sleep" actions
- Window Not Responding function:
function IsHung(theWindow: Hwnd; timeOut: LongInt): Boolean; var dwResult: DWord; begin Result:= SendMessageTimeOut(theWindow, WM_NULL, 0, 0 , SMTO_ABORTIFHUNG or SMTO_BLOCK, timeOut, dwResult) <> 0; end;
- Display a warning or deactivate options that require administrative privileges
- chopstks (09 Oct 2006): What I want is CPU around 0% (idle) on a particular application NOT "No mouse and keyboard activity". Then Action execute to be End that particular application only NOT Logoff computer, shutdown or reboot. Also, an Administrator password for Shutter configurations would be great.
- pdv (17 Oct 2006): I'd like to have a longer period of time for "Low CPU Usage". As I understand. the maximum time is 999 seconds (approx. 17 minutes). We'd like to shut down our systems after 60 / 120 Minutes. Is there a solution? (!!adding minutes and hours fields for this event!!)
- <m_ghorashei AT yahoo DOT com>
- PC can work only in date-range & time-range.
- PC can work only in even day (Saturday, Monday, Wednesday)
- PC can work only in Friday.
- Published on cover DVD of PC Consumer (a Dutch computer magazine).
- Rework "On Time" event: remember previous location in time, and trigger event when previous point is before ON-TIME and current point is after the ON-TIME -----------a-x-b--- a = previous point, b = current point, x = ON-TIME
- Make OnTime event to check every second if time has been reached, instead on countdown stuff...
- Allow user to define the interval checking time that you hardcoded 5sec. This is because some program take more than 5sec to load up and if shutter cannot detect the process, then it will "reboot" the machine (if action is reboot).
- Create a configurable Settings tab for assigning GLOBAL shortcut keys to all of the actions!
- Action: Eject All Removable Media (use Docs\IOCTRL.pas)
Hasher
- For v3.x use table for Log display with ability to then export in textual format (suggestion by Lupo73)
- Incorporate TrID for detecting file type?
- Windows Shell Integration, with link to each hash type!
- Create/validate .sfv/.md5 files??
CREATING:
- if CTRL/SHIFT is held while files are dropped on Hasher,
then go into .md5/.sfv making mode
- if in .md5/.sfv making mode, old log entries are temporarily
ignored, a new list of names and hashes are compiled in the
HkSFV compatible format (above) and the file is then saved in
the same folder as the files that were dropped and with a default
name (same as the dropped file if only one, parent folder name
if multiple dropped files) plus extension .sfv/.md5.
CHECKING:
- if a .sfv/.md5 file is dropped on Hasher (without CTRL/SHIFT
being held), then go into .md5/.sfv checking mode
- if in .md5/.sfv checking mode, read dropped file line by line,
for each line, get hash value and related name value, check if
a file with matching name is in the same folder as the .sfv/.md5
file. If so, then calculate that files hash and compare to the
hash in the .sfv/.md5. If all files verified ok then say that
(in a popup or somewhere in the Hasher GUI). If not, then popup
a list of files that failed the check.
- Instead of a pop-up, show the comparison result in a field in the main window instead. When comparing several pairs of files, that would speed up things a bit. I guess it's hard to fit in all the info from the current popup in the current main window. Maybe a "minimal" mode could be set as an option. When in minimal mode, the comparison results in no popup. Instead, only the text "different" in red or "same" in green is shown somewhere in the main window.
- To streamline comparison of files a bit, add one or all of these:
- if holding CTRL when dropping a file on the GUI, then automatically do a comparison with the last file
- if dropping a file on a special part of the GUI (for example on the "compare to next file" text), then automatically do a comparison with the last file
- After compare, the info box should display the path and file names of the two files compared.
- Right-click context menu for files
- Option to delete file to recycle bin;
- Adjustable buffer size;
CPUMon
- For XP SP1, Vista, etc use GetSystemTimes or PDH!!
- Move tray icon code to a separate unit!
- Can't detect CPU frequency variation for AMD Athlon II X2
http://www.den4b.com/forum/viewtopic.php?id=673
- Sometimes settings are not saved on the shutdown!? (forced shutdown)
- Yes, numbers in a Tray icon sounds good. I was also thinking of actually making it possible to load tray icons from external images, so users can make their own tray icons -- emails or forum?
- Custom ImageLists for Tray Icons
- Adrian Marsh <cpumon AT adrianmarsh DOT me DOT uk>:
- To be able to make the colors of the graphs the "reverse" of the background, i.e. ignore colour selection and do a (16bit) 255-colour approach for the colour, like transparency but makes the tool always visible.
- To be able to control the color of the % text seperatly
- To be able to hide the graph completely (just show the % bar on its own).
- Makky Webb <mewebb AT ec2uz DOT com>:
- It would be nice to be able to control the colour of the number displayed on the bar graph.
- The four icons at upper left and right are hardly required for the program to fully function so it would be nice to be able to hide them and reclaim the screen real estate.
- The two numbers at the top (MHz and Memory usage): it would be nice to be able to move them so that they are parallel either to the left or right of the graphs (again helping to reclaim vertical real estate on the screen). And lastly some indicator or text as to what the meaning of the memory usage number is would be good (i.e..g. Page/Free or Real/Used, etc).
- Ability to LOG CPU activity;

