Notice to GitKraken users: A vulnerability has been found in the SSH key generation of GitKraken versions 7.6.0 to 8.0.0 (https://www.gitkraken.com/blog/weak-ssh-key-fix). If you use GitKraken and have generated a SSH key using one of these versions, please remove it both from your local workstation and from your LRZ GitLab profile.

21.10.2021, 9:00 - 11:00: Due to updates GitLab may be unavailable for some minutes between 09:00 and 11:00.

  1. 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
  2. 29 Oct, 2013 3 commits
  3. 28 Oct, 2013 3 commits
  4. 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
  5. 25 Oct, 2013 1 commit
  6. 16 Oct, 2013 4 commits
  7. 15 Oct, 2013 13 commits
  8. 14 Oct, 2013 4 commits
  9. 13 Oct, 2013 6 commits
    • 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
    • Artur Grunau's avatar
      Fix bugs with the positioning of MDI windows · 1071efae
      Artur Grunau authored
      Previously, when an MDI window was being dragged very fast and its state
      changed from docked to floating (or vice versa), it wouldn't be placed
      under the cursor, but instead some way behind it (with regards to the
      drag direction). This happened because we decided where to place the
      window's based on its last position in its previous state. Now we use
      the cursor's position to calculate the window's new position, which
      fixes the problem.
      1071efae
    • Artur Grunau's avatar
      Refactor PipelineMdiSubWindow and rename it MdiDockedWindow · e3289b08
      Artur Grunau authored
      PipelineMdiSubWindow has been renamed MdiDockedWindow, and
      refactored to make it easier to use it with arbitrary widgets.
      e3289b08
    • Artur Grunau's avatar
      Store MDI-related classes under gui/mdi · 06a76302
      Artur Grunau authored
      To better group MDI-related classes, all of them have been moved to the
      ´gui/mdi´ directory.
      06a76302
    • Artur Grunau's avatar
      Refactor VisualizationPipelineWidget and rename it MdiFloatingWindow · b1df9da9
      Artur Grunau authored
      VisualizationPipelineWidget has been renamed MdiFloatingWindow, and
      refactored to make it easier to use it with arbitrary widgets.
      b1df9da9
    • Artur Grunau's avatar
      Refactor VisualizationPipelineWrapper and rename it MdiDockArea · 7e5e44b1
      Artur Grunau authored
      VisualizationPipelineWrapper has been renamed MdiDockArea, and refactored
      to make it easier to use it with arbitrary widgets. It now inherits from
      QMdiArea, which removes an unnecessary layer of indirection. Moreover, it
      creates MDI subwindows and floating windows only if necessary, i.e. when
      a widget stored in it changes state.
      7e5e44b1