You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+22-23Lines changed: 22 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ All types of contributions are encouraged and valued. See the [Table of Contents
25
25
26
26
## I Have a Question
27
27
28
-
Before you ask a question, it is best to search for existing [Discussions](https://github.com/NickvisionApps/Application/discussions) and [Issues](https://github.com/NickvisionApps/Application/issues) that might help you.
28
+
Before you ask a question, it is best to search for existing [Discussions](https://github.com/NickvisionApps/Application/discussions) and [Issues](https://github.com/NickvisionApps/Application/issues) that might help you.
29
29
30
30
In case you have found a suitable existing issue/discussion and still need clarification, you can write your question in said post. It is also advisable to search the internet for answers first to common error messages.
31
31
@@ -39,22 +39,22 @@ We will then take care of the question as soon as possible and convert it to a p
39
39
40
40
## I Want To Contribute
41
41
42
-
> ### Legal Notice
43
-
> When contributing to this project, you must agree that you have authored 100% of the content and/or that you have the necessary rights to the content and that the content you contribute may be provided under the project [license](COPYING).
42
+
### Legal Notice
43
+
When contributing to this project, you must agree that you have authored 100% of the content and/or that you have the necessary rights to the content and that the content you contribute may be provided under the project [license](COPYING).
44
44
45
45
### Reporting Bugs
46
46
47
47
#### Before Submitting a Bug Report
48
48
49
-
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask that you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible:
49
+
A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask that you investigate carefully, collect necessary information and describe the issue in detail in your report. Please complete the following steps in advanced to help us fix any potential bug as fast as possible:
50
50
51
-
- Make sure that you are using the latest released version.
51
+
- Make sure that you are using the latest released stable version.
52
52
- Determine if your bug is really a bug and not an error on your side. If you are looking for support, you might want to check [this section](#i-have-a-question).
53
53
- See if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in both the [Discussions](https://github.com/NickvisionApps/Application/discussions) and [Issues](https://github.com/NickvisionApps/Application/issues) sections.
54
54
- Collect information about the bug:
55
55
- Debug information provided by the application
56
56
- GNOME: From the main hamburger menu, open About Application → Troubleshooting → Debugging Information and copy the information to the clipboard to paste in your issue.
57
-
- WinUI: From the Help item in the left-side navigation, click the gear/wrench icon in the top right corner of the flyout to copy the information to the clipboard to paste in your issue.
57
+
- WinUI: From the Help item in the left-side navigation, open About -> Debugging and copy the information to the clipboard to paste in your issue.
58
58
- Stack trace (Traceback)
59
59
- Including any error messages thrown by the application
60
60
- You may need to start the application via the terminal/console to receive an error message for a crash.
@@ -65,7 +65,7 @@ A good bug report shouldn't leave others needing to chase you up for more inform
65
65
66
66
#### How Do I Submit a Good Bug Report?
67
67
68
-
> You must never report security related issues, vulnerabilities and bugs (including sensitive information) to the issue tracker nor elsewhere in public. Instead sensitive issues must be reported and handled via email to <nlogozzo225@gmail.com>.
68
+
You must never report security related issues, vulnerabilities and bugs (including sensitive information) to the issue tracker nor elsewhere in public. Instead, sensitive issues must be reported and handled via email to <nlogozzo225@gmail.com>.
69
69
70
70
We use GitHub issues to track bugs and errors. If you run into an issue with the project:
71
71
@@ -76,7 +76,7 @@ We use GitHub issues to track bugs and errors. If you run into an issue with the
76
76
Once it has been opened:
77
77
78
78
- The project team will label the issue accordingly.
79
-
- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps.
79
+
- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps.
80
80
- Bugs that are not able to be reproduced will not be addressed until they are reproduced. Therefore, it is important to include steps to speed up the fixing process.
81
81
82
82
### Suggesting Enhancements
@@ -111,11 +111,13 @@ Application is available to translate on [Weblate](https://hosted.weblate.org/en
111
111
112
112
To start translating the app, fork the repository and clone it locally.
113
113
114
-
Application uses [gettext](https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files) for translations. In the `resources/po` folder you will find files that can be edited in your favourite `*.po` files editor (or with any plain text editor).
114
+
Application uses [gettext](https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files) for translations. In the `resources/po` folder you will find files that can be edited in your favourite `*.po` files editor (or with any plain text editor).
115
+
116
+
If you want to create a new translation, copy the `application.pot` file and rename said copy as `<lang_code>.po`, where `<lang_code>` is the language code for your translation. Usually the code is two letters, but it can also be a specific locale code to differentiate between versions of the same language (for example, `pt` and `pt_BR`).
115
117
116
-
If you want to create a new translation, copy the `application.pot` file and rename said copy as `<lang_code>.po`, where `<lang_code>` is the language code for your translation. Usually the code is two letters, but it can also be a specific locale code to differentiate between versions of the same language (for example, `pt` and `pt_BR`). **Also, add the language code to `LINGUAS` file** (keeping this file in alphabetical order).
118
+
**Also, add the language code to `LINGUAS` file** (keeping this file in alphabetical order).
117
119
118
-
Edit your new translation file with correct translations for the English messages.
120
+
Edit your new translation file with correct translations for the English messages.
119
121
120
122
To check your translation file, make sure your system is in the locale of the language you are translating and [locally build and run the app](README#building-manually). If all steps were carried out successfully, you should see your translation in action!
121
123
@@ -125,12 +127,12 @@ Once all changes to your translated file are made, commit these changes and crea
125
127
126
128
#### Structure
127
129
128
-
Application is built using C++20 and platform-native user interface libraries. With these technologies, Application is built for all desktop platforms.
130
+
Application is built using C++20 and platform-native user interface libraries. With these technologies, Application is built for the Windows and Linux operating systems.
129
131
130
132
The project is split up into the following sub-projects:
The whole project utilizes the [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) pattern for separating data models and UI views.
136
138
@@ -143,28 +145,25 @@ This project contains all of the code used by all platforms of the app:
143
145
144
146
##### org.nickvision.application.gnome
145
147
146
-
This project contains all of the code used for the GNOME platform version of the app, including flathub manifest and desktop files:
148
+
This project contains all of the code used for the GNOME platform version of the app:
147
149
-`blueprints` => UI design files written in [Blueprint markup language](https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/).
148
150
-`controls` => Generic controls for the app.
149
151
- These UI objects are separate from views in that they should not be backed by a controller and should be easily ported to any other app.
150
152
-`helpers` => Useful objects and functions specific for the GNOME platform version of the app.
151
153
-`resources` => Extra icons and other files specific for the GNOME platform version of the app.
152
154
-`views` => The views (pages, windows, dialogs, etc...) of the app.
153
155
154
-
##### org.nickvision.application.qt
156
+
##### org.nickvision.application.winui
155
157
156
-
This project contains all of the code used for the Qt platform (Windows, KDE) version of the app:
158
+
This project contains all of the code used for the WinUI platform version of the app:
157
159
-`controls` => Generic controls for the app.
158
160
- These UI objects are separate from views in that they should not be backed by a controller and should be easily ported to any other app.
159
161
-`helpers` => Useful objects and functions specific for the Qt platform version of the app.
160
-
-`resources` => Extra icons and other files specific for the Qt platform version of the app.
161
162
-`views` => The views (pages, windows, dialogs, etc...) of the app.
162
163
163
164
#### Developing and Testing
164
165
165
-
Application simply relies on `cmake` to configure and manage the correct projects for the running platform. Meaning, on Linux the `.gnome` variant of the app will be built by default and on Windows the `.qt` variant.
166
-
167
-
Although on Linux, you can specify the `-DUI_PLATFORM=qt` flag to cmake and build and run the `.qt` variant.
166
+
Application simply relies on `cmake` to configure and manage the correct projects for the running platform. Meaning, on Linux the `.gnome` variant of the app will be built and on Windows the `.winui` variant.
168
167
169
168
[See the readme](README#building-manually) for instructions on building and running the app locally.
170
169
@@ -183,10 +182,10 @@ Application uses the following coding styles:
183
182
#define FILENAME_H
184
183
...
185
184
#endif//FILENAME_H
186
-
```
187
-
used as the guards to a header file.
185
+
```
186
+
used as the guards to a header file.
188
187
-`#pragma once` should not be used.
189
-
- Brackets `{}` should be placed on individual new lines and never inline.
188
+
- Brackets `{}` should be placed on individual new lines and never inline.
190
189
- This applies for any type of structure (`if`, `switch`, `class`, etc...) that requires brackets.
191
190
-*Single-line if statements should also be wrapped by brackets.*
192
191
- Proper indentation using spacing with spaces and not tabs.
@@ -22,36 +22,29 @@ Ensure both `vcpkg` and `cmake` are installed on your system before building.
22
22
23
23
A C++20 compiler is also required to build Application.
24
24
25
-
**If building the GNOME version, `blueprint-compiler` must be installed from your system package manager as it is not available on `vcpkg`.**
25
+
**If building the Linux version, `blueprint-compiler` must be installed from your system package manager as it is not available on `vcpkg`.**
26
26
27
27
### Configuring vcpkg
28
28
1. Set the `VCPKG_ROOT` environment variable to the path of your vcpkg installation's root directory.
29
29
#### Windows
30
30
1. Set the `VCPKG_DEFAULT_TRIPLET` environment variable to `x64-windows`
31
-
1. Run `vcpkg install libnick qtbase qtsvg qttools qlementine qlementine-icons`
32
-
#### Linux (GNOME)
31
+
1. Run `vcpkg install libnick`
32
+
#### Linux
33
33
1. Set the `VCPKG_DEFAULT_TRIPLET` environment variable to `x64-linux`
34
34
1. Run `vcpkg install libnick libxmlpp`
35
-
#### Linux (Qt)
36
-
1. Set the `VCPKG_DEFAULT_TRIPLET` environment variable to `x64-linux`
37
-
1. Run `vcpkg install libnick qtbase qtsvg qttools qlementine qlementine-icons`
38
35
39
36
### Building
40
37
1. First, clone/download the repo.
41
38
1. Open a terminal and navigate to the repo's root directory.
42
-
1. Create a new `build` directory and `cd` into it.
39
+
1. Create a new `build` directory and `cd` into it.
43
40
#### Windows
44
41
1. From the `build` folder, run `cmake .. -G "Visual Studio 17 2022"`.
45
42
1. From the `build` folder, run `cmake --build . --config Release`.
46
-
1. After these commands complete, Application will be successfully built and its binaries can be found in the `org.nickvision.application.qt/Release` folder of the `build` folder.
47
-
#### Linux (GNOME)
48
-
1. From the `build` folder, run `cmake .. -DCMAKE_BUILD_TYPE=Release -DUI_PLATFORM=gnome`.
43
+
1. After these commands complete, Application will be successfully built and its binaries can be found in the `org.nickvision.application.winui/Release` folder of the `build` folder.
44
+
#### Linux
45
+
1. From the `build` folder, run `cmake .. -DCMAKE_BUILD_TYPE=Release`.
49
46
1. From the `build` folder, run `cmake --build .`.
50
47
1. After these commands complete, Application will be successfully built and its binaries can be found in the `org.nickvision.application.gnome` folder of the `build` folder.
51
-
#### Linux (Qt)
52
-
1. From the `build` folder, run `cmake .. -DCMAKE_BUILD_TYPE=Release -DUI_PLATFORM=qt`.
53
-
1. From the `build` folder, run `cmake --build .`.
54
-
1. After these commands complete, Application will be successfully built and its binaries can be found in the `org.nickvision.application.qt` folder of the `build` folder.
0 commit comments