1. 14 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      Got the deferred reformatter working properly. It doesn't do that 'OK, the... · 5e7b0a62
      Andrew Hodgkinson authored
      Got the deferred reformatter working properly. It doesn't do that 'OK, the page is fetched and reformatted, but just to annoy you, I'm going to wait 5 seconds and then suddenly reformat the whole thing again' trick anymore. The fetcher was calling the reformatter in a delayed form even when the reformatter was already running, so it would carry on past the reformat point or from below what had become and invalidated line, and some time later, get back to the delayed reformat. Now, reformatting is only delayed by the fetcher when the reformatter is not running. In practice this means body text reformats as it fetches, but large tables will show delayed reformatting - which was exactly the intended behaviour of the feature when it was originally thought of.
      
      fetch_token_data_address removed; it was only needed in two places,
      both of which already knew when to read tp->text and when to ignore
      it. Its functionality is duplicated in an 'if' involving reformat_istext,
      anyway.
      
      !Run[D] files taken back to requiring HTTP 0.33, since 0.36 introduces
      many weird and wonderful problems.
      
      Typo in Messages files, 'All current images (sic.) fetches finished' -
      'images' is now 'image'.
      
      Shift+Click saving - you could save to an application. No problem. But
      the equivalent (just clicking on a link that led to an unknown datatype
      and getting the save dialogue that way) didn't work. It does now.
      Another problem was saving to an application that didn't support the
      datatype - oops, the dialogue would close but the fetch would sit there
      waiting to be told where to save. It doesn't close now (as expected).
      
      NB, doing several simultaneous fetches to a text editor may have problems
      as the editors are too clever for their own good. Despite receiving
      DataLoad messages for <Wimp$Scrap> for files of different types, sizes
      and datestamps, the editors can decide it's still the same file and:
      
      Zap      - Hats off, it gets it right, almost. You do get warned 'Multiple
                 copies - one on disc is newer' as everything after the first
                 text loads, but they do load, and in separate windows.
      StrongED - Does not load the subsequent files, so the browser gives 'Data
                 transfer failed' errors and opens up Scrap. Turning off 'Don't
                 load same file twice' fixes it - each file is loaded in a new
                 window with no warnings. At least in the first case, you don't
                 lose data, since the files are kept in Scrap.
      Edit     - Each time it loads the file, it *replaces* the other one in
                 memory, using the same window for each. This is the worst
                 behaviour as it isn't configurable (well, I don't know of a way
                 to change it...) and results in data loss as successive texts
                 get trounced by the new data.
      
      I can't see how I can fix this in the browser as it's basically silly
      behaviour on behalf of the editors. Other applications which don't try
      to work out if it's a new file or not are fine!
      
      When conducting image fetches, proxying is allowed unless reloading.
      When conducting page fetches, proxying was never allowed - so web cache
      stuff would have been, er, interesting. It now sets X-NoProxy: in the
      request header when reloading, but otherwise this is not included.
      
      AnimSpeed is, at last, independent of browser poll speed. They used to
      be tied together. Guess how the animation code used to work ;-)
      
      'Can't handle this datatype' - deprecated now that save dialogues can be
      popped up. The 'can't save objects in full screen mode' error would never
      be shown due to a bug, anyway; this now replaces 'can't handle', which
      has been removed from all Messages files.
      
      RefoWait, RefoHang and RefoTime moved from Controls back to Choices.
      
      Trying to get rid of strlen in the reformatter - it can get very slow
      (e.g. strlen of 8K chunks of text, or if a 330K text file is transferred
      from a text editor straight to the browser, strlen of a 330K string...).
      There will be unfinished bits of code in the reformatter that may seem
      unnecessary - they've just not been plugged in yet (since they don't
      actually work). Don't remove them!
      5e7b0a62
  2. 09 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      First a minor warning - the various Res files are out of sync in this build. · 7656a1b3
      Andrew Hodgkinson authored
      Only the Browse resources are currently valid.
      
      Added Utils.Icons - has a few archives inside containing the resources
      (well, some of them) used to build various UI sprites for various builds.
      Archived because these are unlikely to change much, and putting them on
      CVS was a move to, well, archive the stuff...
      
      SaveDBox objects vanquished and requirements in !Run[D] files removed. The
      data save code fits much more neatly in amongst the data load protocol
      stuff now (with the slight exception of having to split the SaveObject
      source into SaveObject and SaveFile - the former handles multiple persistent
      dialogues for Shift+Click on links and the like, the latter handles 'one at
      a time' transient dialogues for save source and similar). Export Link is now
      supported, too, and writes a 'proper' version URI file. You'll find that
      double-clicking on old URI files will work as the URI handler picks them up,
      whilst new version ones don't; however, dragging onto the browser will only
      work with new version files. Note that support for saving and loading URL
      files (ANT suite stuff) is present too, so old URI files can be typed as URL
      files if you want to keep them working without modification - the URI
      handler itself will hopefully support the defined URI file format soon;
      double-clicking on old URI files will stop working at that point. Note
      there are *lots* of changes in every Res file to support all this. This may
      all seem a bit pointless to some, but the changes do in fact make it very
      easy to add new save dialogues all over the place. Certainly much easier
      than with the previous system, anyway. In fact, post script, image
      'save as sprite' took about half an hour, which I hope proves the worth
      of the new system.
      
      Merged in newer hotlist code with support for drag cancelling with Escape
      (all relevant Res files appropriately updated) and cancelling scrolling
      when you've reached the window scroll limit. Had to move some of the
      Wimp message handling stuff to the central Protocols source, as clashes
      were occuring, and also the hotlist routines were using independent saving
      code - a lot of duplicated effort. This was fair enough as at the time the
      Hotlist code was written, the Save code couldn't be used in the way it is
      now.
      
      New Save Source and Print buttons on the toolbar of some builds.
      
      Phoenix Sprites file made more efficient - the Acorn base section has been
      split from the animated upper region. Browse build has a new grey fade
      sprite at the back, which is less grainy than the previous one and only
      uses 16 colours (with a 16 greyscale palette).
      
      Not really a bug, bug the routine to start an image fetch for INPUT
      TYPE=IMAGE forms items only did so if the src field (or equivalent, for
      this tag type) was non-NULL. In fact, you should always call image_new_image
      and let that handle the rest, otherwise other sections of the code will fail
      as they try to obtain an image number for a given HStream and get -1 back.
      This problem only generally manifested itself when loading an HTML file to
      the browser straight from an application, as many src fields become NULL
      when the relativisation routines find nothing to relativise to...
      
      Authentication got broken somewhere along the line - this has been fixed
      (in HTMLLib and the browser).
      
      Ctrl+Click on a cross referenced image updates *all* copies, not just the
      one with the image data attached.
      
      Next big step: Rip up TBEvents.h and rebuild that whole approach somewhat.
      To all those working on the code, my apologies but this means all Res files
      will receive a very large number of alterations and there will be extensive
      code changes too (mostly naming convention stuff), in more or less all
      source files. I am endeavouring to ensure that the new numberspace
      convention does not clash with the work being done by Kevin on
      internationalisation.
      7656a1b3
  3. 03 Sep, 1997 1 commit
    • Andrew Hodgkinson's avatar
      File fetches now set DEADDEAD during the fetch, Data if it is aborted, or an... · bece97ef
      Andrew Hodgkinson authored
      File fetches now set DEADDEAD during the fetch, Data if it is aborted, or an appropriate filetype when finished. If the fetcher routines return a zero or data filetype, the browser looks at a set of hard coded filename extensions to try and determine if there's a better filetype to use
      
      (urlutils_filetype_from_url) - since this is a centralised routine it can
      use a Mime mapping system (or be removed entirely) as and when one becomes
      available.
      
      You can now drag URI / URL files to the Hotlist window to add them to the
      list. They are added roughly where dragged to. (NB, note that I renamed
      the function to return the window ID - just being picky; it matches other
      similar functions now). Oh, and hotlist_add_position actually works now ;-)
      
      The global history will save when titles are added, as well as when a URL
      is added. Before, a browser crash could mean a title got dropped out
      of the history file even if SaveHistory was set to 'always'.
      
      SaveObject sources have been added but nothing references them or links
      them in yet - they're not finished. Mostly checking this one in because
      of the hotlist changes.
      bece97ef