-------------------------------------------------------------------------- M a g i c F i l e R e q u e s t e r -------------------------------------------------------------------------- © Copyright 1992 by Stefan Stuntz Version History --------------- This file describes all changes from MFR's first release on 24-Jan-92. It is NO replacement for the Manual! V2.0e (09-Aug-92) ----------------- - Optimized background drawing. - Command line argument OKTEXT now works as expected. - MFR now correctly displays file sizes of empty files. - Better handling of left mouse button while entering a directory. - A resize operation would always activate the file gadget. Fixed. - The "Support" file now holds information about availability of future   updates. - The default path when called from CLI changed from sys: to the current directory (progdir:). - Each Hotkey-MFR gets a seperate Task now. Thus, you can call multiple   MFR's by hotkey. - "Load & Save Settings" now work correctly from a hotkey-called MFR. - Instead of re-reading the device list every time a requester appears, this list is maintained by the master task now. This saves memory and speeds up requester opening time considerably (about 5-6 ticks on my 68020, probably even more on slower systems, depending on the number of assigns and on the length of volume hide & show pattern). Big volume patterns and many assigns no longer slow down MFR. Disadvantage: Due to this new scan method, MFR will only recognize a DiskChange event when it's window is active. Otherwise, you will have to rescan the device list manually. - Moving the window around no longer causes a string gadget to be deactivated. - The "Cannot-Delete-File" requester was corrupt. - Due to internal modifications, I dropped the Arrow-Delay configuration   option. The scrollbar arrows now scroll 10 entries a second, not more,   not less. If you want to scroll faster, use the scrollbar. - You can adjust the function key settings online now, no more need to   edit the tooltypes. Just press together with the function key   you want to define (F1-F10 or F1-F10). This will copy the   current drawer & file gadget contents to the specified key. Thus, even unregistered users can test function key facility if they want to. - No change, just a little question. I place it here since I know this is the only file you read. I tried to make a "MFR light" to save some memory. I left out the complete "Settings" menu, the clipboard support, file actions, search functions, history list, directory caching, Create/Delete/Rename functions and the gags and gained approximately 20 kByte. When *you* want to have such a MFR, let me know. If the demand is big enough, I will include a "MFR light" with the next release. If not, there will be no "MFR light". Single requests for it won't succeed in this case. V2.0d (19-Jul-92) ----------------- - Corrected some mutual exclude menu items (e.g. search modes). - Included release 1.4 of UnArp. - The search entry and history list selection consumed all processor time.   Seems I forgot a simple WaitPort(). This bug is now fixed. - MFR sometimes considered boolean attributes like save mode, multi select, etc. wrong. Fixed. - Corrected some corrupt pattern handling in conjunction with the file   actions, introduced in V2.0c. - String gadgets now allow entering of empty strings. - MFR no longer keeps the workbench.library open when installed. V2.0c (15-Jul-92) ----------------- - About-Window is now visible on a monochrome display. - reqtools.library patch is now on by default. - To be Workbench compatible, the menu entry for creating a directory changed its name to "New Drawer" with the shortcut . File Notification can now be toggled with . - Improved icon outfit on oldstyle screens. Nevertheless you really should use 'TagScreens' or a similar tool to eliminate oldstyle screens completely. - Included AmigaGuide format manual. - Fixed file action bug. Now, %s is really replaced with the complete path specification, not only with the file name. - Added semaphore security to string hook handling. This should fix some intuition lockups with incredibly fast typing on incredibly slow   amigas. - Added menu item to rescan the device list. - Optimized some code. MFR should run a bit faster now, especially on 68000 based machines. V2.0b (09-Jul-92) ----------------- - Changed distribution archive a little bit. For update reasons, the 68030 version now comes with the freely distributable archive of MFR. This allows registered users with 68030 processors to update fast. - Included more detailed update information in the 'Registration' file. I   thought update handling was clear, but it seems it wasn't. - Fixed function key bug. Now the file gadget always gets activated after a function was pressed. - Escape-Key didn't work right together with Shared-IDCMP and IDCMP_VANILLAKEY. Fixed. - Since it seems getting standard that asl.library preserves A4 for   callback hooks, MFR now behaves the same way. This makes e.g. MFR work   with VLT. - Fixed nasty 'Zero-Size-File-System' bug which caused MFR to guru when a file system with size equal to 0 was mounted. Now, MFR works e.g. with   ParNet and XFH: - Volumes with size greater than 3600 kByte are considered to be a harddisk. Smaller volumes will get a disk icon. V2.0a (06-Jul-92) ----------------- - Fixed nasty Cursor-Key-Parent-Dir-Bug. V2.0 (05-Jul-92) ---------------- - MFR is distributed as shareware now. Please refer to the file 'Registration' for details. - Fixed machine lockup with MFR's arrow gadgets (bug introduced in 1.3). - Got it! MFR eats no more memory, not even a single byte. - MFR now empties it's AppWindow port before deleting it. - Search mode corrected. - MFR now handles multiple menu selection correctly. - The "Goonie" scrollbar design takes care of the screen pens. - You can now bind 20 directories (or files) to the function keys F1-F10 and F1-F10. Configuration via tooltypes FKEY_1 - FKEY_20. - The default public screen is brought to front when MFR is called with it's hotkey. - MFR can now be configured to automatically close it's window after a   copy operation to clipboard. - With multi select enabled, MFR will now always use the WbArg return method, even if the user only selects a single file. This reflects the behaviour of asl.library and should fix some problems. - Mid mouse button changes to parent directory. - Added invisible Parent Gadget at the left side of the file list. Ugly   but useful! - Some more config options are resolution dependent (different values for hires & lores): Fonts, Scrollbar Design, Default Size, Background   Rastering. - MFR refreshes it's volume list when a volume is inserted or removed. - Leaving the requester with double click is disabled in save mode. - Significantly improved caching mechanism: MFR now remembers up to 100 directories. These directory caches are global, all MFR's can use them. If all caches are full, the oldest one will be replaced. A cache is automatically invalidated when the date stamp of the associated directory changes. Max number of cached directories can be configured with a menu item, a value of 0 disables caching completely. - Replaced ArpToAsl by UnArp. - MFR automatically detaches when it's installed from CLI, there's no more   need to run it. - The widths of the file and volume lists are configurable now. Just click between the both lists and move the appearing bar around. List   widths may be different in Lowres and Highres mode. If the volume list   is wide enough, some state information will be shown. - Volume size calculations are now compatible with the info command (1024   Bytes per kilobyte and 1024 kilobytes per megabyte). - Inversion of string gadgets is now configurable (see Window sub menu). - MFR now supports the ASL tags ASLFR_RejectIcons, ASLFR_UserData,   ASLFR_SleepWindow, ASLFR_HookFunc, ASLFR_PrivateIDCMP,   ASLFR_IntuiMsgFunc and ASLFR_FilterFunc. - Since all important tags are supported now, MFR will never drop to an ASL requester anymore. This fixes possible crashes when one file   requester structure is used for several calls with some of them   dropping to ASL. - Gadget & list handling changed significantly. The file list and the   file gadget are attached now, they will be active the same time. Typing   something into the gadget will move the list cursor to the appropriate   position. Device list and drawer gadget are attached the same way.   Side effect: Since cursor left/right are used to move the string gadget   cursor, you will have to qualify them with ALT to use them for changing directories. Amiga-Space is now used for selecting multiple files.   This new method seems to be much more comfortable and useful, I really   like it and I hope you will too. - You can alternatively control the cursor with the numeric keypad, if you   activate "Settings/Usage/Numeric Pad Control" menu item. Key <5> can be   used to select/deselect files when multi select is enabled. - Menu layout changed to reflect user style guide. Activation menu became senseless, some shortcuts changed. - MFR now marks file system links with a '»' in front of the file size. This feature is only available for files, not for directories. - This one's for all CLI freaks: If MFR could not find a .info file, it   tries to read it's configuration from "envarc:mfr.prefs". Configuration   will also be saved to "envarc:mfr.prefs" in this case. - Added statistics menu point (senseless, but who cares...). - To wake up possibly sleeping users, background rastering now looks   different when MFR is in save mode. Rastering is done with the two   darkest colors of the current palette. - Icons and arrows look better on one plane screens. - Directory reading mode changed again. MFR now tries to read as many files as possible in a specific timeout (e.g. 0.5 sec). If the timeout   expires during reading or the user performs some action, the display is   updated for the first time. On the average, most HD or ram:   directories can be read during the first timeout period. The result is   less rendering and faster loading time. The timeout is configurable   with the new menu item . - With a timeout value of 0, MFR will always read the complete directory before displaying anything. This is MFR's fastest mode for directory reading and I strongly suggest you to use it since it is much less   confusing and the new reading mode maybe needs some more work. However, a timeout of 0 should be no great disadvantage, since MFR's directory caching will reduce waiting time to a minimum. - Multi select is now possible by dragging the mouse around while shift   (or caps lock) is pressed. Note that you will have to press shift even   for the first file you want to multi select. This is different to asl's   multi select and workbench's icon selection, but it seems to be the only   convenient way for MFR. - Recompiled with register parameters and function pragmas. Gained 6 kB   and hopefully some speed. - To avoid loosing the first few keystrokes, the file gadget gets activated immediately when the requester opens. - Instead of two seperate hide & show gadgets, there is only one single   pattern gadget now. It will be displayed on demand (when the asl tag   ASLFR_DoPatterns is set). You can make it visible/invisible at any time with the "DOS / Status" submenu. This menu also contains items to   temporarily disable the pattern and to toggle matching of directories. - The 'Pattern:' gadget label has become an invisible gadget that disables/ enables pattern matching. - New memory management system. No more small allocations, no more   fragmentation. Note: Because of this and because of directory caching,   history list, etc. it may sometimes look as if MFR would loose memory. It doesn't! - Added history list. This list contains the last files you selected since MFR was started. is configurable with a menu item, a value of 0 disables the list completely. The list is not sorted, the last   selected file always appears at the top. You can access the history   list with the "DOS" / "History List" menu item. - The 'File:' and 'Drawer:' gadget labels are invisible button gadgets now. MFR remembers the initial contents of drawer and file gadget at requester opening time and restores them when these gadgets are pressed. - MFR now works with AssignX. - Pattern matching is a lot faster now => faster directory reading. - MFR now supports reqtools.library multi selection. - The search gadget is a file action gadget now. Reason: When you are   searching for a specific file, you are already using your keyboard. Thus it's no great deal to press to start searching. - Added reload menu item for those who don't like file notification. - Added Show/Hide icons menu item. - Added 'Flush Memory' menu item. With Workbench 2.1, this flush will   be done automatically when memory gets low. - Rewrote manual again. Please read it carefully !!! V1.3b (10-Apr-92) ----------------- I hate that. Bugs over bugs. Thanx to Stefan Becker for reporting and fixing. - MFR's CLI interface had a bad bug. All BOOLEAN options (including INSTALL) did not work correct (enforcer hit on 68030, crash on 68000, nothing special on my 68020 :-)). This has now been fixed. - Enforcer hits during display refresh and notify events eliminated. - Detection of shared IDCMP did not work right. I corrected it and suddendly many programs used ASL again. Therefore, I removed detection   of shared IDCMP, MFR will always use it's private port. This may cause   some problems with some programs in some cases (e.g. IconEdit). Remember the REJECT keyword. - MFR now knows how to display file sizes greater than 9.999.999 Bytes. - When the application supplies a complete path in the drawer gadget, MFR splits it up into drawer and file part. V1.3a (08-Apr-92) ----------------- Since I go on holiday the next two weeks, I release this minor new version just for those of you that really hate the reqtools requester. - MFR now patches reqtools.library (tooltype PATCHREQTL). Several   features (e.g. multi-select) are not supported. MFR will drop to   reqtools in these cases. See Bugs section for details. - Fixed bug with monitor identification. - Included version 1.6 of TagScreens. V1.3 (06-Apr-92) ---------------- Yeah. Not just some bug fixes, a really new version with many enhancements. - Configuration mechanism changed again. No config file support anymore. When started from Workbench, MFR reads it's configuration from the .info file, as in earlier versions. - Since there seem to be quite many people out there, who do not use workbench, MFR can now be installed from CLI with the command "mfr INSTALL". Note that MFR will not detach (I was too lazy), so you should put something like "run nil: mfr install" in your startup-sequence. The configuration will be read from the file PROGDIR:mfr.info, thus you must have "mfr.info" in the directory you start MFR from. To edit your tooltypes, you will still have to load workbench and use the 'Info' menu item. This should be no great problem however, because almost all configuration can be done via menu items now (see next point). - MFR can now be configured with various menu items. Have a look at them to see how they work. Note that the configuration is global for all file requesters, so if you change e.g. the gadget font, every open file requester will be informed and updated. Configuration can be saved with the menu item to the location it was loaded from. - MFR now has the ability to use the parent screens default font for displaying (see the "Window" submenu). - If you set the number of EntryBuffers to zero, MFR will read a new directory completely before displaying anything. This is MFR's fastest directory reading mode, but you will have to wait until all entries are read. - MFR now caches the last directory to speed up subsequent calls with the same requester structure. - If you change to the parent directory, MFR now tries to place the cursor on the directory you just left. This makes it much easier and quicker to browse through your harddisk. - MFR can now create directories, delete files/dirs and rename files/dirs. With rename, you can even move your files around the volume. See DOS menu. - If MFR is in save mode and you type a non existing directory into the drawer gadget, MFR will create it if you confirm. - Implemented my idea of file selection. Pressing an alpha key in the file list (not in the file gadget!) will add this key to the search string and jump to the first entry starting with this string. Backspace will remove the last character from the search string. I tried several versions of file selection via keyboard and this one was my favourite. If you have some other (good!) ideas, let me know. - You can now tell MFR to activate the file list instead of the file gadget in some cases (see Activation menu). When MFR is opened for saving, activation of the file gadget always has priority. - MFR now has 18 different methods for sorting the file list (see Design menu): name sort, date sort and size sort with directories either first, last or within and with sorting order either low to high or high to low. Hope this will be enough for everybody. :-) - Fixed a bad bug that could crash the system if you tried to quit MFR with some allocated requester structures. - The list views are now more style guide compliant (no more extra pixel on top and bottom border). - Concatenation of default hide pattern and application specific hide pattern has been removed. Instead, an application specified hide pattern simply overrides the default hide pattern. - If the application specifies a show pattern, the default hide pattern is ignored. This avoids problems with mutual exclusive hide and show pattern (e.g. IconEdit with a default hide pattern #?.info). - Removed the 3d effect of the status line text. This was indeed a little overpowered. - Removed the about gadget in the bottom window border. :-( - More sophisticated calculation of the space occupied by date and time column. Should work with any font know. - Fixed bug with cursor right key in assign list. - A2024 was again considered lowres. This bug is now hopefully fixed for ever. MFR should know which config to use with all known display modes defined in "graphics/displayinfo.h". Unknown modes are considered highres. - Centering and mousing the window now also works on screens bigger than the maximum display size. - Added some clipboard support. You can now paste the current directory, the current file or the complete path to the clipboard (see Project menu). - If you consider the arrow gadgets as too fast, you may now configure a delay for them (see Design/Scrollbar menu) - You can activate MFR with a hotkey now. Configuration of this key is   done with the CX_POPKEY tooltype (only one hotkey activated MFR at a time). - Many tooltypes changed their name and meaning. You should avoid editing them directly and use MFR's menus instead. - MFR is an AppWindow now, you can drag icons in it. This will only work with single icons, multiple drag is not supported yet. - If you encounter a program not working with MFR, you can tell MFR to drop to the old file requester when being called by this program. This is done via the new tooltype REJECT. MFR tests this pattern against the current task name (ExecBase->ThisTask->tc_Node.ln_Name) and drops in case of match. - Rewrote manual to reflect all the new features (I really hate writing   manuals). V1.2 (17-Mar-92) ---------------- Sorry again, this is also just a bugfix. I messed up something with the file search mechanism in V1.1. Now it should work. - File searching did not work right in V1.1. Fixed this problem. - MFR 1.1 could only be started from within sys:wbstartup/. This has been fixed. - MFR now also rejects the german AssignX. - Due to a strange compiler behaviour, every string was stored about five times in the executable. This bug has been fixed. - MFR now has a second way of configuration. You may write your tooltype entries to the file "env:mfr.prefs", and MFR will parse them as usual. Entries in mfr.prefs will replace tooltypes in mfr.info with the same name. MFR recognizes changes in "env:mfr.prefs" and reloads it automatically, so you don't have to restart it every time you change your config. - Included the program "TagScreens" from Martin Berndt to force old style screens to use the new Kick 2.x look. V1.1 (05-Mar-92) ---------------- Sorry, I didn't have the time to implement many new ideas. This version is just a bug fixed and little enhanced V1.0, so don't expect too much. New features will come up in near future. - Some minor enhancements in design. - If the specified list font is 9 pixel or smaller, a second set of icons is used. - Because of problems with some programs, MFR will now cut off the slash following a directory name before returning. - An A2024 monitor is no longer considered LoRes. - The contents of Hide & Show gadgets are now passed back to the calling program, so they can be reused at later calls with the same structure. - The key combination now toggles between Drawer and Hide gadget or between File and Show gadget. - Fixed bug with the wrong calculated free disk space. - Fixed some other strange bugs. - MFR can now be called from CLI to pop up a file requester and print the results to stdout. See section 7.5 for details. - Added new tooltype NOTIFY to turn file notification on and off. - You may now select between six different scrollbar designs: Goonie, GoonieSym, Stuntzi, StuntziSym, Kick20 and Kick20Sym, configurable with the tooltypes SCROLLBAR and SCROLLBARL (lores). - MFR now uses the system-suggested colors for rendering (DrawInfo->dri_Pens). Images are also adjusted accordingly. - Late- and Nonbinding-Assigns are now displayed. - Added new tooltype DEFHIDEPAT to specify the a default value for the "Hide" gadget. If the application does not specify a hide pattern (ASL will never), DEFHIDEPAT is used instead. Otherwise, the given pattern and DEFHIDEPAT are concatenated using "(%s|%s)". - FAST keyword now obsolete. Instead, MFR measures the time for finding the next directory entry and increases/decreases its internal entry buffer accordingly. Thus, display refresh is rare with fast medias but often with slow medias. Maximum number of buffered entries is adjustable with the new tooltype ENTRYBUF (1..50). With ENTRYBUF=1, MFR behaves just like FAST=OFF. - Speeded up directory sorting algorithm. This will possibly result in faster directory reading on 68000 based machines. - Since MFR does for some reasons not work with 'AssignX' (I really don't know why... any ideas?), the ASL requester will be called when the window title matches "Assignment for*". V1.0 (24-Jan-92) ---------------- - Initial release.