Skip to content

Developer information

Wouter Wijsman edited this page Jan 6, 2020 · 25 revisions

Minigalaxy has been created using the following tools:

Setting up a development environment

Setting up a development environment can simply be done by first installing the following software:

After having done so, the git repo can be cloned and the application started with:

git clone https://github.com/sharkwouter/minigalaxy.git
cd minigalaxy
bin/minigalaxy

Glade usage

Glade is used to create GTK interfaces for Minigalaxy whenever possible. The Glade files all have the following in common:

  • The top level GTK item, usually the window, has the composite option enabled. This makes us able to use them as the base for a class.
  • The top level GTK item is named with CamelCase.
  • All text is in English.
  • All strings set within Glade are translatable.
  • Signals for buttons and other widgets are added from within Glade.

Glade files are loaded as the base for a class with the following line before the class definition:

@Gtk.Template.from_file(os.path.join(UI_DIR, "file.ui"))

Within the class the __gtype_name__ has to match the name of the top level GTK item. Other items are imported using widget_name_in_glade = Gtk.Template.Child().

Project structure

  • bin: contains the minigalaxy launch script
  • data: contains the ui files and other non-python files like translations, images and configuration files
    • mo: contains compiled translation
    • po: contains translation files
    • ui: contains the Glade files which contain the interface of Minigalaxy
  • debian: contains the rDebian/Ubuntu packaging specific files. Here is some good documentation on what each file does.
  • minigalaxy: contains the source code
  • scripts: contains some scripts for managing translations and creating screenshots for the README
Clone this wiki locally