Permalink
Commits on Aug 18, 2010
  1. Allow Reinteract to open files with default application.

    This patch allows you to open non-python files from within Reinteract, for
    example from the "Other Files" part of the sidebar.  Such files are opened
    with the default application.  On Windows, this means using os.startfile();
    on Macs, calling "open"; on Posix systems, calling "xdg-open".
    committed Apr 23, 2010
  2. Check for error on opening notebook.

    Try to open each notebook in recent_notebooks until finding one that can
    be opened or running out of notebooks.  recent_notebooks being empty is
    just a degenerate case of this.  If we can't open any notebooks, open Main,
    creating it if necessary.
    committed Apr 22, 2010
  3. Reposition DocPopups to keep them onscreen

    DocPopups positioned with position_at_location may hang offscreen.  This patch
    attempts to keep this from happening.  Popups hanging off the bottom of the
    screen are placed above the text in question, unless that would push it off
    the top of the screen.  Popups hanging off the right of the screen are pushed
    left until entirely onscreen, or until the popup reaches the left side of the
    screen.
    
    To do this, we need to know the size of the popup window.  Therefore, we have
    to wait until after allocation to do the positioning.  position_at_location()
    saves the information the positioning code to __position_info.  The actual
    positioning code lives in do_size_allocate().
    committed Mar 30, 2010
  4. Add UI to execute only part of worksheet.

    Rearrange the keybindings for calculation.  They now are:
        <shift>Return        Calculate to insert point
        <control>Return      Calculate whole worksheet
        <control><alt>Return Calculate all worksheets
    Additionally, <control>KP_Enter acts like <control>Return and
    KP_Enter and <shift>KP_Enter act like <shift>Return.
    committed Jan 15, 2010
  5. Add capability of executing only part of worksheet.

    Allow the capability to execute the current worksheet only up to the
    current insertion point.  This patch adds an extra argument to several
    calculate() methods that call each other to get from the application
    level down to the worksheet level.  At the top level, this extra
    argument is a flag called end_at_insert, which indicates execution should
    stop at the insert point when true.  At the lowest level, this extra
    argument is the first code line to not execute, named end_line.  There
    is also some logic at the lowest levels to attempt to determine whether
    the last line executed was the last statement in the file, and to set
    the notebook state appropriately.
    committed Jan 15, 2010
Commits on Jan 20, 2010
  1. Improve argument checking in RecordedObject

    Handle keyword arguments when checking the supplied arguments; previously
    we only handled the case of a function with '**kwargs', and didn't handle
    the case of supplying kwargs for a functions defined arguments.
    
    Add comprehensive tests on the argument checking logic.
    owtaylor committed Jan 20, 2010
  2. Merge branch 'unicode-internals' into master

    Conflicts:
    	lib/reinteract/shell_buffer.py
    	lib/reinteract/statement.py
    owtaylor committed Apr 4, 2009
Commits on Apr 4, 2009
  1. Clean up after a failed import

    If an import fails (because of, for example, a syntax error), then
    remove the entry we added to sys.modules.
    
    Mentioned in http://www.reinteract.org/trac/ticket/74
    owtaylor committed Apr 4, 2009
Commits on Apr 3, 2009
  1. Assume methods that look like getters don't mutate object state

    If a method name begins with 'get' 'is' or 'has', then assume it
    doesn't mutate the object.
    
    http://www.reinteract.org/trac/ticket/77
    owtaylor committed Apr 3, 2009
  2. Comprehensively use 'is None' and 'is not None'

    Use 'is None' and 'is not None' everywhere; this was recommended
    by Jonathan Griffitts in http://www.reinteract.org/trac/ticket/71.
    Going ahead and doing it now was inspired by the xmlrpc horror
    in http://www.reinteract.org/trac/ticket/77.
    
    No Reinteract object will ever be badly behaved enough to try and
    make a remote procedure call when its __eq__() method is called,
    but it's easier to make a blanket search and replace than audit
    everywhere for user-supplied objects.
    owtaylor committed Apr 3, 2009
  3. Use 'is None' instead of == None

    Part of a big cleanup of a http://www.reinteract.org/trac/ticket/71; this
    one is done separately because it's new on the unicode-internals branch.
    owtaylor committed Apr 3, 2009
  4. Don't rewrite docstrings to output to the worksheet

    Exempt docstrings (a literal string as the first statement of a function
    definition) from the rewriting that results in reinteract_output() being
    called.
    
    http://www.reinteract.org/trac/ticket/81
    owtaylor committed Apr 3, 2009
Commits on Apr 2, 2009
  1. Handle text internally as Unicode

    reunicode.py: New file containing routines for decoding text into
      unicode, verifying that the result is within the subset that can
      be handled by both GTK+ and Python, and adding escapes as necessary.
    BaseWindow Editor LibraryEditor WorksheetEditor Worksheet: Add
      a 'escape' parameter to load() and first try loading without
      adding escapes. If that fails, prompt the user with a dialog,
      and if they OK it, load the file converting escapes.
    ShellBuffer: When fontifying, deal with character offsets not
      byte indices
    Statement: Convert the output of statement into safe Unicode,
      adding escapes as necessary.
    
    http://www.reinteract.org/trac/ticket/74
    owtaylor committed Mar 28, 2009
