This page is about adding ideas on how to redesign gedit to be able to split and to have different views for a document.


We are going to make a differenciation between splits and tab groups

What is a split for us?

By split views we refer to different views of a doc inside a tab

  1. a tab corresponds to a single doc/file
  2. the views inside the tab may be both different text areas (e.g. line 3-42 and line 10003-10042) or different representation (e.g. text and latex preview)

What is a tab group for us?

By tab groups we refer to the ability of grouping gedit tabs in different groups that can be viewed at the same time in a gedit window

  1. By default a gedit window has a single tab group (current behavior)
  2. The same document can NOT appear in different tab groups or different tabs


Idea 1 (the chosen one)

Class diagram

  • We only allow vertical tab groups, this means that we are going to have tab groups splitted vertical. Something like this screenshot.

    • n tab groups per window.
  • Each tab would be able to be splitted vertically or horizontally * times.
  • Each tab can be shown with different views.

Idea 2

  • Same as before but beeing able to see also the same doc in different tab groups

Idea 3

  • Same as 1 but each split would be a tab group
  • We would allow only 1 split, vertical or horizontal at the same time

Idea 4

  • Only one tab group
  • Each tab can hold * docs

Idea 5

  • No tabs
  • Documents are managed by the sidebar document selector
  • When you split it opens a duplicate of the current document
  • The document is opened in the current selected split

Idea 6

  • No tabs but drop-down list to select document
  • When you split it opens a duplicate of the current document
  • The document is opened in the current selected split


Here I'm linking to some screenshots of other apps in case we want to comment about them

How to make this

Now I'm going to tell the steps to make this accomplished

  1. Notebook groups: We are going to add the needed parts to gedit-window to be able to add several notebooks (almost done)
  2. Split view: Beeing able to add n paneds to gedit-tab and in each one a gedit-view
  3. Refactor: We are adding a lot of code to gedit-window and gedit-tab that could be refactored on different classes so let's make it in this steps if needed.
  4. Convert gedit-view into an interface: If we want to be able to show differents views for the same document we need to be able to implement different views. The current gedit-view will be renamed in gedit-text-view and it will implement gedit-view.
  5. Convert gedit-document into an interface: Same as step 4 but with the document.

Right now we already have a multiviews branch implement most parts of this but lets doing it again taking parts of that branch so it is easier to review and easier to add to master step by step.

See also :

Apps/Gedit/Multiviews (last edited 2014-04-07 19:57:21 by SébastienWilmet)