1. 10 Nov, 2013 2 commits
    • Artur Grunau's avatar
      Dock DataContainerInspectorWidget in the MDI area · 95b2248a
      Artur Grunau authored
      DataContainerInspectorWidget was previously stored in a regular dock
      widget, but because of its rather large dimensions it didn't fit well in
      any of the docking areas.
      
      Put DataContainerInspectorWidget in an MdiDockableWindow and add it to
      the MDI area. It fits much better there, and can still be undocked if
      need be.
      95b2248a
    • Artur Grunau's avatar
      MdiDockableWindow: override the activateWindow method · a00b0215
      Artur Grunau authored
      The default implementation of activateWindow didn't forward activation
      requests to MdiDockableWindow's sub-windows. Since MdiDockableWindow is
      always hidden, the method was pretty much a no-op in disguise.
      
      The overridden version of activateWindow properly forwards activation
      requests, using the right method to activate the current sub-window, no
      matter if it's floating or docked.
      a00b0215
  2. 09 Nov, 2013 2 commits
    • Artur Grunau's avatar
      MDI: make it possible to resize and move sub-windows · ecf3778f
      Artur Grunau authored
      MdiDockedWindow's mouseMoveEvent method intercepted all mouse move
      events when the left mouse button was pressed. This interfered with the
      resizing of docked windows.
      
      Intercept only non-resize drag events to make manipulating docked MDI
      windows easier. As a side effect, moving MdiDockedWindows doesn't cause
      the MDI area to re-tile its sub-windows anymore.
      ecf3778f
    • Artur Grunau's avatar
      MDI: represent sub-windows as tool windows · d055b0b4
      Artur Grunau authored
      Both MdiDockedWindow and MdiFloatingWindow were previously regular
      windows, i.e. they had minimise, maximise, and close buttons. The first
      two of these buttons didn't make much sense for docked MDI windows, and
      made floating MDI windows look different from undocked QDockWidgets.
      
      Represent all MDI sub-windows as tool windows to make their subordinate
      status more pronounced. For floating MDI windows this has the added
      benefit of keeping them on top of the main window and minimising them
      when it gets hidden.
      d055b0b4
  3. 08 Nov, 2013 1 commit
  4. 02 Nov, 2013 5 commits
    • Artur Grunau's avatar
      MdiDockableWindow: new MDI helper class · 6d4262de
      Artur Grunau authored
      MdiDockableWindow has been extracted from MdiDockArea to simplify and
      better structure our MDI implementation. The new class takes care of
      creating all necessary representations (docked and floating window) of
      widgets added to MdiDockArea and seamlessly switching between them in
      response to the user's actions (window dragging, key presses, etc).
      
      MdiDockableWindow improves our MDI implementation in two ways:
      - MdiFloatingWindow and MdiDockedWindow instances shouldn't be
        interacted with directly; they're created and disposed of as needed,
        and therefore can't be used as a handle to access and modify an MDI
        window's state; MdiDockableWindow, in contrast, fits this role
        perfectly; it manages both representations of an MDI window, and as
        a result stays around as long as at least one of them is needed
      - managing state transitions of many sub-windows directly in MdiDockArea
        was becoming clumsy as signal mapping and dynamic properties were
        required; having a separate widget that only has to control the state
        of one sub-window makes the code related to state transitions much
        simpler
      6d4262de
    • Artur Grunau's avatar
      Properly hide docked MDI subwindows that got closed · 8126df4d
      Artur Grunau authored
      Closing a docked MDI subwindow caused it to disappear if the MDI area
      was in SubWindowView mode, but its inactive tab could still be seen in
      TabbedView mode.
      
      If a docked MDI subwindow gets closed, hide it by removing it from the
      MDI area.
      8126df4d
    • Artur Grunau's avatar
      Add a "Tools" submenu to the main menu · dd068eea
      Artur Grunau authored
      The "Tools" submenu lists all standard docked tools offered by the
      application (i.e. "Pipeline tree", "Pipeline properties", and "Log
      viewer"), and lets the user toggle their visibility.
      dd068eea
    • Artur Grunau's avatar
      Initial implementation of a main menu · c8ef752b
      Artur Grunau authored
      This commit adds a simple main menu to the application. For the time being
      it only has 2 submenus, "File" and "Visualizations". The latter is created
      by MdiDockArea and lets users manage the visibility and placement of
      canvas windows.
      c8ef752b
    • Artur Grunau's avatar
      348c710e
  5. 29 Oct, 2013 3 commits
  6. 28 Oct, 2013 3 commits
  7. 26 Oct, 2013 1 commit
    • Artur Grunau's avatar
      Fix a double free in LogHighlighter's destructor · 88d2e9a1
      Artur Grunau authored
      In its destructor, LogHighlighter first of all deleted its filter regex
      explicitly, and then called `setFilterRegExp(0)`, triggering a second —
      this time somewhat implicit — delete. If the filter regex pointer was
      not NULL, this caused the application to crash due to a double-free.
      
      Fix this error by not invoking `setFilterRegExp` in LogHighlighter's
      destructor; the explicit delete performs the same cleanup as
      `setFilterRegExp` anyways.
      88d2e9a1
  8. 25 Oct, 2013 1 commit
  9. 16 Oct, 2013 4 commits
  10. 15 Oct, 2013 13 commits
  11. 14 Oct, 2013 4 commits
  12. 13 Oct, 2013 1 commit
    • Artur Grunau's avatar
      QtCanvas: don't change canvas' visibility in init() · e2830976
      Artur Grunau authored
      Previously, QtCanvas' init() would call show() on its underlying widget
      and cause it to appear as a top-level window for a split second, before
      the canvas was docked. To avoid this flicker, show() is now only called
      on the canvas after it's been added to the MDI area.
      e2830976