Commits on Mar 28, 2009
  1. Retrieve text from worksheet rather than from buffer

    ShellView: Retrieving text from the worksheet gives us text that is
      already converted to unicode, so corresponds to the character
      offsets we are working with.
    owtaylor committed Mar 28, 2009
  2. Gracefully handle bad escapes in source code

    If the source code contains a Unicode escape like \Uabcdabcd (out of
    range for Unicode), we'll get a UnicodeDecodeError on compilation.
    owtaylor committed Mar 28, 2009
  3. Remove remnants of old hooking of print statements

    We now capture 'print' through general hooking of stdout; we don't
    need to define a print function. (But leave the parts of rewrite.py
    that handle rewriting the print statement for now.)
    owtaylor committed Mar 28, 2009
Commits on Mar 25, 2009
  1. Bump version to 0.5.0

    owtaylor committed Mar 25, 2009
  2. Update copyright years

    Update files that have been changed in 2009 prior to release.
    owtaylor committed Mar 25, 2009
Commits on Mar 22, 2009
  1. Bump version to 0.4.9

    0.5 release candidate
    owtaylor committed Mar 22, 2009
  2. Allow building python-2.6 installers on Windows

    build.msi.py:
    * Include -python2.5 or -python2.6 as part of the installer name
    * Include the prefix when generating the product_guid so the two
      installers properly show up as different.
    * Allow upgrading a version to itself so that the -python2.5 and
      -python2.6 installers mutually upgrade.
    * Compile the wrapper script with Visual C++ for Python-2.6;
      fixing C runtime version problems when using mingw was very
      hard if not impossible. (AFACIT, the problem that Python-2.6 and
      the modules are all Visual C++ compiled against version 9.0 of
      the C runtime; if the wrapper isn't the same some modules
      have problems. Though those modules may actually be buggy
      themselves and missing an embedded manifest.)
    owtaylor committed Mar 22, 2009
  3. Dist Reinteract.ico

    Files in somedir_DATA don't automatically get disted; add Reinteract.ico
    back to EXTRA_DIST.
    owtaylor committed Mar 22, 2009
Commits on Mar 21, 2009
  1. Add a script to do all the steps of building a bundle

    Building the universal binary and the bundle had gotten pretty
    cumbersome; build_bundle.sh handles all the steps other than
    building the dependencies (you don't usually want to do that)
    owtaylor committed Mar 21, 2009
  2. Work around limitations of the .icns pixbuf-loader

    The .icns loader can't do the incremental loading needed for
    .load_from_file_size(), so for .icns just load at the default size
    and scale: we don't have a 64x64 size in the .icns file anyways.
    owtaylor committed Mar 21, 2009
  3. Add a drop shadow to Reinteract.icns

    This is not an artistic decision - it looks slightly uglier this
    way, depending on the context. But it increase the clickable area
    of the icon.
    owtaylor committed Mar 21, 2009
  4. Simplify about dialog logo handling by installing Reinteract.ico

    data/Makefile.am: Install Reinteract.ico in $pkgdatadir
    bin/reinteract.in: Use installed Reinteract.ico for icon_file
    AboutDialog: Always use Reinteract.ico and never the named icon
    src/reinteract_wrapper_osx/main.m Makefile.am: Use Reinteract.ico
      for the 'make install' case.
    owtaylor committed Mar 21, 2009
  5. Update Makefile.am for current OS X GTK+ patches

    Makefile.am: Add gtk-dont-steal-update-region.patch
    gtk-clipboard-quartz-new0.patch: Remove
    owtaylor committed Mar 21, 2009
  6. Check in preferences.glade

    Add preferences.glade which is referenced (indirectly) in the Makefile.am;
    we're still treating the glade files as the primary sources, and
    generating the xml files from them.
    owtaylor committed Mar 21, 2009
  7. Add a preference to disable auto-completion

    preferences.xml: Add a checkbutton for auto-completion and a message
     about Control-Space
    global_settings.py: Add a autocomplete property
    preferences_dialog.py shell_view.py: Hook up global_settings.autocomplete
    owtaylor committed Mar 21, 2009
  8. Implement autocompletion

    CompletionPopup: Allow .popup(spontaneous=True) to complete with a
      minimum length (currently 3)
    ShellBuffer: Add a in_modification() getter to allow distinguishing
      internal buffer modifications from ::insert-text/::delete-range handlers.
    ShellView: Switch tracking changes for completion to connecting to
      ::insert-text/::delete-range/::begin-user-action/::end-user-action
      instead of updating after keystrokes. When we see new user-inserted
      text, try to complete spontaneously.
    owtaylor committed Mar 21, 2009
  9. Complete less aggresively when it might be a keyword

    When a min_length is specified (indicating that we might not want
    to complete if we are going to make a mistake), don't complete if
    we have a single name that is a prefix of a keyword.
    owtaylor committed Mar 21, 2009