From c4f3a474479cae710264a617534d97ccf19dc606 Mon Sep 17 00:00:00 2001 From: Colin Kiama Date: Fri, 3 May 2024 16:57:17 +0100 Subject: [PATCH] Reorganise main tutorial to be easier to maintain and see contents of each chapter --- .../index.rst => 01-00-first-program.rst} | 0 source/tutorials/main/02-00-basics.rst | 10 +++++++++ source/tutorials/main/02-00-basics/index.rst | 16 -------------- .../03-00-object-oriented-programming.rst | 9 ++++++++ .../index.rst | 21 ------------------ .../main/04-00-advanced-features.rst | 9 ++++++++ .../main/04-00-advanced-features/index.rst | 22 ------------------- ...ex.rst => 05-00-experimental-features.rst} | 7 +++--- .../index.rst => 06-00-libraries.rst} | 8 +++---- ...6-03-binding-libraries-with-vapi-files.rst | 2 +- .../index.rst => 07-00-tools.rst} | 8 +++---- .../main/07-00-tools/07-01-valac.rst | 2 +- .../main/07-00-tools/07-02-vapigen.rst | 2 +- .../07-00-tools/07-03-vala-gen-introspect.rst | 2 +- source/tutorials/main/08-00-techniques.rst | 8 +++++++ .../tutorials/main/08-00-techniques/index.rst | 9 -------- source/tutorials/main/index.rst | 11 ++-------- 17 files changed, 53 insertions(+), 93 deletions(-) rename source/tutorials/main/{01-00-first-program/index.rst => 01-00-first-program.rst} (100%) create mode 100644 source/tutorials/main/02-00-basics.rst delete mode 100644 source/tutorials/main/02-00-basics/index.rst create mode 100644 source/tutorials/main/03-00-object-oriented-programming.rst delete mode 100644 source/tutorials/main/03-00-object-oriented-programming/index.rst create mode 100644 source/tutorials/main/04-00-advanced-features.rst delete mode 100644 source/tutorials/main/04-00-advanced-features/index.rst rename source/tutorials/main/{05-00-experimental-features/index.rst => 05-00-experimental-features.rst} (60%) rename source/tutorials/main/{06-00-libraries/index.rst => 06-00-libraries.rst} (87%) rename source/tutorials/main/{07-00-tools/index.rst => 07-00-tools.rst} (69%) create mode 100644 source/tutorials/main/08-00-techniques.rst delete mode 100644 source/tutorials/main/08-00-techniques/index.rst diff --git a/source/tutorials/main/01-00-first-program/index.rst b/source/tutorials/main/01-00-first-program.rst similarity index 100% rename from source/tutorials/main/01-00-first-program/index.rst rename to source/tutorials/main/01-00-first-program.rst diff --git a/source/tutorials/main/02-00-basics.rst b/source/tutorials/main/02-00-basics.rst new file mode 100644 index 0000000..733d15d --- /dev/null +++ b/source/tutorials/main/02-00-basics.rst @@ -0,0 +1,10 @@ +Basics +====== + +.. toctree:: + :glob: + :maxdepth: 2 + + 02-00-basics/* + + diff --git a/source/tutorials/main/02-00-basics/index.rst b/source/tutorials/main/02-00-basics/index.rst deleted file mode 100644 index c64793f..0000000 --- a/source/tutorials/main/02-00-basics/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -Basics -====== - -.. toctree:: - :maxdepth: 1 - - 02-01-source-files-and-compilation - 02-02-syntax-overview - 02-03-comments - 02-04-data-types - 02-05-operators - 02-06-control-structures - 02-07-language-elements - 02-08-code-attributes - - diff --git a/source/tutorials/main/03-00-object-oriented-programming.rst b/source/tutorials/main/03-00-object-oriented-programming.rst new file mode 100644 index 0000000..dcb8588 --- /dev/null +++ b/source/tutorials/main/03-00-object-oriented-programming.rst @@ -0,0 +1,9 @@ +Object Oriented Programming +=========================== + +.. toctree:: + :glob: + :maxdepth: 2 + + 03-00-object-oriented-programming/* + diff --git a/source/tutorials/main/03-00-object-oriented-programming/index.rst b/source/tutorials/main/03-00-object-oriented-programming/index.rst deleted file mode 100644 index a930865..0000000 --- a/source/tutorials/main/03-00-object-oriented-programming/index.rst +++ /dev/null @@ -1,21 +0,0 @@ -Object Oriented Programming -=========================== - -.. toctree:: - :maxdepth: 1 - - 03-01-basics - 03-02-construction - 03-03-destruction - 03-04-signals - 03-05-properties - 03-06-inheritance - 03-07-abstract-classes - 03-08-interfaces - 03-09-polymorphism - 03-10-method-hiding - 03-11-run-time-type-information - 03-12-dynamic-type-casting - 03-13-generics - 03-14-gobject-style-construction - diff --git a/source/tutorials/main/04-00-advanced-features.rst b/source/tutorials/main/04-00-advanced-features.rst new file mode 100644 index 0000000..ccf5d77 --- /dev/null +++ b/source/tutorials/main/04-00-advanced-features.rst @@ -0,0 +1,9 @@ +Advanced Features +================= + +.. toctree:: + :glob: + :maxdepth: 2 + + 04-00-advanced-features/* + diff --git a/source/tutorials/main/04-00-advanced-features/index.rst b/source/tutorials/main/04-00-advanced-features/index.rst deleted file mode 100644 index 5ce956f..0000000 --- a/source/tutorials/main/04-00-advanced-features/index.rst +++ /dev/null @@ -1,22 +0,0 @@ -Advanced Features -================= - -.. toctree:: - :maxdepth: 1 - - 04-01-assertions-and-contract-programming - 04-02-error-handling - 04-03-parameter-directions - 04-04-collections - 04-05-methods-with-syntax-support - 04-06-multi-threading - 04-07-the-main-loop - 04-08-asynchronous-methods - 04-09-weak-references - 04-10-ownership - 04-11-variable-length-argument-lists - 04-12-pointers - 04-13-non-object-classes - 04-14-d-bus-integration - 04-15-profiles - diff --git a/source/tutorials/main/05-00-experimental-features/index.rst b/source/tutorials/main/05-00-experimental-features.rst similarity index 60% rename from source/tutorials/main/05-00-experimental-features/index.rst rename to source/tutorials/main/05-00-experimental-features.rst index d9a7381..bdef933 100644 --- a/source/tutorials/main/05-00-experimental-features/index.rst +++ b/source/tutorials/main/05-00-experimental-features.rst @@ -4,9 +4,8 @@ Experimental Features Some features of Vala are experimental. This means they are not fully tested and might be subject to changes in future versions. .. toctree:: - :maxdepth: 1 + :glob: + :maxdepth: 2 - 05-01-chained-relational-expressions - 05-02-regular-expression-literals - 05-03-strict-non-null-mode + 05-00-experimental-features/* diff --git a/source/tutorials/main/06-00-libraries/index.rst b/source/tutorials/main/06-00-libraries.rst similarity index 87% rename from source/tutorials/main/06-00-libraries/index.rst rename to source/tutorials/main/06-00-libraries.rst index c6f5493..a8733c0 100644 --- a/source/tutorials/main/06-00-libraries/index.rst +++ b/source/tutorials/main/06-00-libraries.rst @@ -16,9 +16,9 @@ Both of which are installed in the standard locations. And the Vala specific fil These files are explained later in this section. It should be noted that the library names are the same in the Vala specific files as in the *pkg-config* files. .. toctree:: - :maxdepth: 1 + :glob: + :maxdepth: 2 + + 06-00-libraries/* - 06-01-using-libraries - 06-02-creating-a-library - 06-03-binding-libraries-with-vapi-files diff --git a/source/tutorials/main/06-00-libraries/06-03-binding-libraries-with-vapi-files.rst b/source/tutorials/main/06-00-libraries/06-03-binding-libraries-with-vapi-files.rst index aa3095d..ff265d1 100644 --- a/source/tutorials/main/06-00-libraries/06-03-binding-libraries-with-vapi-files.rst +++ b/source/tutorials/main/06-00-libraries/06-03-binding-libraries-with-vapi-files.rst @@ -9,5 +9,5 @@ This process of creating this generally amounts to three steps, * Adding extra metadata to standardise the interface or make various other changes. * Generating a VAPI file from the above sources using *vapigen*. -Specific instructions on how to generate bindings are in the :doc:`Vala Bindings Tutorial `. +Specific instructions on how to generate bindings are in the :doc:`Vala Bindings Tutorial `. diff --git a/source/tutorials/main/07-00-tools/index.rst b/source/tutorials/main/07-00-tools.rst similarity index 69% rename from source/tutorials/main/07-00-tools/index.rst rename to source/tutorials/main/07-00-tools.rst index f90f845..0192efb 100644 --- a/source/tutorials/main/07-00-tools/index.rst +++ b/source/tutorials/main/07-00-tools.rst @@ -4,10 +4,10 @@ Tools The Vala distribution includes several programs to help you build and work with Vala applications. For more details of each tool, see the man pages. .. toctree:: - :maxdepth: 1 + :glob: + :maxdepth: 2 - 07-01-valac - 07-02-vapigen - 07-03-vala-gen-introspect + 07-00-tools/* + diff --git a/source/tutorials/main/07-00-tools/07-01-valac.rst b/source/tutorials/main/07-00-tools/07-01-valac.rst index a93603f..cbadbfc 100644 --- a/source/tutorials/main/07-00-tools/07-01-valac.rst +++ b/source/tutorials/main/07-00-tools/07-01-valac.rst @@ -8,7 +8,7 @@ Vala has better information than the C compiler, so it knows certain things are Unfortunately we can't just add casts everywhere since there are situations where we can't generate a valid cast (and, what's more, no way to know what those situations are). -For example, compiling the :doc:`Hello World program ` will give us some warnings because ``valac`` by default generates code which is compatible with older versions of the ``GLib``.Some methods may have been deprecated in your new version of GLib so that C language compiler will warn you. +For example, compiling the :doc:`Hello World program ` will give us some warnings because ``valac`` by default generates code which is compatible with older versions of the ``GLib``.Some methods may have been deprecated in your new version of GLib so that C language compiler will warn you. Imagine a machine with older glib version want to run your vala program! diff --git a/source/tutorials/main/07-00-tools/07-02-vapigen.rst b/source/tutorials/main/07-00-tools/07-02-vapigen.rst index 537acf8..2609d57 100644 --- a/source/tutorials/main/07-00-tools/07-02-vapigen.rst +++ b/source/tutorials/main/07-00-tools/07-02-vapigen.rst @@ -1,4 +1,4 @@ vapigen ======= -``vapigen`` is a tool to make bindings. It creates a VAPI files from a library's metadata and any extra information required. See also :doc:`Vala Bindings Tutorial `. +``vapigen`` is a tool to make bindings. It creates a VAPI files from a library's metadata and any extra information required. See also :doc:`Vala Bindings Tutorial `. diff --git a/source/tutorials/main/07-00-tools/07-03-vala-gen-introspect.rst b/source/tutorials/main/07-00-tools/07-03-vala-gen-introspect.rst index 08fee5b..3cad23e 100644 --- a/source/tutorials/main/07-00-tools/07-03-vala-gen-introspect.rst +++ b/source/tutorials/main/07-00-tools/07-03-vala-gen-introspect.rst @@ -1,4 +1,4 @@ vala-gen-introspect =================== -``vala-gen-introspect`` is a tool for extracting metainformation about GObject based libraries. Nowadays, the preferred method is to use GObjectIntrospection instead, as vapigen can use GIR files directly. See also :doc:`Vala Bindings Tutorial `. +``vala-gen-introspect`` is a tool for extracting metainformation about GObject based libraries. Nowadays, the preferred method is to use GObjectIntrospection instead, as vapigen can use GIR files directly. See also :doc:`Vala Bindings Tutorial `. diff --git a/source/tutorials/main/08-00-techniques.rst b/source/tutorials/main/08-00-techniques.rst new file mode 100644 index 0000000..2d2644f --- /dev/null +++ b/source/tutorials/main/08-00-techniques.rst @@ -0,0 +1,8 @@ +Techniques +========== + +.. toctree:: + :glob: + :maxdepth: 2 + + 08-00-techniques/* diff --git a/source/tutorials/main/08-00-techniques/index.rst b/source/tutorials/main/08-00-techniques/index.rst deleted file mode 100644 index 1593432..0000000 --- a/source/tutorials/main/08-00-techniques/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -Techniques -========== - -.. toctree:: - :maxdepth: 1 - - 08-01-debugging - 08-02-using-glib - diff --git a/source/tutorials/main/index.rst b/source/tutorials/main/index.rst index cdd7b74..ee09f96 100644 --- a/source/tutorials/main/index.rst +++ b/source/tutorials/main/index.rst @@ -43,13 +43,6 @@ At some point I will add in references to the Vala documentation, but that isn't .. toctree:: :numbered: :maxdepth: 1 + :glob: - 01-00-first-program/index - 02-00-basics/index - 03-00-object-oriented-programming/index - 04-00-advanced-features/index - 05-00-experimental-features/index - 06-00-libraries/index - 07-00-tools/index - 08-00-techniques/index - + *