-------------------------------------------------------------------------- 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. 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 eventually 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.