Difference between revisions of "GEPS 008: File Organization"

From Gramps
Jump to: navigation, search
(src/gen/)
Line 15: Line 15:
 
=== src/gen/plug/ ===
 
=== src/gen/plug/ ===
 
The plug directory contains the core logic for registering and running plugins. It also contains any utility classes used by plugins.
 
The plug directory contains the core logic for registering and running plugins. It also contains any utility classes used by plugins.
 +
 +
=== src/gen/plug/report/ ===
 +
This directory contains the base class for reports, constants, and basic utilities.
  
 
=== src/gen/filters/ ===
 
=== src/gen/filters/ ===
Line 24: Line 27:
 
== src/gui/ ==
 
== src/gui/ ==
 
This directory contains the code for the desktop graphical user interface. Any file that imports GTK or glade should live in this directory or a subdirectory of this directory.
 
This directory contains the code for the desktop graphical user interface. Any file that imports GTK or glade should live in this directory or a subdirectory of this directory.
 +
 +
=== src/gui/plug/ ===
 +
The gui.plug directory contains windows, dialogs, and tools that the plugins will use.
 +
 +
=== src/gui/plug/report ===
 +
This directory has the dialogs for running reports, such as selection criteria, file pickers, and paper sizes.
  
 
=== src/gui/views/ ===
 
=== src/gui/views/ ===

Revision as of 20:25, 22 April 2010

The purpose of this page is to facilitate a discussion on the organization of the source files for Gramps. All code should reside in one of the four main subdirectories.

src/gen/

This directory contains the core components of Gramps. The src/gen/ directory shall not have any dependencies on the other top level source directories (src/gui/, src/cli/, src/web/, etc). The src/gen/ directory also shall not have any dependencies on the gtk library.

src/gen/db/

The db directory contains the code for manipulating the Gramps database.

src/gen/display/

The display directory contains business logic for displaying database objects in textual form. For example, localized date display and name display code.

src/gen/lib/

The lib directory contains the classes for the database objects.

src/gen/plug/

The plug directory contains the core logic for registering and running plugins. It also contains any utility classes used by plugins.

src/gen/plug/report/

This directory contains the base class for reports, constants, and basic utilities.

src/gen/filters/

The filters directory contains the code for filtering objects.

src/gen/mime/

The mime directory contains the code for handling mime types in Gramps.

src/gui/

This directory contains the code for the desktop graphical user interface. Any file that imports GTK or glade should live in this directory or a subdirectory of this directory.

src/gui/plug/

The gui.plug directory contains windows, dialogs, and tools that the plugins will use.

src/gui/plug/report

This directory has the dialogs for running reports, such as selection criteria, file pickers, and paper sizes.

src/gui/views/

This directory contains the code for the various graphical "views" in the GUI.

src/gui/views/treemodels/

This directory contains the code for the models used in the GUI.

src/gui/views/selectors/

This directory contains the code for the object selection dialogs in the GUI.

src/gui/editors/

This directory contains the code for the object editors used in the GUI.

src/gui/editors/displaytabs/

This directory contains the code for the tabs used in the GUI editors.

src/gui/merge/

This directory contains the code for merging objects in the GUI.

src/gui/widgets/

This directory contains widgets used by the GUI

src/cli/

This directory contains the code for the command line interface.

src/web/

This directory contains the code for the gramps-connect web interface.

src/plugins/

This directory contains all the plugins for Gramps.

src/plugins/docgen/

This directory contains all the document generator plugins.

src/plugins/gramplet/

This directory contains all the gramplet plugins.

src/plugins/tool/

This directory contains all the tool plugins.

src/plugins/report/

This directory contains all the report plugins.